“API 연동이 필요합니다.” “API 키를 발급받아야 합니다.” “이 기능은 API로 구현됩니다.”

개발자와 대화하다 보면, 자동화 툴을 쓰다 보면, AI 서비스를 활용하다 보면 이 단어가 계속 나옵니다. API.

알 것 같기도 하고 모를 것 같기도 한 단어입니다. 개발자들은 당연히 아는 것처럼 쓰는데, 처음 듣는 사람 입장에서는 정확히 뭔지 설명하기 어렵습니다.

이 글에서 API를 비개발자의 언어로 완전히 풀어냅니다. n8n, 자동화, AI 서비스와 연결해서 “아, 이래서 API가 필요했구나”까지 이해할 수 있도록 씁니다.

목차

  1. API란 무엇인가? — 가장 쉬운 설명
  2. 레스토랑 비유로 완전히 이해하기
  3. 실생활 속 API — 우리는 이미 매일 쓰고 있다
  4. API의 핵심 구성 요소
  5. REST API란? — 가장 많이 쓰는 방식
  6. API 키 — 자물쇠와 열쇠
  7. n8n·자동화와 API — 연결해서 이해하기
  8. AI 서비스 API — OpenAI·Claude·Gemini
  9. API를 직접 써보기 — 실전 입문
  10. 자주 묻는 질문 (FAQ)

1. API란 무엇인가?

API는 Application Programming Interface의 약자입니다. 한국어로는 응용 프로그램 인터페이스라고 번역합니다. 하지만 이 번역은 전혀 도움이 안 됩니다. 처음부터 쉬운 말로 설명하겠습니다.

API는 두 프로그램이 서로 대화하는 방법입니다.

프로그램 A가 프로그램 B에게 “이것 좀 해줘”라고 요청하고, B가 “알겠어, 여기 결과야”라고 돌려주는 규칙과 창구를 API라고 합니다.

조금 더 구체적으로:

  • 구글 지도를 내 앱에 넣으려면 → 구글 지도 API 사용
  • 카카오 로그인 버튼을 만들려면 → 카카오 로그인 API 사용
  • 날씨 앱이 기상청 데이터를 가져오려면 → 날씨 API 사용
  • n8n에서 슬랙으로 메시지를 보내려면 → 슬랙 API 사용
  • ChatGPT 기능을 내 서비스에 넣으려면 → OpenAI API 사용

API 없이는 이런 것들이 불가능합니다. 매번 처음부터 직접 만들어야 합니다. API 덕분에 이미 만들어진 기능을 가져다 쓸 수 있습니다.

**Interface(인터페이스)**라는 단어가 핵심입니다. 인터페이스는 “접점, 창구”라는 뜻입니다. 두 시스템이 만나는 접점. 그 접점을 통해 데이터를 주고받는 것이 API입니다.

2. 레스토랑 비유

API를 설명할 때 가장 많이 쓰는 비유가 레스토랑입니다. 이 비유가 정말 정확합니다.

레스토랑의 구조

레스토랑에는 세 공간이 있습니다.

[손님 (테이블)] — [웨이터] — [주방]
  • 손님: 음식을 주문하는 사람 (요청을 보내는 쪽, 클라이언트)
  • 주방: 실제로 음식을 만드는 곳 (요청을 처리하는 쪽, 서버)
  • 웨이터: 손님의 주문을 주방에 전달하고 음식을 가져오는 사람 (API)

손님은 주방에 직접 들어가지 않습니다. 주방 요리사가 어떤 도구로 어떻게 요리하는지 알 필요도 없습니다. 그냥 웨이터에게 “파스타 하나 주세요”라고 하면 됩니다.

웨이터는 손님의 주문을 이해해서 주방에 전달하고, 완성된 음식을 다시 손님에게 가져옵니다.

API가 바로 그 웨이터입니다

프로그램(손님)이 다른 서비스(주방)에 요청을 보낼 때, API(웨이터)가 그 사이에서 중개합니다.

구글 날씨 앱을 예로 들면:

[날씨 앱 (손님)]
↓ "서울 오늘 날씨 알려줘"
[날씨 API (웨이터)]
↓ 요청 전달
[기상청 서버 (주방)]
↓ 데이터 반환
[날씨 API (웨이터)]
↓ 결과 전달
[날씨 앱 → 화면에 표시]

