API 서버란 무엇인가

3 분 소요

의외로 웹 어플리케이션을 처음 접하는 사람 중에, API 서버가 무엇인지 & 왜 필요한지를 모르는 경우가 있다. 그래서 간략하게 짚고 넘어가고자 한다. 아래 설명은 REST API에 대한 설명과 많이 맞닿아있음을 참고해주시라.

API 서버를 알기 전에 API가 무엇인지에 대한 이해부터 필요한데, 사용되는 도메인마다 그 뜻이 다르게 해석될 수 있어서 정확한 개념을 전달하기는 어렵다. 다만 내 경험으로는 “두 관계 간에 데이터를 주고받을 수 있도록 고안된 인터페이스”라고 생각하면 대부분 들어맞았다.

📖 API : Application Programming Interface

인터페이스라고 하면 웹UI 같이 그래픽적인 요소를 생각하기 쉽지만, 사실 인터페이스라는 말은 GUI의 출현 이전에도 있었다. User Interface라고 하면 사용자가 쉽게 정보를 이용하고 새로운 정보를 생성할 수 있도록 해주는 창구와 같은 개념을 지칭하는 것이지 꼭 그래픽이 있어야 하는 건 아니다.

마찬가지로 API도 일종의 인터페이스인데, Java API를 생각하면 쉽다. 프로그래머가 Java 시스템을 쉽게 이용할 수 있도록 명령어들을 정의해놓은 것이 Java API이지 않는가? 정보 이용자를 위해서 명령어들을 편리하게 사용할 수 있도록 정리해둔 것이라면 API라고 생각할 수 있다.

그렇다면 API 서버는 더도 말고 덜도 말고 API를 제공해주는 서버를 API 서버라고 하는 것이다. 쉽다. 하지만 좀 더 설명하기 위해선 API 서버가 왜 필요한 것인지 알 필요가 있다.

모바일 앱의 경우를 생각해보자. 비전공자 입장에서는 모바일 앱 내에 정보가 담겨 있다고 생각할 수도있지만, 사실은은 그렇지 않다. 클라이언트(앱)은 껍데기에 불과할 뿐, 거의 모든 정보는 서버에서 끌어다 쓴다. 왜 그렇게 해야 할까? 이유는 간단하다.

  1. 변경된 정보가 즉시 다른 이용자에게도 업데이트되어야 할 때, 한 클라이언트가 다른 모든 클라이언트와 통신하는 것보다 하나의 서버가 다른 클라이언트에게 정보를 전달해주기가 쉽다.
  2. 공간적 한계가 있다. 수많은 데이터를 클라이언트마다 저장하는 것은 낭비이다.
  3. 나에게 권한이 있지 않은 데이터까지 모두 클라이언트에 보관하는 것은 보안 문제가 있다.

이러한 이유들로 데이터를 클라이언트로부터 분리해서 서버에 저장할 수밖에 없다. 그러므로 클라이언트는 정보에 접근하고 정보를 수정하기 위해 서버에 지속적으로 요청을 보내야 하고, 이 요청을 보내는 방법을 약속해둔 것이 바로 API인 것이다.

그러므로 현대의 거의 모든 서비스는 서버와 클라이언트를 분리하고, 자신만의 API를 만들어서 클라이언트가 데이터를 이용할 수 있도록 한다. 그리고 그 API를 제공해주는 것이 API 서버인 것이다.

태그: ,

카테고리:

업데이트:

댓글남기기