WAS 3

Tomcat : 사용자 요청을 멀티스레드로 처리하는 방법(2)

이번 장은 init / load 과정을 설명한 Tomcat : 사용자 요청을 멀티스레드로 처리하는 방법(1) 에 이어서 start 메서드의 동작 방식에 대해 알아보겠습니다. /** Bootstrap.class */ public void start() throws Exception { if (this.catalinaDaemon == null) { this.init(); } Method method = this.catalinaDaemon.getClass().getMethod("start", (Class[])null); method.invoke(this.catalinaDaemon, (Object[])null); } load메서드와 마찬가지로 bootstrap의 start 메서드는 catalina의 start ..

Tomcat 2022.02.28

Tomcat : 사용자 요청을 멀티스레드로 처리하는 방법(1)

이전 장에서는 톰캣이 Jasper & Catalina & Coyote 세가지 컴퍼넌트로 이루어져있는 자바 애플리케이션이고, 톰캣을 실행시킨다는 것은 Bootstrap 자바 클래스파일을 실행시키는 것과 같으며 Bootstrap의 main 메서드는 실행 시 init, load, start 메서드를 차례로 실행한다는 것 까지 간단하게 알아봤습니다. 이번 장에서는 init -> load -> start 세가지 메서드를 더 자세히 파헤치며, 톰캣이 사용자 요청을 어떻게 멀티스레드로 처리하는지 확인해보겠습니다. Init 먼저 init에서는 catalina.class 파일(실질적인 로직들이 구현된 파일)을 가져와 인스턴스화 하는 동작만 합니다. 코드를 통해 보여드리면 package org.apache.catalina..

Tomcat 2022.02.27

Tomcat : Overview

톰캣은 자바진영의 대표적인 WAS입니다. 여기서 WAS란, 쉽게 설명하면 요청을 받는 서버역할도 하면서 동적인 결과를 만들어내는 애플리케이션의 역할도 하는 서버입니다. 톰캣은 서블릿 컨테이너라고도 불리우는데, 이 컨테이너는 개발자가 작성한 서블릿이라는 자바 로직을 실행하여 동작합니다. 톰캣에 대한 내용을 다루게 된 이유는 이 톰캣과 서블릿을 왜, 어떤 장점이 있길래 많이들 사용하는지 이론이 아니라 구체적인 로직을 통해 알아보고싶었습니다. 아래 블로그가 도움이 많이 되었으니 참고해주세요. https://medium.com/chequer/tomcat-spring-bootstrapping-sequence-1편-tomcat-4402102c0585 https://medium.com/chequer/tomcat-sp..

Tomcat 2022.02.27