메뉴판이 있듯이, API에도 **문서(Documentation)**가 있습니다. “어떤 요청을 어떻게 보내면 어떤 결과를 받을 수 있다”가 적혀 있습니다. API를 쓰기 전에 문서를 먼저 읽어야 합니다.

주방이 바뀌어도(서버 내부 구조가 바뀌어도), 메뉴판이 같으면(API가 같으면) 손님은 똑같이 주문할 수 있습니다. 이것이 API의 큰 장점입니다.

3. 실생활 속 API

우리가 매일 쓰는 서비스들이 사실 API 위에서 돌아가고 있습니다.

로그인 버튼

웹사이트에서 “구글로 로그인”, “카카오로 로그인” 버튼을 본 적 있죠? 이것이 OAuth API입니다. 그 웹사이트가 구글 API를 호출해서 “이 사람이 구글 계정을 가지고 있는지 확인해줘”라고 요청하는 것입니다.

지도 서비스

배달 앱, 택시 앱, 부동산 앱에 지도가 나타나는 것은 구글 지도 API 또는 카카오맵 API를 쓰기 때문입니다. 지도를 처음부터 만드는 게 아니라, 이미 만들어진 지도를 API로 빌려 씁니다.

결제 서비스

쇼핑몰에서 신용카드로 결제할 때 — 쇼핑몰이 카드사 시스템에 직접 접근하는 게 아닙니다. 결제 API(Stripe, 토스페이먼츠 등)를 통해 결제를 처리합니다.

날씨 정보

스마트폰 날씨 앱, 포털 사이트 날씨 — 기상청 API, OpenWeatherMap API 같은 날씨 데이터 API에서 데이터를 가져와 보여줍니다.

AI 서비스

“ChatGPT 같은 AI 기능을 내 서비스에 넣고 싶다” → OpenAI API 호출. AI를 처음부터 만들 필요 없이, API 하나로 챗봇, 번역, 요약 기능을 만들 수 있습니다.

소셜 미디어 공유

블로그에 “페이스북 공유” 버튼이 있는 것 — 페이스북 Graph API를 씁니다. 버튼을 누르면 API가 페이스북에 “이 URL을 이 사용자가 공유하려 한다”고 전달합니다.

4. API의 핵심 구성 요소

API가 실제로 어떻게 작동하는지, 주요 개념들을 정리합니다.

엔드포인트 (Endpoint)

API에 요청을 보내는 **주소(URL)**입니다. 레스토랑으로 치면 메뉴판의 각 항목입니다.

https://api.openweathermap.org/data/2.5/weather
https://api.github.com/users/octocat
https://api.anthropic.com/v1/messages

각 엔드포인트는 특정 기능을 담당합니다. 첫 번째 주소는 날씨 정보를, 두 번째는 깃허브 사용자 정보를 돌려줍니다.

요청 (Request)

API에 무언가를 요청하는 것입니다. 요청에는 여러 정보가 담깁니다.

  • 메서드(Method): 무엇을 하려는지 — GET(가져오기), POST(보내기), PUT(수정), DELETE(삭제)
  • 헤더(Header): 요청의 메타 정보 — API 키, 인증 정보 등
  • 바디(Body): 요청과 함께 보내는 데이터 (주로 POST 요청에 사용)
  • 파라미터(Parameter): 요청을 세밀하게 조정하는 옵션

날씨 API로 예를 들면:

GET https://api.openweathermap.org/data/2.5/weather?q=Seoul&lang=ko
↑ 파라미터

“서울(q=Seoul)의 날씨를 한국어(lang=ko)로 가져오기(GET)”

응답 (Response)

요청에 대한 결과물입니다. 대부분 JSON 형식으로 옵니다.

{
"name": "Seoul",
"weather": [{"description": "맑음"}],
"main": {
"temp": 18.5,
"humidity": 45
}
}

JSON은 사람도 읽을 수 있고 프로그램도 읽을 수 있는 데이터 형식입니다. 중괄호와 콜론으로 이루어진 구조를 보면 “아, JSON이구나” 하면 됩니다.

상태 코드 (Status Code)

요청이 성공했는지 실패했는지 알려주는 숫자입니다.

