-
Spring 구조2Java 2023. 10. 17. 09:48
용어 정리
- DAO ( Data Access Object )
- DB에 접근하기 위한 객체
- DB에 접근하기 위한 로직과 비즈니스 로직을 분리하기 위해 사용
- DTO ( Data Transfer Object)
- 계층 간 데이터 교환을 하기 위한 객체
- 로직을 갖지 않고 Getter, Setter만 존재
Spring Web Layer
- Web Layer
- 컨트롤러(@Controller)가 대표적이고 필터(@filter), 인터셉터 등 포함
- 외부 요청과 응답에 대한 전반적인 영역을 의미
- Service Layer
- 말 그대로 서비스(@Service)
- 일반적으로 컨트롤러와 저장소(Repository, Dao) 중간에 위치
- 트랜잭션(@Transaction)과 도메인 간의 연산 순서를 보장해 줌
- Repository Layer
- DB와 같은 데이터 저장소에 접근하는 영역
- JPA를 사용하면 @Repository라고 생각하면 됨
- DAO라고도 생각
- DTO's
- DTO(Data Transfer Object)는 계층간의 데이터 교환을 위한 객체임
- Domain Model
- 개발 대상
- 비즈니스 로직 처리
- JPA를 사용하면 @Entity가 사용되는 영역
동작과정
- Client (View)에서 DTO를 통해 요청을 보냄
- DTO를 통해 Controller에 도착하면 Controller에서는 Service(비즈니스 로직)을 호출. (이때도 DTO를 통해 전달)
- Service로 오면 도착한 Service의 비즈니스 로직 처리
- Service는 비즈니스 로직을 실행하는 도중 DB에 접근해야하는 경우 Repository로 이동하여 접근
- Repository는 DB에 접근하는 소스코드가 존재하여 DB에 접근하여 쿼리문을 통한 트랜젝션 실행할 경우 Domain 호출
- Domain은 DB 테이블과 직접 매핑되는 비즈니스 로직들이 존재하는 것으로 JPA를 사용하면 @Entity가 선언
MVC와 Spring Web Layer
매핑시켜면
Model: Service, DTO, Repository, Domain
View: Front-end
Controller: Controller
참고
https://velog.io/@sunil1369/Spring-boot-%ED%8C%A8%ED%82%A4%EC%A7%80-%EA%B5%AC%EC%A1%B0
'Java' 카테고리의 다른 글
Spring boot 패키지 구조 (0) 2023.10.17 Spring 구조1 (0) 2023.10.17 Spring boot 프로젝트 만들기 (0) 2023.10.17 - DAO ( Data Access Object )