개발

[IT 백과사전] API?

Onve 2024. 3. 9. 23:25

서비스 프로젝트라면 나올 수 밖에 없는 단어가 있다.

 

바로 API인데, 검색해보면 Application Programming Interface(응용 프로그램 프로그래밍 인터페이스)라는 이름의 어려운 용어가 나오게 된다.

 

API는 에이피아이라 읽고(애피!가 아니다), 폭넓은 의미를 가지고 있다.

 

하지만, 개념적으로는 굉장히 쉽고, 이해만 한다면 이를 고려하며 기획이나 디자인에 긍정적인 영향을 줄 수 있다.

 


 

서비스는 최소 2개 이상의 프로그램으로 이루어져있다

이전 포스팅인 클라이언트/프론트엔드, 서버/백엔드의 그림을 다시 한번 보자.

서비스 구현을 위해서는 최소 컴퓨터 2개 이상이 필요하다.

 

IT 서비스를 만들기 위해서는 프론트와 백, 즉 최소 두 개 이상의 컴퓨터가 필요하다.

 

이 말은 곧 컴퓨터와 컴퓨터가 서로 소통을 해야만 서비스가 정상적으로 작동하고, 우리가 원하는 요소들을 얻을 수 있다는 의미이기도 하다.

 

여기서, 소통하는 방식을 바로 Application Programming Interface, API라고 한다.

 

 

컴퓨터(프로그램)끼리 어떻게 소통하나요?

컴퓨터끼리의 소통 전에, 사람과 사람 사이의 소통에 대해서 이야기 해보자.

일반적으로 정상적인 대화는 같은 문맥과 같은 문법 규칙을 공유한다.

 

일반적으로, 정상적인 소통은 같은 문맥과 같은 문법 규칙을 공유하는 정상적인 대화를 통해 이루어진다.

 

만약, 같은 문맥이나 같은 문법 규칙을 공유하지 않는다면 어떻게 될까?

 

특수한 상황이라면 정상적인 대화일 수 있으나, 일반적인 상황에서는 정상적인 소통이 이루어지고 있다고 보기 어렵다.

 

보는 것과 같이 소통을 위해서는 문맥과 문법 규칙의 공유가 필요하다.

 

컴퓨터간의 소통에도 마찬가지로 같은 문맥과 문법의 공유가 필요하고, 이를 체계화 시켜놓은 것을 API라고 한다고 생각하면 된다.

 


 

프로그램 간의 소통 규약, API

이전에 사용했던 쇼핑몰 매장의 경우를 생각해보자.

 

우리가 개발하고 있는 쇼핑몰에서는 이번에 장바구니 기능을 추가하기로 했었다.

 

그렇다면, 우리의 프론트엔드 개발자와 백엔드 개발자는 다음과 같이 작동하는 코드를 작성할 것이다. 

 

실제로 말로 하지는 않는다. 밑에서 어떤 구조로 주로 이야기하는지 다루었다.

 

이때, 이 말풍선들이 바로 API이고, 개발자들끼리 어떤 종류로 이러한 대화를 나누게 할지 정하는 것이 바로 API 시트(API 명세라고도 한다)인 것이다.

 

그럼 어떤 방식으로 정보를 요청하고, 첨부하는 것일까? 

 

다양한 방법이 있으나, 여기서는 가장 주요하게 많이 듣게 될 방식인 Json을 이야기 하도록 하겠다.

 

Jason..?이 아니라 JSON

JSON은 Javascript Oriented Object Notation의 줄임말로, 제이슨이라고 읽는다.

 

일종의 소통 방식이자 규칙이 포함된 데이터 파일이라고 생각하면 되는데, 실제로는 이런 형태로 생겼다.

{
    "고객이름": "Onve",
    "장바구니에 넣은 개수": 3,
    "장바구니에 넣은 목록": [
    	{ "상품 이름": "타임타이머" },
        { "상품 이름": "아이폰 15 Pro" },
        { "상품 이름": "에어팟 맥스" }
    ]
}

 

그냥 이러한 txt파일(실제로는 .json 파일이다)이 왔다갔다가 하며 정보를 전달하는 것이라고 생각하면 된다.

 

아까의 예시를 실제 정보의 이동으로 표현한다면 다음과 같은 것이다.

 

더 나아가 엔드포인트, 메소드 등이 있으나 이는 추후 더 자세히 다루겠다.

 

정리하자면, 다음과 같다.

 

  1. IT 서비스는 다양한 컴퓨터와 프로그램이 사용된다.
  2. 이럴 때 컴퓨터와 프로그램이 서로 소통하는 방법을 정한 것이 API다.
  3. API를 통해 서로 정보를 교환하고, 주로 JSON과 같은 방식을 사용한다.