코드의미일상 비유
200 OK성공“네, 여기 있습니다”
201 Created생성 성공“새로 만들었습니다”
400 Bad Request잘못된 요청“주문이 이해가 안 됩니다”
401 Unauthorized인증 실패“회원이 아니라 서비스 불가”
403 Forbidden권한 없음“손님석에서 주방 출입 불가”
404 Not Found없는 자원“그 메뉴는 없습니다”
429 Too Many Requests너무 많은 요청“잠깐 기다려 주세요”
500 Internal Server Error서버 오류“주방에 문제가 생겼습니다”

웹 서핑 중 “404 Not Found” 오류를 본 적 있죠? 그게 바로 HTTP 상태 코드입니다.

5. REST API

REST API는 현재 가장 많이 쓰이는 API 방식입니다. 웹에서 데이터를 주고받는 표준적인 방법으로 자리 잡았습니다.

REST는 Representational State Transfer의 약자인데, 이 이름은 몰라도 됩니다. 중요한 건 작동 방식입니다.

REST API는 HTTP(웹의 통신 규약)를 기반으로, URL + 메서드로 원하는 작업을 표현합니다.

블로그 글을 관리하는 REST API 예시:
GET /posts → 모든 글 목록 가져오기
GET /posts/5 → 5번 글 가져오기
POST /posts → 새 글 쓰기
PUT /posts/5 → 5번 글 수정
DELETE /posts/5 → 5번 글 삭제

**URL은 명사(무엇을), 메서드는 동사(어떻게)**로 표현합니다. 직관적이고 읽기 쉬운 것이 REST의 장점입니다.

이외에도 GraphQL(페이스북이 만든 방식, 원하는 데이터만 정확히 요청), gRPC(구글이 만든 고성능 방식) 등이 있지만, 처음엔 REST API만 알아도 충분합니다.


6. API 키

API를 쓰려면 대부분 **API 키(Key)**가 필요합니다. API 키는 비밀번호 같은 문자열입니다.

sk-ant-api03-xxxxxxxxxxxxxxxxxxxx ← Anthropic Claude API 키 예시
AIzaSyBxxxxxxxxxxxxxxxxxxxxxxxx ← Google API 키 예시

왜 API 키가 필요한가?

인증(Authentication): “이 요청을 보내는 사람이 누군지” 확인합니다. 아무나 다 쓸 수 있으면 서버가 과부하됩니다.

사용량 제한(Rate Limiting): 키별로 하루에 몇 번, 한 달에 얼마나 쓸 수 있는지 제한합니다.

과금(Billing): 유료 API는 키로 사용량을 추적해서 요금을 청구합니다.

보안: 누군가 내 API 키를 훔치면 내 계정으로 API를 마음껏 쓸 수 있습니다. 비용이 내 카드에서 나갑니다.

API 키 보안 수칙

절대 공개하지 말 것: API 키를 코드에 직접 적어서 깃허브에 올리는 실수를 많이 합니다. 공개 저장소에 올라간 키는 수분 내에 봇이 탐지해서 악용합니다.

환경 변수 사용: .env 파일에 저장하고 코드에서는 변수로 불러옵니다.

# .env 파일 (절대 깃허브에 올리지 않음)
ANTHROPIC_API_KEY=sk-ant-api03-xxxx
OPENAI_API_KEY=sk-xxxx

유출됐다면 즉시 재발급: API 제공사 대시보드에서 기존 키를 비활성화하고 새 키를 발급받으세요.

7. n8n·자동화와 API

이 블로그에서 소개한 n8n 자동화 툴과 API를 연결해서 이해해봅니다. n8n을 쓰다 보면 API가 얼마나 핵심 역할을 하는지 실감하게 됩니다.

n8n은 API 연결의 시각적 편집기

n8n의 본질은 여러 API를 시각적으로 연결하는 도구입니다. 코드 없이 노드를 이어붙이는 것 — 사실 그 내부에서는 각 노드가 해당 서비스의 API를 호출하고 있습니다.

[Gmail 노드] → Gmail API를 호출해서 이메일을 가져옴
[OpenAI 노드] → OpenAI API를 호출해서 텍스트를 분석
[Slack 노드] → Slack API를 호출해서 메시지를 전송
[Google Sheets 노드] → Google Sheets API를 호출해서 데이터를 저장

n8n이 API 키를 입력받는 이유가 바로 이것입니다. n8n이 여러분 대신 API를 호출하려면, 인증을 위한 API 키가 필요합니다.

실제 n8n 워크플로우로 API 흐름 이해하기

예시: 새 이메일이 오면 AI가 분류해서 슬랙에 알림

