REST API vs. RESTful API 차이점
두 용어의 관계는 '규약(REST)'과 '그 규약을 잘 지킨 상태(RESTful)'의 관계라고 이해할 수 있습니다.
1. REST API (Transmission Control Protocol)
REST API는 REST(Representational State Transfer) 아키텍처 스타일의 조건을 일부라도 충족하는 API를 통칭합니다. * 핵심: HTTP 메서드(GET, POST 등)를 사용하고 자원(URI)을 정의했다면 광범위하게 REST API라고 부릅니다. * 현실: 많은 개발자가 단순히 HTTP를 통해 JSON 데이터를 주고받는 API를 REST API라고 지칭합니다.
2. RESTful API
RESTful API는 REST의 모든 설계 원칙을 엄격하게 준수하여 설계된 API를 의미합니다. * 의미: "이 API는 매우 REST답다(RESTful)"라는 형용사적 표현입니다. * 조건: 단순히 HTTP 메서드를 쓰는 것을 넘어, 상태 코드의 올바른 사용, 자원의 명사형 표현, HATEOAS(애플리케이션 상태의 엔진으로서의 하이퍼미디어) 등 모든 제약 조건을 만족해야 합니다.
3. 주요 차이점 비교표
| 구분 | REST API | RESTful API |
|---|---|---|
| 정의 | REST 아키텍처를 기반으로 한 API | REST의 원칙을 모두 구현한 API |
| 초점 | 기술적 구현 (HTTP + JSON) | 설계의 일관성과 효율성 (Best Practice) |
| 유연성 | 원칙을 일부 어겨도 REST API라 부름 | 모든 제약 조건을 충족해야 함 |
| 예시 | GET /deleteUser?id=1 (동사 포함) |
DELETE /users/1 (완벽한 구조) |
4. 왜 'RESTful'하게 만들어야 할까?
모든 원칙을 지키는 것은 까다롭지만, RESTful하게 설계된 API는 다음과 같은 장점을 가집니다. 1. 가독성: URI만 보고도 어떤 자원에 어떤 행위를 하는지 직관적으로 알 수 있습니다. 2. 확장성: 서버와 클라이언트의 역할이 명확히 분리되어 독립적인 발전이 가능합니다. 3. 표준성: 별도의 설명서가 없어도 API의 구조를 쉽게 파악할 수 있습니다.