최근 프로젝트에서 Knock.app을 사용해 알림 시스템을 구축한 경험을 공유하고자 한다. 복잡한 알림 관리 요구사항을 해결하기 위해 여러 솔루션을 검토하다가 Knock라는 서비스를 발견했고, 이를 통해 카카오 알림톡과 인앱 알림을 효과적으로 구현할 수 있었다.
처음 알림 시스템을 구축할 때는 직접 구현해야 할까, 아니면 기존 서비스를 활용할까 고민이 많았다. 여러 옵션을 검토한 결과, Knock가 제공하는 특징들이 프로젝트에 딱 맞다고 판단했다.
┌─────────────────┐ ┌────────────────┐ ┌────────────────┐
│ │ │ │ │ │
│ 애플리케이션 │───▶│ Knock.app API │───▶│ 카카오 알림톡 │
│ │ │ │ │ │
└─────────────────┘ └────────────────┘ └────────────────┘
│ │ │
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌────────────────┐ ┌────────────────┐
│ │ │ │ │ │
│ 웹훅 엔드포인트 │◀───│ 스케줄러 │ │ SMS │
│ │ │ │ │ │
└─────────────────┘ └────────────────┘ └────────────────┘
Knock의 특징 중에서 가장 마음에 들었던 것은:
Knock 알림 시스템을 처음 구축할 때는 Knock 대시보드에서 워크플로우를 생성하고 구성해야 했다. 다음은 워크플로우 생성 및 설정에 대한 상세 가이드이다.
// 서버 환경 변수 설정 예시
// 개발 환경
KNOCK_DEV_API_KEY = sk_dev_xxxxxxxxxxxxxxxxxxxx;
// 프로덕션 환경
KNOCK_PROD_API_KEY = sk_prod_xxxxxxxxxxxxxxxxxxxx;
// 클라이언트용 공개 키
KNOCK_PUBLIC_API_KEY = pk_xxxxxxxxxxxxxxxxxxxx;