어휘

API란 무엇인가요?

  이 페이지는 DeepL 에서 자동으로 번역되었습니다. Switch to English

API(응용 프로그램 인터페이스)는 한 소프트웨어가 다른 소프트웨어와 소통할 수 있게 하는 규칙의 집합입니다. 이를 메뉴라고 생각해보세요: 앱이 데이터나 동작을 '주문'하면, API가 주방(서비스)에 정확히 무엇을 요리하고 어떻게 제공할지 알려줍니다.

API는 요청을 수행하는 방식과 응답을 반환하는 방식을 표준화하므로, 서로 다른 팀이나 기업에서 개발했거나 서로 다른 프로그래밍 언어로 작성된 시스템이라도 안정적으로 협업할 수 있습니다.

how-a-web-api-works

API는 실제로 무엇을 하는가?

기본적으로 API는 호출 가능한 엔드포인트 (주소), 사용 가능한 메서드 (데이터 가져오기용 GET, 데이터 전송용 POST 등), 전송 데이터 형식 (주로 JSON), 그리고 반환될 결과(데이터와 함께 'OK'를 의미하는 200, '찾을 수 없음'을 의미하는 404 같은 상태 코드)를 정의합니다. 이러한 예측 가능성 자체가 핵심입니다.

API vs. SDK vs. UI, 차이점은 무엇인가요?

  • API: 요청할 수 있는 내용과 응답을 받는 방식에 관한 계약.
  • SDK(소프트웨어 개발 키트): API 사용을 용이하게 하기 위해 미리 작성된 코드, 예제 및 유틸리티로 API를 감싸는 도구 모음입니다.
  • UI(사용자 인터페이스): 사람이 클릭하고 탭하는 것. API는 소프트웨어 간 통신을 위한 것이고, UI는 사람을 위한 것이다.

정확히 말하자면, SDK 없이도 API를 사용할 수 있지만, SDK를 사용하면 시간을 절약하고 실수를 줄일 수 있습니다.

API에는 서로 다른 "유형"이 존재하나요?

네, 여러 가지 스타일이 있으며 각각 장단점이 있습니다:

  • REST: 오늘날 가장 보편적인 웹 스타일입니다. 리소스 기반이며, HTTP 메서드(GET/POST/PUT/DELETE)를 사용하며, 일반적으로 JSON을 사용합니다.
  • GraphQL: 클라이언트는 단일 요청에서 필요한 정확한 필드를 지정합니다—과도한 또는 부족한 데이터 가져오기를 줄이는 데 탁월합니다.
  • SOAP: 엄격한 계약을 가진 오래된 XML 기반 프로토콜로, 일부 기업에서 여전히 사용되고 있음.
  • gRPC: 마이크로서비스에 널리 사용되는 고성능 바이너리 프로토콜.
  • 웹훅: 사용자가 요청하는 것이 아니라, 특정 이벤트(예: 배송 알림) 발생 시 제공자가 사용자에게 보내는 콜백입니다.
rest-api

API 사용은 '가치가 있는가'?

일반적으로 그렇습니다. 모든 것을 직접 구축하는 대신, API를 통해 결제, 지도, 이메일, 검색, 분석, AI 등을 간편하게 연동할 수 있습니다. 이는 엔지니어링 시간을 절약하고, 신뢰성을 높이며(서비스 제공자가 자체 서비스를 지속적으로 업데이트합니다), 팀이 제품의 차별화된 가치 창출에 집중할 수 있게 합니다.

장단점: 공급자로부터 속도 제한, 가격 정책, 가동 시간 의존성을 그대로 물려받게 됩니다. 해당 API 없이는 제품이 작동할 수 없다면 중복성을 계획하세요.

API를 사용하려면 특별한 "키"가 필요한가요?

자주. 많은 API는 인증을 요구합니다. 이를 통해 제공자는 사용자를 식별하고 권한 및 속도 제한을 적용할 수 있습니다. 일반적인 접근 방식은 다음과 같습니다:

  • API 키: 각 요청과 함께 전송하는 간단한 토큰입니다.
  • OAuth: 사용자를 대신하여 접근이 필요할 때 유용한, 보다 안전하고 위임된 방식입니다.
  • 서명된 요청 / JWT: 암호화 서명이 적용된 토큰으로, 만료되며 클레임(사용자 신원, 허용된 작업)을 포함할 수 있습니다.

가능한 한 공개 저장소와 클라이언트 측 코드에서 키와 토큰을 제외하십시오.

API를 호출하려면 특별한 도구가 필요한가요?

그렇지 않습니다. 웹 브라우저, curl 또는 어떤 HTTP 클라이언트든 많은 API에 사용할 수 있습니다. 개발자들은 요청을 보내고, 응답을 확인하며, 예시를 저장하기 위해 Postman 같은 도구나 내장 언어 라이브러리를 자주 사용합니다. 실제 운영 환경에서는 해당 언어의 HTTP 라이브러리나 제공자의 SDK를 사용하게 됩니다.

실생활에서 API를 사용하는 것은 무엇인가요?

현대적인 거의 모든 것: 모바일 앱의 프로필 불러오기, 'Google/Apple로 로그인', 온라인 스토어의 결제 처리, 스마트 홈 기기의 동기화, 대시보드의 분석 데이터 불러오기, 심지어 날씨 위젯까지. 소프트웨어가 데이터를 교환한다면, 그 이면에는 API가 존재할 가능성이 높습니다.

client-server-architecture

흔히 접하게 될 전문 용어 (그리고 그 의미)

  • 엔드포인트: 호출하는 URL (예: /users/123).
  • 요청 / 응답: 보낸 내용 vs. 받은 내용.
  • 페이로드 / 본문: 요청 또는 응답 내부의 데이터.
  • 상태 코드: 숫자 결과 (200 OK, 201 생성됨, 401 권한 없음, 429 요청 과다, 500 서버 오류).
  • 요금 제한: 특정 시간 동안 수행할 수 있는 호출 횟수.
  • 버전 관리: 기존 및 새로운 API 동작을 분리하여 유지(예: /v1/ 대 /v2/).
  • 항등성: 동일한 요청을 여러 번 수행해도 동일한 결과를 반환함(예: GET).

관련 콘텐츠