티스토리 뷰
728x90
우리 팀 대부분의 nest.js 프로젝트에서 entity 파일을 type으로 사용하고 있었다.
나도 대수롭지 않게 생각했고 entity 파일을 사용했을 때 db 변경이 있따면 오히려 변경할 부분이 적어서 괜찮지 않을까? 생각했다.
배경
db 부하가 심해져서 유저 재화를 저장하고 있는 부분을 rdb -> redis로 변경 작업이 필요했다.
그래서 유저 재화를 조회 및 업데이트 하는 부분을 전부 수정해야 했다.
문제
jwt-strategy 파일에서 유저를 한번 조회 한 후 모든 controller 단에 유저 정보를 받을 수 있도록 구성되어 있었다. 유저의 타입은 entity로 되어있었다.
jwt에서 user 정보 조회 -> controller에서 조회한 유저 받기 -> 각 서비스단에 사용
async signIn(user: UserEntity) {}
하지만 외주를 맡겼던 프로젝트라 어떤 곳은 repository 패턴으로 되어있고
어떤 곳은 entity 객체를 그대로 저장하는 곳도 있어서 계속 db에 업데이트 되는 곳이 있었다.
그래서 발견하기에 더욱 어려웠다.
해결
사실 이걸 뒤늦게 발견하여 드라마틱하게 해결할 수는 없었다. 이미 qa가 시작되었다.
그저 jwt에서 유저 조회하는 부분을 다시 제거하고
유저 재화를 사용하는 모든 곳에 조회를 다시 하였다.
그치만 이번 기회에 느꼈다. entity를 타입으로 쓸거면 entity 객체를 그대로 저장하지 말고
repository 파일을 만들어 사용하는게 맞다.
사실 후자로 많이 하고 있겠지만 많은 사람들이 유지 보수 하는 프로젝트라면 애초에 가능성 조차 두지 않는게 맞는 것같다...
'프로그래밍 > 개발 잡담' 카테고리의 다른 글
| 🎯 과제(Task) 구조가 꼬이기 시작했다 – 챌린지 시스템의 설계 고민 (0) | 2026.10.01 |
|---|---|
| 원하는 개발을 못한다는 것은 (0) | 2026.09.30 |
| 주니어 개발자가 커뮤니케이션을 하기 위해 노력했던 것들 2 (0) | 2026.09.30 |
| 주니어 개발자가 커뮤니케이션을 하기 위해 노력했던 것들 (0) | 2026.09.30 |
| Promise 장점은 다 알잖아여.. 근데 resolve랑 reject는 어디에서 온 누구지..? (0) | 2026.09.30 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 파이썬
- 단일쿼리문
- 신입개발자퇴사
- 신입사원
- merge into 같은 테이블
- java1.7 다운
- npm이란
- 신입사원개발자
- merge into using dual
- jdk 이전버전 다운
- 백준
- package.json
- ORACLE MERGE INTO 같은테이블
- 인스턴스
- 초보개발자
- 알고리즘
- 개발자
- merge into 단일테이블
- Java
- ORACLE MERGE INTO 동일테이블
- ORACLE MERGE INTO USING DUAL
- merge into
- jdk1.7 다운
- 개발자퇴사
- C++
- npm init
- ORACLE 단일테이블
- merge into using
- 백준알고리즘
- 자바
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
글 보관함