NestJS

    [NestJS] 테스트 피라미드를 위한 에러 처리 방법 (feat. 3 layer architecture)

    서론 업무 중 동료 분의 코드를 보고 제가 작성한 코드 리뷰 내용의 일부입니다. 물론 본문과 같이 상세하게 작성하지 못했습니다. 그래도 좋은 테스트 코드에 있어서 휘발성 코드 리뷰로 지나치기 아쉬웠기 때문에 블로그에서 조금 상세하게 이야기하고자 합니다. 이 글에서 언급한 리팩토링을 하더라도 기능적, 성능적으로 나아지는 부분은 거의 없습니다. 다만, 테스트 피라미드에 부합하기 위해 수행되는 리팩토링은 유지보수 비용 측면에서 많은 이득을 챙길 수 있습니다. 또한 일관되지 않은 코드가 프로덕션에 반영되었을 때 성장하는 팀에 합류한 신규입사자가 큰 혼란을 겪을 수 있습니다. 지금부터 NestJS로 작성된 API를 jest, supertest로 테스트 코드를 작성하며 많은 테스트를 써야하는 구조와 적은 테스트를 ..

    [NestJS] TS를 위한 Lombok같은 건 없을까?

    서론 최근 회사에서 NestJS로 개발하는 과정 중 Spring Boot와 비슷한 코드를 자주 보게됩니다. NestJS는 공식문서 (최고) 이외에는 레퍼런스가 많이 없습니다. 물론 Medium을 유료 구독하여 주기적으로 글을 확인합니다. 가끔 좋은 양질의 글이 나오긴 하지만, 소수의 글만 설계적으로 좋은 내용이고 나머지는 너무 기초적인 글들이 많이 올라옵니다. 그리고 대부분 영어로 된 글이 많기 때문에 한국어보다 읽는 속도가 조금 느립니다. 그래서 더 좋은 양질의 글을 보려면 문법이 비슷한 Spring으로 설명하는 글이나 코드를 보는게 좋습니다. "자바 공화국"이라는 말이 있듯이 역시 대한민국은 자바인가? 라는 생각을 하곤합니다. 하지만 단점만 존재하는 것은 아닙니다. 어떤 글을 작성하더라도Java 관..

    [NestJS] JWT 로그인 구현 예제 (bcrypt, passport, JWT, cookie)

    사용자 인증/인가는 모든 웹 애플리케이션에서 가장 중요한 부분입니다. 이전 포스트에서는 Node.js를 이용하여 JWT로그인을 구현했습니다. [node.js] JWT 구현 예제 Intro 웹 / 앱 개발을 하면 로그인 과정에서 반드시 만나게 되는 개념이 쿠키-세션이다. 최근 들어 IT 인프라 구성에는 많은 변화가 생겼다. 웹 기반의 서비스들은 웹과 앱을 함께 서비스하 charming-kyu.tistory.com 이번에는 NPM 라이브러리에서 가장 많이 사용되는 Passport를 이용하여 NestJS 애플리케이션에 로그인을 구현해보겠습니다. 또한 해싱(Hashing)을 통해 사용자를 등록하고 비밀번호를 안전하게 암호화하여 보호하겠습니다. User Entity 인증을 고려할 때 가장 먼저 해야 할 일은 사..