최근 프로젝트에서 Knock.app을 사용해 알림 시스템을 구축한 경험을 공유하고자 한다. 복잡한 알림 관리 요구사항을 해결하기 위해 여러 솔루션을 검토하다가 Knock라는 서비스를 발견했고, 이를 통해 카카오 알림톡과 인앱 알림을 효과적으로 구현할 수 있었다.

프로젝트의 시작: 알림 시스템 선택 과정

처음 알림 시스템을 구축할 때는 직접 구현해야 할까, 아니면 기존 서비스를 활용할까 고민이 많았다. 여러 옵션을 검토한 결과, Knock가 제공하는 특징들이 프로젝트에 딱 맞다고 판단했다.

왜 Knock를 선택했나?

┌─────────────────┐    ┌────────────────┐    ┌────────────────┐
│                 │    │                │    │                │
│  애플리케이션      │───▶│  Knock.app API │───▶│  카카오 알림톡     │
│                 │    │                │    │                │
└─────────────────┘    └────────────────┘    └────────────────┘
        │                      │                     │
        │                      │                     │
        ▼                      ▼                     ▼
┌─────────────────┐    ┌────────────────┐    ┌────────────────┐
│                 │    │                │    │                │
│  웹훅 엔드포인트    │◀───│   스케줄러       │    │      SMS       │
│                 │    │                │    │                │
└─────────────────┘    └────────────────┘    └────────────────┘

Knock의 특징 중에서 가장 마음에 들었던 것은:

2. Knock 워크플로우 생성 단계

Knock 알림 시스템을 처음 구축할 때는 Knock 대시보드에서 워크플로우를 생성하고 구성해야 했다. 다음은 워크플로우 생성 및 설정에 대한 상세 가이드이다.

2.1 Knock 계정 및 프로젝트 설정

  1. Knock 계정 생성
  2. 프로젝트 생성
  3. API 키 확인
// 서버 환경 변수 설정 예시
// 개발 환경
KNOCK_DEV_API_KEY = sk_dev_xxxxxxxxxxxxxxxxxxxx;
// 프로덕션 환경
KNOCK_PROD_API_KEY = sk_prod_xxxxxxxxxxxxxxxxxxxx;
// 클라이언트용 공개 키
KNOCK_PUBLIC_API_KEY = pk_xxxxxxxxxxxxxxxxxxxx;

2.2 채널 설정