워드프레스 REST API 완벽 연동 가이드: 초보도 30분이면 끝!
아직도 워드프레스 API 연동 때문에 밤잠 못 자고 계신가요? 진짜 생각보다 쉬운데 말이에요!
안녕하세요 여러분! 저도 처음에 워드프레스 API 연동할 때 정말… 뭐랄까, 완전 막막했거든요. 구글링 해봐도 나오는 건 영어 문서들뿐이고, 한국어로 된 설명은 너무 어렵게 쓰여있어서 이해하기 힘들더라고요. 그래서 직접 삽질하면서 터득한 노하우들을 여러분과 공유하려고 합니다. 사실 지난주에도 제 지인이 “API 연동이 이렇게 어려운 줄 몰랐다”고 하소연하더라고요. 그래서 이번 기회에 정말 쉽게, 단계별로 설명해드릴게요!
워드프레스 REST API 기본 설정하기
사실 워드프레스 4.7 버전부터는 REST API가 기본으로 내장되어 있어서 별도로 설치할 필요가 없어요. 진짜 편해졌죠! 예전에는 플러그인 설치하고 별도 설정하고… 정말 번거로웠는데 말이에요. 그냥 여러분의 워드프레스 사이트 URL 뒤에 /wp-json/wp/v2/만 붙이면 바로 API 엔드포인트에 접근할 수 있습니다.
예를 들어서 여러분 사이트가 example.com이라면, https://example.com/wp-json/wp/v2/posts 이렇게 입력하면 모든 포스트 목록을 JSON 형태로 받아볼 수 있어요. 정말 간단하죠?
하지만 여기서 하나 주의할 점이 있어요. 만약 여러분 사이트에서 REST API가 비활성화되어 있다면? 워드프레스 관리자 페이지에서 설정 → 고유주소로 가서 고유주소 구조가 설정되어 있는지 확인해보세요. 기본값으로 되어 있으면 API가 제대로 작동하지 않을 수 있거든요.
안전한 인증 방법 총정리
자, 이제 가장 중요한 부분이에요. 인증! 솔직히 이 부분 때문에 제일 골치 아팠어요. 처음에는 보안 생각 안 하고 그냥 막 연동했다가 나중에 문제 생기더라고요. 아니 진짜 개정신없었음ㅎㅎ 그래서 지금은 보안을 최우선으로 생각해서 인증 방법을 선택하고 있습니다.
워드프레스에서 제공하는 주요 인증 방법들을 정리해봤어요. 각각의 장단점이 다르니까 여러분 상황에 맞는 걸 선택하시면 됩니다!
| 인증 방법 | 보안 수준 | 설정 난이도 | 추천도 |
|---|---|---|---|
| Application Passwords | 높음 | 쉬움 | ⭐⭐⭐⭐⭐ |
| JWT 토큰 | 매우 높음 | 어려움 | ⭐⭐⭐⭐ |
| OAuth 2.0 | 높음 | 매우 어려움 | ⭐⭐⭐ |
| Basic Authentication | 낮음 | 매우 쉬움 | ⭐⭐ |
개인적으로는 Application Passwords를 제일 추천해요. 설정도 간단하고 보안도 괜찮거든요. 워드프레스 5.6 버전부터 기본 기능으로 들어왔어서 별도 플러그인도 필요 없고요!
실제로 쓸만한 연동 도구들
이제 실전이에요! 머리로만 이해하는 게 아니라 실제로 써볼 수 있는 도구들을 정리해봤습니다. 솔직히 처음에는 Postman만 썼는데, 알고 보니 더 쉽고 편한 도구들이 정말 많더라고요. 특히 모바일에서 포스팅하고 싶을 때는 앱이 진짜 유용해요.
모바일 앱 추천
- WordPress 공식 앱 – 가장 기본이지만 안정적이에요. iOS, Android 모두 지원하고 무료입니다.
- BlogTouch Pro – UI가 예쁘고 기능도 풍부해요. 유료지만 그만한 값어치는 합니다.
- MarsEdit – macOS 전용이긴 하지만 정말 강력한 블로깅 도구입니다.
개발자용 도구
- Postman – API 테스트의 기본이죠! 처음 배우기에 제일 좋아요.
- Insomnia – Postman보다 가볍고 깔끔한 인터페이스가 매력적입니다.
- WP-CLI – 커맨드라인을 좋아한다면 이거! 진짜 개발자스러운 도구예요.
- 브라우저 개발자 도구 – 별도 설치 없이 바로 테스트 가능해서 편해요.
개인적으로는 개발할 때는 Postman, 실제 포스팅할 때는 모바일 앱을 주로 써요. 뭐랄까… 각각의 상황에 맞는 도구를 쓰는 게 제일 효율적인 것 같아요!
실전 연동 과정 A to Z
자, 이제 드디어 실전이에요! 이론으로만 알고 있던 걸 직접 해보는 시간입니다. 사실 저도 처음에는 막막했는데, 한 번 해보니까 “아, 이게 다구나?” 싶더라고요. 그니까요, 생각보다 어렵지 않아요. 차근차근 따라해보세요!
먼저 워드프레스 관리자 → 사용자 → 프로필로 들어가세요. 스크롤을 내리다 보면 “Application Passwords” 섹션이 있을 거예요.
앱 이름에는 뭐든 적어도 되지만, 저는 보통 “API Test” 이런 식으로 써요. 그 다음에 “Add New Application Password” 버튼을 클릭하면 이상한 암호가 하나 생성될 거예요. 이게 바로 여러분의 API 패스워드입니다! 꼭 어딘가에 복사해서 저장해두세요. 나중에 다시 볼 수 없거든요.
// 기본 요청 예시 (JavaScript)
const auth = btoa('사용자명:생성된패스워드');
fetch('https://yoursite.com/wp-json/wp/v2/posts', {
method: 'GET',
headers: {
'Authorization': `Basic ${auth}`
}
})
.then(response => response.json())
.then(data => console.log(data));
아! 근데 여기서 주의할 점이 하나 있어요. 패스워드에 공백이 있을 수 있는데, 이걸 제거하고 붙여서 써야 해요. 처음에 이거 몰라서 계속 인증 에러 떴었어요ㅠㅠ
보안 설정과 성능 최적화
이제 연동은 성공했는데… 잠깐! 보안은 어떻게 할 거예요? 저도 처음에는 연동만 되면 된다고 생각했는데, 나중에 보안 사고 겪고 나서야 정신을 차렸어요. 진짜 개념없었음… 그래서 이번에는 여러분이 저처럼 당황하지 않도록 미리미리 보안 설정을 해보겠습니다.
SSL 인증서는 필수입니다! HTTP로 API 통신하면 패스워드가 그대로 노출돼요. 꼭 HTTPS를 사용하세요.
| 보안 기능 | 중요도 | 설정 방법 | 추천 플러그인 |
|---|---|---|---|
| SSL 인증서 | 필수 | 호스팅 업체 설정 | Let’s Encrypt |
| Rate Limiting | 높음 | 플러그인 설치 | WP Limit Login |
| IP 화이트리스트 | 중간 | .htaccess 수정 | Wordfence |
| CORS 설정 | 높음 | 헤더 추가 | REST API Helper |
| 방화벽 | 중간 | 플러그인 설치 | Sucuri Security |
성능 최적화도 빼놓을 수 없죠! API 호출이 많아지면 서버에 부담이 될 수 있어요. 캐싱 플러그인 설치하고, 불필요한 API 엔드포인트는 비활성화하는 것도 좋은 방법입니다. 저는 WP Rocket 쓰고 있는데 만족도가 꽤 높아요.
자주 발생하는 오류 해결법
아무리 차근차근 따라해도 오류는 발생하기 마련이에요. 저도 처음에 API 연동할 때 온갖 에러 메시지와 씨름했거든요. “뭐야 이거, 왜 안 되는 거야?” 하면서 컴퓨터 앞에서 한 시간씩 고민한 적도 많아요ㅠㅠ 그래서 제가 경험한 대표적인 오류들과 해결법을 정리해봤습니다.
인증 관련 오류
- 401 Unauthorized 에러 – Application Password가 잘못됐거나 사용자명이 틀린 경우. 패스워드 공백 제거했는지 확인하세요!
- 403 Forbidden 에러 – 사용자 권한이 부족한 경우. 관리자 권한 계정으로 테스트해보세요.
- SSL Certificate 에러 – 인증서 문제인 경우가 많아요. 호스팅 업체에 문의해보세요.
API 응답 관련 오류
- 404 Not Found – 엔드포인트 URL이 잘못된 경우. /wp-json/wp/v2/ 경로 확인하세요.
- 500 Internal Server Error – 서버 내부 오류. 플러그인 충돌이나 메모리 부족 문제일 수 있어요.
- CORS 에러 – 다른 도메인에서 접근할 때 발생. 헤더 설정 필요해요.
- Rate Limit 에러 – 너무 많은 요청을 보낸 경우. 잠시 기다렸다가 다시 시도하세요.
💡 팁: 브라우저 개발자 도구의 Network 탭을 열어두고 API 호출을 해보세요. 정확한 에러 코드와 응답을 확인할 수 있어요!
정말 답답할 때는 워드프레스 공식 문서도 확인해보세요. 영어지만 구글 번역기 돌리면 어느 정도는 이해할 수 있어요. 또는 커뮤니티에서 비슷한 문제를 겪은 사람들의 해결 방법을 찾아보는 것도 좋은 방법입니다!
자주 묻는 질문들
가장 흔한 원인은 고유주소 설정이에요! 워드프레스 관리자에서 설정 → 고유주소로 가서 “일반” 말고 다른 구조로 설정해보세요. 그리고 꼭 “변경사항 저장”을 클릭하세요. 이것만으로도 90% 해결돼요.
플러그인 충돌도 의심해보세요. 모든 플러그인을 비활성화하고 API가 작동하는지 확인해보세요. 그 다음에 하나씩 활성화하면서 어떤 플러그인이 문제인지 찾을 수 있어요.
아, 이거 진짜 당황스럽죠? 저도 처음에 그랬어요. Application Password는 생성할 때 딱 한 번만 보여주고 그 다음부터는 볼 수 없어요. 새로 생성해야 합니다.
기존 패스워드를 삭제하고 새로 만드시면 됩니다. 이번에는 꼭 메모장이나 패스워드 매니저에 저장해두세요! 저는 1Password 쓰고 있어요.
CORS는 브라우저 보안 정책 때문에 생기는 문제예요. 다른 도메인에서 API를 호출할 때 발생하죠. functions.php에 헤더를 추가하거나 플러그인을 사용해서 해결할 수 있어요.
“REST API Helper” 플러그인을 설치하시면 한 번에 해결돼요. 아니면 functions.php에 add_action(‘rest_api_init’, function() { remove_filter(‘rest_pre_serve_request’, ‘rest_send_cors_headers’); add_filter(‘rest_pre_serve_request’, function($served, $result, $request, $server) { header(‘Access-Control-Allow-Origin: *’); return $served; }, 10, 4); }); 이 코드를 추가하세요.
이것도 많이 물어보시는 질문이에요! 이미지는 먼저 /wp-json/wp/v2/media 엔드포인트로 업로드하고, 받은 ID를 포스트의 featured_media 필드에 넣으면 됩니다.
1단계: FormData로 이미지 파일을 /wp-json/wp/v2/media에 POST 요청. 2단계: 응답에서 id 값을 확인. 3단계: 포스트 작성할 때 featured_media에 해당 id 값을 넣어주세요. 생각보다 간단해요!
API 속도는 여러 요인에 영향을 받아요. 서버 성능, 플러그인 개수, 데이터베이스 최적화 상태 등등… 가장 효과적인 건 캐싱이에요.
WP Rocket 같은 캐싱 플러그인을 설치하고, 필요없는 플러그인은 정리하세요. 그리고 API 요청 시 _fields 파라미터를 사용해서 필요한 필드만 가져오는 것도 좋은 방법이에요. 예: ?_fields=id,title,content
아, 이거 정말 많이 겪는 문제예요! 저도 로컬에서 완벽하게 테스트했는데 실서버에 올리니까 안 되더라고요. 대부분 서버 설정 차이 때문이에요.
PHP 버전 확인하고, mod_rewrite가 활성화되어 있는지 확인하세요. 그리고 .htaccess 파일 권한도 체크해보세요. 호스팅 업체에 문의하면 친절하게 알려줄 거예요!
마무리하며
와, 정말 긴 여정이었네요! 처음에는 막막해 보였던 워드프레스 API 연동이 이제 조금은 친숙해졌나요? 사실 저도 이 글을 쓰면서 예전에 삽질했던 기억들이 주르륵 떠올랐어요ㅋㅋ 그때는 정말 답답했는데 지금 생각해보니 다 좋은 경험이었던 것 같아요.
가장 중요한 건 직접 해보는 거예요! 이론만 알고 있으면 소용없거든요. 오늘 당장 여러분의 워드프레스 사이트에서 Application Password 하나 만들어보세요. 그리고 Postman으로 간단한 GET 요청도 날려보시고요.
혹시 따라하다가 막히는 부분이 있으면 댓글로 남겨주세요! 제가 아는 범위에서는 최대한 도와드릴게요. 그리고 성공적으로 연동하신 분들도 후기 남겨주시면 다른 분들에게 큰 도움이 될 것 같아요. 우리 다같이 워드프레스 마스터가 되어봐요! 😊
다음에는 더 고급 기능들, 예를 들어 커스텀 필드 활용이나 Webhook 연동 같은 내용으로 찾아뵐게요. 구독 알림 설정해두시면 놓치지 않으실 거예요!