ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spring 구조2
    Java 2023. 10. 17. 09:48

    용어 정리

    • DAO ( Data Access Object )
      • DB에 접근하기 위한 객체
      • DB에 접근하기 위한 로직비즈니스 로직을 분리하기 위해 사용
    • DTO ( Data Transfer Object)
      • 계층 간 데이터 교환을 하기 위한 객체
      • 로직을 갖지 않고 Getter, Setter만 존재

    Spring Web Layer

    1. Web Layer
      • 컨트롤러(@Controller)가 대표적이고 필터(@filter), 인터셉터 등 포함
      • 외부 요청과 응답에 대한 전반적인 영역을 의미
    2. Service Layer
      • 말 그대로 서비스(@Service)
      • 일반적으로 컨트롤러와 저장소(Repository, Dao) 중간에 위치
      • 트랜잭션(@Transaction)과 도메인 간의 연산 순서를 보장해 줌
    3. Repository Layer
      • DB와 같은 데이터 저장소에 접근하는 영역
      • JPA를 사용하면 @Repository라고 생각하면 됨
      • DAO라고도 생각
    4. DTO's
      • DTO(Data Transfer Object)는 계층간의 데이터 교환을 위한 객체
    5. Domain Model
      • 개발 대상
      • 비즈니스 로직 처리
      • JPA를 사용하면 @Entity가 사용되는 영역

     

    동작과정

    1. Client (View)에서 DTO를 통해 요청을 보냄
    2. DTO를 통해 Controller에 도착하면 Controller에서는 Service(비즈니스 로직)을 호출. (이때도 DTO를 통해 전달)
    3. Service로 오면 도착한 Service의 비즈니스 로직 처리
    4. Service는 비즈니스 로직을 실행하는 도중 DB에 접근해야하는 경우 Repository로 이동하여 접근
    5. Repository는 DB에 접근하는 소스코드가 존재하여 DB에 접근하여 쿼리문을 통한 트랜젝션 실행할 경우 Domain 호출
    6. 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

    https://m.blog.naver.com/islove8587/220363245916

    'Java' 카테고리의 다른 글

    Spring boot 패키지 구조  (0) 2023.10.17
    Spring 구조1  (0) 2023.10.17
    Spring boot 프로젝트 만들기  (0) 2023.10.17
Designed by Tistory.