API가 도대체 뭔데

2026. 2. 24. 17:15·CS

Intro.

사실 API란 녀석은.. 참으로 어렵다. 느낌은 알겠는데 이해하기 쉽지 않은 놈이다. 이미 공부도 해보고 개발도 해봤지만,  100% 알지 못하겠는 느낌. 이 참에 끝장을 봐야겠다.

 


What is an API?

API의 사전적인 의미는 다음과 같다.

API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다.

 

이해는 가지만 뭔가 확 와 닿지는 않는다. 보통 식당에 비유를 많이 하고는 하는데, 너무 흔하니까 다른 비유를 예시로 들자면 운전이다. 자동차의 원리를 전부 알고 운전을 하는 사람은 많지 않을 것이다. 자동차가 무슨 원리로 앞으로 나가는지는 몰라도 운전만 할 줄 알면 자동차를 이용할 수 있다. API는 그런 맥락과 일맥상통한다. 

 

식당도 그렇지만, 물론 완벽한 비유는 아니다. 내가 내부의 세세한 로직을 직접 짜지 않아도 라이브러리를 가져다 쓰거나 혹은 이미 프로그래밍 언어 자체가 0과 1로 이루어진 복잡한 로직 대신에 우리에게 익숙한 언어로 코드를 짜는 것을 보면 우리는 이미 API를 쓰고 있다.

 

애초에 API는 인터페이스의 일종이기 때문에 인터페이스와 마찬가지로 복잡한 내부 로직을 숨기고 간단하게 기능들을 사용해 개발의 효율성을 올리기 위해 고안된 것이다.

 

API는 어떤 기준으로 분류하느냐에 따라 정말 다양한 종류로 나뉘어진다. 그렇기 때문에 동시에 이 API면서 저 API일 수도 있는 것이다. (Private API면서 RESTful API일 수도 있다.)

 


접근 권한에 따른 API 분류

누가 이용할 수 있냐에 따른 분류로 Public API, Private API, Partner API 정도로 나뉜다. 

 

Public API (Open API)

외부에서 누구나 사용할 수 있도록 기업이나 기관에서 공개한 API이다. 보통 사용법이 기재된 문서와 함께 공유한다. 문서가 없어도 주소를 통해 알아낼 수 있으면 Pulbic API의 성격을 띄긴 하지만.. (모르는데 어떻게 써요) 사실상 사용 불가능하다고 본다.

 

보통 Open API라는 단어와 큰 차이가 없어서 혼용한다. 이따가 더 자세히 설명하겠지만, OpenAPI(OAS)랑 다른 개념이기 때문에 헷갈리는 것을 방지하기 위해서 Public API라고 하겠다.

 

Open API인데 문서가 없는 것은 조립식 가군데 설명서가 없는 것과 마찬가지

 

대표적으로 소셜 로그인(구글, 네이버 등)과 지도, 공공 데이터 포탈 API 등이 있다.

 

Partner API

서로 계약한 비즈니스 파트너(주로 기업)에게만 공개하는 API다. 회사끼리 데이터를 공유하거나 협력 개발, 스프트웨어 통합을 목적으로 사용된다.

 

식당에 있는 카운터의 포스기를 보면 배달앱에서 배민, 쿠팡, 요기요 등과 연동해서 사용하는 것을 확인할 수 있다. 이런 게 Partner API를 이용해서 배달앱과 연동해서 데이터를 받아오는 것이다.

 

Private API

제 3자에게는 공개되지 않는 내부 API이다. 개발에 직접적으로 이용되며, 우리가 웹 개발할 때 만들어서 사용하는 API의 대부분이 Private API이다.

 

흔히 말하는 영업 비밀 (식당으로 따지면 비밀 레시피)

 

 


구조에 따른 분류

권한에 따른 분류가 누가 이용할 수 있는지가 중점이었다면, 이번엔 어떻게 생겨 먹었냐에 따른 분류다. 이 외에도 기능 및 형태 등으로 분류하기도 한다. (웹 API나 데이터베이스 API 등)

 

SOAP API

SOAP은 Simple Object Access Protocol의 약자로 90년대 후반, 서로 다른 컴퓨터 시스템에서도 안전하고 표준화된 방식으로 통신하기 위해서 SOAP API가 만들어졌다. Simple이란 단어에 속으면 안된다. 주로 대기업이나 금융 관련 기업에서 사용되었는데, 그만큼 엄격한 보안과 높은 무결성을 요구했기 때문에 Simple일 수가 없다. (마치 교수님식 쉬운 시험)

 

