일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- HDD
- stack
- ssd
- git push
- 오라클 버림 함수
- ArrayList
- 스케줄 삭제
- trunc(date)
- null
- trunc()
- 오라클 trunc()
- HashMap
- RAM
- web
- netstat
- queue
- Servlet
- Git
- heap
- cpu
- maven
- MAP
- trunc(sysdate)
- 멀티스레드
- 프로세스 종료
- 스레드
- desc
- 정렬
- 이진탐색트리
- url
- Today
- Total
無테고리 인생살이
[Web] Web application을 이해하고 Web Server와 WAS의 차이를 알아보자. 본문
- application이란?
- Web application이란?
- Web Server VS WAS
- Web Service Architecture
애플리케이션(application)이란?
인터넷으로 두 대의 컴퓨터(웹 클라이언트-웹 서버)를 연결해 요청과 응답으로 데이터를 주고받기 전에는,
일반적으로 한 대의 컴퓨터에 사용자가 필요한 소프트웨어(프로그램)을 설치해서 사용했다.
EX) 한글(.hwp)이나 MS워드 프로그램을 설치해서 로컬 pc에서 문서 작업
이렇게 컴퓨터에 설치해서 실행시키는 소프트웨어, 즉 컴퓨터의 운영체제 위에서 실행되는 소프트웨어를 응용 소프트웨어라고 한다. 응용 소프트웨어는 응용 프로그램, 소프트웨어, 프로그램, 애플리케이션(application) 등으로도 불린다. 모두 동의어
결론, 애플리케이션 = (응용)소프트웨어 = 프로그램
웹 애플리케이션(Web application)이란?
컴퓨터에 설치해서 사용해야 했던 애플리케이션의 기능을 웹이 대신하는 것이다.
즉, 웹 브라우저에서 실행되는 애플리케이션(프로그램)인 셈이다.
웹 애플리케이션은 별도의 애플리케이션을 설치하지 않고, 웹 브라우저에서 애플리케이션 기능을 수행할 수 있도록 만든 웹 서비스를 의미한다.
EX) MS워드 프로그램을 설치하지 않고도,구글 Chrome의 Google Docs를 통해 문서 작업 가능
아직까지도 많은 사람들이 웹 사이트에 접속한다는 표현을 쓰지만, 사실은 웹 애플리케이션을 이용하고 있는 경우가 대부분이다.
웹 애플리케이션의 대표 유형
- 이메일 : 네이버 메일, 구글 G메일 등
- 전자 상거래 : 온라인 쇼핑몰, 쿠팡 등
- 온라인 뱅킹 : OO은행
- SNS : 인스타그램, 페이스북 등
웹 애플리케이션 사용의 이점
- 편의성 : 직접 다운로드할 필요가 없어, 간편하게 이용 가능하다.
- 접근성 : 모든 디바이스에서, 모든 웹 브라우저에서 접근할 수 있다.
웹 서버(Web Server) VS 웹 애플리케이션 서버(Web Application Server)
Web Server
: HTTP 통신을 기반으로 HTML, CSS, JS, 이미지, 영상과 같은 정적인 Web page를 제공하는 서버 프로그램
역할
- 클라이언트에게 정적 리소스를 전달한다. (모든 사용자에게 동일한 리소스가 제공)
- WAS와 같이 사용될 경우,
동적 컨텐츠를 요청받으면 WAS에게 요청을 넘겨주고, WAS가 처리한 결과를 클라이언트에게 전달한다.
EX) Apache, Nginx
WAS
: HTTP 통신을 기반으로 애플리케이션 로직을 수행한 결과인 동적인 Web page를 제공하는 서버 프로그램
역할
- 프로그램 코드를 실행해서 애플리케이션 로직을 수행한 뒤, 클라이언트에게 동적 리소스를 제공한다.
(각 사용자마다 다른 리소스를 제공할 수 있음) - 정적 리소스를 제공하는 웹 서버의 역할도 할 수 있다.
EX) 톰캣(Tomcat), JBoss
=> 결론, 웹 서버는 정적 리소스 처리에 용이, 웹 애플리케이션 서버(WAS)는 애플리케이션 코드 수행에 용이
Web Service Architecture
웹 서비스는 다양한 구조를 가질 수 있다.
- Client <-> Web Server <-> DB
- Client <-> WAS <-> DB
- Client <-> Web Server <-> WAS <-> DB (주로 사용 !)
1번 : 웹 서버에서 정적 컨텐츠만을 제공하면 되는 경우에 사용
2번 : 웹 서버에서 API로 (JSON 형태의) 데이터만을 주고 받으면 되는 경우에 사용
3번 : 요청에 따라 정적 또는 동적 컨텐츠를 모두 제공해야하는 경우에 사용 (가장 많이 쓰이는 웹 서비스 아키텍처)
정적, 동적 컨텐츠를 모두 제공해야하는 경우에 2번과 같이 WAS만으로도 처리가 가능하다.
하지만 아래 그림과 같이 WAS 앞에 Web Server를 두는 구조를 많이 사용한다.
이렇게, 두 서버를 구분하는 이유는?
- 정적 컨텐츠를 response하는 비교적 비용이 싼 작업마저 WAS가 담당하면, WAS에 부하가 발생할 가능성이 있다.
- WAS는 Web Server보다 비교적 에러(장애)가 자주 발생하기 때문에, 두 서버를 구분하지 않고 WAS만 사용하면 다운됐을 때, 에러 페이지조차 클라에 전달할 수 없다. (Failover 불가)
- 효율적인 리소스 관리 가능
(정적 리소스가 많이 요구되면 Web Server만 Scale-out, 애플리케이션 리소스가 많이 요구되면 WAS만 Scale-out하면 된다.) - 상대적으로 적은 트래픽이 발생하는 Web Server에서 SSL 처리하면 WAS는 신경 쓸 필요가 없어 보안을 강화할 수 있다.
* Failover에 대해 간단히 알고 싶다면, 아래 글을 참고해 주세요 !
참고자료
https://aws.amazon.com/ko/what-is/web-application/
https://better-together.tistory.com/230?category=887985
'Web' 카테고리의 다른 글
[Web] URI, URL, URN 차이점과 URL 구조 (0) | 2023.01.17 |
---|---|
[Servlet/JSP] Servlet Filter와 Event Listener (0) | 2023.01.16 |
[Servlet/JSP] Servlet이란 무엇이며 어떻게 동작할까? (feat. Servlet Container) (0) | 2023.01.14 |
[Web] 쿠키와 세션은 HTTP의 어떤 특성을 보완하기 위해 생겨났을까? (0) | 2023.01.11 |
[Web] Web 관련 용어 정리 (feat. Internet, Web, Web Client, Web Server, Webpage (0) | 2023.01.05 |