카카오 알림톡 SDK 고르기 — 언어·프레임워크별 공식 패키지

카카오 알림톡 SDK 고르기 — 언어·프레임워크별 공식 패키지

PHP, Laravel, Node.js, Next.js, Python, Django, FastAPI, Java, Spring, Go, Ruby, Rails, .NET, Flutter, WordPress 중 어떤 샌드고 패키지를 설치해야 하는지 한 표로 정리했습니다.

샌드고는 20개의 공식 패키지를 제공합니다. 고르는 기준은 간단합니다.

  1. 프레임워크 전용 패키지가 있으면 그걸 쓴다 (설정과 DI 가 이미 붙어 있다).
  2. 없으면 해당 언어의 코어 패키지를 쓴다.
  3. 프론트엔드·모바일에서는 직접 호출하지 않고 서버를 거친다.

서버 코어 SDK

프레임워크에 묶이지 않은 순수 클라이언트입니다. 어디서든 동작합니다.

언어 패키지 설치 가이드
PHP sendgo/php composer require sendgo/php PHP
Node.js / TypeScript @sendgo/node npm install @sendgo/node Node.js
Python sendgo-python pip install sendgo-python Python
Go github.com/send-go/go go get github.com/send-go/go Go
Java io.sendgo:sendgo-java Maven Central Java
Ruby sendgo gem install sendgo Ruby
C# / .NET Sendgo.SDK dotnet add package Sendgo.SDK .NET

프레임워크 확장

코어 위에 설정 파일, 서비스 등록, 의존성 주입을 얹은 패키지입니다. 코어를 따로 설치할 필요 없습니다.

프레임워크 패키지 얹혀 있는 코어 얻는 것
Laravel sendgo/laravel sendgo/php ServiceProvider 자동 등록, Facade, config 게시, Notification 채널
Symfony sendgo/symfony sendgo/php Bundle, DI Extension, services.yaml 설정
WordPress / WooCommerce sendgo/wordpress sendgo/php 설정 화면, 주문 상태 훅
NestJS @sendgo/nestjs @sendgo/node SendgoModule.forRoot(), SendgoService
Django sendgo-django sendgo-python settings.SENDGO, 앱 로딩 시 초기화
FastAPI sendgo-fastapi sendgo-python SendgoDep 의존성 주입, pydantic 설정
Spring Boot io.sendgo:sendgo-spring io.sendgo:sendgo-java 자동 구성, application.yml 바인딩
Ruby on Rails sendgo-rails sendgo Railtie, sendgo:install 제너레이터
ASP.NET Core Sendgo.AspNetCore Sendgo.SDK services.AddSendgo(...) DI

프론트엔드 · 모바일

이 패키지들은 서버 경유를 전제로 만들어졌습니다. 키를 클라이언트 번들에 넣지 마세요.

대상 패키지 권장 사용법
React / Next.js @sendgo/react Next.js Route Handler(서버)에서 @sendgo/node 호출, 클라이언트는 그 라우트만 호출
Vue / Nuxt @sendgo/vue Nuxt server route 에서 호출
Flutter / Dart sendgo_flutter 자체 백엔드를 경유. 앱에 키를 넣지 않는다

어느 것도 맞지 않는다면

REST API 를 직접 호출하세요. OpenAPI 3.0.3 스펙이 공개돼 있습니다.

curl -O https://sendgo.io/openapi.yaml
openapi-generator generate -i openapi.yaml -g rust -o ./sendgo-rust

선택 요약

PHP 프로젝트인가?
├─ Laravel      → sendgo/laravel
├─ Symfony      → sendgo/symfony
├─ WordPress    → sendgo/wordpress
└─ 그 외        → sendgo/php

JS/TS 프로젝트인가?
├─ NestJS       → @sendgo/nestjs
├─ Next.js      → @sendgo/react (+ 서버에서 @sendgo/node)
├─ Nuxt         → @sendgo/vue   (+ 서버에서 @sendgo/node)
└─ 그 외        → @sendgo/node

Python 프로젝트인가?
├─ Django       → sendgo-django
├─ FastAPI      → sendgo-fastapi
└─ 그 외        → sendgo-python

Java?    → Spring Boot 면 sendgo-spring, 아니면 sendgo-java
Ruby?    → Rails 면 sendgo-rails, 아니면 sendgo
.NET?    → ASP.NET Core 면 Sendgo.AspNetCore, 아니면 Sendgo.SDK
Go?      → github.com/send-go/go
Flutter? → sendgo_flutter (서버 경유)
그 외?   → https://sendgo.io/openapi.yaml 로 클라이언트 생성

설치를 끝냈다면 5분 만에 첫 알림톡 발송하기로 이어집니다.

자주 묻는 질문

코어 패키지와 프레임워크 패키지를 둘 다 설치해야 하나요?
아니요. 프레임워크 패키지가 코어를 의존성으로 끌어옵니다. Laravel 이면 sendgo/laravel 만 설치하면 sendgo/php 가 함께 설치됩니다. 둘 다 명시적으로 설치하면 버전이 엇갈릴 수 있습니다.
프론트엔드에서 직접 알림톡을 발송해도 되나요?
안 됩니다. accessKey 와 secretKey 는 계정 전체의 발송 권한을 가지므로 브라우저나 모바일 앱에 두면 누구나 발송할 수 있게 됩니다. @sendgo/react, @sendgo/vue, sendgo_flutter 는 서버 라우트(Route Handler, Nitro, 자체 백엔드)를 통해 호출하도록 설계돼 있습니다.
제 언어의 SDK 가 없으면 어떻게 하나요?
REST API 를 직접 호출하면 됩니다. OpenAPI 3.0.3 스펙이 https://sendgo.io/openapi.yaml 에 공개돼 있으므로 openapi-generator 로 클라이언트를 생성할 수 있습니다.

관련 문서