RESTful API 설계 원칙과 실전 예시
1. REST와 RESTful이란?
REST의 정의, 원칙, RESTful의 의미
REST(Representational State Transfer)는 자원을 이름(URI)으로 구분하고, HTTP 프로토콜을 통해 상태를 주고받는 아키텍처 스타일입니다. RESTful은 REST 원칙을 잘 지키는 API를 의미합니다.
2. RESTful API 설계 6대 원칙
Uniform Interface, Stateless, Cacheable 등 각 원칙 상세 설명
- Uniform Interface(일관된 인터페이스): URI, HTTP 메서드, 응답 구조 일관성
- Stateless(무상태성): 서버는 클라이언트 상태를 저장하지 않음
- Cacheable(캐시 가능): 응답에 캐시 여부 명시
- Client-Server 구조: 클라이언트와 서버 역할 분리
- Layered System: 중간 서버(프록시, 게이트웨이) 활용 가능
- Code on Demand(선택적): 서버가 코드를 클라이언트에 전송
3. URI 설계와 HTTP 메서드 활용
리소스 중심 URI, GET/POST/PUT/DELETE, 예제 설계
/users
(GET: 목록, POST: 생성)/users/{id}
(GET: 조회, PUT: 수정, DELETE: 삭제)
4. 응답 구조와 상태코드
JSON 응답, 표준 상태코드, 오류 처리, 예제 코드
{
"status": "success",
"data": {
"id": 1,
"name": "홍길동"
}
}
- 상태코드: 200(OK), 201(Created), 400(Bad Request), 401(Unauthorized), 404(Not Found), 500(Internal Server Error)
5. 실전: 코틀린으로 RESTful API 서버 만들기
@RestController
@RequestMapping("/api/v1/articles")
class ArticleController {
@GetMapping
fun list(): List<Article> = ...
@PostMapping
fun create(@RequestBody dto: ArticleDto): Article = ...
}
- Swagger/OpenAPI로 문서화
- 예외 처리, 테스트 코드 작성
6. 결론
RESTful API의 원칙을 지키면, 확장성과 유지보수가 뛰어난 웹 서비스를 만들 수 있습니다. 실전 예제와 공식 문서를 참고해보세요.