pile·
백엔드·그린데이터그린데이터·

NestJS를 이용한 CLI 명령어 만들기

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 프로젝트에 배치·운영용 명령을 붙여야 하는데 굳이 엔드포인트를 열고 싶지 않은 백엔드 개발자에게 최소 구성을 준다.
그린데이터
그린데이터 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 백엔드·twilio-engTwilio Engineering·

    Programmable Messaging에서 Verify API로 마이그레이션하기

    Twilio의 Programmable Messaging API로 자체 OTP 솔루션을 운영하던 서비스가 Verify API로 전환하는 방법을 코드 예시와 함께 설명한다. Verify는 OTP 전송·검증을 위한 전용 API로, 전화번호 구매, 토큰 생성, DB 저장·만료 관리를 내부에서 처리해 개발자가 직접 구현할 코드를 크게 줄인다.

    요약 이어보기
    #authentication#twilio#sms+2
  2. 백엔드·포스타입포스타입·

    포스타입이 개인화 추천을 하는 방법 2부

    포스타입 백엔드 엔지니어가 벡터 기반 개인화 추천 시스템을 실제 운영하며 맞닥뜨린 성능 장애와 용량 문제를 해결한 과정을 담은 2부다. 수백만 개의 벡터 KNN 검색이 피크 시간대에 전체 Elasticsearch 검색 성능을 흔드는 문제부터 클러스터 OOM 사태까지, 쿼리 최적화와 인프라 분리 두 가지 경로로 근본 해결에 이른다.

    요약 이어보기
    #elasticsearch#vector-search#recommendation-system+2
  3. 백엔드·포스타입포스타입·

    포스타입이 개인화 추천을 하는 방법 1부

    포스타입이 태그 기반 추천의 한계를 극복하고 벡터 임베딩 기반 개인화 추천 시스템을 구축한 과정을 담은 1부다. 유사한 콘텐츠가 다른 용어를 쓰거나 동일한 태그가 전혀 다른 톤의 콘텐츠를 가리키는 문제를 임베딩 벡터로 해결하고, OpenSearch의 HNSW ANN 검색으로 수백만 벡터를 실시간 검색하는 시스템을 구축해 구매율 15% 향상을 달성했다.

    요약 이어보기
    #opensearch#vector-search#recommendation-system+2