티스토리 뷰

해당 글은 김영한님의 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의를 수강하고 정리한 게시글입니다.


현재 웹은 HTTP 기반으로 거의 모든 형태의 데이터(HTML, TEXT, 이미지, 영상등)를 주고 받는다. 이는 우리가 서버 공부를 하며 HTTP는 꼭 알고 있어야된다는 걸 의미한다. 앞으로 다룰 내용들은 HTTP에 대한 전반적인 지식이 필요함으로 다음을 참고하자.

참고 : [Network] 03. HTTP 기본

 

이제 실무에서 동작하는 웹 서버와 웹 애플리케이션을 알아보고 실무에서는 어떤 식으로 구성될지 알아보자.

 

웹 서버(Web Server)

웹서버는 HTTP 기반으로 동작하고 정적 리소스(HTML, CSS, JS, 이미지, 영상) 제공 및 기타 부가기능을 제공한다.

웹서버의 대표적인 예시는 다음과 같다.

 

[예시]
NGINX, APACHE

 

웹 애플리케이션 서버(WAS - Web Application Server)

WAS도 마찬가지로 HTTP 기반으로 동작하고 웹 서버 기능(정적 리소스 제공)을 포함하고 추가로 프로그램 코드를 실행하여 애플리케이션 로직 수행하는 기능을 제공한다. (동적 HTML, HTTP API(JSON), 서블릿, JSP, 스프링 MVC)

WAS의 대표적인 예시는 다음과 같다.

 

[예시]
톰캣(Tomcat) Jetty, Undertow

 

웹서버와 웹 애플리케이션 서버의 차이

사실 둘의 용어도 경계도 모호한 부분이 많다. 웹 서버도 프로그램을 실행하는 기능을 포함하기도 하고 웹 애플리케이션 서버도 웹 서버의 기능을 제공하기 때문에..

 

그럼으로 다음과 같이 생각하는게 좋다.

 

  • 웹 서버는 정적 리소스를 제공하는것
  • WAS는 애플리케이션 로직까지 실행할 수 있는 것(애플리케이션 코드를 실행하는데 더 특화되있다고 알고 있자.)

 

침고:
자바는 서블릿 컨테이너 기능을 제공하면 WAS이다. (서블릿 없이 자바코드를 실행하는 서버 프레임워크도 있음..)

 

웹 시스템 구성

실무에서 서비스를 구현하기 위해 WAS와 DB만으로 구성할 수 있다. 그러나, 이렇게 구성했을 때의 한계를 알아보고 WEB, WAS, DB로 이루어진 웹 시스템 구성의 장점을 알아보자.

 

WAS, DB로 웹 시스템 구성


여기서 WAS는 정적 리소스, 애플리케이션 로직이 모두 제공 가능하다.

 

그러나, 이러한 구성의 단점은 다음과 같다.

 

[단점]

  • WAS가 너무 많은 역할을 담당하며 서버 과부하 우려가 있다.
  • 가장 비싼 애플리케이션 로직이 정적 리소스 때문에 수행이 어려울 수 있다.
  • WAS 장애시 오류 화면도 노출 불가능하다.(보통 오류는 정적 리소스보다 애플리케이션 로직 때문에 많이 나기때문에 로직이 고장나 화면도 노출이 안됨..)

 

WEB, WAS, DB로 웹 시스템 구성


위와 다르게 웹 서버를 추가해 정적 리소스는 웹 서버가 처리하도록 하고 애플리케이션 로직같은 동적인 처리가 필요한 것은 WAS가 처리하도록한다.

 

이러한 구성의 장점은 다음과 같다.


효율적인 리소스 관리가 가능하다.

만약 정적 리소스가 많이 사용되면 Web 서버를 증설하면 되고,

애플리케이션 리소스가 많이 사용되면 WAS를 증설하면 된다.

 

 


또한, 정적 리소스만 제공하는 웹 서버는 잘 죽지 않는다.

그렇기 때문에 애플리케이션 로직이 동작하는 WAS나 DB가 장애가 나면 WEB서버에서 오류 화면을 제공하면 된다.

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
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
글 보관함