Spring Boot 레이어 아키텍처
- layer은 층 , architecture은 구조 , 말그대로 계층을 가진 구조로서 효율적인 개발을 위해 애플리케이션을 여러 레이어로 나누어 구조화하는 방식
- 각 계층은 위 아래 계층과 서로 통신한다
- 유지보수 및 재사용성을 높일 수 있다
1.구조
2.Presentation layer
- 사용자와 밀접한 층으로 사용자와 소통하는 계층
- mvc(ModelViewController) 패턴이 이용되며 프런트엔드 부분(DispatcherServlet 등)으로 구성
- HTTP의 request를 처리하고 json 매개 변수를 객체로 전환하며 authentication와 같이 허가를 해주는 역할도 수행한다
3.Business layer
- Controller에서 요청을 보내면 비지니스 로직을 처리하는 컨포넌트
- 이때 하나의 비지니스 로직은 하나의 트랜잭션으로 동작한다
- Service 클래스 층으로 수정을 원활하게 해주는 interface를사용
- 확인,검증,권한부여의 역할 수행
4.data Acess layer
- DB와 연결해 데이터를 조회, 저장,삭제,수정을 담당한다
- 서비스가 dao(Mybatis,jpa등으로 구현한)를 부르는 형태
5. 동작과정
1.Client 에서 request(요청)가 들어오면 Presentation layer에서 DispatcherServlet이 HandelerMapping을 통해 확인 후 Controller에게 request를 전달한다. Controller는 request처리를 Business layer에게 넘긴다.
2. Business layer는 request에서 넘겨줘야할 데이터가 있으면