NestJS 애플리케이션에 API 대신 CLI 명령을 붙이는 방법을 `nestjs-command` 로 정리한 짧은 실습 글이다. 왜 어떤 작업은 API 로 만들면 안 되는지부터 짚고, 프로젝트 생성부터 명령 정의까지 순서대로 따라간다.
핵심 포인트- API 로 만들어 배포하면 누구나 호출할 수 있게 된다. 보안을 철저히 하면 되지만, 터미널에서 실행하면 되는 작업이라면 CLI 가 더 간단하다.
- 스케줄링으로 주기 실행하는 작업도 API 보다 CLI 쪽이 안전하고 편리하다.
- 구성은 `nestjs-command` 패키지를 설치하고 `AppModule` 에 `CommandModule` 을 추가하는 것에서 시작한다.
- 엔트리포인트를 바꾼다. `main.ts` 를 `cli.ts` 로 이름을 바꾸고 내용을 CLI 부트스트랩 형태로 고친다.
- 예제 명령은 이름과 별명을 입력받아 인사말을 출력하는 것으로, service 와 command 파일을 나눠 작성한다.
상세 정리- 준비 순서: NestJS CLI 를 글로벌 설치하고 `nest new` 로 프로젝트를 만든다.
- 정리 작업: 쓰지 않는 `app.controller.spec.ts`, `app.controller.ts`, `app.service.ts` 를 제거해 CLI 전용 구조로 만든다.
- 파일 구성: 실제 동작은 `src/greeting/greeting.service.ts` 에, 명령 정의는 `src/greeting/greeting.command.ts` 에 둔다.
- 이 분리 덕에 명령 인터페이스와 비즈니스 로직이 나뉘어, 같은 service 를 다른 진입점에서도 재사용할 수 있는 형태가 된다.
왜 읽나NestJS 프로젝트에 배치·운영용 명령을 붙여야 하는데 굳이 엔드포인트를 열고 싶지 않은 백엔드 개발자에게 최소 구성을 준다.