API와 REST API는 뭘까?

2coconut·2025년 4월 15일
post-thumbnail

API와 REST API 알아보기

개발자라면 한 번쯤 들어봤을 "API" 와 "REST API"를 한번 알아보자!


API란 무엇일까?

우선 API는 Application Programming Interface 의 약자이다.
쉽게 말해, 서로 다른 프로그램이나 서비스가 소통할 수 있게 해주는 통로이다.

예시로 이해하기

  • 네이버/카카오/구글 로그인
    새로운 사이트에 가입할 때 "카카오로 로그인" 버튼이 바로 대표적인 예시이다.
    버튼을 누르면 내 정보가 카카오에서 해당 사이트로 넘어가는데, 바로 이 과정에 API가 사용된다.
  • 지도 서비스
    배달 앱에서 음식점 위치를 볼 때, 앱이 직접 지도를 만드는 게 아니라 "구글 지도 API"나 "카카오맵 API"를 불러와서 보여준다.
  • 결제 시스템
    온라인 쇼핑몰에서 카드 결제를 할 때, 쇼핑몰이 직접 카드 정보를 처리하지 않고, 카드사 API를 통해 결제 요청을 보낸다.

즉, API는 우리가 모르는 사이에 다양한 서비스와 앱에서 정보를 주고받는 다리 역할을 하고 있다.


REST API란?

API에도 여러 종류가 있는데, 여러 종류 중 가장 많이 쓰이는 방식이 바로 REST API이다.

REST란?

REST는 "Representational State Transfer"의 약자로, 웹 서비스 구축을 위한 아키텍처 방식이다. 리소스를 URI로 표현하고, HTTP 메서드(GET, POST 등)로 자원을 조작하는 규칙을 정의합니다. 이는 상태를 저장하지 않고, 클라이언트-서버 분리, 일관된 인터페이스 등의 원칙을 따르며 웹의 기존 인프라를 최대한 활용해 시스템을 설계하는 접근법을 말한다.

URI와 URL의 차이점

URI는 더 넓은 개념으로, 인터넷상의 리소스를 식별하는 모든 형태의 식별자를 포함한다. 반면 URL은 URI의 한 종류로, 리소스의 위치와 접근 방법까지 명시합니다. 즉, 모든 URL은 URI이지만, 모든 URI가 URL은 아니다.

예를 들어, 주민등록번호는 URI와 같다. 주민등록번호는 내가 누구인지 식별할 수 있지만, 나를 어디서 찾을 수 있는지는 알려주지 않는다. 반면에 집 주소는 URL과 같다. 주소는 직접 찾아갈 수 있는 구체적인 위치를 알려준다.

메서드설명
GET서버에 있는 데이터를 가져온다.
POST서버에 데이터 생성요청
PUT서버에 있는 데이터를 수정한다. (덮어쓰기)
DELETE데이터, 리소스 삭제 요청
PATCH서버에 있는 데이터를 일부만 수정한다.

REST API 구체적인 설명

REST의 원칙을 따라 만든 API를 REST API라고 부른다.
즉, 웹에서 데이터를 주고받을 때 가장 널리 쓰이는 표준화된 방식이다.

HTTP 프로토콜을 기반으로 리소스를 URI로 표현하고, HTTP 메서드(GET, POST, PUT, DELETE 등)를 통해 자원을 효율적으로 받거나 줄 수 있도록 도와준다.

*Http 프로토콜이란 웹에서 브라우저와 서버 간에 데이터를 주고받기 위한 규칙과 방법을 정의한 통신 약속

REST API의 특징

  • 자원(Resource): URI로 자원을 표현 (예: /users/1)
  • 행위(Verb): HTTP 메서드로 동작 구분 (GET: 조회, POST: 생성, PUT: 수정, DELETE: 삭제)
  • 무상태성(Stateless): 요청마다 필요한 정보가 모두 담겨 있어야 함
  • 일관성 있는 인터페이스: 규칙이 명확해서 누구나 쉽게 이해하고 사용할 수 있음

REST API의 6가지 원칙 쉽게 이해하기

REST API의 원칙은 웹 서비스가 잘 작동하도록 도와주는 기본 규칙들이다. 마치 도로 위의 교통 규칙처럼, 모두가 같은 규칙을 따르면 서로 잘 소통할 수 있다.

  1. 클라이언트-서버 구조
    마치 식당에서 손님과 주방이 분리된 것과 같다. 손님(클라이언트)은 메뉴판을 보고 주문만 하고, 주방(서버)은 음식을 만드는 일에만 집중한다. 이렇게 역할을 나누면 각자 자기 일에만 신경 쓸 수 있다.

  2. 무상태성
    매번 대화할 때마다 처음부터 모든 정보를 주는 것과 같다. 예를 들어, 친구에게 문자를 보낼 때 매번 "나 진이야"라고 말해주는 것이다. 이렇게 하면 서버가 클라이언트를 기억할 필요 없이 요청만 처리하면 된다.

  3. 캐시 가능성
    한 번 찾은 정보를 메모해두는 것과 같다. 학교 시험 공부를 할 때 자주 찾는 공식을 노트에 적어두면 책을 매번 펼칠 필요가 없다. 자주 사용하는 정보는 저장해두고 재사용하면 더 빨라진다.

  4. 계층화 시스템
    편지 배달과 비슷하다. 친구에게 편지를 보내면, 우체통에 넣고 우체부가 배달하고 친구가 받는 여러 단계를 거치지만, 그저 편지를 보냈다는 것만 알면 된다. 마찬가지로 클라이언트는 서버와 직접 연결되었는지 중간에 다른 서버를 거치는지 몰라도 된다.

  5. 일관된 인터페이스
    모든 가게의 계산대가 비슷하게 생긴 것과 같다. 어떤 가게를 가도 물건을 고르고, 계산대에 가서, 돈을 내는 방식이 비슷하다. REST API도 리소스를 찾고, 요청하고, 응답받는 방식이 일관되어 있어 누구나 쉽게 이용할 수 있다.

  6. 코드 온 디맨드 (선택 사항)
    이건 마치 장난감을 사면 배터리가 포함되어 있는 것과 같다. 꼭 필요한 건 아니지만 있으면 바로 사용할 수 있다. 서버가 클라이언트에게 실행 코드를 주면 클라이언트는 그걸 바로 실행할 수 있다.

이 원칙들을 모두 지키면, 여러 개발자들이 함께 일해도 웹 서비스가 효율적으로 작동하고, 사용자들은 빠르고 안정적인 서비스를 이용할 수 있게 된다.


REST API 예시

동작HTTP 메서드예시 URL설명
사용자 조회GET/users/11번 사용자 정보 가져오기
사용자 생성POST/users새 사용자 만들기
사용자 수정PUT/users/11번 사용자 정보 수정
사용자 삭제DELETE/users/11번 사용자 삭제

API와 REST API의 차이

구분APIREST API
정의프로그램 간 소통을 위한 모든 인터페이스REST 원칙을 따르는 웹 API
프로토콜HTTP, FTP, TCP 등 다양주로 HTTP
구조정해진 규칙 없음URL, HTTP 메서드 등 명확한 규칙 존재
데이터 형식제한 없음주로 JSON, XML
용도범용적웹 서비스에서 데이터 주고받기

마무리

정리하자면,

  • API는 프로그램끼리 소통하는 모든 방법을 의미하고,
  • REST API는 그 중에서도 웹에서 가장 많이 쓰이는, 규칙이 명확한 방식이다.

profile
컴공학생

0개의 댓글