REST API가 단순히 카톡 메세지를 주고 받는 것이라면, 이 친구는 공문서 등기 우편을 보내는 것과 같다.

 

 

XML 형식을 기반으로 통신하며 현재는 보안이 중요한 시스템이나 레거시 시스템에서 많이 쓰인다고 한다.

 

REST API

REST는 Representational State Transfer의 약자이다. 2000년 쯤 웹이 급격하게 커지면서 수많은 컴퓨터가 데이터를 주고 받기 시작했다. 당시 HTTP와 HTML의 개발진 중 한 명이 SOAP처럼 새로운 규약과 계층을 만들어 복잡하게 통신하는 것을 보고 웹 표준을 활용해서 쉽게 데이터를 전송할 수 있도록 하기 위해 처음으로 제시했다. (답답해서 직접 뛴다의 예시?) 인터넷만 있으면 어디서든 쉽게 통신할 수 있고, 무엇보다 배우기도 쉽다는 장점 덕분에 널리 쓰이기 시작했다. 

 

JSON 형태로 주고 받으며 무슨 자원(데이터)인지 URL 형식으로 표시하고, HTTP 메서드를 이용해 자원을 어떻게 사용할지 명확하게 전달하는 방식을 사용한다.

 

사실상 웹 개발 상당수의 지분을 차지하고 계신 대주주님이고, Public API의 대부분도 REST API이다. 주인공인 만큼 추후에 다른 게시글로 더 자세히 다루겠다.

 

 


Open API vs OpenAPI(OAS)

위에서 설명한 것처럼 Open API는 Public API라고 생각하면 된다. 하면, 도대체 OpenAPI는 무엇이냐.. 고작 띄어쓰기 하나 안했다고 의미가 달라지는게 어디나라 상도덕인가 싶긴 하다. 사실 풀네임은 OpneAPI Specification(OAS)이다.

 

API를 개발할 때 해당 API에 대한 내용을 담은 API 명세서라는 것을 작성한다. 그것의 원조가 그 유명한 Swagger인데, 이게 너무 마음에 들었던 개발자들은 이걸 국제 표준으로 만들자라는 생각으로 표준으로 지정하면서 OpenAPI라는 이름으로 바뀌었다고 한다.(얼마 벌었을까?)

 

RESTful API를 개발 언어에 구애받지 않고 누구나 쉽게 쓸 수 있도록 정한 문서화 표준이 OAS이다. Public API의 대부분도 이 표준에 맞춰서 문서를 작성한다.

 

'CS' 카테고리의 다른 글

🤯그게 그거 아닌가? 멀티 프로세스 vs 멀티 스레드  (0) 2026.03.14
💻프로세스? 스레드? 어디서 들어는 봤는데..  (0) 2026.03.10
😗TCP? HTTP랑 비슷한 거 아님?  (0) 2026.03.03
🤔 REST API랑 RESTful API, 뭐가 달라? (진짜 모름)  (0) 2026.02.25
인터페이스 = API ?  (0) 2026.02.22
'CS' 카테고리의 다른 글
  • 💻프로세스? 스레드? 어디서 들어는 봤는데..
  • 😗TCP? HTTP랑 비슷한 거 아님?
  • 🤔 REST API랑 RESTful API, 뭐가 달라? (진짜 모름)
  • 인터페이스 = API ?
asht1124
asht1124
DEV blog
  • asht1124
    ASHT
    asht1124
  • 전체
    오늘
    어제
    • 분류 전체보기 (18)
      • 프런트엔드 (0)
      • 백엔드 (0)
        • Sping (0)
      • Dev-ops (0)
      • CS (18)
        • Web 이론 (2)
        • 보안 (1)
        • DB (4)
        • 네트워크 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    rdb
    프로토콜
    nosql
    멀티 프로세스
    스레드
    정규화
    3-way handshake
    멀티 스레드
    데이터 무결성
    acid
    비대칭키
    http
    OAS
    인터페이스
    반정규화
    RESTful API
    프로세스
    2NF
    PCB
    3NF
    tcb
    4-way handshake
    rest
    API
    1NF
    보안
    tcp
    BCNF
    비밀키
    REST API
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
asht1124
API가 도대체 뭔데
상단으로

티스토리툴바