1. REST와 RESTful이란?

REST의 정의, 원칙, RESTful의 의미

REST(Representational State Transfer)는 자원을 이름(URI)으로 구분하고, HTTP 프로토콜을 통해 상태를 주고받는 아키텍처 스타일입니다. RESTful은 REST 원칙을 잘 지키는 API를 의미합니다.

2. RESTful API 설계 6대 원칙

Uniform Interface, Stateless, Cacheable 등 각 원칙 상세 설명
  1. Uniform Interface(일관된 인터페이스): URI, HTTP 메서드, 응답 구조 일관성
  2. Stateless(무상태성): 서버는 클라이언트 상태를 저장하지 않음
  3. Cacheable(캐시 가능): 응답에 캐시 여부 명시
  4. Client-Server 구조: 클라이언트와 서버 역할 분리
  5. Layered System: 중간 서버(프록시, 게이트웨이) 활용 가능
  6. 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의 원칙을 지키면, 확장성과 유지보수가 뛰어난 웹 서비스를 만들 수 있습니다. 실전 예제와 공식 문서를 참고해보세요.