RESTful API를 개발하기에 앞서 Web Service와 Web Application에 대해 살펴 보자.
Web Service
WWW(World Wide Web)란 디바이스와 디바이스 간의 통신 서비스를 하는 것이고 또는 네트워크상에서 특정 포트를 열어 놓은 서버가 클라이언트의 요청을 받은 다음 HTML, JSON, XML 같은 웹 문서를 제공하는 것을 뜻함. Web Service란 이러한 WWW, 인터넷, HTTP의 기술을 사용하는 웹을 통해 특정한 도메인의 문제를 해결하기 위한 웹 애플리케이션 서비스를 뜻하기도 함.
즉, 네트워크상에서 서로 다른 종류의 디바이스들 간의 상호작용을 하기 위한 소프트웨어 시스템.
이기종 간의 통신을 위한 분산 컴퓨팅 기능이라는 것은 웹 서비스 이전에도 있었으나(CORBA, RMI 등) 구현의 복잡성, 통신 프로토콜의 비표준화 등의 문제로 개발에 많은 어려움이 있었음. 웹 서비스는 기존의 분산 컴퓨팅 기술들과는 달리 XML 위주로 사용하고 있기 때문에 주고받는 데이터 포멧을 통일성 있게 만들 수 있고 기존의 분산 프로그램 대비 개발이 훨씬 더 수월해짐.
cf) 물론 웹 서비스가 RESTful 서비스보다 복잡한 것은 사실이다.
이러한 웹 서비스의 주요 키워드를 세 가지로 정리해 보면,
- 머신과 머신, 또는 애플리케이션과 애플리케이션 간의 상호작용을 위한 설계
- 플랫폼에 의존적이지 않은 구조
- 애플리케이션 간에 네트워크를 통한 통신을 지원해 줌으로써 다양한 시스템과 서비스를 제공.
Web Application
서버에 저장되어 있고 인터넷 브라우저를 이용해 실행할 수 있는 애플리케이션. 웹 메일, 온라인 쇼핑몰, 인터넷 뱅킹 등.
웹 애플리케이션을 사용하기 위해 사용자/클라이언트는 웹 브라우저를 이용함. 인터넷 웹 브라우저는 HTTP 프로토콜을 통해 제공되는 HTML 문서를 해석하고 사용자에게 보여주는 역할을 함. 우리가 흔히 인터넷이라고 하면 이러한 웹 브라우저를 이용해 웹 애플리케이션을 사용하는 것이라고 생각해도 무방함.
이렇게 웹 애플리케이션을 실행시켜 주는 서버를 WAS(Web Application Server)라고 함. 웹 애플리케이션의 특성상 데이터베이스와 같은 외부 서비스와 연동을 같이 하기도 함.
클라이언트의 요청이 HTML, CSS, JS와 같이 정적인 문서 형태일 경우에는 단순히 웹 서버에서 직접 처리가 되지만, 프로그램의 동작이라거나 외부 서비스의 연동이 필요한 경우 클라이언트의 요청을 WAS에 전달하고 이후 WAS에서 실행된 처리 결과를 웹 서버에 보내 클라이언트에 전송해 주는 과정을 거치게 됨.
출처
본 포스트는 인프런 이도원 강사님의 "Spring Boot 3.x 를 이용한 RESTful Web Services 개발" 강의를 통해 직접 작성 및 정리한 글입니다.
'Java > Spring' 카테고리의 다른 글
Open API (1) | 2024.08.23 |
---|---|
SOAP과 REST (1) | 2024.08.22 |
[Spring Boot] Spring Boot를 이용한 RESTful Web Services 개발 - 개요 (0) | 2024.08.20 |
Mybatis에서의 Like문 사용 (0) | 2020.08.09 |
Mybatis에서 #{}와 ${}의 차이 (0) | 2020.08.09 |