728x90
반응형

DI 2

테스트 짜기가 너무 힘들다면? 범인은 '코드 설계'입니다 (feat. 의존성 주입)

지난 글에서 우리는 외부 요인을 통제하기 위해 Mocking(모킹)이 필수적이라는 것을 배웠습니다."오, 이제 API 든 DB 든 다 Mock으로 만들어서 테스트하면 되겠네!"라고 생각하며 의욕적으로 코드를 열었을 겁니다.그런데 막상 테스트 코드를 짜려니 막막해집니다."함수 안에서 new Date()를 쓰고 있는데 이건 어떻게 Mocking 하지?""함수 깊숙한 곳에서 axios를 직접 import 해서 쓰고 있는데, 밖에서 가로챌 수가 없네?"테스트 작성이 어렵게 느껴진다면, 그것은 테스트 실력 부족이 아니라 여러분의 코드가 테스트를 거부하고 있기 때문일 확률이 높습니다.오늘은 테스트를 방해하는 나쁜 패턴을 알아보고, 의존성 주입(Dependency Injection)을 통해 '테스트하기 쉬운 구조'로..

NestJS 모듈(Module) 완벽 정리: 의존성 주입부터 캡슐화까지 핵심 개념 파헤치기

NestJS로 백엔드 개발을 시작하셨나요?튜토리얼을 따라 하다가 문득 이런 의문이 들 수 있습니다."서비스(Service)랑 컨트롤러(Controller)만 만들면 되지, 왜 굳이 모듈(Module)이라는 파일에 등록해야 할까?"혹은 개발 도중 Nest can't resolve dependencies of the...라는 무시무시한 에러를 마주하고 당황하셨을 수도 있습니다.이 모든 문제의 열쇠는 바로 모듈(Module)에 있습니다.이번 글에서는 NestJS의 근간이 되는 모듈의 역할과 구조, 그리고 실무에서 자주 사용하는 패턴에 대해 아주 쉽게 정리해 드리겠습니다.1. 모듈(Module)이란 무엇인가요?NestJS 공식 문서에서는 모듈을 "@Module() 데코레이터가 달린 클래스"라고 정의합니다.하지만..

Backend/NestJs 2025.12.14