티스토리 뷰

DAO(Database Access Object)

- 즉 데이터베이스에 접근하는 객체이다, 단일 데이터의 접근 및 갱신의 개념이다.

 

DTO(Data Transfer Object)

- DataBase에서 Data를 얻어 Service나 Controller 등으로 보낼 때 사용하는 객체.

 

VO(Value Object)

- 각 계층간 데이터 교환을 위한 자바 객체를 의미한다. 레이어 간에 전달하는 목적을 가지고 있으며, 객체의 속성과 getter, setter만을 가지고 있다.

- 계층간 데이터 교환을 위한 자바 빈즈

- VO는 특정한 비즈니스 값을 담는 객체이고 , DTO는 Layer간의 통신 용도로 오고가는 객체를 말함.

 

DTO와 Entity를 분리하는 이유

- View Layer와 DB Layer의 역할을 철저하게 분리하기 위해서이다.

- 테이블과 매핑되는 Entity 클래스가 변경되면 여러 클래스에 영향을 끼치게 되는 반면 View와 통신하는 DTO클래스는 자주 변경되므로 분리해야 한다.

 

 

Controller(web)

  • 기능
    1. 해당 요청 url에 따라 적절한 view와 mapping 처리
    2. @Autowired service 를 통해 Service의 method를 이용
    3. 적절한 RsponseEntity(DTO)를 body에 담아 Client에 반환
  • @Controller vs @RestController
    • Controller
      • API와 view를 동시에 사용하는 경우에 사용
      • 대신 API 서비스로 사용하는 경우는 @ResponseBody를 사용하여 객체를 반환
      • View(화면) return이 주목적
    • RestController
      • view가 필요없는 API만 지원하는 서비스에서 사용.
      • @ResquestMapping 메서드가 기본적으로 @ResponseBody 의미를 가정
      • data(json, xml 등) return이 주목적 : return ResponseEntity
      • 즉, @Controller + @ResponseBody

 

출처) https://kkminseok.github.io/posts/Spring_semina/

'Spring(스프링)' 카테고리의 다른 글

[Spring] @RequestBody, @ResponseBody 란?  (0) 2023.05.16
SHA-256 해시 알고리즘  (0) 2023.05.07