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
728x90
반응형

서버 자원 관리 방법에 대한 용어에 대해  알아 보겠습니다. 

클라우드 환경에서 자주 접하는 용어로 ,클라우드 

스케일 업(Sacle-Up) ? 

스케일 업이란 동일 서버의 용량을 증설 하는 목적에 있습니다. 

서버 스펙 업그레이드라고 볼수 있다.

기존 8G 메모리, 1T 하드디스크로 서버가 구성되었다고 한다면 메모리: 8G-> 16G, 하드디스크 1T-> 10T 로 하드웨어 사양을 업그레이드 하는것을 스케일 업이라고하며 ,서버의 사양을 높이는 것이기 때문에 수직 스케일링(vertical scaling) 이라고도 한다.

scale-up

 

스케일 아웃(Scale-Out) ? 

서버의 자원 사용량이 부족하여 비슷한 사양의 서버를 추가하는 작업을 말한다.

하나의 장비에서 서비스를 처리함에 있어 한계에 부딪힐 경우 비슷한 스펙의 서버를 추가함으로 서버의 부하를 분산하는데 목적이 있다.

 

scale-out

스케일 인(Scale-In) ?

스케일 아웃과 반대되는  개념으로서 스케일 인 작업은 서버 용량 부족으로 늘렸던 자원을 다시 회수 하는 작업을 의미한다. 서비스 사용량이 줄어 늘려놓았던 불필요한 서버 자원을 해제 하는 작업을 의미한다. 

scale-in

오토스케일(Auto-Scale)?

서비스 사용량에 따라서 스케일 인/ 스케일 아웃 작업을 알아서 자동으로 해주는 작업을 말합니다. 

 

728x90
반응형

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

[IT지식] REST FUL 이란?  (0) 2022.06.04

+ Recent posts