서비스 연결하기커넥터
데이터와 콘텐츠
Supabase, Neon, Firebase, Airtable, Notion, Google Sheets, WordPress, Contentful, Storyblok, Webflow, AWS S3, Cloudinary, Algolia처럼 앱에 연결할 수 있는 데이터베이스, 스프레드시트, 콘텐츠 시스템, 파일 저장소, 검색 서비스예요.
모든 앱에는 처음부터 자체 데이터베이스, 로그인, 이메일이 있어요. 그것이 바로 Cloud예요. 데이터가 이미 다른 곳에 있거나, 내 계정에 데이터를 두고 싶거나, 업로드된 파일을 보관하는 것처럼 Cloud가 하지 않는 일이 앱에 필요할 때는 이 서비스 중 하나를 연결하세요.
이 페이지는 서비스마다 항목이 하나씩 있어요. 연결이 전반적으로 어떻게 이뤄지는지(버튼이나 키, Test connection, 서비스를 쓸 앱 고르기, 권한)는 커넥터를 참고하세요.
| 서비스 | 용도 | 연결 방법 |
|---|---|---|
| Supabase | 내장 백엔드 대신 내 Supabase 프로젝트 사용 | 프로젝트 주소와 키 |
| Neon | 내 행 규칙이 적용되는 내 Postgres | Data API 주소 |
| Firebase | 내 Firebase 프로젝트의 Firestore와 로그인 | Firebase 콘솔의 값 3개 |
| Airtable | 테이블을 데이터베이스로 사용 | 버튼 또는 토큰 |
| Notion | 페이지와 데이터베이스 | 버튼 또는 토큰 |
| Google Sheets | 스프레드시트를 데이터베이스로 사용 | 버튼 또는 API 키 |
| WordPress | WordPress 사이트의 글과 페이지 | 사이트 주소와 애플리케이션 비밀번호 |
| Contentful | 헤드리스 CMS의 엔트리 | Space ID와 딜리버리 토큰 |
| Storyblok | 헤드리스 CMS의 스토리 | 공개 액세스 토큰 |
| Webflow | Webflow CMS의 컬렉션 | 사이트 토큰 |
| AWS S3 | 사람들이 업로드하는 파일 | 리전, 버킷, 액세스 키 |
| Cloudinary | 전송할 때 크기가 조정되는 이미지와 파일 | 클라우드 이름, 업로드 프리셋, 키 |
| Algolia | 입력하는 동안 바로 나오는 검색 | 애플리케이션 ID와 키 2개 |
모든 서비스에 공통으로 해당하는 점이 몇 가지 있어요.
- 시크릿 키는 Setherion의 서버에만 남고, 게시된 앱은 Setherion을 거쳐 서비스를 호출해요. 처음부터 공개되도록 만들어진 값만 브라우저에 전달돼요. Supabase의 anon 키, Firebase 설정, Cloudinary의 클라우드 이름과 업로드 프리셋, Algolia의 검색 전용 키, Google Sheets API 키예요.
- 사용자에게 직접 비용을 청구하는 서비스는 해당 페이지에 Billed by와 서비스 이름을 표시하고, 연결하기 전에 이에 동의하도록 요청해요. Neon, Firebase, Supabase, Airtable, Cloudinary, Algolia, AWS S3가 이 그룹에 속해요. Notion, Google Sheets, WordPress, Contentful, Storyblok, Webflow에는 No usage charges가 표시돼요.
- 게시된 앱이 Setherion을 거쳐 보내는 호출은 한 번마다 연동 크레딧이 1개 들어요. 크레딧을 참고하세요.
- Test connection은 Firebase를 뺀 여기의 모든 서비스에 있어요.
- 팀 워크스페이스에서는 소유자가 일부 연결을 팀원의 앱에 빌려줄 수 있어요(워크스페이스 참고). Supabase, Neon, Firebase는 절대 빌려줄 수 없고, 값이 게시된 앱에 포함되는 서비스도 빌려줄 수 없어요. 여기서는 Cloudinary, Algolia, Google Sheets가 그래요.
데이터베이스와 테이블
Supabase
용도: 내 Supabase 프로젝트의 데이터베이스, 로그인, 파일 저장소예요. 모든 앱에 이미 백엔드가 있으므로 선택 사항이에요. 앱의 데이터를 내 소유의 프로젝트에 두고 싶을 때 고르세요. 앱에서 Supabase를 켜 두는 동안에는 그 앱이 내장 백엔드 대신 Supabase를 데이터, 로그인, 파일에 사용해요.
연결: Supabase의 Project Settings, 이어서 API에 있는 Project URL(https://abcdefgh.supabase.co 같은 형태)과 Anon Key를 붙여넣으세요. anon 키는 eyJ 또는 sb_publishable_ 중 하나로 시작해요. 중간에 잘린 키는 거부되니 Supabase의 복사 버튼을 사용하세요. Service Role Key는 선택 사항이고, eyJ 또는 sb_secret_ 중 하나로 시작해요.
테이블 만들기: Connect Supabase account를 누르고, Supabase에 로그인해서 승인하세요. 그러면 테이블이 필요한 앱에서는 Manage, 이어서 Cloud에 내 프로젝트에 테이블을 만들어 주는 버튼이 생기고, 누를 때마다 만들어져요. 이 권한은 Setherion의 서버에 남아요. 권한을 주지 않으면 같은 SQL이 준비되어 있어서 Supabase에 직접 복사해 넣을 수 있어요. 계정을 연결하고 나면 Your projects 목록도 있어서, 키를 붙여넣는 대신 Use this project를 누르면 돼요.
요청 예시: “내 Supabase에 예약을 저장하고, 고객이 이메일로 로그인할 수 있게 해 주세요.” “이름, 가격, 사진이 있는 상품 테이블을 추가해 주세요.”
알아 두면 좋은 점: 내 Supabase를 쓰는 앱은 아직 키와 시크릿을 쓸 수 없어요. 이미 데이터가 있는 앱을 옮기려면 고급 설정을 참고하세요.
Neon
용도: Neon에 있는 내 Postgres를 앱의 데이터베이스로 사용해요. Setherion은 Neon의 Data API를 통해 접근하고, 누가 어떤 행을 볼 수 있는지는 행 수준 보안으로 Postgres가 직접 결정해요. 각자 자기 행만 보는 앱, 누구나 읽을 수 있는 카탈로그, 팀용 보기에 잘 맞아요.
연결: Neon에서 Data API address를 붙여넣으세요. 내 프로젝트, 이어서 Data API에 있는 /rest/v1으로 끝나는 REST 엔드포인트예요. neon.tech에 있는 주소여야 해요. 그런 다음 Test connection을 누르세요. Neon이 Setherion을 신뢰하도록 설정하기 전에는 거부되고, 결과에는 Neon에 붙여넣을 JWKS 주소가 표시돼요.
JWKS 단계: Neon에서 Data API, 이어서 Authentication을 열고, 커스텀 공급자를 선택한 다음 그 JWKS 주소를 붙여넣으세요. 오디언스는 비워 두세요. 이렇게 해서 Neon이 호출마다 Setherion이 함께 보내는, 로그인한 사람을 신뢰하게 돼요. 몇 분이 지나도 Test가 계속 실패하면, Neon에서 그 공급자를 삭제하고 다시 추가하세요.
요청 예시: “로그인한 사람마다 할 일 목록을 내 Neon 데이터베이스에 저장해 주세요.” “Neon의 products 테이블을 카테고리별로 필터링한 쇼핑몰 페이지로 보여 주세요.”
권한: Permissions 아래에 스위치가 3개 있어요. 행 읽기, 행 추가와 변경과 삭제, 데이터베이스 함수 실행이에요.
알아 두면 좋은 점: 테이블은 AI가 작성한 SQL(neon/setup.sql이라는 파일)을 Neon의 SQL Editor에서 한 번 실행해야 비로소 생겨요. 로그인하지 않은 방문자는 Neon의 anonymous 역할에 내가 허용한 것에만 접근할 수 있어요.
Firebase
용도: 내 Firebase 프로젝트의 데이터용 Firestore와 로그인용 Firebase Authentication이에요. Firebase의 다른 기능은 만들어져 있지 않아요.
연결: Firebase 콘솔에서 내 프로젝트의 웹 앱 설정에 있는 값 3개를 입력하세요. API Key(AIza로 시작해요), Project ID, App ID(1:123:web:abc 같은 형태)예요. 세 값 모두 처음부터 공개되도록 만들어진 값이라서 게시된 앱에 들어가요. Firebase에는 Test connection이 없고, Connect를 누르면 값이 저장돼요.
요청 예시: “사람들이 회원가입하고 Firestore에 비공개 메모 목록을 저장할 수 있게 해 주세요.” “내 Firebase 프로젝트의 메시지를 실시간 목록으로 보여 주세요.”
알아 두면 좋은 점: Firebase에서 데이터를 지키는 것은 키가 아니라 보안 규칙이에요. 게시된 앱에서 설정은 누구나 읽을 수 있으므로, 테스트 모드로 둔 프로젝트는 인터넷 전체에 열려 있는 셈이에요. 앱이 개인 정보를 저장하기 전에 Firebase 콘솔에서 Firestore 규칙을 설정하세요. AI는 각 문서가 Firebase Authentication의 사용자 ID에 속하도록 작성하고, 앱이 개인 정보를 저장할 때는 화면에서 이를 알려 줘요.
Airtable
용도: 행으로 이루어진 테이블을 앱의 데이터베이스로 써요. CRM, 재고 목록, Airtable에 보관하는 콘텐츠 같은 것이에요.
연결: Connect with Airtable을 누르고, 로그인한 다음 앱이 쓸 수 있는 베이스를 체크하세요. 그런 다음 Choose base를 눌러 하나를 고르세요. 키를 대신 써도 돼요. Airtable 계정의 Personal Access Token(pat으로 시작해요)과 Base ID(app으로 시작하고, 베이스의 주소에 표시돼요)예요.
요청 예시: “Airtable의 Products 테이블에서 재고를 사진과 가격과 함께 보여 주세요.” “문의 양식으로 들어온 문의를 내 Enquiries 테이블에 새 행으로 추가해 주세요.”
제한: 앱은 내가 고른 베이스 하나에만 접근하고, 토큰이 더 많은 일을 할 수 있더라도 계정의 다른 것에는 접근하지 않아요. 이름에 공백이 있는 테이블도 알아서 처리해요. Airtable은 긴 테이블을 한 페이지씩 돌려주는데, 앱은 모든 페이지를 가져오거나 목록이 일부라고 알려 주도록 안내받아요. Test connection은 베이스의 테이블을 읽기 때문에, 그 베이스를 체크하지 않았다면 실패해요.
페이지와 시트
Notion
용도: 가벼운 콘텐츠 시스템이나 할 일 목록으로 쓰는 Notion 데이터베이스, 그리고 앱이 보여 주거나 채우는 Notion 페이지예요.
연결: Connect with Notion을 누르고, 로그인한 다음 앱이 쓸 수 있는 페이지를 체크하세요. 그러면 앱은 그 페이지를 읽고 쓸 수 있고, 그 밖의 것은 할 수 없어요. 토큰을 대신 써도 돼요. notion.so/my-integrations에서 내부 연동을 만들고 그 Internal Integration Token(ntn_ 또는 secret_ 중 하나로 시작해요)을 붙여넣으세요. 선택 사항으로 Default Database ID도 입력할 수 있어요. 토큰을 쓸 때는 Notion에서 각 페이지나 데이터베이스를 그 연동과 공유하세요. 그러지 않으면 Notion이 모든 요청에 404로 답해요.
요청 예시: “내 Notion 데이터베이스의 팀 페이지를 각 사람의 사진과 역할과 함께 보여 주세요.” “모든 양식 메시지를 내 Notion 할 일에 새 행으로 추가해 주세요.”
제한: 한 번의 쿼리는 행을 최대 100개까지 돌려줘요. 그래서 긴 데이터베이스에서는 Notion이 더 없다고 할 때까지 계속 요청하도록 앱에 안내해요.
알아 두면 좋은 점: 앱을 만드는 AI는 MCP 서버를 통해서도 내 Notion을 읽을 수 있어요. 이것은 별개의 기능이에요. 내 MCP 서버를 참고하세요.
Google Sheets
용도: 내가 직접 편집하는 스프레드시트를 앱의 데이터로 써요. 가격, 메뉴, 목록, 팀원, 그리고 행으로 모이는 회원가입 정보 같은 것이에요.
연결, 버튼으로: Connect with Google을 누르고 로그인한 다음, Choose spreadsheet를 눌러 파일 하나를 고르세요. 시트는 비공개로 유지되고, 앱은 Setherion을 거쳐 그 시트를 읽고 쓰며, Drive의 나머지는 닿지 않는 곳에 있어요.
연결, 키로: Google Cloud에서 Google Sheets API를 사용 설정하고 그 API와 내 사이트로만 제한한 Google API 키와 시트 ID를 붙여넣으세요. 이 방법은 “anyone with the link can view”로 공유된 시트에서만 작동하고, 읽기만 가능해요.
요청 예시: “내 시트의 가격표를 보여 주고, 시트를 수정하면 함께 업데이트해 주세요.” “예약 요청이 들어올 때마다 내 시트 맨 아래에 새 행으로 추가해 주세요.”
제한: 버튼으로 연결하면 스프레드시트 하나와 그 안의 탭만 쓸 수 있어요. 범위에는 탭 이름이 들어가므로, 탭 이름을 바꾸면 채팅에서 그렇게 알려 주세요.
Notion, Airtable, Google Sheets는 게시된 앱을 여는 모든 사람을 대신해 Setherion을 거쳐 접근돼요. 앱이 보여 주거나 채우도록 만든 것만 연결하세요.
CMS의 콘텐츠
이 네 가지는 다른 곳에서 작성한 콘텐츠를 읽어서 앱에 보여 줘요. 네 가지 모두 읽기만 하고, 게시된 것만 읽어요. 초안은 공개 페이지에 절대 올라가지 않아요.
WordPress
용도: WordPress 사이트에 게시된 글, 페이지, 미디어를 앱 안에서 보여 줘요. 블로그, 뉴스 페이지, 포트폴리오 같은 것이에요.
연결: Site address(https://로 시작해야 해요), Username, Application password를 입력하세요. 마지막 것은 WordPress의 Users, 이어서 Profile, 이어서 Application Passwords, 이어서 Add New에서 만들 수 있어요. WordPress.com의 무료 요금제에서는 제공되지 않아요. Test connection은 그 사이트에 로그인해 봐요.
요청 예시: “내 WordPress 최신 글 10개를 이미지와 함께 나열하는 블로그 페이지를 추가해 주세요.” “각 글을 슬러그로 찾아서 글마다 별도의 페이지로 보여 주세요.”
권한: 글, 페이지, 이미지와 파일, 카테고리, 태그, 댓글마다 Read 스위치가 하나씩 있어요.
알아 두면 좋은 점: 사이트에는 아무것도 기록되지 않아요. 글과 페이지는 게시된 상태로, 댓글은 승인된 상태로 보여 줘요. 글의 본문은 내 사이트에서 HTML로 오기 때문에, 앱이 자체 글꼴 스타일로 그려요.
Contentful
용도: Contentful에서 작성한 엔트리예요. 기사, 상품, 페이지, 팀원 등 내 콘텐츠 유형이 무엇이든 가능해요.
연결: Space ID(Settings, 이어서 General settings)와 Content Delivery API token(Settings, 이어서 API keys)이 필요해요. 관리용 토큰이 아니라 딜리버리 토큰을 쓰세요. Environment는 선택 사항이고, 비워 두면 master예요. Test connection은 콘텐츠 유형을 읽어요.
요청 예시: “Contentful의 블로그 글을 표지 이미지와 함께 최신순으로 보여 주세요.” “상품 엔트리마다 슬러그로 찾을 수 있는 페이지를 만들어 주세요.”
권한: 엔트리, 이미지와 파일, 콘텐츠 유형마다 Read 스위치가 하나씩 있어요.
알아 두면 좋은 점: 필드 이름은 내 콘텐츠 모델에서 오기 때문에, AI는 추측하지 않고 먼저 콘텐츠 유형을 읽어요. 리치 텍스트 필드는 문서 트리 형태로 오고, 앱이 직접 그려요.
Storyblok
용도: Storyblok에서 작성한 스토리, 페이지, 블록이에요. 블로그, 랜딩 페이지, 상품이나 팀원 목록 같은 것이에요.
연결: Access token이 필요해요. Storyblok의 Settings, 이어서 Access tokens에 있는 Public 토큰이에요. Region은 선택 사항이고, eu(기본값) 또는 us예요. 스페이스 설정에 표시된 대로 고르세요.
요청 예시: “blog 폴더 아래의 최신 스토리를 나열해 주세요.” “슬러그가 about인 스토리로 About 페이지를 만들어 주세요.”
권한: 스토리, 링크, 데이터소스 항목, 태그마다 Read 스위치가 하나씩 있어요.
알아 두면 좋은 점: 게시된 콘텐츠만 읽어요. Setherion이 이를 강제하기 때문에, 실수로 미리보기 토큰을 붙여넣어도 초안이 공개 페이지에 올라갈 수 없어요. 스토리는 블록의 트리이고, 앱은 내 스페이스가 쓰는 블록을 그려요.
Webflow
용도: Webflow CMS에서 작성하는 컬렉션이에요. 블로그, 팀, 메뉴, 프로젝트, 위치 같은 것이에요.
연결: Site API token이 필요해요. Webflow에서 Site settings, 이어서 Apps & integrations, 이어서 API access를 열고, CMS와 Sites를 Read-only로 설정해 토큰을 생성하세요.
요청 예시: “내 Webflow 컬렉션의 최신 블로그 글을 보여 주세요.” “항목 슬러그를 이용해 팀원마다 별도의 페이지를 만들어 주세요.”
제한: 게시된 항목만 읽어요. 항목은 Webflow의 캐시에서 오기 때문에, 변경 사항이 나타나기까지 몇 분 걸릴 수 있어요. 내 사이트와 그 컬렉션을 찾는 호출은 더 작은 요금제에서 Webflow의 분당 60회 한도에 포함돼요. 그래서 앱은 방문할 때마다 묻지 않고 그 응답을 하루 동안 보관하도록 안내받아요. 이 커넥터에는 권한 스위치가 없어요.
파일, 이미지, 검색
AWS S3
용도: 내 앱에서 사람들이 업로드하는 파일(사진, 문서, 첨부 파일)을 내 S3 버킷에 보관해요. 내장 백엔드는 레코드만 보관하고 파일은 보관하지 않으므로, 업로드는 여기로 가요.
연결: 값 4개가 필요해요. Bucket region(eu-west-2 같은 형태이고, 런던이에요), Bucket name(소문자, 숫자, 하이픈만 쓰고 점은 쓰지 않아요), 그리고 AWS의 IAM, 이어서 Users에서 Setherion 전용으로 만든 사용자, 이어서 Security credentials, 이어서 Create access key에서 받는 Access key ID와 Secret access key예요. 시크릿 키는 한 번만 표시돼요. Test connection은 버킷을 읽고, 서명된 링크로 작은 테스트 파일을 업로드한 다음 다시 읽고 삭제하고, 버킷이 브라우저의 업로드를 허용하는지 확인해요. 마지막 확인이 실패하면 먼저 버킷의 CORS 설정을 살펴보세요.
요청 예시: “고객이 수리 요청에 사진을 첨부할 수 있게 해 주세요.” “각 주문의 업로드된 문서를 주문 페이지에 보여 주세요.”
제한:
- 파일은 하나당 최대 25 MB예요.
- 모든 앱은 버킷 안에 자기만의 폴더를 가져요.
apps/뒤에 앱의 ID가 붙은 폴더이고, Setherion은 그 밖의 키를 모두 거부해요. 버킷 하나로 내 모든 앱을 서비스하면서도 한 앱이 다른 앱의 파일을 읽지 못해요. - 방문자는 파일 목록을 볼 수 없어요. 파일은 키로 접근하는데, 키는 앱이 레코드와 함께 보관하고, 파일을 보여 주는 링크는 한 시간 동안 유효해요.
- 앱의 파일 목록 보기와 삭제는 앱의 팀만 할 수 있어요. 업로드와 보여 주기는 앱을 쓰는 누구에게나 열려 있어요.
권한: 스위치가 3개 있어요. 파일 업로드, 파일 표시, 파일 목록 보기와 삭제예요.
알아 두면 좋은 점: 에디터의 미리보기에 있는 파일 선택기도 게시된 앱처럼 내 실제 버킷에 업로드해요.
Cloudinary
용도: 앱에서 이미지와 파일을 업로드하고, 표시되는 크기에 맞춰 Cloudinary의 CDN으로 전송해요.
연결: 값 4개가 필요해요. Cloud Name, Unsigned Upload Preset, API Key, API Secret이에요. 프리셋은 Cloudinary의 Settings, 이어서 Upload에서 Unsigned 방식으로 만드세요. 키는 Settings, 이어서 API keys에 있어요. 프리셋이 없으면 업로드가 작동할 수 없고, 앱은 그런 척하지 않고 그렇게 알려 줘요.
요청 예시: “판매자가 상품 사진을 업로드하고 알맞은 크기로 보여 주도록 해 주세요.” “방문자가 사진을 보낼 수 있는 갤러리 페이지를 추가해 주세요.”
제한: 브라우저는 프리셋을 사용해서 내 Cloudinary로 바로 업로드해요. 클라우드 이름과 프리셋은 Cloudinary가 의도한 대로 게시된 앱에 들어가요. API 시크릿은 들어가지 않아요. Setherion은 키와 시크릿을 Test connection에만 사용하기 때문에, 시크릿은 앱 안에 절대 들어 있지 않아요. 모든 업로드와 조회는 내 Cloudinary 계정에서 이뤄져요.
알아 두면 좋은 점: File upload skill은 이 커넥터를 바탕으로 만들어졌어요. Skills를 참고하세요.
Algolia
용도: 상품, 기사, 또는 내가 인덱싱한 모든 항목에 대한 즉시 검색이에요. 입력하는 동안 바로 결과가 나와요.
연결: Algolia 대시보드의 Account, 이어서 API keys에서 값 3개를 가져와요. Application ID, Admin API Key, Search-Only API Key예요.
두 개의 키: 방문자는 브라우저에서 검색 전용 키로 검색해요. 이 키는 공개해도 안전하고 앱에 들어가요. 관리자 키는 인덱스를 삭제할 수 있기 때문에 Setherion의 서버를 절대 벗어나지 않아요. 앱은 레코드를 인덱싱할 때만 Setherion을 거쳐 이 키를 사용해요. 검색 전용 키가 저장되어 있지 않으면 검색을 실행할 수 없고, 앱은 관리자 키로 대신하지 않고 그렇게 알려 줘요. 레코드나 인덱스 삭제, 인덱스 비우기, 다른 인덱스 위로 옮기기는 내 팀만 할 수 있어요. 레코드 추가와 업데이트는 앱을 쓰는 누구나 할 수 있어요.
요청 예시: “쇼핑몰에 입력하는 동안 상품을 찾아 주는 검색 상자를 추가해 주세요.” “상품을 추가할 때마다 Algolia에 인덱싱해 주세요.”
알아 두면 좋은 점: Search skill은 이 커넥터를 바탕으로 만들어졌어요. Skills를 참고하세요.
이 페이지가 도움이 됐나요?
