IT 도서 리뷰/개발자가 되기 위해 꼭 알아야 하는 IT 용어

[Part1] 웹/디자인 - TERMS 03

goldenkiwi-coder 2024. 8. 9. 20:59

[TERMS 03] 웹 서버 / WAS

웹 서버와 클라이언트간의 소통을 설명하는 이미지

1) 웹 서버(Web Server) / WAS (Web Application Server)의 정의

웹 서버와 WAS는 사용자(클라이언트)의 요청을 받고 요청에 적절한 결과를 사용자에게 전달하는 프로그램이다.

 

2) 웹 서버 / WAS는 어디서 접하게 될까?

서버는 서비스 운영에 꼭 필요!

브라우저를 이용하여 웹 서핑을 하거나, 모바일 앱을 활용하여 하는 모든 행위는 서버를 통해서 이루어진다. 서버는 사용자의 요청을 받아들이고 요청에 맞는 결과를 사용자에게 전달한다. 또한 웹 페이지를 만들 때 서버를 통하여 사용자에게 웹 페이지를 제공한다.

 

3) 웹 서버 / WAS 알아보기

>  개념

  • 웹 서버란?

 웹 서버는 자판기와 유사하다. 자판기가 돈을 넣고 물건을 고르면 원하는 물건을 그대로 전달하는 것처럼 웹 서버도 홈페이지를 보여 달라고 요청하면 홈페이지를 그대로 전달하여 우리에게 보여 준다. 중요한 부분은 어떠한 처리도 하지 않고 요청 받은 그대로 전달해 준다는 것이다.

 웹 서버는 하드웨어, 소프트웨어 두 가지 개념으로 구분 가능하다. 하드 웨어는 웹 서버가 설치된 컴퓨터를 의미한다. 소프트 웨어는 웹 브라우저에서 HTTP(HyperText Transter Protocol) 요청을 받아 HTML, CSS, 자바스크립트, image 등과 같은 '정적인 파일'을 제공해 주는 프로그램을 의미한다. 정적인 파일은 어느 사용자가 요청하든지 항상 동일한 콘테츠를 담고 있는 파일이다.

[ e.g. Apache, Nginx, Microsoft IIS ]

 

  •  WAS란?

 피자 가게에서 피자를 주문한다고 가정했을 떄, 피자를 선택한 뒤에 선택해야할 옵션이 여러개 존재한다.[ e.g. 도우, 토핑, 음료, 소스 추가 등] 피자 가게의 요리사는 고객의 다양한 요청을 받아들여 피자를 만들고 고객에게 전달해 준다. 이것이 WAS의 형태이다. WAS는 데이터베이스 조회나 다양한 로직 처리를 요구하는 동적인 콘텐츠를 제공하기 위해 만들어진 앱 서버이다.

 사용자가 홈페이지에서 회원 가입을 하려고 하면 웹 서버에 회원 가입 요청을 전달하고 웹 서버는 WAS를 통해서 데이터베이스에 사용자의 아이디와 비밀번호 및 그 외 정보를 저장한다. [ e.g. Tomcat, JBoss, Jeus, Web Sphere ]

 

>  특징

  • 웹 서버의 역할
  1.  웹 서버는 HTTP 프로토콜(Protocol)을 기반으로 사용자의 요청에 응답하는 역할
  2. 사용자로부터 파일 위치의 이름을 받아 해당 위치에 존재하는 파일을 반환
  3. 정적인 콘텐츠를 제공
  4. 동적인 콘텐츠를 제공하기 위한 요청을 WAS에 전달
  5. WAS에서 작업이 처리되면 그 결과물을 클라이언트에게 전달
  • WAS의 역할
  1. 비즈니스 로직을 처리 : 핵심 역할
  2. 동적인 콘텐츠(사용자의 요청에 따라 내용이 바뀔 수 있는 것)를 제공 [ e.g. 다양한 로직 처리, 데이터베이스 사용 ]

 

4) 웹 서버 / WAS를 사용하는 이유

웹 서버를 통해 사용자들에게 입력을 받고 정보들을 저장하고 요청을 처리할 수 있다. => 상호 작용을 하는 중추 역할

 

 

5) 웹 서버 / WAS 사용하기

>  서버의 구조

서버의 구조를 설명하는 이미지

서버는 일반적으로 웹 서버와 WAS, DB 3가지로 구성된다.

 - 클라이언트에서 정적인 콘텐츠 요청 : 웹 서버에서 해당하는 파일을 클라이언트로 반환 후 요청이 종료

 - 클라이언트에서 동적인 콘텐츠 요청 : 웹 서버로 요청이 들어오고 웹 서버는 요청을 WAS로 넘긴다. WAS는 다양한 로직을 처리하고 필요한 경우에는 DB를 조회하고 삽입 하는 명령을 수행한다. WAS에서 로직이 처리되면 해당 페이지를 다시 웹 서버로 전달한 뒤 웹 서버는 클라이언트에게 페이지를 전달한다.

 

>  웹 서버와 WAS를 함께 사용하는 이유

  1. 업무를 분담하여 서버의 부하를 방지하기 위함(웹 서버는 정적 콘텐츠, WAS는 다양한 로직 처리 및 DB 조회)
  2. 여러 대의 WAS를 둘 경우 WAS가 처리해야 하는 요청을 여러 개의 WAS로 분산시켜 처리하도록 로드 밸런싱을 할 수 있다.
  3. 보안 측면에서 장점(사용자로부터 동적 콘텐츠 요청이 들어와도 WAS를 외부에 노출하지 않고 웹서버가 WAS로 연결 = 리버스 프록시)

 

6) 웹 서버 / WAS 더 알아보기

>  형태 및 종류

웹 서버와 WAS를 구성하는 환경에는 크게 온프레미스(On-premise)와 클라우드가 있다.

  • 온프레미스 : 클라우드 같은 원격 환경이 아닌 자체적으로 서버를 설치하여 운영하는 방식
  • 클라우드 : 특정 회사에서 운영하는 고성능 컴퓨터에 서버를 구축하는 방식

>  함께 알아 두면 좋은 용어

  • 클라우드
  • HTTP / HTTPS

>  혼동하기 쉬운 용어

  • 백엔드