JSP 컨테이너, Servlet 컨테이너 무엇인가✨

YaR Lab·2024년 7월 2일
1

TIL✨

목록 보기
110/135
post-thumbnail

24.07.02

today 😉

[블로그 정리는 단순 지식의 나열이 아니다❗️]
블로그 정리는 단순히 지식을 나열하는게 아닌 생각이 들어가야 한다고 듣고 오늘부터 지식에 대한 생각을 정리할 생각이다.

[디자인 패턴에 대해 공부하자❗️]
디자인패턴에서는 생성패턴을 많이 사용하고 그 중에서도 빌더패턴이 중요한 것 같다. 다른 구조, 행위패턴에서는 퍼사드와, 옵저퍼 패턴이 많이 사용 된다고 한다. 디자인 패턴에 대해 다시 공부해 보면 좋을 것 같다.

[프로필 관리 하는 법❗️]
깃 허브 프로필 관리는 내가 한 프로젝트의 링크를 달아 놓는 것 보다 대략적인 프로젝트 정보를 한눈에 볼 수 있게 정리해 놓는게 좋다고 느꼈다.

[MVC패턴은 왜 사용 하는가❓]
Spring에서 MVC패턴을 사용하는 이유는 관심사를 분리하여 유지보수를 용의하게 하기 위해 사용한다고 생각했다.

[파일명 앞에 .이 붙으면❓]
보통 숨긴파일을 의미 한다고 한다. 해서 .idea 디렉토리안은 대체로 건들지 않는다고 하는데 사용자가 실수로 수정하거나 삭제하는 것을 방지하는 파일에 대체로 .을 붙이는 것 같다.

[대용량 트래픽 처리 어떻게 할 것 인가❓]
미리 대용량 트래픽을 일으키는 요청에 marking해놓고
post요청을 처리하기 전에 서버를 증설한다.

[라이브러리 와 프레임워크의 차이는 무엇 인가❓]
둘 다 개발자를 도와주는 도구이지만 가장 큰 차이는 코드 흐름에 대한 제어권이 '누구에게 있느냐?' 인것 같다. 항상 둘의 차이가 헷갈렸는데 이번 기회로 개념을 확실하게 잡고 가는 것 같다.

[JSP 컨테이너, Servlet 컨테이너 무엇 인가❓]
대부분의 WAS에서 서블릿 컨테이너와 JSP 컨테이너를 내장하고 있다. JSP 컨테이너는 JSP파일을 서블릿 소스로 변환, 컴파일까지만 담당하는 프로그램이다. 변환된 서블릿의 수행은 서블릿 컨테이너가 담당한다. 아래는 클라이언트의 요청이 들어왔을때 JSP 컨테이너와 서블릿 컨테이너의 역할을 소개한 그림이다.

1️⃣ MVC(at.Spring)

Model

  • 비즈니스 로직 관리
  • 데이터 관리

View

  • 입력을 받거나 모델에서 전달된 데이터를 표현
  • 클라이언트 요청에 대한 response 생성(HTML, JSON, XML 등)

Controler

  • 사용자 요청을 라우팅
  • 모델과 뷰 사이에서 상호작용을 담당

2️⃣ JSP(JavaServer Pages)

  • 서버 사이드 템플릿 엔진
  • 서버 측에서 실행되며, 웹 서버에서 동적인 HTML을 생성
  • HTML 코드에 JAVA 코드를 넣어 동적웹페이지를 생성

🗄️ JSP(JavaServer Pages) 컨테이너

  • 웹 서버의 일부로 JSP 파일을 처리하는 역활
  • 사용자가 요청한 JSP 파일을 서블릿으로 변환하고, 이를 컴파일하여 실행하는 역할

🔄 동작원리

  1. 서버에 요청(클라이언트)
  2. 웹 서버는 요청을 수신받아 JSP 컨테이너로 요청을 전달

(JSP 컨테이너 역활)
  1. JSP 파일이 컴파일 됐는지 확인한다
  2. 컴파일 안됐으면 서블릿으로 변환(.jsp -> .java)
  3. 서블릿 자바 코드를 자바 바이트코드로 컴파일(.java -> .class)
  4. JSP 컨테이너는 서블릿 .class 파일을 메모리에 로드하고 실행
  5. 실행한 결과를 웹서버에게 반환

  1. 정적페이지(실행한 결과)를 클라이언트에게 응답

3️⃣ 서블릿

  • 자바를 사용하여 웹 요청을 처리하고 동적인 콘텐츠를 생성하는 서버 측 프로그램
  • 웹페이지를 동적으로 생성하기 위해 서버측 프로그램
  • 웹 어플리케이션 서버 ( Web Application Sever ) 위에서 컴파일 되고 동작

0개의 댓글