Nest.js를 배워보자

NestJS와 텔레그램 연동 실습 중심 목차 (N화 구성)

_Blue_Sky_ 2025. 12. 3. 14:45
728x90

요청하신 대로 Level 구분 없이 모든 내용을 **N화(N회차)**로 순차적으로 나열하고, 학습 목표를 명확히 했습니다. 서론은 최소화하고 실습 코드를 중심으로 구성됩니다.


1️⃣ 개발 환경 준비 및 기본 연동

  • 1화: 프로젝트 준비 및 텔레그램 봇 생성
    • NestJS 기본 프로젝트 초기화 및 환경 변수($\text{.env}$) 설정
    • BotFather를 통해 $\text{API}$ 토큰 발급
  • 2화: 텔레그램 라이브러리 통합
    • $\text{NestJS}$ 친화적인 라이브러리($\text{e.g., Telegraf}$) 설치 및 $\text{Module}$ 설정
    • $\text{Bot}$ 인스턴스를 $\text{Service}$로 주입받는 기본 구조 구성
  • 3화: Polling 방식으로 첫 메시지 처리 예제
    • $\text{Polling}$ 설정으로 봇을 로컬에서 구동
    • /start 명령어에 환영 메시지를 응답하는 핸들러 구현

2️⃣ Webhook 전환 및 사용자 입력 처리

  • 4화: Webhook 방식으로 전환 및 로컬 테스트
    • $\text{NestJS}$의 $\text{HTTP}$ 서버를 이용해 **$\text{Webhook}$ 경로 설정**
    • $\text{ngrok}$을 사용하여 로컬에서 $\text{Webhook}$ 테스트 환경 구축
  • 5화: 명령어 핸들링 및 텍스트 패턴 반응
    • /echo, /help 등 정형화된 커맨드 핸들러 구현
    • 특정 키워드(예: "안녕", "정보")에 반응하는 $\text{RegExp}$ 패턴 처리 예제
  • 6화: Inline/Reply Keyboard를 이용한 메뉴 구현
    • 사용자에게 버튼 형태의 메뉴를 제공하는 $\text{Reply Keyboard}$ 구현
    • 메시지 하단에 버튼이 달리는 $\text{Inline Keyboard}$ 구현

3️⃣ 심화 로직 및 NestJS 고급 기능 활용

  • 7화: Callback Query 처리 및 사용자 상호작용
    • $\text{Inline Keyboard}$ 클릭 시 발생하는 **$\text{Callback Query}$**를 받아 처리
    • 사용자의 메시지 수정($\text{editMessageText}$) 또는 경고($\text{answerCallbackQuery}$) 구현
  • 8화: 비즈니스 로직 Service 분리 및 DI 활용
    • 텔레그램 $\text{Update}$ 핸들러($\text{Controller}$)에서 핵심 비즈니스 로직을 $\text{Custom Service}$로 분리
    • $\text{NestJS}$ **의존성 주입($\text{Dependency Injection}$)**을 활용하여 $\text{Service}$ 연동
  • 9화: TypeORM으로 사용자 상태 및 데이터 관리
    • **$\text{TypeORM}$**을 이용해 $\text{PostgreSQL}$ 또는 $\text{MySQL}$ 연결 설정
    • 텔레그램 사용자 $\text{ID}$와 $\text{Chat ID}$를 $\text{Database}$에 저장하고 조회하는 예제
  • 10화: NestJS Guard를 사용한 관리자 권한 부여
    • 특정 사용자 $\text{ID}$만 명령어(`e.g., /status`)를 실행하도록 제한하는 **$\text{Custom Guard}$** 구현 및 적용
728x90