Nest.js 4

jest를 사용한 unit test(2). ( 개인공부 )

주요 구성 요소Imports:필요한 모듈과 클래스들을 임포트한다.nestjs/testingStorageServiceAwsS3ServiceConfigServiceFileRepositoryBadRequestExceptionInternalServerErrorExceptionuuidv4CreateFileDtoApiResponseFileEntityFileResponseDtoMock 설정:uuidv4를 모킹하여 고정된 UUID를 반환하도록 설정합니다. 이는 테스트에서 일관된 UUID를 사용하기 위함.jest.mock('uuid', () => ({ v4: jest.fn().mockReturnValue('b2a6cfb9-1bd9-45eb-9058-f8f8b664171d'),}));테스트 모듈 설정:beforeEach..

jest를 사용한 unit test(1)

상황 설정: 피자 가게 시나리오피자 가게에서 피자를 주문하면 다음과 같은 프로세스를 진행한다:주문을 받고, 피자를 만들기 시작.피자를 굽는 오븐을 사용.피자가 다 구워지면 고객에게 배달.이 과정을 테스트한다고 가정해봅시다. 우리는 실제로 오븐에서 피자를 굽거나 배달을 하지 않고, "정말 제대로 작동하는지" 확인만 하고 싶다.jest.spyOn의 역할jest.spyOn은 특정 메서드(혹은 기능)가 호출되었는지, 어떤 데이터로 호출되었는지를 감시하는 도구다.예제: 오븐이 제대로 사용되는지 감시const oven = { bakePizza: (pizzaType) => `Baking ${pizzaType} pizza!`,};jest.spyOn(oven, 'bakePizza'); // 오븐의 bakePizza 메..

git hub copilot을 활용해서 개발 생상성 10배 올리기 (Nest.js)

개발하면서 ChatGPT를 활용해 필요한 예제 소스코드를 받아 사용하곤 했는데 무료 버전을 사용하다 보니 예제만으로는 생산성을 높이는 데 한계가 있었다. 그러던 중 며칠 전 친구와 대화 중에 Cursor AI 이야기가 나왔고, 이를 검색해보다가 Copilot이 더 좋겠다고 생각이 들었다. 게다가 한 달간 무료로 사용할 수 있다는 점도 마음에 들어 Copilot을 이용해 개발 환경을 셋업하게 됐다. 직접 Copilot을 사용해 보니, 과장을 조금 보태서 반복적인 작업이나 프로젝트 구조를 설정하는 데 이전에는 약 1시간 정도 걸렸다면, Copilot을 활용한 후에는 5분 만에 설정이 가능했다. 개발 과정에서도 프로젝트 파일을 분석하며 Copilot이 더 나은 방향성을 제안해주는 경우가 많았다. (물론 다소 ..

Docker Compose로 Nest.js와 MySQL을 사용한 애플리케이션 구축하기

docker compose를 활용해서 앱을 container로 배포할 수 있게 해볼 것이다.필요한 것은 TypeORM을 사용하는 Nest.js App만 있으면 된다.일단 Nest.js 프로젝트를 하나 생성해준다.nest new hello-world 그리고 테스트를 위해서 Dockerfile을 만들어서 도커로 실행 시켜볼 것이다.# Dockerfile.devFROM node:18-alpine# 앱 디렉토리 생성WORKDIR /app# 패키지 설치COPY package*.json ./RUN npm install# 앱 소스 복사COPY . .# 개발 모드 실행RUN npm run build# 개발 환경에서 핫 리로딩을 위해 `start:dev` 명령어 사용CMD ["npm", "run", "start:dev"..