inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

362

권중훈

작성한 질문수 2

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 로 넘어갈 때 어떻게 하는 것이 좋으셨는지 팁을 알고 싶습니다.

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

감사합니다.

권중훈 드림

express nodejs TypeORM NestJS

답변 1

1

제로초(조현영)

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

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

0

권중훈

답변 감사드립니다!

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

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

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

0

제로초(조현영)

1. 네 맞습니다.

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

강의자료는 어디서 다운받나요?

0

141

4

질문 있습니다.

0

315

3

코드 편집기 확장 프로그램

0

220

2

(질문)비밀 저장소에 접근하기 위한 인증 정보는 로컬 .env에 저장하는지?

0

161

2

(질문)외부 저장소를 통한 환경변수 불러오기 비동기 질문

0

177

3

로그인을 해도 LoggedInGuard쪽에서 false값이 나옵니다.

0

161

2

로그인방법이 고민됩니다.

0

197

2

yarn seed 명령어 실행 시 데이터 삽입 안됨

0

304

4

yarn run db:create 시에 발생하는 데코레이터 오류

0

247

2

npm run db:create 시에 발생하는 decorating 오류

0

245

2

RxJS 디버깅 질문 있습니다.

0

198

3

CacheManager에 대해 질문 있습니다.

0

184

2

로깅은 어떻게 하는게 효율적일까요?

0

236

1

CORS 질문 있습니다.

0

425

2

쿠키 옵션에 대해서 질문 있습니다.

0

188

2

로그아웃 요청이 403 forbidden 에러가 나는데 왜그런걸까요??

0

456

1

401 unauthorized문제

0

302

1

가드의 장점에 대해서 질문이 있습니다.

0

231

1

로그 관리에 대해 질문 있습니다.

0

254

2

CORS 에러 질문 있습니다.

0

327

2

배포 환경 DB 연결 질문 있습니다.

0

417

2

socket io 미 연결 문제 (nest & flutter)

1

1164

3

no elements in sequence 에러 관해서 질문이 있습니다.

0

461

1

start:dev-backup으로 돌리면 핫 리로딩이 되요 정상인가요?

0

323

1