Web Service
WWW(World Wide Web)을 사용한 디바이스와 디바이스간의 통신 서비스
- 네트워크 상에서 특정한 포트를 열어놓은 서버가 클라이언트에게 요청을 받은 다음, html, json, xml과 같은 문서를 제공하는 서비스
- WWW, internet, HTTP의 기술을 사용하는 웹을 통해서 특정한 도메인의 문제를 해결하기 위한 웹어플리케이션 서비스
- 네트워크 상에서 서로 다른 종류의 컴퓨터들 간에 상호작용하기 위한 소프트웨어 시스템
Web Application
- 서버에 저장되어 있고, 웹 브라우저를 통해서 실행할 수 있는 프로그램, 즉 어플리케이션
- 웹 어플리케이션을 사용하기 위해서 클라이언트(사용자)는 인터넷 웹 브라우저를 사용함 (인터넷 웹 브라우저는 http 프로토콜을 통해서 제공되는 html 문서를 해석해서 사용자에게 보여주는 어플리케이션)
- 웹 어플리케이션을 실행해줄 수 있는 서버를 Web Application Server라고 부름
- Web Application의 특성상 외부의 DB와 연동되기로 함
- 사용자의 요청이 html, css, javascript, image와 같은 정적인 동작인 경우 Web Server에서 수행 가능하지만, 프로그램 동작, 계산, 외부 서비스와의 연동 작업이 필요한 경우 Web Server는 클라이언트의 요청을 Web Application Server로 전달하고, 이것이 처리된 결과값을 Web Server를 통해서 클라이언트에게 전달됨

request(input) = Web Application에서 Web Service로 전달되는 요청 정보.
response(output) = Web Service에서 처리된 결과값을 클라이언트 / Web Application에 전달해주는 반환값.
SOAP vs RESTful
Web Service를 개발하기 위해서 SOAP/RESTful을 사용할 수 있다.
SOAP
SOAP(Simple Object Access Protocol)은 http, https, smtp등의 프로토콜을 이용해서 xml 기반의 메시지를 컴퓨터 네트워크 상에서 전달할 수 있는 시스템이다.
- http, https와 같은 통신 프로토콜 위에서 xml 메시지를 요청하고 응답받기 위한 서비스
- 간단한 몇가지 정보를 보내기 위해서 복잡한 구조를 사용해야 해서 오버헤드가 심하다.
RESTful
REST(REpresentation State Trnsfer)는 상태, 즉 컴퓨터가 가지고 있는 자원
- 각각 자원을 고유하게 표현하기 위한 이름으로써 구분한 다음 각 자원의 상태(정보값)를 전달.
- http 프로토콜의 메소드를 이용하여 리소스를 처리하도록 설계되어 있는 아키텍처.
- http는
methods와 status code로 구성되어 있으며, 메소드는 클라이언트가 서버에 전달하게 되는 목적, 종류 등을 알려주는 수단. 리소스를 취득하기 위해서는 GET, 내용을 전달하기 위해서는 POST, 서버에 저장되어 있는 리소스를 삭제하기 위해서는 DELETE를 사용. status code는 서버로부터 결과가 처리된 다음 응답 코드와 함께 처리된 결과를 전달해주는 것. 200번대 응답코드는 정상 처리, 400번대 응답코드는 클라이언트의 오류, 500번대 응답코드는 서버측의 오류
- REST API는 이러한 RESTful 서비스를 제공하는 Application Programming Interface를 의미함.
- RESTful은 REST API를 제공하는 웹 서비스를 의미
- RESTful 서비스를 사용하기 위해서 HTTP 프로토콜을 사용하는 어플리케이션이 필요함. 일반적으로 인터넷 웹 브라우저가 많이 사용됨.
URI(Uniform Resource Identifier): RESTful 서비스에 의해 제공되는 모든 자원들은 각각 고유의 주소값.
최근에는 SOAP보다는 REST가 더 많이 사용되고 있다.