티스토리 뷰
728x90
이전에 entity 파일을 타입으로 써도 될까? 이런 글을 작성한 적이 있다. 너무 오래되어서 기억이 나지 않았지만 최근 면접에서 이 글에 대해 질문을 했을 때 기억이 나지 않아 다시 복기 하고자 공부하였다.
일단 저 글을 다시 요약해보자면 외주업체가 하던 프로젝트를 이어서 받았는데 거기에 entity 파일을 타입으로 쓰는 경우가 많았고 그 레거시 코드를 고치지 않았음. 코드 전체에 UserEntity 객체를 퍼져있다 보니, 어떤 코드가 DB에 직접 접근하고 어떤 코드가 단순히 데이터 타입만으로 사용하는지 추적이 매우 어려웠다.
원래는 DB 스키마가 변경되더라도 DTO 등 여러 파일을 수정할 필요 없이 Entity 하나만 바꾸면 되니 오히려 효율적이지 않을까? 라고 생각했는데 이제는 아니다.
이후..
당시 nest.js를 시작한지 오래되지 않아 이상하게 생각했는데 Entity를 단순 타입처럼 사용하는게 좋지 않다는 것을 깨달았다.
다시 DTO에 대해서 찾아서 정리하자면,
DTO(Data Transfer Object)는 계층 간 데이터 전송을 위한 순수한 데이터 객체이다.
그리고 중요한 것은 DTO를 사용하지 않으면 나처럼 고생을 하거나 아래와 같은 문제가 생긴다.
- Entity를 클라이언트에게 그대로 노출하면 비밀번호 같은 민감 정보가 유출될 수 있다.
- API의 요청/응답 형식이 바뀔 때마다 내부 핵심 로직(Service)까지 수정해야 한다. (계층 간 결합도가 높아짐)
'프로그래밍 > 백엔드' 카테고리의 다른 글
| typeorm repository api where like query undefined로 들어올 때 조회되는 이슈 (0) | 2026.10.02 |
|---|---|
| 중복 호출 막기 nest.js! (0) | 2026.10.02 |
| [Nest.js] api 응답 객체 포맷 만들기 response format (0) | 2022.12.01 |
| [Nest.js] forRoot, forFeature 정의와 사용 예시 (0) | 2022.11.25 |
| [Nest.js] main.ts에서 swagger 파일 분리하기 (0) | 2022.11.24 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- ORACLE MERGE INTO 같은테이블
- jdk1.7 다운
- merge into 같은 테이블
- Java
- 개발자
- C++
- npm init
- 신입개발자퇴사
- merge into
- ORACLE MERGE INTO 동일테이블
- 인스턴스
- 신입사원개발자
- merge into 단일테이블
- npm이란
- 알고리즘
- 초보개발자
- jdk 이전버전 다운
- 단일쿼리문
- merge into using dual
- ORACLE 단일테이블
- ORACLE MERGE INTO USING DUAL
- 파이썬
- java1.7 다운
- merge into using
- 개발자퇴사
- 신입사원
- package.json
- 백준알고리즘
- 백준
- 자바
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함