ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MVC Pattern
    Architecture/Application Architecture 2025. 2. 14. 18:58

     

    Process

    Client <—(DTO)—> Controller (API) <——> Service(Business) <——> DAO(Persistance) <——> DB

     

     

    1. Controller : Client - Server 중간역할
    • API 요청에 따라 응답
    • View로 Request Body에 담긴 데이터를 DTO로 변환하여 Service 로 전달
    • 처리결과를 DTO로 받고 Response Body에 담아 Client에게 반환

     

    @Controller

    • API, View 를 동시에 사용
    • View 반환이 주목적

     

    @RestController

    • View가 필요없는 상황에서 API만 서비스에서 사용
    • @Controller + @ResponseBody
    • 데이터반환이 주목적

     

    2. Service : 데이터 가공자 역할

    • DAO 를 통해서 DB 접근 DTO로 데이터 전달받은후 비지니스 로직 처리
    • @Autowired Repository 를 통해 repository method 사용

     

    3. Repository(DAO) : DB 접근을 위한 객체

    • 데이터를 CRUD 하는 객체
    • Service 와 DB 가교 역할
    • DI (Dependenct Injection) 역할
    • Repository는 DAO를 사용하여 구현할 수 있음 (반대는 불가)

    DAO (Data Access Object): 영구 데이터 저장소 (데이터 접근 가능하도록 관련 로직을 모아둔 객체)

    Repository : Entity 객체의 상태를 관리하는 저장소

     

     

    4.  Entity (Domain) : DB 테이블에 대응하는 하나의 클래스, 각행을 객체로 표현 

    • Builder 패턴 : 가독성을 높이고 필수 값과 선택적 값을 구분할 수 있게함

     

     

    5. DTO (Data Transfer Object): 데이터 교환을 도와주는 객체

    • Getter/Setter 메소드만 가지고 있으며 계층간 데이터 교환시 사용

     

    Entity, DTO 분리하는 이유

    • DTO: Domain Model 복사한형태, Persistent만을 위해 사용
    • Repository를 통해 DB에 접근할때 Entity를 호출하여 DB 테이블과 매핑된 객체를 처리

    'Architecture > Application Architecture' 카테고리의 다른 글

    OOP (Object-Oriented Programming)  (0) 2025.02.14

    댓글

Designed by Tistory.