개발 아티클 스터디 3일차

윤수빈·2024년 6월 27일
0
post-custom-banner

1. 웹 동작 방식

웹 클라이언트와 웹 서버가 어떻게 작동할까?

Node.js와 게임 개발 에서 예시로 들었던 햄버거 가게를 이어서 설명해보고 싶다.

  1. 손님은 햄버거를 주문하기 위해 카운터로 가서 주문을 한다.
  2. 카운터는 손님의 주문을 받고 주방에 작업을 알린다.
  3. 주방에서는 주문을 보고 재료들이 있는 곳을 찾아 요리를 한다.
  4. 주방에서 요리를 마치고 카운터에 완성된 음식을 준다.
  5. 카운터에서 음식을 손님에게 제공한다.

이렇게 웹 클라이언트는 카운터, 웹 서버는 주방으로 예시를 들어 설명한다.
각 순서에서 클라이언트와 서버가 어떤 일을 하는지 알 수 있다.

1번에서는 주문을 한다에서 웹 클라이언트를 이용하는 사용자가 어떤 것을 입력하거나 행동을 취한다.

2번에서는 주문을 받고에서 클라이언트가 사용자의 입력을 받아서 작업을 알린다에서 서버에게 요청을 한다.

3번에서는 재료들이 있는 곳에서 서버가 사용자가 원하는 데이터를 제공할 수 있게 저장된 DB를 찾는 행위이다.

4번에서는 완성된 음식을 준다에서 서버가 웹 클라이언트의 요청에 맞게 응답한 것을 알 수 있다.

5번에서는 손님이 입력하거나 행동에 취한것에 대한 응답을 웹 클라이언트가 화면에 띄워준다.

📱 웹 클라이언트

웹 클라이언트는 사용자가 웹에 접근하는 프로그램을 말한다.
IE, Chrome, Firefox 등 우리가 알고있는 웹 브라우저는 대부분 웹 클라이언트이다.
사용자는 이 웹 클라이언트를 통해 웹 서버에 요청(Request)을 하게 된다.
또한, 서버에서 받은 응답(Response)을 화면에 띄우는 역할을 해준다.

🧮 웹 서버

HTTP 또는 HTTPS를 통해 웹 브라우저에서 요청하는 HTML 문서나 오브젝트(이미지 파일 등)을 전송해주는 서비스 프로그램을 말한다.
아파치 웹 서버, GWS, IIS 등이 웹 서버이다.
클라이언트에서 요청(Request) 받아 필요한 데이터(HTML, CSS, JS, Image 등)를 DB에서 가져와 클라이언트에 다시 응답(Response) 해준다.


2. WAS (Web Application Server), Web Container

위 그림에 보이는 WAS와 Web Container는 무엇인가?

햄버거 가게 예시를 다시 보자면
재료들이 있는 곳을 찾는 과정 전에 혼자서 요리하는 것이라면 상관없지만 여러 명이 요리를 한다면 어떨까?
여러 명이 같은 재료를 찾기 위해 한 곳에 몰리지는 않을 것이다.

각자 역할이 있고 역할에 따라 요리를 준비하고 하나로 합치게 된다.

여기서 역할을 분배하는 헤드(셰프)가 바로 웹 서버, 실제로 재료를 찾아 요리를 하는 사람들이 WAS 라고 보면 된다.

요리를 한 일부를 한 곳에 모아야하지 않는가? 그 역할을 담당하는 것이 바로 Web Container이다.

이제 Web Container에서 합쳐져 완성된 음식을 카운터에 제공하는 것이 바로 웹 서버이다.

즉, WAS는 다양한 서버 내 알고리즘, 로직, DB 조회 등 클라이언트의 요청에 따라 동적인 콘텐츠를 제공하는 웹 애플리케이션 및 프로그램이다.

Web Container는 웹 서버가 보낸 JSP, PHP, ASP.net 등의 파일들을 실행하고 수행결과를 다시 웹 서버로 보내주는 역할을 한다

🤔 그냥 서버가 다 하면 되는일 아닌가? 왜 WAS를 사용하는 걸까?

  • 서버가 모든일을 다 하게되면 서버 부하가 생길 수 있는 우려가 있다.
  • 물리적으로 분리하여 보안을 강화한다.
  • 여러 대의 WAS를 연결해 로드 밸런싱 용도로 사용한다.
  • 여러 언어의 웹 애플리케이션 서비스가 가능하다.

결론적으로, 자원 이용의 효율성 및 장애 극복, 배포 및 유지보수의 편의성을 위해 Web Server, WAS를 각기 사용한다.


참고자료
1. [해치지 않는 웹] 1. 웹 동작 방식
2. 웹서버(Web Server) 와 웹 어플리케이션 서버 (WAS)

profile
정의로운 사회운동가
post-custom-banner

0개의 댓글