STEP 1. Gmail API 호출
- 요청: "받은 편지함에서 읽지 않은 이메일 가져와줘"
- 응답: {발신자, 제목, 본문, 날짜} JSON
STEP 2. OpenAI API 호출
- 요청: "이 이메일 내용을 분석해서 카테고리 알려줘"
+ 위에서 받은 이메일 본문 첨부
- 응답: {"category": "업무", "priority": "높음"}
STEP 3. Slack API 호출
- 요청: "이 내용을 #업무-알림 채널에 메시지로 보내줘"
+ 보낼 메시지 내용 첨부
- 응답: {"ok": true, "message": "전송 완료"}

n8n을 쓴다는 것은, 이 API 호출들을 코드 없이 시각적으로 설정한다는 뜻입니다.

HTTP Request 노드 — API 직접 호출

n8n에는 HTTP Request 노드가 있습니다. n8n이 공식 노드로 지원하지 않는 서비스도, HTTP Request 노드를 쓰면 어떤 API든 직접 호출할 수 있습니다.

HTTP Request 노드 설정:
- Method: GET
- URL: https://api.openweathermap.org/data/2.5/weather
- Parameters:
q: Seoul
appid: {내 API 키}
lang: ko

이렇게 설정하면 n8n이 날씨 API를 호출해서 결과를 가져옵니다. 이후 노드에서 그 데이터를 처리할 수 있습니다.

Webhook — API를 받는 쪽

API는 내가 요청을 보내는 경우만 있는 게 아닙니다. 외부 서비스가 나에게 데이터를 보내오는 경우도 있습니다. 이것이 **Webhook(웹훅)**입니다.

n8n의 Webhook 노드가 그것입니다. “이 URL로 데이터가 들어오면 워크플로우를 시작해라”는 뜻입니다.

예를 들어 Stripe(결제 서비스)가 “결제 완료됐습니다”를 n8n Webhook URL로 보내면, n8n이 자동으로 이메일 발송·DB 저장·슬랙 알림 등을 처리합니다.

8. AI 서비스 API

2025~2026년 가장 많이 쓰이는 API 중 하나가 AI 서비스 API입니다.

OpenAI API

ChatGPT를 만든 OpenAI가 제공하는 API입니다. 이 API를 쓰면 ChatGPT 같은 기능을 내 서비스에 넣을 수 있습니다.

요청: "다음 독일어 문장을 한국어로 번역해줘: Guten Morgen"
응답: {"content": "좋은 아침"}

n8n의 OpenAI 노드, Cursor의 AI 기능, 수많은 AI 챗봇 서비스들이 이 API를 씁니다. 사용량에 따라 과금되는 구조입니다(토큰 단위).

Anthropic Claude API

이 블로그에서 자주 언급하는 Claude의 API입니다. OpenAI API와 비슷한 구조입니다. n8n에도 Anthropic 노드가 있습니다.

# Python으로 Claude API 호출 예시
import anthropic
client = anthropic.Anthropic(api_key="sk-ant-...")
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{"role": "user", "content": "안녕하세요, 독일 생활 팁 알려주세요"}
]
)
print(message.content)

무료 AI API들

Google Gemini API: 무료 티어가 넉넉합니다. 분당 15회 요청까지 무료.

Groq API: 오픈소스 모델(Llama, Gemma 등)을 매우 빠른 속도로 무료로 쓸 수 있습니다. 자동화에서 AI 처리가 필요한데 비용을 아끼고 싶을 때 좋습니다.

Ollama: 앞서 이 블로그에서 소개한 것처럼, 로컬에서 실행하는 AI 모델도 API 서버를 제공합니다. http://localhost:11434로 요청을 보내면 됩니다. 완전 무료, 인터넷 없이도 가능합니다.

9. API 직접 써보기

이론은 충분합니다. 실제로 API를 호출해보면 감이 옵니다. 코딩 없이도 할 수 있는 방법들을 소개합니다.

방법 1 — 브라우저 주소창 (GET 요청)

GET 요청은 브라우저 주소창에 URL을 입력하는 것만으로도 됩니다. 바로 해볼 수 있는 공개 API들입니다.

GitHub 사용자 정보 (API 키 불필요):

https://api.github.com/users/octocat

주소창에 그대로 입력하면 JSON 응답이 나타납니다.

환율 정보 (API 키 불필요):

https://open.er-api.com/v6/latest/EUR

유로 기준 실시간 환율이 JSON으로 나옵니다.

