API

김뉴오·2025년 6월 16일

키워드

목록 보기
12/16
post-thumbnail

API

API(application programming interface, 애플리케이션 프로그래밍 인터페이스, 응용 프로그램 프로그래밍 인터페이스)는 컴퓨터나 컴퓨터 프로그램 사이의 연결이다. 일종의 소프트웨어 인터페이스이며 다른 종류의 소프트웨어에 서비스를 제공한다.

클라이언트 - 서버 사이에서 클라이언트의 요청을 받아 서버에게 잘 전달 및 처리될 수 있도록 API가 처리해준다.

클라이언트(스마트폰) —- 요청 —→ 인터넷 —> API —> 서버(카카오톡 서버) ——- DB

  • 어떠한 방식으로 정보를 요청해야 하는지, 그리고 그러한 요청을 보냈을 때 어떠한 형식으로 무슨 데이터를 전달받을 수 있는지에 대해 정리한 일종의 규격이라고 볼 수 있습니다.

예시

예를 들어, 사용자가 "오늘의 날씨"를 알고 싶다고 했을 때,

  1. 클라이언트(앱)는 날씨 정보를 요청함
  2. API는 해당 요청을 날씨 데이터 서버에 전달
  3. 서버는 날씨 정보를 API를 통해 다시 클라이언트에 전달

즉, API는 사용자와 서버 사이의 중개자 역할을 하며, 요청을 주고받는 명확한 규격과 형식을 갖고 있습니다.

이 규격이 잘 정의되어 있어야, 서로 다른 프로그램 간에도 충돌 없이 소통이 가능합니다.


REST

  • REST (REpresentational State Transfer)는 웹에서 자원(Resource)을 HTTP로 표현하고 전송하기 위한 설계 원칙입니다.

REST 원칙

원칙설명
Client-Server 구조클라이언트와 서버를 분리
Stateless서버는 요청마다 상태를 저장하지 않음
Cacheable응답은 캐시 가능해야 함
계층 구조클라이언트는 중간 서버가 있는지 몰라도 됨
일관된 인터페이스 (URI)요청 인터페이스가 일관되어야 함

REST API

REST 원칙을 지키며 만든 API → RESTful API

즉, HTTP 요청을 통해 자원에 접근하는 인터페이스 설계 방식

기본 구성 요소

  • 자원(Resource): URI로 표현됨 (ex. /posts)
  • 행동(Verb): HTTP 메서드로 표현 (GET, POST, PUT, DELETE)
  • 표현(Representation): 자원의 현재 상태를 JSON, XML 등으로 전달

HTTP 메서드와 REST API 관계

REST API는 웹 자원(Resource)에 대한 작업을 HTTP 메서드로 표현합니다.

HTTP 메서드의미설명
GET조회리소스를 가져옵니다 (읽기)
POST생성리소스를 새로 만듭니다
PUT전체 수정리소스를 통째로 바꿉니다
PATCH부분 수정리소스의 일부분만 수정합니다
DELETE삭제리소스를 제거합니다

예시: 게시글(Post) 리소스를 다루는 REST API

요청 방식URL설명
GET/posts게시글 목록 조회
GET/posts/1ID가 1인 게시글 조회
POST/posts새 게시글 작성
PUT/posts/1ID 1번 게시글 전체 수정
PATCH/posts/1ID 1번 게시글 일부 수정
DELETE/posts/1ID 1번 게시글 삭제

즉, HTTP 메서드 + URL 조합이 REST API의 핵심입니다.

Express는 REST API를 내장하고 있는 것이 아니라,

REST API 방식으로 서버를 구현할 수 있도록 도와주는 프레임워크

따라서, 개발자가 REST API 방식에 맞춰 작성해야 RESTful한 API가 됨

profile
Bello! NewOld velog~

0개의 댓글