티스토리 뷰
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)
- 기능
- 해당 요청 url에 따라 적절한 view와 mapping 처리
- @Autowired service 를 통해 Service의 method를 이용
- 적절한 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
- Controller
'Spring(스프링)' 카테고리의 다른 글
[Spring] @RequestBody, @ResponseBody 란? (0) | 2023.05.16 |
---|---|
SHA-256 해시 알고리즘 (0) | 2023.05.07 |