공공 IP 정보:

https://api.ipify.org?format=json

방법 2 — Hoppscotch 또는 Thunder Client

브라우저 기반 API 테스트 도구입니다. hoppscotch.io에 접속하면 됩니다. 코딩 없이 클릭으로 모든 종류의 API 요청을 보낼 수 있습니다. POST 요청, 헤더 설정, API 키 입력도 가능합니다.

방법 3 — n8n HTTP Request 노드

이미 n8n을 쓰고 있다면 HTTP Request 노드가 가장 쉽습니다. URL과 파라미터만 입력하면 클릭 한 번으로 API를 호출하고 결과를 확인할 수 있습니다.

방법 4 — curl (터미널)

터미널을 쓸 수 있다면 curl 명령어로 API를 호출할 수 있습니다.

# 날씨 API 호출 예시
curl "https://api.openweathermap.org/data/2.5/weather?q=Berlin&appid=내키&lang=ko"
# 공개 API (키 불필요)
curl https://api.github.com/users/octocat

10. FAQ

Q. API와 SDK는 어떻게 다른가요?

API는 “어떻게 요청하고 어떤 응답을 받는지”의 규칙(인터페이스)입니다. SDK(Software Development Kit)는 그 API를 더 쉽게 쓸 수 있도록 미리 만들어진 코드 모음집입니다. OpenAI API를 직접 HTTP로 호출할 수도 있지만, OpenAI Python SDK를 쓰면 파이썬 코드로 훨씬 간편하게 쓸 수 있습니다. API가 메뉴판이라면, SDK는 그 메뉴판을 보고 주문하는 것을 도와주는 앱입니다.

Q. API는 항상 유료인가요?

아닙니다. 많은 API가 무료 티어를 제공합니다. GitHub API, Google Maps API(월 200달러 크레딧), OpenWeatherMap API(월 1,000회 무료), Gemini API(분당 15회 무료) 등이 무료로 쓸 수 있는 범위를 제공합니다. 사용량이 많아지면 과금이 시작됩니다. n8n에서 자동화를 구축할 때는 무료 API들로 시작해보는 것을 추천합니다.

Q. n8n을 쓸 때 API 키를 어디에 입력하나요?

n8n에서 노드를 추가할 때, 각 노드의 Credentials(자격 증명) 섹션에 입력합니다. “Create New Credential” 버튼을 누르면 API 키, OAuth 토큰 등을 안전하게 저장할 수 있습니다. 한 번 저장하면 같은 서비스를 쓰는 노드에서 계속 재사용할 수 있습니다.

Q. API 호출 횟수 제한(Rate Limit)을 초과하면 어떻게 되나요?

429 Too Many Requests 오류가 납니다. 일정 시간(보통 1분 또는 1시간) 후에 제한이 풀립니다. n8n에서 자동화를 만들 때 루프가 너무 빠르게 돌면 이 오류가 발생할 수 있습니다. Wait 노드로 요청 간격을 조절하거나, 유료 플랜으로 업그레이드하면 해결됩니다.

Q. API 문서는 어디서 찾나요?

보통 서비스 공식 사이트에서 “Developers”, “API”, “Docs” 메뉴를 찾으면 됩니다. 예를 들어 Slack API는 api.slack.com, OpenAI API는 platform.openai.com/docs, Anthropic Claude API는 docs.anthropic.com에 있습니다. 좋은 API 문서에는 예제 코드까지 제공되어 있어 따라 하기 쉽습니다.

API는 현대 소프트웨어의 기반

API를 이해하면 디지털 세계가 다르게 보입니다. 우리가 쓰는 앱, 웹사이트, AI 서비스들이 수십~수백 개의 API를 연결해서 만들어진다는 것을. 레스토랑 웨이터처럼 중간에서 묵묵히 일하는 API들이 없었다면, 지금의 인터넷 생태계는 불가능했을 것입니다.

n8n으로 자동화를 만들든, 바이브코딩으로 앱을 개발하든, AI 서비스를 연동하든 — API는 그 모든 것의 기반입니다. 이제 “API 연동이 필요합니다”라는 말을 들었을 때, 무슨 뜻인지 알 수 있을 것입니다. 🔌

답글 남기기

Designed with WordPress

슬기로운 생활에서 더 알아보기

지금 구독하여 계속 읽고 전체 아카이브에 액세스하세요.

계속 읽기