개요
서블릿과 JVM에 대해 알아보자'
참고 블로그 : https://viewa.tistory.com/39
CGI
서블릿을 알아보기 전에 CGI 무엇인지를 우선 알아보자
Common Gateway Interface 약자로 웹 서버와 외부 프로그램(애플리케이션) 간의 데이터를 주고받는 방법에 대한 규격, 웹 서버가 동적인 콘텐츠도 제공할 수 있게 하는 방법이다.
즉, 동적 콘텐츠를 생성할 수 있는 프로그램과 웹 서버 간에 데이터를 주고받을 수 있는 규격이다.
웹 서버도 종류가 여러가지일 것이고, 프로그램 또한 엄청나게 많은 프로그램이 존재하기 때문에 서로 입출력을 주고받은 표준이 필요. 이 표준에 맞추어 만들어진 것이 CGI 스크립트이다.
웹 서버가 클라이언트에게 응답을 보내기 위해 사용자가 만든 애플리케이션과 통신해야 하는데, 그것을 도와주는 인터페이스.
💡 인터페이스 : 상호 간의 소통을 위해 만들어진 물리적 매개체나 프로토콜
서블릿 (Servlet)
서블릿(Servlet)은 Java 언어로 작성된 웹 애플리케이션 구성 요소 중 하나로, 클라이언트의 요청을 처리하고 응답을 생성하는 데 사용된다.
서블릿은 Java 언어를 기반으로 하기 때문에 Java 가상 머신에서 실행된다. 서블릿은 웹 애플리케이션 서버에서 동작하며, 웹 서버와 함께 동작하여 웹 애플리케이션을 처리한다.
웹 서버는 클라이언트의 요청을 받아서 해당 요청을 서블릿으로 전달하고, 서블릿은 요청을 처리하고 응답을 생성하여 다시 웹 서버로 전달한다. 이러한 과정에서 서블릿은 클라이언트 요청과 관련된 데이터를 처리하고, 결과를 생성하여 응답으로 반환한다.
서블릿은 동적인 웹 어플리케이션을 만드는 데 사용된다. 예를 들어, 사용자가 로그인을 할 때 서블릿은 사용자 이름과 비밀번호를 검사하고, 유효한 경우 사용자에 대한 정보를 생성하여 웹 페이지에 표시한다. 또한, 서블릿은 데이터베이스와 같은 다른 시스템과 통신하여 데이터를 검색하고, 처리할 수 있다.
서블릿은 Java EE(Java Enterprise Edition) 플랫폼의 일부로 제공되며, Java EE에서 제공하는 다양한 API와 기술을 사용하여 웹 애플리케이션을 구축하는 데 사용된다. 서블릿은 많은 기능을 제공하며, 세션 관리, 쿠키 처리, 데이터베이스 연결, 보안 등의 기능을 처리할 수 있다.
JVM (Java Virtual Machine)
JVM은 Java 바이트코드를 실행할 수 있는 환경을 제공한다. Java 코드는 JVM을 통해 바이트코드로 컴파일된다. 이를 통해 Java 프로그램은 JVM이 설치된 모든 플랫폼에서 실행될 수 있다.
JVM은 바이트코드 해석, 메모리 관리, 가비지 컬랙션, 보안 제한 시행 등 중요한 작업을 담당한다.
Java 소스코드 즉, 원시코드(*.java)는 CPU가 인식하지 못하므로 기계어로 컴파일을 해줘야 한다.
하지만 Java는 이 JVM이라는 가상머신을 거쳐서 OS에 도달하기 때문에 인식할 수 있는 Java Bytecode(*. class)로 변환한다.
자바 바이트코드는 다시 실시간 번역기 또는 JIT(Just-In-Time-Compication) 컴파일러에 의해 바이너리 코드로 변환된다.
💡CPU가 이해하는 언어 : 바이너리 코드, JVM이 이해하는 언어 :자바 바이트코드
'Web' 카테고리의 다른 글
[Web] Web Server and WAS, Container (0) | 2023.02.22 |
---|