서비스끼리 대화하는 창구(API)
내 사이트가 지도를 띄우고 문자를 보내고 결제를 받는 건, 그 일을 전문으로 하는 다른 서비스에 정해진 양식으로 부탁하기 때문이에요. 그 부탁이 오가는 창구가 API예요.
쉽게 말하면
김밥집 사장님이 단무지가 필요하다고 단무지 공장을 차리진 않죠. 거래처에 주문 전화를 걸어요. 대신 아무렇게나 말하지 않고 그쪽이 정한 양식대로 말해요. 품목, 수량, 배송지. API가 바로 그 주문 전화 창구예요. 지도 띄우기, 문자 보내기, 카드 결제 받기 같은 일을 그 일만 파고든 회사에 정해진 양식으로 부탁하고, 받은 답을 손님에게 보여줘요. 양식만 지키면 그 회사가 몇 년 들여 만든 기능이 오늘 내 사이트에 들어와요.
API는 영어 줄임말이지만 뜻은 어렵지 않아요. 사람 말고 프로그램끼리 쓰라고 만들어 둔 접수 창구라는 뜻이에요. 사람 손님은 화면의 버튼을 누르지만, 내 서비스는 다른 서비스의 창구에 글자로 된 부탁을 보내요. 손님 눈에는 한 화면이지만, 뒤에서는 결제사와 지도 회사와 문자 회사에 쉴 새 없이 주문 전화가 걸리고 있는 거예요.
몇 달이 걸리고, 규정 심사도 직접 받고, 고장 나면 평생 내가 고쳐요. 큰 회사도 이렇게는 안 해요.
전문 회사가 만들어 둔 기능이 바로 내 사이트에 들어와요. 대신 쓴 만큼 요금을 내요. 거래처 계약과 같아요.
손님이 버튼을 누른 뒤 1초 동안
결제를 예로 들면, API 대화 한 번은 이렇게 흘러가요. 이 왕복이 보통 1~2초 안에 끝나요.
- 1손님이 내 사이트에서 결제하기 버튼을 눌러요. 손님 눈에 보이는 건 여기까지가 전부예요.
- 2내 서비스가 결제사의 창구(API)에 정해진 양식으로 부탁을 보내요. 누가, 얼마를, 무엇을 사는지요.
- 3결제사가 카드사와 은행 사이의 복잡한 일을 대신 처리하고, 성공인지 실패인지 답장을 보내요.
- 4내 화면이 그 답장을 받아서 "결제가 완료됐어요"를 손님에게 보여줘요.
부탁하고, 기다리고, 답을 받는다. API 대화는 이 세 박자가 전부예요. 그런데 여기서 중요한 성질이 하나 나와요. 상대가 답을 안 주면 내 화면도 같이 기다려요. 내 코드가 멀쩡해도 거래처가 멈추면 내 기능이 멈춘다는 뜻이에요. 그래서 API가 낀 기능에는 "내 잘못이 아닌 고장"이 생겨요. 아래에서 그 고장을 알아보는 법을 다뤄요.
주문 전화 비유와 다른 점 하나
진짜 거래처는 전화가 몰리면 사람이 지치지만, API 창구는 기계라서 1초에 수백 통도 받아요. 대신 계정마다 받아 줄 횟수를 정해 두고, 넘으면 기계적으로 거절해요. 사람 사정이 아니라 요금제 사정으로 끊긴다는 게 달라요. 이 한도 이야기는 아래에서 다시 나와요.
내 사이트에 이미 여러 개 들어와 있어요
API는 앞으로 배울 신기술이 아니에요. 사장님 사이트에 이미 여러 개 들어와 있는 것이에요. 남의 기능을 빌린 자리마다 창구가 하나씩 있다고 보면 돼요.
| 하고 싶은 일 | 누구의 창구를 두드리나 | 사장님이 챙길 것 |
|---|---|---|
| 결제 받기 | 결제사(PG). 토스페이먼츠·포트원 같은 곳 | 수수료율과 정산 주기 |
| 지도 보여주기 | 지도 회사. 네이버·카카오·구글 지도 | 무료 한도와 지도 키 |
| 문자·알림톡 보내기 | 문자 발송 회사 | 건당 요금. 쌓이면 커요 |
| 간편 로그인 | 카카오·구글 같은 로그인 제공사 | 손님 정보 중 무엇을 받는지 |
| AI 기능 넣기 | AI 회사 | 쓴 만큼 나가는 요금 |
다섯 줄의 공통점이 보이시나요. 전부 정해진 양식, 출입증, 요금표 세 가지가 있어요. 출입증이 바로 API 키예요. 창구는 아무나 받아 주지 않고, 출입증을 보여준 사람의 계정에 요금을 달아 둬요. 그래서 출입증이 새면 남이 쓴 요금이 내 앞으로 쌓여요.
사장님이 실제로 겪는 장면
장면 1 · 외주 개발자가 견적을 내며 말했다
“이 기능을 직접 만들면 두 달인데, 외부 API를 붙이면 일주일이면 돼요. 대신 건당 요금이 매달 나가요.”
이제 해석돼요. 만들기와 빌리기 중에 고르라는 뜻이에요. 직접 만들면 처음에 크게 들고 그다음부터 내 것, 빌리면 빨리 열지만 매달 거래처 요금이 나가요. 개발 얘기처럼 들리지만 사실 원가 계산이라서, 이 결정은 개발자가 아니라 사장님 몫이에요. 요금표와 예상 사용량부터 물어보세요.
장면 2 · 어제까지 잘 되던 지도가 오늘 안 뜬다
“코드는 아무것도 안 건드렸는데, 지도 자리만 회색으로 비어 있어요.”
내가 뭘 잘못 만진 게 아닐 수 있어요. 거래처 쪽 사정일 때가 많거든요. 지도 회사가 잠깐 멈췄거나, 출입증(키)이 만료됐거나, 무료 한도를 다 썼거나요. 전화를 안 받는 거래처를 붙잡고 내 전화기를 뜯어볼 필요는 없죠. 그쪽 상태를 먼저 확인하고, 멀쩡하면 그때 내 쪽을 봐요.
만들까 빌릴까, 저울에 올려 보면
위 견적 장면의 결정을 표로 펼치면 이래요. 정답이 정해진 문제가 아니라, 내 가게가 지금 어느 단계인지에 따라 답이 달라지는 문제예요.
| 따질 것 | 직접 만들기 | 창구로 빌리기 |
|---|---|---|
| 처음 드는 돈 | 커요. 개발 기간이 곧 돈이에요 | 거의 없어요. 가입하고 키만 받으면 돼요 |
| 매달 나가는 돈 | 없거나 적어요. 서버비 정도예요 | 쓴 만큼 나가요. 손님이 늘면 같이 늘어요 |
| 문 여는 속도 | 몇 주에서 몇 달이에요 | 며칠이면 돼요 |
| 고장 났을 때 | 내가 고쳐야 해요. 밤이든 명절이든요 | 그 회사가 고쳐요. 나는 상태 페이지를 봐요 |
| 내 마음대로 바꾸기 | 전부 돼요. 다 내 것이니까요 | 그쪽이 정한 양식 안에서만 돼요 |
장사 초반에는 거의 항상 빌리는 쪽이 이겨요. 손님이 올지 안 올지 모르는 기능에 두 달을 쓰는 것보다, 일주일 만에 열어서 반응부터 보는 게 싸거든요. 직접 만들기를 진지하게 고민할 시점은 따로 있어요. 그 기능이 내 가게의 핵심이 됐고, 창구 요금이 매출에서 무시 못 할 몫을 먹기 시작할 때요. 그때는 청구서가 알려 줘요.
증상을 보면 AI에게 할 말이 나와요
API가 낀 고장은 증상이 몇 가지로 정해져 있어요. 왼쪽에서 내 증상을 찾고, 오른쪽 문장을 AI에게 그대로 말하면 돼요. 원인을 사장님이 밝혀낼 필요는 없어요.
| 화면에서 보이는 증상 | 짚이는 원인 | AI에게 이렇게 말해요 |
|---|---|---|
| 결제 버튼을 누르면 "잠시 후 다시 시도"만 떠요 | 결제사 창구가 답을 못 주고 있어요 | "결제 요청이 실패하면 손님에게 원인 안내를 보여주고, 다시 시도 버튼을 넣어줘" |
| 지도·날씨 자리가 빈칸이거나 회색이에요 | 키가 없거나 만료됐을 가능성이 커요 | "지도 키가 제대로 설정됐는지 확인하고, 지도가 안 뜰 때는 주소 글자라도 나오게 해줘" |
| 손님이 몰리는 시간에만 기능이 먹통이에요 | 창구의 호출 한도에 걸렸을 수 있어요 | "같은 요청의 결과를 잠깐 저장해서 다시 쓰게 만들어서 외부 호출 횟수를 줄여줘" |
| 특정 기능 하나만 유난히 느려요 | 상대 서비스의 답장이 늦는 거예요 | "외부 요청이 5초 안에 답이 없으면 기다리지 말고 안내 문구를 보여주게 해줘" |
| 어느 날 갑자기 기능이 통째로 죽었어요 | 상대가 창구 규격을 바꿨을 수 있어요 | "이 기능이 쓰는 외부 서비스의 변경 공지를 확인하고 새 방식에 맞게 고쳐줘" |
내 탓부터 하지 마세요
API가 낀 고장의 절반은 상대 쪽 사정이에요. 큰 서비스들은 장애 상태를 알리는 페이지를 따로 운영해요. 내 코드를 뒤집기 전에 그쪽 상태 페이지부터 열어 보는 습관이 시간을 크게 아껴 줘요. 자주 끊기는 창구가 있다면 시간 초과와 재시도 문서가 다음 순서예요.
지금은 신경 쓰지 않아도 되는 때
가게 소개 페이지, 메뉴판, 포트폴리오처럼 남의 기능을 빌리지 않는 사이트라면 API는 아직 남 얘기예요. 창구를 두드릴 일 자체가 없으니까요. 이 문서를 덮고 만들기에 집중하셔도 돼요. 결제나 예약을 붙이는 날, 그때 다시 펴면 늦지 않아요.
바이브캠퍼스 안에서 만드는 동안에도 이 용어를 외울 필요는 없어요. "카카오맵 넣어줘", "결제 붙여줘"라고 말하면 창구를 두드리는 코드는 AI가 써요. 사장님이 등장할 순간은 딱 두 번이에요. 남의 기능을 빌릴지 결정할 때(요금표를 보는 일), 그리고 그 기능이 멈췄을 때(위 표의 문장을 건네는 일)요.
공부가 아니라 결정이에요
영어로 된 두꺼운 API 문서를 읽는 건 AI의 일이에요. 사장님의 일은 거래처를 고르는 일이에요. 어디에 시킬지, 얼마까지 낼 수 있는지, 그쪽이 멈추면 내 가게가 어디까지 버티는지. 이건 개발 지식이 아니라 사장님이 늘 하던 판단이에요.
빌리기 전에, 거래처 보듯 세 가지
API는 대체로 쓴 만큼 내는 요금이에요. 무료 구간을 주는 곳이 많아서 처음엔 0원이다가, 손님이 늘면 청구서가 따라 늘어요. 그래서 붙이기 전에 거래처와 계약하듯 확인할 게 있어요.
- 1요금표. 무료 한도가 어디까지고, 넘으면 얼마인지. 손님 1,000명 기준으로 한 달에 얼마가 나갈지 어림해 봐요.
- 2한도. 한꺼번에 얼마나 자주 부탁할 수 있는지. 창구마다 호출 한도가 있어서, 손님이 몰릴 때 여기서 막히면 대목에 문이 닫혀요.
- 3멈췄을 때. 그쪽이 멈추면 내 가게의 어느 기능까지 같이 멈추는지. 결제처럼 매출과 직결된 창구일수록 대비가 필요해요.
그리고 계약이 끝나면 출입증 관리가 남아요. 창구에서 받은 키는 코드에 적지 않고 환경변수 금고에 넣어요. 키가 새면 남이 내 계정으로 그 창구를 마음껏 써서 요금이 내 앞으로 쌓여요. 자세한 건 API 키 문서에 있어요.
개업 전에는 연습용 출입증으로
결제사 같은 곳은 테스트 키를 따로 줘요. 진짜 돈이 오가지 않는 연습용 출입증이에요. 문 열기 전에는 테스트 키로 마음껏 눌러 보고, 개업하는 날 진짜 키로 갈아 끼워요. 갈아 끼우는 자리가 바로 환경변수 금고예요.
자주 묻는 것
- Q. API랑 API 키는 뭐가 달라요?
- API는 창구고, 키는 그 창구에 들어가는 출입증이에요. 창구 자체는 누구에게나 공개돼 있지만, 출입증을 보여줘야 일을 해 주고 요금도 그 출입증 주인에게 달아요.
- Q. 웹훅이라는 말도 자주 보이던데, 그건 뭐예요?
- 방향이 반대예요. 내가 필요할 때 물어보는 게 API고, 저쪽에 무슨 일이 생겼을 때 나에게 알려 주는 게 웹훅이에요. 주문 전화와 배달 완료 문자의 관계라고 보면 돼요.
- Q. API를 쓰면 무조건 돈이 드나요?
- 아니요. 무료 구간을 주는 곳이 많아요. 다만 무료의 기준과 초과 요금은 회사마다 달라서, 그 회사의 요금 안내 페이지에서 직접 확인하는 게 정확해요. 손님이 늘면 요금도 는다는 것만 기억하세요.
- Q. 빌려 쓰던 회사가 서비스를 접으면 내 사이트는 어떻게 돼요?
- 그 창구를 쓰던 기능만 멈추고, 사이트 전체가 죽지는 않아요. 같은 일을 하는 다른 거래처로 갈아 끼우면 되는데, 갈아 끼우는 데도 품이 들어요. 그래서 처음부터 오래 갈 만한 큰 곳을 고르는 게 안전해요.
- Q. 영어로 된 API 문서를 제가 읽어야 하나요?
- 아니요. 그건 AI가 읽어요. 사장님은 "이 서비스로 문자 보내는 기능 붙여줘"처럼 원하는 일을 한국어로 말하면 돼요. 사장님이 볼 것은 문서가 아니라 요금표예요.
- Q. 무료 한도를 넘겨서 요금이 나가기 시작하면 미리 알 수 있나요?
- 대부분의 회사가 사용량 그래프와 알림 기능을 제공해요. 가입할 때 사용량 알림부터 켜 두고, 상한을 정할 수 있는 곳이면 상한도 걸어 두세요. 청구서로 처음 알게 되는 게 가장 나쁜 경우예요.
- Q. 여러 회사의 창구를 섞어 써도 되나요?
- 네, 보통 그렇게 해요. 결제는 결제사, 지도는 지도 회사, 문자는 문자 회사. 거래처를 품목마다 따로 두는 것과 같아요. 창구끼리는 서로 몰라도 돼요. 다만 거래처가 늘수록 챙길 청구서와 키도 늘어난다는 것만 기억하세요.
- Q. 내 서비스도 API를 만들 수 있나요?
- 네. 남의 창구를 빌리는 쪽에서, 남에게 창구를 열어 주는 쪽이 될 수도 있어요. 제휴사가 내 데이터를 받아 가게 하는 식이죠. 규모가 커진 뒤의 이야기라, 지금은 그런 방향도 있다는 것만 알면 충분해요.
확인해 보세요
손님이 내 사이트에서 결제 버튼을 눌렀어요. 이 순간 실제로 벌어지는 일에 가장 가까운 건?
하나 더
어제까지 잘 뜨던 지도가 오늘 갑자기 안 떠요. 코드는 안 건드렸어요. 가장 먼저 할 일은?
직접 해보기
연결 센터에서 창구들을 구경해 보세요
결제사·백엔드·데이터베이스 같은 바깥 서비스를 내 프로젝트에 잇는 곳이에요. 어떤 창구들이 준비돼 있는지 눈으로만 봐도 감이 와요. 지금 연결하지 않아도 돼요.
연결 센터 열기더 깊이 (안 읽어도 괜찮아요)
REST와 엔드포인트라는 말이 보이면 · REST는 주문 양식의 가장 흔한 표준 스타일 이름이에요. 인터넷 주소로 대상을 가리키고, 정해진 동사 몇 개로 행동을 말하는 방식이죠. 개발자가 "REST API예요"라고 하면 "업계 표준 양식이라 다루기 쉽다"는 뜻으로 들으면 거의 맞아요. 엔드포인트는 한 창구 안의 개별 접수대 주소예요. 주문 접수대, 취소 접수대, 조회 접수대가 각각 다른 주소를 갖고 있어요.
답장에 찍히는 도장, 상태 코드 · 창구의 답장에는 세 자리 숫자 도장이 찍혀요. 200은 잘 됐다, 404는 그런 건 없다, 429는 너무 자주 왔다, 500은 그쪽 내부 사정이라는 뜻이에요. 400번대는 대체로 부탁한 쪽 문제, 500번대는 받은 쪽 문제라서, 이 숫자만 봐도 어느 쪽 탓인지 절반은 갈려요. 읽는 법은 에러 읽는 법에 더 있어요.
버전이 바뀌면 옛 주문서가 안 통해요 · 창구 주소에 v1, v2 같은 표시가 붙는 건 양식의 세대예요. 회사가 "v1을 몇 월에 닫습니다"라고 공지하면, 옛 양식으로 보내던 부탁이 그날부터 거절돼요. 거래처가 보내는 공지 메일을 스팸함에 버리지 말아야 하는 이유예요.
이것만 기억하세요
- ·API는 프로그램끼리 쓰는 접수 창구예요. 정해진 양식으로 부탁하고 답을 받아요
- ·결제·지도·문자·간편 로그인은 대부분 남의 창구를 빌린 거예요
- ·창구마다 출입증(키)과 요금표와 호출 한도가 있어요. 빌리기 전에 이 셋을 봐요
- ·고장의 절반은 상대 쪽 사정이에요. 증상 표의 문장을 AI에게 그대로 주세요
- ·남의 기능을 안 빌리는 사이트라면 아직 신경 쓸 일이 아니에요