728x90
반응형
Web Service와 Web Application의 개요
Web Service
- WWW를 이용한 디바이스와 디바이스 간의 통신 서비스
- 네트워크 상에서 특정한 포트를 열어둔 서버 -> 클라이언트 요청 -> HTML, JSON 등 웹 문서 제공하는 것
=> 네트워크 상에서 서로 다른 종류의 컴퓨터들 간에 상호작용하기 위한 소프트웨어 시스템
기존의 분산 컴퓨팅 기술과 달리, XML 위주로 사용 -> 주고 받는 데이터 포맷 통일성 있게 만들고 개발 수월해짐
3 Key Word
- 머신-머신(어플리케이션-어플리케이션) 상호작용을 위한 설계
- 플랫폼 독립적인 구조
- 어플리케이션 간의 네트워크 통신 지원
Web Application
- 서버에 저장되어 있고 인터넷 브라우저 이용해서 실행할 수 있는 어플리케이션
- ex. 웹메일, 온라인 쇼핑몰, 포털 사이트의 서비스, 인터넷 서비스
- 웹 어플리케이션 사용 -> 클라이언트(사용자)가 웹 브라우저 이용
- 인터넷 웹 브라우저: HTTP 프로토콜 ~> 제공되는 HTML 문서 해석, 사용자에게 보여주는 어플리케이션
- 인터넷: 웹 브라우저 이용 -> 웹 어플리케이션 사용하는 것
- 정적인 문서(html, css, javascript) -> 웹 서버에서 직접 처리
- 프로그램의 동작 or 외부 서비스의 연동 필요
=> 클라이언트 요청 -> 웹 어플리케이션 서버에 전달 -> 처리 결과 -> 웹 서버 -> 클라이언트 - 웹 어플리케이션 서버(WAS): 웹 어플리케이션을 실행해주는 서버
Web Service 개발 방법 SOAP과 REST의 이해
Web Service
- 클라이언트의 request(input)
- Web Application -request(input)-> Web Service
- response(output)
- Web Application <-response(output)- Web Service
서비스에 대한 정의
- Request/Response 포맷 정의
- Data 포맷 -> XML/ JSON
- JSON(Java Script Object Notation, 경량 데이터 교환 포맷)
- Data 포맷 -> XML/ JSON
- Request/Response 문서 구조
- Endoint(URL...): 요청 서비스의 위치, 어떤 방법으로 요청해야 하는지
SOAP(Simple Object Access Protocl)
- HTTP, HTTPS, SMTP 등 이용 -> XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 형태의 프로토콜
- 웹 서비스의 기본적인 메시지 전송 수단
- 서비스 통신 -> XML-RPC 기술 사용/ 상호중립적인 개발
- (+) 프록시, 방화벽에 상관 X 쉽게 통신 가능
- (+) 플랫폼, 프로그래밍 언어의 독립적, 확장 가능한 기술
- (-) 다른 미들웨어(CORBA)에 비해 상대적으로 느림
=> 통신 프로토콜(http, https 등) -> xml 메시지 요청 하고 응답 받는 서비스
RESTful
- REST(REpresentatoinal State Transfer) API를 제공하는 웹 서비스
- Resource의 Representation에 의한 상태 전달
상태: 자원에 대한 상태 표시 - HTTP Method ~> Resource를 처리하기 위한 아키텍처
- Resource의 Representation에 의한 상태 전달
- (+) 확장성, 유연성, 기술에 대한 독립성
=> 이기종 단말기 간의 인터넷 ~> 정보를 안전하게 교환하기 위해서 사용하는 일종의 인터페이스
- Resource
- URI(Uniform Resource Identifier), 인터넷을 자원을 나타내는 유일한 주소
- XML, HTML, JSON
- Endpoint
- API ~> 서버거 제공하는 리소스에 접근하기 위해 제공되는 주소
SOAP vs. RESTful
- 접근 제한성, 시스템 아키텍처의 구조에 맞는 것
- 사용하려고 하는 데이터 문서의 포맷 종류 고려
- 서비스 정의 어떤 방법
- 전송 방식
- 개발의 용이성
OpenAPI
API(Application Programming Interface)
- IT 개발이 필요한 운영체제, 시스템, 어플리케이션, 라이브러리 등 활용 -> 다양한 운용 프로그램을 작성하게 해주는 인터페이스
- 인터페이스 == 약속
- 어떤 기능을 가지고 처리할 수 있게 하는 함수나 프로그래밍 로직 사용
-> 호출 방법, 필요한 전달 매개변수, 얻은 값 사용 방법
- 어떤 기능을 가지고 처리할 수 있게 하는 함수나 프로그래밍 로직 사용
- 인터페이스 == 약속
OpenAPI
- 누구나 사용할 수 있도록 공개된 API
- 간단, 직관적 인터페이스 제공 ~> 데이터 표준화, 사용자 참여 유도 => 사용자 중심의 비즈니스 모델
- Swagger라는 프로젝트의 사양을 기반으로 함
- 개발자가 RESTful 웹 서비스를 설계, 빌드, 문서화 등 필요한 모든 일 도와주는 오픈소스 소프트웨어 프레임워크
- 스웨거 UI 도구 or 스웨거 툴셋 ~> 자동화된 문서, 코드 생성, 테스트 케이스 생성
출처
728x90
반응형