hyeonga_code

PreProject_04_Spring Web Layer 본문

Project_HYEONGARL

PreProject_04_Spring Web Layer

hyeonga 2024. 5. 13. 05:59
반응형

 

 

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가 비즈니스 처리를 담당하는 트랜잭션 스크립트 방식이었습니다.

트랜잭션 스크립트 : 모든 로직을 서비스 클래스 내부에서 처리

구현 방법이 단순하여 구현이 쉽다는 장점이 있습니다.

 

그러나 비즈니스 로직이 복잡해지면 난잡한 코드가 되는 단점이 있습니다.

도메인에 대한 분석 및 설계 개념이 약해 코드의 중복 발생을 막기 어렵습니다.

 

도메인 모델은 객체 지향에 기반한 재사용성, 확장성, 편리한 유지 보수 등의 장점이 있습니다.

도메인 모델을 구축하면 언제든지 재사용이 가능하고 상속/인터페이스/컴포넌트 개념을 바탕으로 개발하면 무한한 확장성을 가지게 됩니다.

 

반응형