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, 경량 데이터 교환 포맷)
  • 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
    • URI(Uniform Resource Identifier), 인터넷을 자원을 나타내는 유일한 주소
    • XML, HTML, JSON
  • Endpoint
    • API ~> 서버거 제공하는 리소스에 접근하기 위해 제공되는 주소

SOAP vs. RESTful

  • 접근 제한성, 시스템 아키텍처의 구조에 맞는 것
  • 사용하려고 하는 데이터 문서의 포맷 종류 고려
  • 서비스 정의 어떤 방법
  • 전송 방식
  • 개발의 용이성

OpenAPI

API(Application Programming Interface)

  • IT 개발이 필요한 운영체제, 시스템, 어플리케이션, 라이브러리 등 활용 -> 다양한 운용 프로그램을 작성하게 해주는 인터페이스
    • 인터페이스 == 약속
      • 어떤 기능을 가지고 처리할 수 있게 하는 함수나 프로그래밍 로직 사용 
        -> 호출 방법, 필요한 전달 매개변수, 얻은 값 사용 방법

OpenAPI

  • 누구나 사용할 수 있도록 공개된 API
  • 간단, 직관적 인터페이스 제공 ~> 데이터 표준화, 사용자 참여 유도 => 사용자 중심의 비즈니스 모델
  • Swagger라는 프로젝트의 사양을 기반으로 함
    • 개발자가 RESTful 웹 서비스를 설계, 빌드, 문서화 등 필요한 모든 일 도와주는 오픈소스 소프트웨어 프레임워크
    • 스웨거 UI 도구 or 스웨거 툴셋 ~> 자동화된 문서, 코드 생성, 테스트 케이스 생성  

출처

 

[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발 강의 | Dowon Lee - 인프런

Dowon Lee | 이 강의는 Spring Boot를 이용해서 RESTful Web Services 애플리케이션을 개발하는 과정에 대해 학습하는 강의으로써, REST API 설계에 필요한 기본 지식에 대해 학습할 수 있습니다., 스프링 부트

www.inflearn.com

 

728x90
반응형
김앩옹