Java
-
서블릿(Servlet)의 구조와 접근방식 (feat. CGI)Java 2021. 2. 16. 08:18
서블릿은 자바 소프트웨어 컴포넌트로 클라이언트의 요청을 처리하기 위해서 서버 안에서 실행됩니다 [1, 2]. 서블릿은 특정 클라이언트 프로토콜에 한정되지 않으나, 주로 HTTP를 많이 사용하기에 Servlet은 보통 HTTP Servlet을 의미하곤 합니다. 서블릿은 Sun Microsystems에 의해 CGI의 한계점을 극복하기 위해 개발되었습니다. 서블릿은 javax.servlet 또는 javax.servlet.http 패키지에 존재하는 자바 인터페이스를 implement하여 만들어 집니다. HTTP 서블릿은 주로 아래와 같은 목적을 위해 사용됩니다: HTML 폼 형태로 제출된 데이터의 처리 및 저장 동적 컨텐츠 제공 (예로, 클라이언트에 쿼리 요청에 해당되는 데이터를 데이터베이스에서 읽어서 전달) ..
-
웹서버, 앱서버 그리고 CGI (Web & Application Server and CGI)Java 2021. 2. 14. 22:25
Java 기반의 웹 애플리케이션을 개발 시, 로컬에서 src/java와 src/webapp의 파일들을 서버에 올리고 실행하여 http://localhost:8080으로 들어가 체크하게 됩니다. 반면, 배포 시 어떠한 경우에는 web과 같은 경우는 하나의 서버에 그리고 src/java의 파일들을 포함한 war 파일로 압축한 것은 다른 서버에 나누어 배포 하기도 합니다. 이 글에서는 아래와 같은 사항을 중점으로 웹 서버(전자)와 애플리케이션 서버(후자), 그리고 웹 서버와 앱 서버의 커뮤니케이션을 담당하는 CGI(Common Gateway Interface)에 대해 기술합니다: CGI 웹 서버와 애플리케이션 서버 CGI 가장 처음의 그래픽 웹 브라우저인 Mosaic 브라우저가 탄생했던 웹 초창기에 stati..
-
Spring MVC Internals (내부구조)Java 2021. 2. 12. 23:39
Spring MVC는 Spring Framework의 일부로 Spring Web Layer에서 MVC(Model-View-Controller)를 구현한 Web-Servlet 모듈입니다. 이번 글에서는 클라이언트 요청과 응답 시 Spring MVC가 어떻게 동작하는지를 중점으로 그 구조를 살펴보겠습니다. Servlet: Java Web 애플리케이션의 기반 DispatcherServlet: SpringMVC의 중심 HTTP 요청 처리 과정 요청 처리(handle) Handler 메소드의 아규먼트와 리턴값 처리 뷰 렌더링 아래에서 SpringWeb MVC가 어떠한 방식으로 동작하는지 이해하기 위해서, 아래와 같이 간단한 hello() 메소드가 @Controller로 annotated된 클래스에 존재한다고 가정..