이 장의 내용 · 7
내 사이트에 결제 기능을 넣고 싶다고 해서 결제 시스템을 처음부터 만들 필요는 없습니다. 이미 잘 만들어진 결제 서비스의 기능을 빌려 쓰면 됩니다. 이때 쓰는 창구가 API(Application Programming Interface)입니다.
15.1식당 주문 창구를 떠올려 보세요
- 메뉴판 = API 문서: 무엇을 주문할 수 있는지 적혀 있습니다.
- 주문 = 요청(request): "이걸 해 주세요"
- 음식 = 응답(response): 결과물. 대부분 JSON7장 형식입니다(7장 참고).
요청: GET /cohorts
응답: 200 OK
[{ "title": "10월 1기", "status": "모집중" }]15.2주문 방법은 네 가지
- GET: 가져오기. 목록이나 상세 내용을 봅니다.
- POST: 새로 만들기. 신청서 제출, 글쓰기.
- PATCH: 고치기. 일부 내용을 수정합니다. (비슷한 PUT도 있지만 처음엔 몰라도 됩니다.)
- DELETE: 지우기.
15.3응답 번호로 결과 읽기
응답에는 세 자리 번호가 붙습니다. 이것만 읽어도 무슨 일이 있었는지 알 수 있습니다.
- 200번대: 성공
- 400: 요청 내용이 잘못됨
- 401, 403: 권한 없음. 로그인이나 키를 확인하세요.
- 404: 그런 주소가 없음
- 500번대: 상대 서버 쪽 문제
15.4실제로는 이렇게 쓰입니다
이 홈페이지의 수강 신청 결제도 API로 동작합니다. 결제창에서 결제를 마치면, 우리 서버가 토스페이먼츠의 승인 API에 "이 결제, 금액이 맞으니 승인해 주세요"라고 요청합니다. 성공 응답을 받은 뒤에야 신청을 완료로 처리합니다.
15.5API 키, 창구의 출입증
대부분의 API는 누가 요청했는지 알기 위해 키를 요구합니다. 키는 출입증이자 결제 카드 같은 것이라, 새어 나가면 남이 내 이름으로 요청을 보낼 수 있습니다. 키를 안전하게 두는 방법은 16장16장에서 자세히 다룹니다.
15.6자주 하는 실수 세 가지
- 비밀 키를 화면 코드에: 브라우저에서 바로 API를 부르면 키가 그대로 노출됩니다. 비밀 키가 필요한 요청은 서버에서 보내세요.
- 성공했다고 가정: 응답 번호를 확인하지 않으면, 실패했는데도 "완료"라고 보여 주는 화면이 됩니다.
- 너무 자주 호출: 반복문 안에서 API를 수백 번 부르면 요청 제한(429)에 걸리거나, 유료 API라면 요금이 늘 수 있습니다.
15.7AI에게 이렇게 말해 보세요
- “이 API 문서 읽고, 필요한 요청 예시 만들어 줘”
- “이 응답 JSON이 무슨 뜻인지 설명해 줘”
- “에러 응답이 오면 사용자에게 안내 문구를 보여 줘”
5부에서는 만든 서비스를 세상에 내놓습니다. 그 첫 단계로, 16장에서는 API 키 같은 비밀 값을 안전하게 보관하는 환경변수를 알아보겠습니다.
— 15장 끝 —





