TIL:) DAO, DTO, VO, Entity

😃 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를 집중적으로 공부했다!

BELATED ARTICLES

more