[TIL] 웹 어플리케이션 구조 내맘대로 개념정리

민아·2022년 3월 30일
0

지금 학원에서는 스프링 부트를 배우고 있는데 나는 백엔드 22일차에 서블릿부터 공부하기로 했다 ... 모르는건 그냥 모르는거다 ...


서블릿의 동작 원리를 이해하려면 먼저 웹 서버와 웹 어플리케이션 서버(WAS)의 관계 = 웹 어플리케이션 구조를 이해해야 하므로 설명에 앞서 내가 사랑하는 그림판발 손그림 투척

웹은 크게 클라이언트와 서버로 나누어 볼 수 있다. 문과식 예를 들자면 식당에 서비스를 요청하는 사람은 클라이언트, 메뉴를 받아서 클라이언트에게 서비스를 전달해주는 사람은 서버,

클라이언트 : 서버측에 서비스를 요청하는 쪽
서버: 클라이언트로부터 받은 요청을 처리하고 서비스를 제공하는 쪽

그중 서버는 기능적으로 두가지 요소로 구성되어 있다.

웹서버 : 클라이언트로부터 요청을 받고 처리 결과 페이지를 전송
웹 어플리케이션 서버 : 요청한 페이지의 로직이나 데이터베이스 연동을 처리하는 비즈니스 로직을 구현

그니까 얘네 인생은 주문을 처리하고 음식을 서빙하는 FOH와 주문을 받아서 요리를 만드는 BOH가 따로 있는것이다. 분업화가 아주 잘되어있다..

그럼 데이터베이스는? 클라이언트가 주문한 메뉴를 웹 어플리케이션 서버가 데이터베이스에 보내면 데이터베이스에서는 메뉴가 레시피에 있는지 없는지 확인하고 메뉴를 추가하든 수정하든 레시피에 없다고 전달하든 한다. 저장된 레시피 = 데이터베이스에 저장된 데이터
웹 어플리케이션 서버는 요리를 만들수 있으면 만들고 만들수 없으면 결과를 다시 웹서버로 보낸다. 웹서버는 결과를 클라이언트에게 페이지로 리턴한다. 이건 내가 이해했으니까 그냥 적자.

근데 사실 FOH와 BOH는 분업이 잘 된 한팀이고 두개로 분리되어 있는것이 아니다.

말하자면 톰캣은 웹 서버를 내장하고 있으므로 두가지 역할을 함께 수행한다.

웹서버: 정적인 페이지를 처리(HTML)하는 역할
웹 어플리케이션 서버(WAS): 동적인 페이지를 처리(JSP 서블릿)하는 역할

profile
그냥 꾸준히 하는중

0개의 댓글