" REST API가 대체 뭐길래 다들 REST, REST 하는 걸까? "
RESTful하게 설계하는 방법을 알아보기에 앞서
REST API란 무엇인지 알아보도록 합시다!

REST API는
✅ 단순한 규칙이 아니라
서버와의 대화 방식이라고 할 수 있겠습니다
처음 REST를 이해했을때
단순히 URL을 예쁘게 짓는 방법이 아니라는 것을
알게되었어요!
이번 글에서는 REST API가 무엇이고,
왜 이러한 규칙이 중요한지 쉽게 이해할 수 있도록 알려드리겠습니다
📂API란?
먼저 API는 Application Prgramming Interface의 약자로
프로그램 간 데이터를 주고 받는 약속을 의미합니다
API는 식당의 메뉴판과 같은 개념이며
손님(클라이언트)은 메뉴(API)를 보고 요청하고,
주방(서버)은 결과를 응답한다 라고 이해하면 쉽겠습니다
GET / users/1
서버 : { "id" : 1, "name" : "홍길동" }
📂 REST의 핵심 철학 : "규칙적인 리소스 표현"
REST의 핵심은 리소스(Resource) 중심의 설계
/users, /posts/1/comments와 같이 "데이터의 의미"가 드러나도록 설계하는 것이 좋습니다
CRUD를 HTTP Method로 표현하기 :
| 동작 | HTTP 메서드 | 예시 |
| 조회 | GET | /user/1 |
| 생성 | POST | /users |
| 수정 | PUT / PATCH | /users/1 |
| 삭제 | DELETE | /users/1 |
📂 RESTful한 API 예시 비교하기
❌ 잘못된 예시 :
GET / getUserById?id=1
POST // addNewUser
-> 해당 잘못된 예시는 동작 중심에 비표준적이라 적합하지 않습니다
⭕ 올바른 예시 :
GET / users/1
POST /users
-> 올바른 예시를 살펴보게 되면 리소스 중심에 일관성 있으므로 RESTful 하다고 볼 수 있겠습니다!
📂 HTTP 상태 코드의 의미와 함께 이해하기
REST API는 항상 상태 코드로 결과를 알려줘요
HTTP 상태 코드 기본 정리 :
| 상태 코드 | 의미 | 상황 예시 |
| 200 OK | 요청이 성공적으로 처리됨 | - |
| 201 Created | 새로운 리소스 생성 | 회원가입 요청 시 새로운 사용자가 DB에 등록 |
| 400 Bad Request | 요청이 잘못됨 | 필수 입력값이 누락되었을 경우 |
| 404 Not Found | 요청한 리소스를 찾을 수 없음 | 존재하지 않는 게시글 ID를 요청했을 경우 |
| 500 Internal Server Error | 서버 내부에서 예기치 못한 오류 발생 | DB 연결 오류 시 |
상태 코드 출력 예시 :
POST /users
-> 201 Created
📂 REST API 방식으로 설계하면 어떤 장점이 있을까?
REST API로 설계하면
표준화된 규칙 덕분에 협업이 쉽고
확장성과 유지보수성이 높다는 장점이 있습니다
그러나 한계점도 당연히 존재합니다
REST API로 설계 시 실시간과 양방향 통신에는 불리함을 가지고 있습니다
-> 그렇기 때문에 상황에 따라 적절한 설계 방식이 필요합니다
✨ 마무리 : REST를 배우며 느낀점!

처음에는 REST가 단순한 API 규칙인 줄 알았으나
사실은 개발자 간의 소통이자 언어의 약속이라는 걸 깨닫게 되었어요!
REST를 이해하고 나니 URL 설계와 상태코드, 응답 형식까지 다 의미 있게 느껴지게 되었답니다
다음 글에서는 REST API를 실제로 설계할 때 고려해야 할 규칙에 대해 배워보도록 하겠습니다!
'📂 백엔드 스터디 > Spring & Spring Boot' 카테고리의 다른 글
| [백엔드 기초 시리즈 #2] REST API 를 설계할 때 고려해야 할 핵심 규칙 (0) | 2022.06.04 |
|---|