cs/ODOQ

[ODOQ] REST란?

icodesiuuuu 2025. 1. 15. 14:40

[One Day One Question]

REST에 대해서 설명해 주세요.


REST(Representational State Transfer)는 웹 서비스 설계를 위한 아키텍처 스타일로, 클라이언트와 서버 간의 통신을 단순하고 효율적으로 하기 위해 설계되었습니다. REST는 HTTP 프로토콜을 기반으로 동작하며, 웹 애플리케이션 개발에서 가장 널리 사용되는 표준 중 하나입니다.

 

1. REST의 주요 특징

  1. 자원(Resource) 중심 설계
  2. HTTP 메서드 사용
    REST는 HTTP의 주요 메서드를 활용하여 자원에 대한 작업을 정의합니다:
    • GET: 자원을 조회 (읽기)
    • POST: 자원을 생성
    • PUT: 자원을 업데이트 (전체 수정)
    • PATCH: 자원을 부분 업데이트
    • DELETE: 자원을 삭제
  3. 상태 비저장성 (Stateless)
    • 클라이언트와 서버 간의 통신은 무상태(Stateless)입니다.
      즉, 서버는 클라이언트의 이전 요청 상태를 저장하지 않습니다.
      모든 요청에는 필요한 모든 정보를 포함해야 합니다.
  4. 계층적 구조
    • REST는 서버와 클라이언트 사이에 계층을 둘 수 있습니다.
      예를 들어, 프록시 서버, 로드 밸런서 등을 추가해도 REST의 작동 방식에 영향을 주지 않습니다.
  5. 캐싱(Caching)
    • RESTful 시스템은 HTTP 프로토콜의 캐싱 기능을 활용하여 클라이언트 요청을 더 효율적으로 처리할 수 있습니다.
  6. 표현(Representation)
    • 자원은 여러 형식으로 표현될 수 있습니다.
      일반적으로 JSON이나 XML 형태로 데이터를 주고받습니다.

 

 

2. REST의 장점

  • 표준화: HTTP와 같은 표준 프로토콜을 활용하므로 사용이 쉽습니다.
  • 유연성: 클라이언트와 서버가 독립적으로 설계 및 개발될 수 있습니다.
  • 확장성: 계층적 구조와 무상태 설계로 인해 확장성이 뛰어납니다.
  • 다양한 포맷 지원: JSON, XML 등 다양한 데이터 형식을 사용할 수 있습니다.

 

 

3. REST의 단점

  • 복잡한 요청 관리: 상태 비저장성 때문에 요청마다 모든 정보를 보내야 해서 비효율적일 수 있습니다.
  • 실시간 통신에 부적합: REST는 주로 요청-응답 방식에 적합하며, 실시간 데이터 전송에는 WebSocket 같은 기술이 더 적합합니다.