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

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

## 서버 코어 SDK

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

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

## 프레임워크 확장

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

| 프레임워크 | 패키지 | 얹혀 있는 코어 | 얻는 것 |
| --- | --- | --- | --- |
| 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 스펙이 공개돼 있습니다.

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

## 선택 요약

```text
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분 만에 첫 알림톡 발송하기](/ko/cookbook/quickstart)로 이어집니다.