전체 글

전체 글

    @nestjs/config 사용하는 이유

    보통 프로그래밍을 할 때 노출되면 위험한 민감한 정보들은. env 파일에 담아두고 사용하게 된다. 이렇게 환경변수로 담아두고 사용하게 되면 테스트 환경이나 개발 환경, 배포 환경으로 나눠서 사용할 수 있다. nestjs에서도 상황에 맞게 가져와 사용할 수 있게끔 라이브러리 @nestjs/config를 제공한다. @nestjs/config 설치 npm install @nestjs/config ConfigModule Root module에 등록하기 configMoudle을 사용하기 위해선 Root module에 등록하고, 이때 isGlobal 옵션을 true로 설정하면 하위에 있는 모든 모듈에서 쉽게 주입받아 사용이 가능하다. 만약 옵션은 false로 지정하면 매번 다른 모듈에서 imports에 등록해줘야 ..

    테스트하기 쉬운 코드, 구조 (2) : mocking 없이 테스트 코드 작성하기

    이전 글에서 작성했던 테스트 코드는 mocking을 사용해서 구현했다. mocking을 사용하면 내가 테스트하고자 하는 계층에 물려있는 의존성들을 대신할 객체들을 손쉽게 만들어 낼 수 있다. 하지만 mocking을 남용하는 것은 코드 단계에서의 설계가 좋은 설계인지 나쁜 설계인지를 판별하기 어렵게 하는 단점이 있다. 먼저 이전 글에서 작성했던 구현 클래스를 보고 mocking 없이 테스트를 구현해 보면 // 이전 글에서 작성했던 구현 클래스 // blog.service.ts import { Test1Repository } from './test2.repository'; import { Test2Repository } from './test2.repository2'; import { Test3Reposit..

    테스트하기 쉬운 코드, 구조 (1) : mocking 사용한 테스트코드 작성

    보통 의존성이 얽혀있는 코드는 테스트하기가 어렵다. 하지만 mocking을 사용하면 매우 쉽게 테스트 코드를 작성할 수 있다. (mocking은 "모의 객체로 외부의 다른 서비스나 모듈들을 실제 사용하는 모듈을 사용하지 않고 실제의 모듈을 "흉내"내는 "가짜" 모듈을 사용하는 객체" 이다.) 먼저 mocking을 사용하지 않고 테스트 코드를 작성해 보면 // blog.service.ts import { Test1Repository } from './test2.repository'; import { Test2Repository } from './test2.repository2'; import { Test3Repository } from './test2.repository3'; import { Test4Re..