💻 Backend/TIL

TIL 2022-02-02 / 스프링

미미누 2022. 2. 3. 22:00

[한 것]

  • 앱 개발 프로젝트에서 Post, Letter 코드 깔끔하게 수정
  • SQLD 문제(고급 SQL 튜닝) 풀기 완료
  • 스프링 MVC 2편 - 2강 듣기 완료
  • vanilla js를 활용한 게임 프로젝트(코딩 도전기) 스토리 제작 완료

 

[배운 것]

 

Dto 사용시기에 대한 질문 - 인프런 | 질문 & 답변

안녕하세요. 항상 강의 잘 듣고있습니다 !  질문이 두가지 있습니다. 첫째, '어느 레이어에서 DTO로 반환하는가?' 입니다. 현재 강의에서는 controller 에서 repository 를 바로 di 해서 사용하고 있으므

www.inflearn.com

위 글을 참고하자면, DTO는 단순히 계층간 데이터를 전달할 때 사용하지만,

그것이 필수는 아니라고 나와있다.

DTO와 Entity의 변환에서 중요한 점은 의존관계이다.

 

예를 들어, 서비스단에서 DTO로 변환해서 컨트롤러에 넘겨주는 로직을 생각해보자.

 

XXDto found = XXService.findById(id); // 컨트롤러

 

이코드의 컨트롤러 부분에서는  xxxDto, xxxEntity, xxxService를 의존하게 되어

컨트롤러가 모든 곳에서 의존하게 된다.

계층을 분리해서 컨트롤러가 엔티티 계층에 의존하지 않겠다는 목적을 위해서는

컨트롤러가 xxxService, xxxDto에 의존하도록 만들어야 한다고 나와있다.

 

[정리하자면]

1. 실용적으로 엔티티를 전체 구조에서 사용하자

(물론 아키텍처 방향에 따라서 엔티티 노출은 제약할 수 있다)

 

2. DTO를 단순한 객체로 생각하고, DTO의 위치는 의존관계 + 패키지 의존관계를 고민하자.

(특히 순환 참조를 조심하자)

 

[느낀점]

개발할 때, Dto, entity로 왜 변환해야 하는가?에 대한 물음에 해결하지 않고

진행하였는데, 이렇게 Dto랑 entity의 책임과 변환위치에 대해 많이 생각해본 것 같다.

[할 것]

jwt 적용하기

MVC 2편 강의 듣기

 

'💻 Backend > TIL' 카테고리의 다른 글

TIL / 2022-02-08 스프링  (0) 2022.02.09
TIL 2022-02-07 / 스프링  (0) 2022.02.07
TIL / 2022-01-31  (0) 2022.02.02
TIL / 2022-01-29  (0) 2022.01.29
TIL / 2022-01-26 - 스프링  (0) 2022.01.27