[DB] Entity & DTO

ShinJuYong·2022년 3월 31일
0

공부한것들

목록 보기
22/33
post-thumbnail

✨TypeORM

TypeORM과 같은 ORM을 쓰게되면 Entity, DTO와 같이 DataBase의 Schema를 정의하는 파일을 나누어 사용하게되는데 일단 뭔지는 알아야지 어떻게 TypeORM이 해당파일을 읽는지, 더 효율적으로 코드를 짤수있을지 알수있을것 같다

Entity란?

Entity에서의 Class는 실제 DB테이블에 존재하는 Column들과 매핑되는 Class이며,
DB의 영속성을 나타내기위해 사용된다 즉, EntityRequest, Response를 나타내는것은 목적에 맞지않는것

Entity는 변경하게되면 서로 의존성이 있는 클래스에 영향을 끼치게 되므로 변경이 안되게 해야하는데 View단에서의 변경을위해서 DTO를 만들게 된다

DTO란?

Data Transfer Obejct(데이터 전송 객체)

Layer사이의 교환이

Clienet <-(DTO)-> Controller <-(DTO)-> Service <-(Entity)-> DB

이뤄질수 있도록 하는 객체로 View <-> Controller사이의 데이터를 주고 받을때 활용성이 높다 (변경이 가능하므로) 하지만 비즈니스 로직은 포함되지않는다 (비즈니스 로직은 Service)

Entity와 DTO가 분리되는 이유

Entitiy는 값이 변하면 DB에 반영이 되기때문에 해당 DB를 쓰는 모든 Service에 반영이 된다, 즉 객체 설계를 위해서는 DTO로 분리를해 관리를 해야한다

즉, DB와 View사이의 역할을 분리하기 위해
Entity와 DTO를 분리하게된다

마무리

국비학원에서 Spring Boot를 통한 프로젝트를할때 DTO,DAO,VO에대한 개념이 모호한상태에서 프로젝트를 진행하다보니 어디에선 VO,어디에선 DTO이렇게 썻는데 확실하게 분리하는법을 알게됐다

참고한곳
Entity&DAO&DTO
분리를위한 Entity와 DTO개념

0개의 댓글