API(Application Programming Interface)란?

artp·2025년 9월 23일

cs

목록 보기
15/16
post-thumbnail

1. API(Application Programming Interface)란?

1.1. 개념: 프로그램 간의 대화 창구

API는 서로 다른 프로그램(애플리케이션)이 소통하고 상호작용하기 위해 사용되는 규칙과 도구의 모음입니다.
복잡한 내부 구현을 알 필요 없이, API가 제공하는 정해진 '창구'를 통해 요청을 보내고 원하는 결과를 얻을 수 있습니다.

예를 들어, 우리가 사용하는 console.log()alert() 역시 JavaScript 언어 자체의 기능이 아니라, 웹 브라우저라는 프로그램이 제공하는 API입니다. 우리는 브라우저의 콘솔이 어떻게 동작하는지 몰라도 console.log라는 API를 통해 메시지를 출력할 수 있습니다.

// Console API - 브라우저의 콘솔에 문자열을 출력하는 API
console.log("안녕하세요!");

// Alert API - 브라우저에 알림 창을 띄우는 API
alert("알림 메시지");

1.2. 함수 vs. API

  • 함수 (Function): 내 프로그램 내부에서 특정 작업을 수행하기 위해 만든 코드 묶음입니다. 내가 직접 정의하고 언제든 자유롭게 수정하고 사용할 수 있습니다.
  • API (Application Programming Interface): 다른 프로그램이 제공하는 기능을 정해진 규칙에 따라 사용하는 것입니다. 제공자가 정한 규칙을 따라야만 사용할 수 있습니다.

2. Web API: 웹 세상을 연결하는 다리

Web API는 웹 기술, 특히 HTTP 프로토콜을 기반으로 외부 프로그램(서버)의 기능이나 데이터를 사용할 수 있게 해주는 API입니다.

2.1. 클라이언트와 서버

Web API의 통신은 항상 요청하는 쪽과 응답하는 쪽으로 나뉩니다.

  • 클라이언트 (Client): 서비스를 요청하는 프로그램입니다. (예: 웹 브라우저, 스마트폰 앱)
  • 서버 (Server): 요청을 받아 처리하고, 그 결과를 응답하는 프로그램입니다.

2.2. HTTP: 클라이언트와 서버의 대화 규칙

HTTP(HyperText Transfer Protocol)는 클라이언트와 서버가 웹에서 서로 데이터를 주고받기 위해 사용하는 핵심 통신 규약입니다. HTTP 통신은 항상 요청(Request)응답(Response) 한 쌍으로 이루어집니다.

  • 리소스 (Resource): 웹에서 접근 가능한 모든 것(HTML 문서, 이미지, 동영상, 데이터 등)을 의미합니다.
  • 요청 (Request): 클라이언트가 서버에게 특정 리소스를 달라고 하거나, 특정 작업을 해달라고 보내는 메시지입니다.
  • 응답 (Response): 서버가 클라이언트의 요청을 처리한 후, 그 결과를 담아 보내는 메시지입니다.

2.3. REST 아키텍처: 효율적인 소통 방식

REST(REpresentational State Transfer)는 Web API를 설계하는 데 널리 사용되는 아키텍처 스타일 중 하나입니다. HTTP를 기반으로, 어떻게 하면 리소스를 효율적으로 정의하고 다룰 수 있는지에 대한 원칙을 제공합니다.

REST의 3가지 핵심 요소:

  1. 자원 (Resource): 서버가 관리하는 데이터 (예: 게시글, 사용자, 상품). URL을 통해 각 자원을 고유하게 식별합니다.
  2. 행위 (Verb): 자원에 대해 수행할 작업. HTTP 메서드(Method)를 통해 표현합니다.
  3. 표현 (Representation): 자원을 어떤 형태로 주고받을지 정의. 주로 JSON 형식을 많이 사용합니다.

주요 행위 (HTTP Methods)

메서드목적설명
GET조회지정된 리소스의 정보를 가져옵니다.
POST생성새로운 리소스를 생성합니다.
PUT전체 수정지정된 리소스의 전체를 새로운 정보로 교체합니다.
PATCH일부 수정지정된 리소스의 일부를 수정합니다.
DELETE삭제지정된 리소스를 삭제합니다.

3. URL: 리소스의 고유 주소

URL(Uniform Resource Locator)은 웹에 있는 방대한 리소스의 위치를 유일하게 식별할 수 있는 주소 체계입니다.

URL 구조 분석

예시: https://www.naver.com/search?query=날씨&location=서울

구성 요소예시설명
스키마 (Scheme)https://통신 방식(프로토콜)을 정의합니다. (예: http://, https://)
도메인 (Domain)www.naver.com리소스가 위치한 서버의 고유한 이름입니다.
경로 (Path)/search서버 내에서 리소스의 구체적인 경로를 나타냅니다. (예: /posts/123)
쿼리 (Query)?query=날씨&location=서울서버에 추가적인 정보를 전달할 때 사용합니다. ?로 시작하며, 각 파라미터는 &로 구분됩니다. 주로 검색, 필터링, 정렬 등에 사용됩니다.

4. 실습: 웹 브라우저로 Web API 호출하기

실제 Web API를 호출하여 데이터를 받아오는 방법을 알아봅시다.

4.1. 준비물

  • JSON Formatter: 웹 브라우저(Chrome, Edge 등)의 확장 프로그램입니다. API 응답으로 받은 JSON 데이터를 보기 좋게 정렬해 주어 개발 편의성을 높여줍니다. 스토어에서 검색하여 설치할 수 있습니다.
  • JsonPlaceholder: 개발자들이 API 호출을 연습할 수 있도록 가짜(더미) 데이터를 제공하는 무료 온라인 서비스입니다.

4.2. API 호출 예시

웹 브라우저 주소창에 아래 URL을 입력하고 엔터를 치면, 서버로부터 응답받은 데이터를 확인할 수 있습니다.

  • 전체 게시글 목록 가져오기 (GET)

    • https://jsonplaceholder.typicode.com/posts
  • ID가 1번인 게시글 하나만 가져오기 (GET)

    • https://jsonplaceholder.typicode.com/posts/1
  • 전체 사용자 목록 가져오기 (GET)

    • https://jsonplaceholder.typicode.com/users
  • ID가 1번인 사용자의 게시글 목록만 가져오기 (GET)

    • https://jsonplaceholder.typicode.com/posts?userId=1

5. 정리

  • API는 프로그램 간의 소통을 가능하게 하는 약속이자 인터페이스입니다.
  • Web API는 HTTP 프로토콜과 URL 주소 체계를 기반으로 동작하며, 클라이언트-서버 구조를 따릅니다.
  • REST 아키텍처는 HTTP 메서드와 URL을 활용하여 리소스를 효율적으로 다루는 설계 원칙을 제공하며, 현대 Web API의 표준으로 자리 잡았습니다.
profile
donggyun_ee

0개의 댓글