강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

권중훈님의 프로필 이미지
권중훈

작성한 질문수

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

express + sequelize 기반 프로젝트에서 nest + typeorm 으로 넘어갈 때의 경험담을 듣고 싶습니다.

작성

·

359

0

안녕하세요 제로초님,

먼저, 좋은 네스트 강의를 만들어주셔서 너무나 감사드립니다. nest.js가 아무래도 신생 프레임워크다보니 레퍼런스를 찾기가 어려웠는데 노드 교과서를 쓰신 제로초님이 직접 회사에서 쓰신 nest + typeorm 인사이트를 공유해주신다니, 그것도 express + sequelize 기반 프로젝트를 nest + typeorm으로 넘어가는 단계의 강의를 내신다니 당장 구매하지 않을 수 없었습니다. 또한 강의가 너무 재미있어 3일만에 2배속으로 완강했습니다.

[Background]

- 저희 회사에서는 express + sequelize를 쓰고 있는데, 이를 nest + typeorm으로 넘어갈 계획을 하고 있습니다. 현재 라우터에 모든 비즈니스 로직이 다 들어가있어 로직을 파악하기 어렵고, 주언어로 typescript를 쓰고 있는데 sequelize는 attribute를 가져올 때 자동완성 기능도 잘 제공해주지 않는 문제점이 있고, 현재 서비스의 문서화가 잘 되어있지 않아 swagger 등 API 명세 툴이 필요한데 express 기반 프로젝트에 swagger를 붙이는 일이 워크로드가 많이 드는 문제점이 있기 때문입니다.

- nest.js는 swagger 자동화에 매우 특화되어 있고, controller - service로 로직을 명확히 구분할 수 있어 위의 문제를 해결할 수 있다고 판단했습니다.

- 저희 회사는 라우트 개수로 총 277개의 API가 있는데, 이것을 어떤 식으로 nest + typeorm 으로 변경할 지 고민이 있습니다. 아무래도 nest와 typeorm을 배우는데 러닝커브가 있을 것이고, 모든 API를 전부 전환하는데 많은 시간이 들어갈 것이기 때문입니다.

[Request]

- 제로초님은 express + sequelize 기반 프로젝트를 어떻게 nest + typeorm으로 변경하셨는지 그 경험담과 조언을 듣고 싶습니다. 버저닝을 하셨는지, 신규 기능에 대해서만 nest + typeorm으로 API를 설계를 하다가 전부 넘어가셨는지, nest 로 넘어갈 때 어떻게 하는 것이 좋으셨는지 팁을 알고 싶습니다.

좋은 강의 개설해주셔서 정말 감사드립니다.

감사합니다.

권중훈 드림

답변 1

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

1. 먼저 api를 다른 서버로 옮길 때는 e2e 테스트를 작성해두시는 것이 좋습니다. 그래야 옮긴 후 똑같이 작동하는지 쉽게 체크할 수 있습니다.

2. 네스트에서도 express 라우트를 그대로 사용할 수 있어서 일단 nest에 express 라우트를 연결해두고, 하나하나씩 옮기시면 됩니다. 이 때 e2e 테스트를 똑같이 통과하는지 비교해서 보시면 됩니다.

권중훈님의 프로필 이미지
권중훈
질문자

답변 감사드립니다!

1. e2e 테스트를 작성하라는 말씀은 각 엔드포인트 별로 어떤 응답이 나올지를 supertest 등을 이용해 세팅해놓으라고 이해했는데 맞을까요?

2. nest에 express 라우트를 그대로 사용할 수 있다는 말씀이 잘 이해가 안 가는데 혹시 부연설명해주실 수 있나요? 제가 이해하기로는 우선 각 엔드포인트만 따서 컨트롤러를 만들어놓고 1에서 만든 e2e 테스트를 돌려서 전부 통과하면 마이그레이션 성공, 그렇지 않으면 실패, 하나하나씩 로직 옮기기 인데, 잘 이해한 것일까요?

현영님 덕분에 typeorm-model-generator 라는 라이브러리를 알게 되서 typeorm으로 넘어가기 매우 용이해져서 정말 깊은 감사의 말씀 드리고 싶습니다.

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

1. 네 맞습니다.

2. app.use(경로, 라우터) 그대로 쓸 수 있습니다. 그래서 일단 이렇게 해놓고 하나씩 옮기면 됩니다.

권중훈님의 프로필 이미지
권중훈

작성한 질문수

질문하기