TIL

레이어드 아키텍쳐

Gisungcu 2021. 3. 7. 15:40

 

계층을 가지는 구조

분리를 쉽게 재사용을 쉽게 하는게 목표

분리를 잘하기 위해 mvc같은 디자인 패턴이 존재한다.

umbum.dev/1066

 

[Spring] MVC : Controller와 Service의 책임 나누기

martinfowler.com/bliki/PresentationDomainDataLayering.html 우선, 가장 크고 중요한 개념은 layer다. 일반적으로 많이 사용하는 layer 구분 Presentation layer Service layer Business layer Persistence laye..

umbum.dev

 

 

https://www.boostcourse.org/web326/lecture/58982?isDesc=false

컨트롤러 -> 서비스 -> 리포지토리로 이해하자

모든 레이어드 아키텍쳐가 위와 같은 계층구조로 되어 있는 것은 아니다. 말 그대로 계층을 가지는 구조인 것이다.

 

서비스는 비즈니스 로직이 들어가는데 트랜잭션 단위로 실행이 되어야 한다.

 

비즈니스 로직의 예로는 중복된 회원은 가입 x , 특정 유저 할인 등...

트랜잭션 단위로 실행된다는 것은 중간에 실패된다면 그 작업은 db에 반영이 되면 안 된다는 거다.

또 트랜잭션은 다른 트랜젝션의 연산에 끼어들 수 없다.

 

 

black-jin0427.tistory.com/207

 

[Layer Architecture] 레이어 아키텍처

애플리케이션 아키텍처와 객체지향 - 조영호 유튜브 링크 슬라이드 링크 조영호님의 애플리케이션 아키텍처와 객체지향 영상을 정리한 블로그 입니다. 사용한 이미지는 대부분 위 슬라이드 링

black-jin0427.tistory.com

www.youtube.com/watch?v=26S4VFUWlJM

 

레이어 아키텍처는 사람마다 다를 수 있다. 주관적인 것이기 때문에.

프레젠테이션 레이어 -> 도메인 레이어 -> 데이터 소스 레이어로도 볼 수 있다.

 

위에서 더 세분화를 한다면 도메인 레이어를 서비스 레이어와 도메인 레이어로 나눌 수 있다.

도메인의 기능이 점점 늘어날 때 한 곳에 다 때려박으면 도메인의 재활용성이 떨어진다. 

그래서 서비스 레이어를 추가해서 도메인을 좀 더 가볍게 가져가자.

 

이런 관점에서 보면 서비스 레이어도 도메인 레이어에 포함되는 거다.