Web Service   웹 서비스

(2022-07-10)

REST, Representation State Transfer, REST API, RESTful API


1.  서비스

  ㅇ 서비스 API로서의 
     - (API : 실시간으로 즉시 제공 가능한, 규격화된 응용 서비스들의 모음)

  ㅇ 주로, 다양한  서비스를, 사용자 관점에서, 즉각 이용 가능케하는,  인터페이스 환경을 일컬음
     - 인터넷 을 이용한 개방형 환경 구현
        .  상에 분산된 자원들을,  서비스로써 결합시키는, 표준화된 기술 환경


2.  서비스 주요 구분네트워크 아커텍처에 의한 구분
     - CORBA, DCOM 등을 기초로한 `분산 오브젝트` 환경의  서비스
        . 다소 복잡한 구현에 따라 점차 영향력이 약화됨
     - `REST`에 기초한 서비스
        . 2000년대부터 시작된 웹 2.0 흐름 속에서 점차 확고한 영향력을 갖춤

  ㅇ 소프트웨어 구조에 의한 구분
     - Loosely Coupled (느슨하게 연결된) 구조
        . 호환에 대한 완벽한 정의 보다는 유연하게 주고받는 데이터의 표준 정의
     - Service-oriented (서비스 지향적인) 구조


3. `분산 오브젝트` 환경의  서비스

  ㅇ 기능상의 특징
     - 통합 서비스 환경 제공
        . 어떤 시간공간, 디바이스(PDA,PC,핸드폰 등)에 구애받음이 없이 통합서비스
          환경을 제공
     - 기존 시스템과의 통합에 초점을 맞춤
        . 새로운 시스템의 구축 보다는 기존의 시스템을 통합 운용에 촛점을 맞춤
        . DCOM, J2EE, CORBA 환경에서 각각 개발 구축된 것을 하나로 통합 가능
     - 어플리케이션 간의 느슨한 통합을 지원
     - 폐쇄형이 아닌 개방형 분산 컴퓨팅 환경보안 표준화
     -  XML 서명, XML 암호화, XML 키 관리 명세

  ㅇ 서비스 관련 표준화 기구
     - W3C(World Wide Web Consortium), OASIS

  ㅇ 주요 관련 표준 기술
     - HTTP : 통신 프로토콜 
     - XML  : 서비스의 데이터 유형(포멧) 정의 등 일종의 핵심기반구조 역할
     - UDDI : 서비스의 검색, 발견 등 디렉토리서비스를 담당
     - WSDL : 서비스의 서비스를 기술하고 정의하는 언어
     - SOAP : 서비스의 통신 규약


4. `REST`  서비스 (REpresentational State Transfer, REST API)HTTP 저자 중의 한사람인 로이 필딩(Roy Fielding)의 2000년 박사 학위 논문에서 소개됨

  ㅇ 단순하게,
     - HTTP 등 범용적인  기술을 통해,
     - 특정 URLHTTP 메소드(GET,POST 등)로 접속하여,
     - XML, JSON 같은 데이터 표현 형식으로,
     - 입력의 처리 및 그 결과를 내놓고, 
     - 이들을 주고받을 수 있는 인터페이스

     * 여기서, 데이터의 구조 표현이 가능한 인터페이스 형식으로는,  =>  XML, JSON

  ㅇ `REST`의 일반적인 특징
     - API 제공을, 웹서버가 담당함
     - 서비스 위치는, 경로(URI)로써 알 수 있음
     - 자원의 취득은, 메소드(GET,POST 등)를 통해, 그 위치(URI)로부터 얻어짐
     - API 성공 여부는, HTTP 상태 코드 처럼 알려줌
     - 웹서버에서 제공되는 데이터 형식은, JSON,XML 처럼 구조화된 데이터 형식임
     - 클라이언트 측에서는, 상태 관리 불필요 (매번 요청이 독립적으로 실행됨)

  ㅇ `REST`의 아키텍처적인 특징 (6가지)
     - 클라이언트/서버 모델
     - 상태 없는 서버 
     - 캐시 적극 활용
     - 균일한 인터페이스 제공
     - 계층화 가능
     - 코드 온 디멘드 (즉시 실행 가능)  :   例) Javascript 등

  ㅇ `REST`의 구성 요소 (3개)
     - 자원 (resource)  :  URI (자원 위치)
     - 행위 (verb)  :  HTTP 메소드 (자원 요청 방법)
     - 표현 (representation)  :  페이로드 (자원 요청 행위의 구체적 결과 내용)

분산컴퓨팅
   1. 분산 컴퓨팅   2. 클라이언트/서버   3. 2/3/n-Tier 구조   4. 분산 콤포넌트   5. 그리드   6. 웹 서비스   7. SOAP   8. RPC  
웹 서비스
   1. 웹 서비스   2. JSON   3. XML   4. SOAP   5. UDDI   6. WSDL   7. OAuth 표준   8. 매쉬업  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"