😃 Today I Leaned
- SpringBoot
⭐알게 된 점⭐
DAO, DTO, VO, Entity
DAO
- DB의 데이터에 접근하기 위한 객체
- Service와 DB를 연결
- JPA에서는 DB에 데이터를 CRUD하는 Repository 객체들을 DAO로 볼 수 있음
DTO
- 계층 간 데이터 교환을 위해 사용하는 객체 -> 순수한 데이터 객체
- getter, setter, Object 클래스 메소드를 작성 가능
- DB의 데이터를 Service나 Controller 등으로 보낼 때 사용 -> Entity를 DTO로 변환 후 전달
VO
- Read-Only 특징을 가짐
- setter가 없음 ( DTO는 데이터를 계층간 교환, VO는 데이터 그 자체에 의미를 둠 )
Entity
- DB의 테이블과 1대 1로 mapping 되는 클래스
- DB 테이블 내에 존재하는 컬럼만을 필드로 가질 수 있음
- DTO와 분리하는 이유는 DB와 View 사이의 역할을 분리하기 위해서
🤓 저장할 데이터를 DTO에 넣어 전송 -> DAO를 이용해 DB에 데이터 넣음
406 Error
- 서버가 요청의 사전 콘텐츠 협상 헤더에 정의 된 허용 가능한 값 목록과 일치하는 응답을 생성할 수 없으며 서버가 기본 표현을 제공하지 않을 때 발생하는 에러
- 여러가지 이유가 있지만 @Getter 어노테이션을 추가해주지 않아서 발생한 에러였다..!
- DTO 작성할 때 @Getter 어노테이션을 꼭 잊지 말고 추가해주자
🐰 END
MyBatis를 사용할 때 VO와 DAO를 주로 사용하였는데
JPA를 사용하면서 Entity, DTO를 사용하면서 차이점이 궁금해 찾아보게되었다
의미나 사용방법은 비슷하지만 다른 점이 존재한다는 점에서
확실하게 알고 가는 것이 좋을 것 같다고 생각해
DAO, DTO, VO, Entity를 집중적으로 공부했다!