🔵 REST API란?
- REST는 REpresentational 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"
'회고록' 카테고리의 다른 글
[회고록] 패스트캠퍼스 부트캠프 3 (1) | 2025.04.28 |
---|---|
[회고록] 패스트캠퍼스 부트캠프 3 (1) | 2025.04.21 |
[회고록] 패스트캠퍼스 부트캠프 3 (1) | 2025.04.14 |
[회고록] 패스트캠퍼스 부트캠프 3 (1) | 2025.03.31 |
[회고록] 패스트캠퍼스 부트캠프 3 (0) | 2025.03.04 |