레이어드 아키텍쳐
계층을 가지는 구조
분리를 쉽게 재사용을 쉽게 하는게 목표
분리를 잘하기 위해 mvc같은 디자인 패턴이 존재한다.
[Spring] MVC : Controller와 Service의 책임 나누기
martinfowler.com/bliki/PresentationDomainDataLayering.html 우선, 가장 크고 중요한 개념은 layer다. 일반적으로 많이 사용하는 layer 구분 Presentation layer Service layer Business layer Persistence laye..
umbum.dev
컨트롤러 -> 서비스 -> 리포지토리로 이해하자
모든 레이어드 아키텍쳐가 위와 같은 계층구조로 되어 있는 것은 아니다. 말 그대로 계층을 가지는 구조인 것이다.
서비스는 비즈니스 로직이 들어가는데 트랜잭션 단위로 실행이 되어야 한다.
비즈니스 로직의 예로는 중복된 회원은 가입 x , 특정 유저 할인 등...
트랜잭션 단위로 실행된다는 것은 중간에 실패된다면 그 작업은 db에 반영이 되면 안 된다는 거다.
또 트랜잭션은 다른 트랜젝션의 연산에 끼어들 수 없다.
[Layer Architecture] 레이어 아키텍처
애플리케이션 아키텍처와 객체지향 - 조영호 유튜브 링크 슬라이드 링크 조영호님의 애플리케이션 아키텍처와 객체지향 영상을 정리한 블로그 입니다. 사용한 이미지는 대부분 위 슬라이드 링
black-jin0427.tistory.com
www.youtube.com/watch?v=26S4VFUWlJM
레이어 아키텍처는 사람마다 다를 수 있다. 주관적인 것이기 때문에.
프레젠테이션 레이어 -> 도메인 레이어 -> 데이터 소스 레이어로도 볼 수 있다.
위에서 더 세분화를 한다면 도메인 레이어를 서비스 레이어와 도메인 레이어로 나눌 수 있다.
도메인의 기능이 점점 늘어날 때 한 곳에 다 때려박으면 도메인의 재활용성이 떨어진다.
그래서 서비스 레이어를 추가해서 도메인을 좀 더 가볍게 가져가자.
이런 관점에서 보면 서비스 레이어도 도메인 레이어에 포함되는 거다.