[Web] Spring 웹 계층

백승하·2021년 10월 9일

web programming

목록 보기
2/18

최근 스프링을 통한 웹개발에 대해 공부를 하면서 (스프링 부트와 AWS로 혼자 구현하는 웹 서비스) 웹을 구성하는 각 기능들을 어떤 layer에 넣어야하는 지에 대해 알아보았다.


우선, Spring의 웹 계층에 대해 살펴보면,

Web Layer

- 컨트롤러(**@Controller**)와 **JSP/Freemaker** 같은 뷰 템플릿이 들어있는 영역 - **@Filter, 인터셉터, 컨트롤러 어드바이스(@ControllerAdvice**) 등 외부 요청과 응답에 대한 영역

Service Layer

- **@Service**에 사용되는 서비스 영역 - 일반적으로 Controller와 Dao의 중간 영역에서 사용 - **@Transactional**이 사용돼야 하는 영역

Repository Layer

- Database와 같이 데이터 저장소에 접근하는 영역 - Data Access Object영역

DTOs

- Data Transfer Object는 **계층 간에 데이터 교환을 위한 객체**를 이야기하며, DTOs는 이들의 영역 - 뷰 템플릿 엔진에서 사용될 객체나 Repository Layer에서 결과로 넘겨준 객체 등이 해당

Domain Model

- 도메인이라 불리는 개발 대상을 모든 사람이 동일한 관점에서 이해할 수 있고 또 공유할 수 있도록 단순화시킨 것을 도메인 모델. - 택시앱이라고 하면 배차, 탑승, 요금 등이 모두 포함될 수 있다. - **@Entity**가 사용된 영역 역시 도메인 모델
profile
꿈꾸고 실현하는 개발자

0개의 댓글