회고록

[회고록] REST API 규칙

beginner-in-coding 2025. 4. 22. 17:10

🔵 REST API란?

  • RESTREpresentational State Transfer의 약자
  • 쉽게 말하면, "웹 자원(Resource)을 규칙에 맞게 주고받는 방법"
  • API는 "프로그램끼리 통신하는 방법"

👉 REST API = "REST 원칙을 지켜서 만들어진 API"


🔵 REST의 기본 원칙

1. 자원(Resource) 기반

  • 서버는 자원(데이터) 를 중심으로 다룸
  • 예를 들어, 상품, 회원, 주문 같은 게 다 "자원"

2. HTTP 메서드(Method)로 의도를 표현한다

  • 무슨 작업을 하고 싶은지는 HTTP 메서드로 표현
  • 대표적인 메서드:
메서드의미
GET 자원을 조회한다 (읽기)
POST 자원을 새로 만든다 (추가)
PUT 자원을 수정한다 (전체 수정)
PATCH 자원을 수정한다 (부분 수정)
DELETE 자원을 삭제한다

👉 예를 들어, 상품을 추가하고 싶으면 POST /products 이렇게 요청

3. URL은 명사로 표현한다

  • URL은 행동(동사) 가 아니라 자원(명사) 를 나타내야 함

Bad ❌: /createProduct /getProductList /deleteUser

 

Good ✅: /products /users

행동은 HTTP 메서드로 표현하고, URL은 자원만 나타냄


🔵 REST API 예시

예를 들어, 상품(Product)을 관리하는 REST API:

작업HTTP 메서드URL설명
상품 목록 조회 GET /products 모든 상품 가져오기
상품 하나 조회 GET /products/{id} 특정 상품 가져오기
상품 추가 POST /products 상품 추가하기
상품 수정 PUT /products/{id} 상품 전체 수정하기
상품 삭제 DELETE /products/{id} 상품 삭제하기

정리하면,
👉 "무슨 작업을 할지"는 HTTP 메서드
👉 "무엇을 할지"는 URL로 표현


🔵 REST API의 장점

  • 표준화되어 있어서 다른 개발자랑 협업할 때 이해가 빠름
  • 유연하고 확장성 좋음
  • 프론트엔드와 백엔드가 역할을 딱 나눌 수 있음
    (서버는 데이터만 주고, 화면은 클라이언트가 만듦)

🔵 한 줄 요약

REST API는 "자원 중심 + HTTP 메서드로 작업을 표현하는" 깔끔한 통신 규약


🔵 RESTful API란?

RESTful은 "REST 원칙을 잘 지킨 API"

  • 그냥 REST는 이론 (규칙 이런 것)
  • RESTful은 "이 이론을 실제로 얼마나 잘 따랐냐"를 평가

즉,
👉 "우리 API가 REST스럽게 잘 만들어졌어!" 이럴 때 "RESTful하다"라고 표현


🔵 RESTful API를 잘 만들려면?

RESTful API는 다음을 지켜야 함:

1. 자원을 명사로 표현 URL에는 동사 ❌, 명사 ⭕ /products, /users
2. HTTP 메서드로 의도를 표현 동작을 URL에 쓰지 말고, 메서드(GET, POST 등)로 표현 GET /products/1 (상품 1번 가져오기)
3. URL 구조를 계층적으로 관계가 있으면 URL도 계층 구조로 표현 /users/1/orders (사용자 1번의 주문 목록)
4. 상태 없는(stateless) 통신 서버는 요청 하나하나를 독립적으로 처리해야 함 (이전 요청 기억 X) 각각의 요청은 독립적!
5. 에러 상태도 명확히 표현 실패하면 HTTP 상태 코드로 알려주기 404 (Not Found), 400 (Bad Request), 500 (Server Error)

🔵 RESTful vs 비RESTful 비교

비RESTful ❌:GET /getUserInfo?id=1 POST /makeNewProduct DELETE /deleteProductById?id=10

RESTful ✅:GET /users/1 POST /products DELETE /products/10


URL이 깔끔하고, 메서드로 동작을 표현


🔵 실무에서 왜 RESTful이 중요할까?

  • 일관성 덕분에 API를 빠르게 이해할 수 있음 (문서 안 봐도 어느 정도 예상 가능!)
  • 프론트엔드, 백엔드 협업할 때 소통이 쉬움
  • 확장성이 좋음 (새로운 기능 추가해도 무너지지 않아)
  • 유지보수가 편함 (규칙이 딱 있으니까)

→ 그래서 대부분의 기업은 RESTful 스타일로 API를 설계하자고 가이드라인을 줌


🔵 한 줄 요약

RESTful API는 "REST 원칙을 최대한 지켜서 만든, 깔끔하고 예측 가능한 API"