아래는 워드프레스(WordPress)가 외부 서비스와 연결하는 방법에 대한 정리입니다. 특히 Make.com, Zapier, 또는 외부 앱과 통신할 때 많이 사용하는 방식들(REST API, Application Password 등)에 대해 종합적이고 알기 쉽게 설명드릴게요.
✅ 워드프레스 외부 연결 방법: 총 정리
| 연결 방식 | 설명 | 사용 예 | 보안 수준 |
|---|---|---|---|
| 1. REST API + Application Password | 가장 보편적인 방식. WordPress 5.6 이상 기본 제공 | 🔗Make.com, Zapier 등에서 사용 | ⭐⭐⭐⭐ |
| 2. REST API + JWT 토큰 인증 | JSON Web Token을 사용해 로그인처럼 인증 | 모바일 앱, 커스텀 프론트엔드 | ⭐⭐⭐⭐⭐ |
| 3. REST API + OAuth 2.0 | 페이스북, 구글 로그인처럼 안전한 토큰 인증 방식 | 기업 시스템, 고급 연동 | ⭐⭐⭐⭐⭐ |
| 4. XML-RPC | 예전부터 있던 방식. 지금은 비추천 | 오래된 앱에서 글쓰기 등 | ⭐ (보안 취약) |
| 5. Webhooks | WordPress에서 외부로 이벤트를 실시간 전송 | Stripe 결제 → 글 발행 | ⭐⭐⭐⭐ |
| 6. 플러그인 기반 API (WPGraphQL 등) | REST 말고 GraphQL 방식으로 API 제공 | 프론트엔드 개발자용 | ⭐⭐⭐⭐ |
🔹 1. REST API란?
REST API는 WordPress와 외부 프로그램(예: Make, Zapier, 앱) 사이의 통신 통로입니다.
예시:
GET https://openpage.store/wp-json/wp/v2/posts
→ 전체 글 목록 가져오기
기본적으로 누구나 이 API를 쓸 수 있지만, 쓰기(post, update 등)는 인증이 필요합니다.
🔐 인증 방법 종류
✅ A. Application Password (프로그램 비밀번호)
WordPress 5.6 이상에서는 기본 제공되는 기능으로, 가장 쉽게 쓸 수 있는 인증 방법입니다.
📌 예시 흐름:
워드프레스 → 사용자 계정 → Application Password 발급
Make.com 등에서 이 정보를 사용해 연결
Base URL: https://openpage.store
Username: your_wp_username
Password: (생성된 Application Password)
장점:
별도 플러그인 필요 없음
보안도 어느 정도 안정적
✅ B. JWT (JSON Web Token)
더 보안이 강력한 방법입니다. Access Token을 발급받아서 API 호출 시 헤더에 토큰을 포함시킵니다.
WordPress에
JWT Authentication for WP REST API플러그인 설치/jwt-auth/v1/token으로 로그인 요청받은 토큰을 API 호출에 사용
Authorization: Bearer your_token_here
장점:
모바일/SPA 환경에 적합
로그인 유지에 유리
✅ C. OAuth 2.0
기업용 또는 외부 플랫폼 연동에 쓰이는 방식으로, 구글 로그인처럼 승인된 사용자만 접근하게 하는 시스템입니다.
사용 시:
WP OAuth Server플러그인 설치 필요개발자 키 발급 및 리디렉션 URI 설정 필요
복잡하지만 보안은 최상급입니다.
🔁 REST API로 할 수 있는 대표적인 작업
| 기능 | 예시 URL | 설명 |
|---|---|---|
| 글 목록 가져오기 | GET /wp-json/wp/v2/posts | 비로그인 허용 |
| 글 작성 | POST /wp-json/wp/v2/posts | 인증 필요 |
| 이미지 업로드 | POST /wp-json/wp/v2/media | 인증 필요 |
| 태그 목록 | GET /wp-json/wp/v2/tags | 사용 예: 자동 태그 |
📎 추천 구성: Make.com 연결을 예로 들면
가장 실용적인 연결은 아래 방식입니다:
REST API + Application Password 인증
→ Make.com 또는 Zapier에서 쉽게 사용 가능
→ 플러그인 없이 WordPress 5.6 이상이면 가능
🔐 보안 팁
Application Password는 계정마다 다르게 발급됩니다.
탈퇴하거나 권한을 낮추면 API 접근도 차단됩니다.
중요한 작업에는 JWT나 OAuth 같은 방식 고려
🧩 요약 정리
| 항목 | 추천 방식 | 특징 |
|---|---|---|
| Make.com, Zapier | REST API + Application Password | 쉽고 빠름 |
| 모바일 앱, 보안 강화 | REST API + JWT 토큰 | 보안 우수 |
| 기업 인증 연동 | OAuth 2.0 | 복잡하지만 안전 |
| 개발자용 확장 | WPGraphQL | GraphQL 기반 쿼리 |
필요하시면 각 방식에 맞춘 **Make 설정 예시, HTTP 헤더 구성, 또는 실제 API 호출 코드(Python, JS 등)**도 알려드릴게요.
나의 말:
ChatGPT의 말:
물론입니다! 아래는 openpage.store 워드프레스 사이트를 Make.com에 REST API + Application Password 방식으로 연동하는 전체 과정을 상세하고 단계적으로 설명한 것입니다.
✅ 목표
Make.com에서
openpage.store사이트의 WordPress REST API에 접근하여
글 생성, 이미지 업로드, 태그 연결 등 자동화 작업을 수행하는 것을 목표로 합니다.
1️⃣ 사전 조건
| 항목 | 상태 확인 방법 |
|---|---|
| WordPress 5.6 이상 사용 중 | 워드프레스 대시보드 > 업데이트 |
| 관리자 계정 접속 가능 | openpage.store/wp-admin |
| Make.com 계정 | https://make.com |
2️⃣ WordPress에서 Application Password 발급
🔧 절차
워드프레스 로그인 (
https://openpage.store/wp-admin)좌측 메뉴 → 사용자 > 내 프로필 클릭
아래로 스크롤 →
Application Passwords항목앱 이름에
Make.com입력하고 새 비밀번호 추가복사된 Application Password를 따로 저장
📌 예시:
사용자명:
admin비밀번호:
AbC1DeFgHiJkLmnOpQrS(자동 생성됨)Base URL:
https://openpage.store
3️⃣ Make.com에서 WordPress 연결 만들기
🔧 연결 방법
Make.com 로그인 후 시나리오 생성
➕ 클릭 →
WordPress모듈 검색 → “Watch Posts” 또는 “Create a Post” 선택“Add” 클릭하여 새로운 연결 생성
✏️ 설정 입력
| 항목 | 예시 |
|---|---|
| Connection Name | openpage.store 연결 |
| Base URL | https://openpage.store |
| Username | 워드프레스 사용자명 (예: admin) |
| Password | 방금 복사한 Application Password |
✅ 연결 성공 시 초록 체크 표시와 함께 연결됨
4️⃣ 테스트 API 예시 (Make 시나리오 내 HTTP 요청 활용)
예: 새 글 작성 POST 요청
모듈: HTTP → Make a Request
| 항목 | 값 |
|---|---|
| Method | POST |
| URL | https://openpage.store/wp-json/wp/v2/posts |
| Headers |
[
{
"name": "Authorization",
"value": "Basic YWRtaW46QWJDVERlRkdIaUprTG1uT3BRclM="
},
{
"name": "Content-Type",
"value": "application/json"
}
]
🔐
Authorization값은username:password를 base64로 인코딩한 결과입니다.
위 예시는admin:AbC1DeFgHiJkLmnOpQrS를 인코딩한 것.
| Body (JSON) |
{
"title": "Make.com 테스트 글입니다",
"content": "이 글은 Make.com을 통해 자동 발행된 글입니다.",
"status": "publish"
}
결과: openpage.store에 자동으로 게시물이 생성됩니다.
5️⃣ 이미지 업로드 (선택)
HTTP 모듈 →
POST https://openpage.store/wp-json/wp/v2/mediaHeader:
[
{ "name": "Authorization", "value": "Basic ..." },
{ "name": "Content-Disposition", "value": "attachment; filename=\"cut1.jpg\"" },
{ "name": "Content-Type", "value": "image/jpeg" }
]
Body: Binary → 해당 이미지 파일을 첨부
💡 업로드가 성공하면 JSON 응답에 source_url이 포함되며, 이를 게시글에 삽입 가능
🔄 전체 흐름도 (자동화 시나리오 예시)
[HTTP GET (외부 데이터)]
↓
[Set Variables (title, content, image_url 등)]
↓
[HTTP POST (이미지 업로드)]
↓
[HTTP POST (새 글 생성 + 이미지 URL 포함)]
🚧 오류가 발생할 경우
| 에러 | 원인 | 해결 |
|---|---|---|
| 401 Unauthorized | 잘못된 인증 정보 | 비밀번호 확인 / 다시 생성 |
| 403 Forbidden | REST API 차단 | 보안 플러그인 설정 확인 (ex. Wordfence) |
| 404 Not Found | URL 오타 / API 비활성화 | wp-json/wp/v2가 열리는지 브라우저에서 확인 |
🧩 정리 요약
| 항목 | 예시 값 |
|---|---|
| Base URL | https://openpage.store |
| 사용자명 | admin (또는 본인 계정) |
| 비밀번호 | Application Password |
| 인증 방식 | HTTP Basic Auth (Base64 인코딩) |
| API 문서 | https://developer.wordpress.org/rest-api/ |
필요하시다면:
Base64 인코딩 자동화
이미지 포함한 전체 Make 시나리오 템플릿
WordPress 응답 구조 파싱법
도 도와드릴 수 있습니다. 원하시면 바로 이어서 제공해드릴게요!
나의 말:
ChatGPT의 말:
맞습니다. 아주 정확하게 이해하셨습니다!
✅ 핵심 요점
WordPress REST API는 작업 종류(글 작성, 이미지 업로드, 댓글 생성 등)에 따라 호출 방식과 요구 조건이 다릅니다.
즉, “어떤 작업을 하느냐”에 따라:
요청 URL
HTTP 메서드 (GET, POST, PUT, DELETE)
필요한 인증 여부
요청 Body 구조
필요 권한
등이 모두 다르게 적용됩니다.
🔍 대표 작업별 REST API 조건 차이
| 작업 종류 | API URL 예시 | HTTP 메서드 | 인증 필요 | 필수 데이터 |
|---|---|---|---|---|
| 📄 글 목록 조회 | /wp-json/wp/v2/posts | GET | ❌ (기본은 공개) | 없음 |
| ✍️ 새 글 작성 | /wp-json/wp/v2/posts | POST | ✅ (관리자/에디터) | title, content |
| 🖼️ 이미지 업로드 | /wp-json/wp/v2/media | POST | ✅ | Binary 파일, 헤더 |
| 🏷️ 태그 목록 검색 | /wp-json/wp/v2/tags?search=ai | GET | ❌ | 없음 |
| 🏷️ 새 태그 생성 | /wp-json/wp/v2/tags | POST | ✅ | name |
| 💬 댓글 작성 | /wp-json/wp/v2/comments | POST | 상황에 따라 다름 | post, author_name, content |
| 🧼 글 삭제 | /wp-json/wp/v2/posts/{id} | DELETE | ✅ | 없음 |
✅ 예시로 알아보는 차이점
① 글 작성 vs 글 조회
조회(GET):
httpGET /wp-json/wp/v2/posts → 인증 없이도 가능 (공개 글에 한해)작성(POST):
httpPOST /wp-json/wp/v2/posts Headers: Authorization: Basic YWRtaW46... Body: { "title": "AI 블로그 시작", "content": "Make.com으로 자동화된 글입니다.", "status": "publish" } → 관리자 권한 필요 + 인증 필수
② 이미지 업로드는 일반 JSON이 아님
POST /wp-json/wp/v2/media
Headers:
Content-Disposition: attachment; filename="cut1.jpg"
Content-Type: image/jpeg
Authorization: Basic ...
Body:
(binary image data)
→ Body에 JSON이 아니라 이미지 자체가 들어갑니다.
③ 댓글 작성은 로그인 필요 없음도 가능 (옵션 설정에 따라)
{
"post": 123,
"author_name": "홍길동",
"author_email": "hong@example.com",
"content": "좋은 글이네요!"
}
→ WordPress에서 “로그인 안 한 사용자 댓글 허용” 설정이 켜져 있으면 인증 없이도 가능
🧭 내가 하고자 하는 작업이 있다면?
| 작업 목표 | REST API URL 예시 | 추가 조건 |
|---|---|---|
| 카테고리 추가 | /wp-json/wp/v2/categories | POST + name 필요 |
| 사용자 목록 가져오기 | /wp-json/wp/v2/users | 관리자만 접근 가능 |
| 특정 태그 ID 조회 | /wp-json/wp/v2/tags?search={{tag}} | 자동화 태깅 시 유용 |
| 특정 조건 글 불러오기 | /wp-json/wp/v2/posts?categories=5&per_page=3 | 카테고리 필터링 |
🧩 요약
WordPress REST API는 작업마다 사용 조건이 다릅니다.
REST API 명세서 없이도 대부분의 기능은 URL 구조만 이해하면 사용할 수 있습니다.
인증이 필요한 작업(글 작성, 수정, 업로드)은 반드시 Application Password나 JWT 등 인증이 있어야 합니다.
필요하신 작업(예: 카테고리 자동 지정, 댓글 자동 승인, 특정 조건 글만 발행 등)을 알려주시면 해당 API 구조와 Make.com 연동 예시까지 구체적으로 안내해드릴 수 있어요.