728x90
반응형

IT 업무를 하면서 REST ,RESTful 이란 용어를 많이 접하게 됩니다.

어느정도 웹서비스에 대한 이해를 가지고 있었기 때문에 자세히는 몰라도 대충은 이해 하였으나 

주위 사람이 물어 봤을때 자신있게 설명할 자신이 없어 글로 작성하면서 REST에 대한 개념을 정리해보겠습니다. 

REST란? 

※REST(Representational State Transfer)는 월드와이드웹( WWW) 과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 종류 입니다.  2000년  로이 필딩(Roy Fielding)의 논문에서 발표된 내용으로 로이 필딩은 HTTP의 주요 저자 중 한 사람 이라고 합니다. 간단히 말하자면  REST는 네트워크 아키텍처 라고 생각하면 됩니다.

 

REST 아키텍처 특정

REST 아키텍처는 다음의 6가지 제한 조건을 준수해야 합니다. 

  1. Uniform Interface(인터페이스 일관성)
    • 일관적인 인터페이스로 수행해야 합니다. 
    • URI 로 지정한 Resource 에 대한 조작을 통일되고 한정적으로 수행 해야합니다. 
  2. Stateless(무상태)
    • 각 요청 간 클라이언트의 콘텍스트(context)가 서버에 저장되어서는 안 된다.
    • 세션이나 쿠키등을 별도로 관리하지 않으므로 서버는 클라이언트 요청 메시지 만으로 처리되어 질수 있도록 구현해야 한다.
  3. Cacheable(캐시 처리 가능)
    • 월드와이드웹( WWW)에서와 같이 클라이언트는 응답을 캐싱할 수 있어야 한다.
  4. Layered System(계층화)
    • 클라이언트는 보통 대상 서버에 직접 연결되었는지, 또는 중간 서버 혹은 미들웨어를  통해 연결되었는지를 알 필요가 없어야 합니다.  
  5. Code on demand (optional)
    • 자바 애플릿이나 자바스크립트의 제공을 통해 서버가 클라이언트가 실행시킬 수 있는 로직을 전송하여 기능을 확장시킬 수 있다.
  6. Server-Client 구조
    • 아키텍처를 단순화시키고 작은 단위로 분리(decouple)함으로써 클라이언트 와 서버간 의존성을 분리 해야 한다. 서버는 API 를 제공 하고 클라이언트는 사용자 인증이나 컨텍스트 등을 직접 관리 한다.

REST 구성 요소

1.자원(Resource) - URI(통합 자원 식별자-Uniform Resource Identifier)

  • 모든 자원에는 고유한 id 가 있으며 해당 자원은 서버에 존재 합니다. 
  • ex) question/detail/123

2.자원에 대한 행위(Verb) - HTTP Method (GET, PUT, POST, DELETE등)

  • 클라이언트는 URI 를 통해 자원을 지정해서 조작 하기 위해서 HTTP Method 를 사용 한다.
  • CRUD Operation , HTTP Method
    • Create : POST (자원 생성)
    • Read : GET (자원의 정보 조회)
    • Update : PUT (자원의 정보 업데이트)
    • Delete : DELETE (자원 삭제)
    •  

3.표현(Representations)

  • 클라이언트가 서버로 요청을 보냈을때 서버가 응답으로 보내주는 자원의 상태를 의미하며 
  • JSON,XML,TEXT, RSS 등의 형태로 표현될수 있다. 

REST API 이란? 

REST 원리를 따르는 API 를 말합니다. 
REST API 올바르게 설계하기 위해서는 몇가지 주의할 사항이  있습니다. 

REST API 설계 주의 사항 

  1. URI 는 정보의 자원을 표현해야 한다.(리소스 명은 동사보다는 명사를 사용)
  2. 자원에 대한 행위는 HTTP Method (GET, PUT, POST, DELETE) 로 표현 한다. 

URI 설계 시 주의 사항

  1.  슬래시 구분자(/)는 계층 관계를 나타내는 데 사용 한다. 
  2. URI 마지막 문자로 슬래시(/)를 포함하지 않는다.
  3. 하이픈(-)은 URI 가독성을 높이는데 사용 한다.
  4. 밑줄(_)은 URI에 사용하지 않는다.
  5. URI 경로에는 소문자를 사용 한다..
  6. 파일 확장자는 URI에 포함시키지 않는다.

RESTful 이란? 

REST 아키텍처를 구현하는 웹서비스를 표현하기 위해 사용되는 용어로 사용되며 REST 원리를 따르는 시스템을 
RESTful 이라는 용어로 사용되며, REST 의 비공식 구현 가이드 입니다.                                                                                

 

728x90
반응형

'IT지식' 카테고리의 다른 글

[IT 지식]스케일 아웃 vs 스케일 업  (0) 2022.04.18

+ Recent posts