Post

[개발 환경] API (Application Programming Interface)

[개발 환경] API (Application Programming Interface)

API란?

API는 서로 다른 소프트웨어나 프로그램들이 대화하고 데이터를 주고받기 위한 창구이다.

흔히 API를 설명할 때 가장 많이 사용하는 비유가 레스토랑이다.

  • 손님 (클라이언트/나의 앱): 메뉴를 보고 음식을 고른 뒤 주문을 한다. 주방에서 요리가 어떻게 만들어지는지는 알 필요가 없다.
  • 점원 (API): 손님의 주문을 받아서 주방에 전달하고, 요리가 완성되면 다시 손님에게 가져다주는 역할을 한다. (요청에 대한 응답)
  • 주방 (서버/데이터베이스): 주문을 받아 실제로 요리를 수행하는 곳이다. (데이터 처리)

즉, API는 손님과 주방 (클라이언트와 서버) 사이에서 주문을 전달하고 음식을 서빙해 주는 점원 역할을 하는 것으로 생각하면 된다.

fig1

예시

날씨 앱

스마트폰의 날씨 앱은 자체적으로 온도를 측정하지 않는다.
대신 기상청 서버에 오늘 서울 날씨 데이터를 달라고 기상청 API에 요청하면, API는 그 데이터를 받아와서 화면에 보여주는 것이다.

챗GPT API

내가 만든 앱이나 웹사이트에서 챗GPT의 능력을 빌려오기 위해, OpenAI의 서버에 연결하는 창구이다.
프로그램 코드를 통해 이 질문에 대답해달라고 API에 요청하면, 챗GPT가 생성한 답변 텍스트를 돌려받는다.

API가 필요한 이유

모든 기능을 바닥부터 직접 만들 필요 없이, 이미 남들이 만들어둔 기능 (지도, 결제, 로그인 등)을 쉽게 가져다 쓸 수 있다.

또한 서버에 외부 프로그램이 직접 들어오게 하면 위험한데, API를 통해서만 소통하기 때문에 서버의 핵심 데이터베이스를 안전하게 보호할 수 있다.

This post is licensed under CC BY 4.0 by the author.