hyeonga_code
PreProject_04_Spring Web Layer 본문
Spring Web Layer
1. Web Layer
뷰 템플릿 영역입니다.
( @Controller, JSP, Freemarker )
외부 요청과 응답에 대한 전반적인 영역입니다.
( @Filter, 인터셉터, @ControllerAdvice )
2. Service Layer
@Service에 사용되는 서비스 영역입니다.
일반적으로 Controller와 DAO의 중간 영역에서 사용합니다.
@Transactional이 사용되어야 하는 영역입니다.
3. Repository Layer
데이터베이스와 같이 데이터 저장소에 접근하는 영역입니다.
4. DTO
계층 간의 데이터 교환을 위한 객체의 영역입니다.
( 뷰 템플릿 엔진에서 사용될 객체, Repository Layer에서 결과로 넘겨주는 객체 )
5. Domain Model
도메인이라 불리는 개발 대상을 모든 사람이 동일한 관점에서 이해하며 공유할 수 있도록 단순화시킨 것
@Entity가 사용된 영역
VO와 같은 값 객체가 해당되는 영역으로 데이터베이스의 테이블과의 매핑이 필수는 아닙니다.
비즈니스 처리를 담당하는 곳은 Domain Model입니다.
기존에는 Service가 비즈니스 처리를 담당하는 트랜잭션 스크립트 방식이었습니다.
트랜잭션 스크립트 : 모든 로직을 서비스 클래스 내부에서 처리
구현 방법이 단순하여 구현이 쉽다는 장점이 있습니다.
그러나 비즈니스 로직이 복잡해지면 난잡한 코드가 되는 단점이 있습니다.
도메인에 대한 분석 및 설계 개념이 약해 코드의 중복 발생을 막기 어렵습니다.
도메인 모델은 객체 지향에 기반한 재사용성, 확장성, 편리한 유지 보수 등의 장점이 있습니다.
도메인 모델을 구축하면 언제든지 재사용이 가능하고 상속/인터페이스/컴포넌트 개념을 바탕으로 개발하면 무한한 확장성을 가지게 됩니다.
'Project_HYEONGARL' 카테고리의 다른 글
PreProject_06_Controller (0) | 2024.05.13 |
---|---|
PreProject_05_ResponseEntity<> (0) | 2024.05.13 |
PreProject_03_ORM(Object-Relational Mapping) 을 위한 Entity Class (0) | 2024.05.12 |
PreProject_02_REST (0) | 2024.05.11 |
PreProject_01_MVC 모델 짚고 넘어가기 (0) | 2024.05.11 |