RESTful Web Service 개발 - WEB Service 개발 방법 SOAP과 REST의 이해

2023. 1. 10. 23:51·공부/Spring
반응형

출처 : 인프런 해당 강의 페이지

 

Spring Boot를 이용한 RESTful Web Services 개발

WEB Service 개발 방법 SOAP과 REST의 이해

 

Web Service & Web Application

Web Service

  • World Weid Web(WWW)를 통해 이기종 간의 통신 서비스를 제공한다.
  • 네트워크를 통해 특정한 서버의 포트를 열어 놓고, 클라이언트의 요청을 받은 HTML, JSON, XML, images 등과 같은 웹 문서를 제공한다.
  • 웹 서비스는 WWW, Internet, HTTP의 기술을 사용하는 웹을 통해 특정한 도메인의 문제를 해결하기 위한 Web Application을 뜻하기도 한다.
  • 즉, 네트워크 상에서 서로 다른 종류의 컴퓨터들 간에 상호작용하기 위한 소프트웨어 시스템이다.
  • Web Service 이전에도 이기종 간의 통신을 위한 개발 기술이 있었으나 복잡성, 통신 프로토콜의 표준화 등의 문제로 인해 개발에 많은 어려움이 있었음.

Web Application

  • 서버에 저장되어 있고 웹 브라우저를 통해 실행할 수 있는 프로그램
  • Web application의 종류
    • webmail
    • retail sales
    • banking
    • auctions 등
  • 웹 어플리케이션을 실행할 수 있는 서버를 웹 어플리케이션 서버라고 함.
  • 클라이언트의 요청이 html, css, javascript, images와 같은 정적인 문서일 경우에는 웹 서버에서 처리가 가능함.
  • 프로그램 동작이나 계산, 외부 프로그램과의 서비스 연동 작업 같은 경우에는 클라이언트→ 웹서버→ 웹 어플리케이션 순으로 전달하여 웹 어플리케이션에서 처리된 결과 값을 다시 웹 어플리케이션→ 웹서버→ 클라이언트 순으로 전달한다.

 

Web Service

  • 데이터 흐름
    • 웹 어플리케이션 → 웹 서비스로 전달되는 정보를 request라고 함
      • 웹 서비스 입장에서는 input
    • 웹 서비스→ 웹 어플리케이션으로 전달되는 정보를 response라고 함
      • 웹 어플리케이션 입장에서는 output
  • 웹 서비스 정의를 위한 정보들
    • Request/Response Format
    • Request Structure
    • Response Structure
    • Endpoin(URL이나 함수)
  • 일반적으로 XML 또는 JSON으로 데이터 구조를 표현한다. 최근에는 XML보다 더 가벼운 JSON 포맷을 더 많이 사용함.

 

SOAP(Simple Object Access Protocol)

  • http, https와 같은 통신 프로토콜의 XML 기반 메세지를 컴퓨터 네트워크 상에서 전달할 수 있는 시스템을 뜻한다.
  • SOAP은 서비스 통신을 위해 XML을 사용한다.
  • 일반적인 구조
    • SOAP 엔벨로프 : 모든 SOAP 메시지의 루트 요소이며 두 개의 하위 요소(header, body)를 포함한다.
    • SOAP 헤더 : 엔벨로프의 선택적 하위 요소이며 메시지 경로를 따라 SOAP 노드가 처리할 응용 프로그램 관련 정보를 전달한다.
    • SOAP 바디 : 엔벨로프의 필수 하위 요소이며 메시지의 최종 수신자 정보를 가지고 있다.

출처 : IBM

  • SOAP의 XML 기반 메시지는 복잡한 구조로 되어있으며 그에 따른 오버헤드가 심하고 개발의 난이도가 증가하며 무거운 단점을 가지고 있다.
  • 그래서 최근에는 REST 방식의 개발을 더 선호한다.

 

RESTful

  • REST(REpresentational State Transfer)
    • 클라이언트와 서버 간 통신 방식
    • Resource의 Representation에 의한 상태 전달
      • 상태 : 컴퓨터가 가지고 있는 자원의 상태(파일, DB 데이터 등..)
    • HTTP Method를 통해 Resource를 처리하기 위한 아키텍처
    • 플랫폼, 프로그램에 독립적이며 SOAP보다는 상대적으로 개발이 수월하다.
  • RESTful
    • REST API를 제공하는 웹 서비스
    • HTTP 프로토콜 사용
      • HTTP Method(GET, PUT, POST, DELETE)
        • 클라이언트에서 서버로 요청
      • HTTP Status Codes (200, 404, 500, ....)
        • 서버에서 클라이언트로 응답
  • Resource
    • URI(Uniform Resource Identifier), 인터넷 자원을 나타내는 유일한 주소
    • 리소스를 요청하거나 응답할때는 XML, HTML, JSON과 같은 문서 포맷을 사용한다.

 

SOAP vs REST

  • 접근 제한성이나 시스템 아키텍처의 구조에 맞는 걸 선택
  • 사용되는 데이터 문서 포맷에 따라 선택
  • 서비스를 정의하는 방법에 따른 선택
  • 전송 규약에 따른 선택
  • 개발의 용이성 고려하여 선택

 

 


- 출처 : 인프런 Spring Boot를 이용한 RESTful Web Services 개발 강의

반응형
저작자표시 비영리 변경금지 (새창열림)
'공부/Spring' 카테고리의 다른 글
  • RESTful Web Service 개발 - RESTful Service 기능 확장
  • RESTful Web Service 개발 - User Service API 구현_2
  • RESTful Web Service 개발 - User Service API 구현_1
  • RESTful Web Service 개발 - Spring Boot로 개발하는 RESTful Service
데부한
데부한
어차피 할 거면 긍정적으로 하고 싶은 개발자
    반응형
  • 데부한
    동동이개발바닥
    데부한
  • 전체
    오늘
    어제
    • 분류 전체보기 (307)
      • 방통대 컴퓨터과학과 (27)
        • 잡담 (9)
        • 3학년1학기 (17)
      • 프로젝트 및 컨퍼런스 회고 (1)
        • 프로젝트 (4)
        • 한이음 프로젝트 (0)
        • 회고 (3)
      • 공부 (165)
        • Spring (37)
        • JPA (71)
        • 인프런 워밍업 클럽_BE (10)
        • Java (6)
        • React.js (27)
        • 넥사크로 (11)
        • 기타 (3)
      • 알고리즘 (85)
        • 알고리즘 유형 (10)
        • 알고리즘 풀이 (57)
        • SQL 풀이 (18)
      • 에러 해결 (13)
      • 잡담 (7)
        • 국비교육 (2)
        • 구매후기 (5)
        • 진짜 잡담 (0)
  • 블로그 메뉴

    • Github
    • Linkedin
    • 홈
    • 방명록
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프로그래머스
    인프런
    토비의스프링부트
    SpringBoot를 이용한 RESTful Web Service 개발
    react
    에러해결
    전자정부프레임워크
    방통대
    RESTful
    springboot
    코딩테스트
    egov
    SQL
    알고리즘
    Java
    QueryDSL
    MSA
    백준
    IT
    운영체제
    Spring
    기출문제
    토이프로젝트
    스프링부트
    개발자
    자바스크립트
    JPA
    넥사크로
    프론트엔드
    oracle
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
데부한
RESTful Web Service 개발 - WEB Service 개발 방법 SOAP과 REST의 이해
상단으로

티스토리툴바