API와 API 서버 개념 잡기
API는 '프로그램과 프로그램을 연결시켜주는 매개체'입니다.
실제로 프로그램들끼리 통신하는 경우가 정말 많아요. 우리가 사용하는 모바일 앱을 보면 외부 카메라, 앨범, 주소록, 외부 앱과 연결되어 있잖아요? 서로 다른 프로그램끼리 통신을 하는 경우 보통 API를 이용해서 통신을 한다고 보면 됩니다.
프로그램끼리 통신을 하기 위해선 프로그램을 만드는 개발자가 해당 프로그램이 잘 통신할 수 있도록 규칙들을 잘 설계하는 게 중요합니다. 그래야 다른 다른 프로그램이 수월하게 통신할 수 있겠죠?
이때 아래와 같은 상황에 API는 프로그램과 프로그램 사이의 중개자 역할을 해줍니다.
- 접근할 프로그램의 규칙이 잘 짜이지 않고 복잡한 경우
- 프로그램 보안 상 외부에서 누구나 사용할 수 없고 제한된 기능들을 간접적으로 제공하고 싶을 때
API(Application Programming Interface)는 쉽게 이야기하면 규칙들의 집합입니다.
대신할 프로그램의 기능들을 미리 정리해서 규칙을 잘 세워둔다면, 클라이언트는 접근할 프로그램을 모르더라도 API를 이용해 손쉽게 통신을 할 수 있게 됩니다.
그렇게 되면 클라이언트 프로그램은 접근해야 하는 프로그램에 접근하지 않고 편하게 API를 통해 정보를 요청할 수 있도록 됩니다.
이때 API 서버는 규격화 되어 있는 서버라고 생각하시면 됩니다. 대표적으로 데이터베이스를 대신해서 규칙들(로그인하기, 상품정보 보기, 결제하기 등)이 정의되어 있어요. 클라이언트는 데이터베이스가 아닌 API 서버와 통신하겠죠?
[API의 사용 사례]
- 날씨 데이터 같은 공공 데이터를 손쉽게 접근할 수 있도록 국가에서는 기상청 API를 제공한다.
- 회사의 데이터베이스의 보안 때문에 API 서버를 두고 클라이언트와 통신하게 한다.
API 문서
보통 웹에서 로그인을 할 때 '카카오 로그인' 기능을 많이 넣습니다. 이 경우 클라이언트(개발자)들은 카카오 서버 개발자가 만들어 둔 서버 API를 이용해서 구현했을 거예요.
카카오 로그인 API 문서를 보면 어디(url)에 무엇을(Parameter)을 보내면 무슨 응답(Response)을 줄지가 전부 약속되어 있는 것을 확인할 수 있습니다.
웹 서비스를 제공하는 IT 회사가 사용하는 기술 A to Z 훑고 가기
이번 편은 웹 서비스를 제공하는 회사에서 사용되는 기술들을 알아보려고 합니다. 우리는 편하게 이용하고 있지만 뒤에서는 많은 인원의 개발자들이 고뇌와 함께 키보드를 두들기고 있죠. 본 글에서는 하나의 웹 서비스를 제공하는 회사가 사용하는 기술들을 정리해 봤습니다!
댓글
의견을 남겨주세요