Web Server/Apache Tomcat 4

Tomcat > Servlet > 내장(Built in) 서블릿

Servlet요즘에는 자바 웹 애플리케이션을 만들 때 스프링 사용이 기본이 되기 때문에 서블릿을 등록하고 사용할 일이 거의 없다. DispatcherServlet 정도만 사용할 것이다 따라서 우리가 사용하는 서블릿은 DispatcherServlet이 유일하다고 생각할 수 있는데 그렇지 않다  Built In Servlets톰캣 바이너리의 conf 폴더에는 web.xml이 있는데, 내용을 살펴보면 내장 서블릿 2개를 정의하고 있다 Default Servlet default org.apache.catalina.servlets.DefaultServlet debug 0 listings false 1 default / 주석에는 아래와 같이 적혀 있다정적 자원을 제공하는..

Tomcat > 로그 파일 내 한글 깨짐 해결

외장 톰캣 사용 시정확히는 EUC-KR을 사용하는 톰캣 설정에서의 이슈다 setenv.shexport CATALINA_OPTS="-Dfile.encoding=utf-8" 위 설정 추가 후 톰캣 재시작하면 문제 해결되었음 그런데 설정 아래쪽에 euc-kr로 설정된 부분이 있었다export LC_ALL="ko_KR.euc-kr"export LANG="ko_KR.euc-kr" 여기서 알 수 있는 건, LC_ALL, LANG 설정보다 file.encoding 설정이 우선한다는 것이다(결론적으로 불필요하다고 할 수 있다) file.encoding 설정을 다시 제거하고, 위 설정을 euc-kr을 쓰지 않도록 해보았다export LC_ALL="ko_KR.UTF-8"export LANG="ko_KR.UTF-8" 변경 ..

Tomcat > 성능 튜닝 > 기본

테스트 대상 애플리케이션의 정보 TPS: 10 평균 응답 속도: 1초 이하 DB 접속 등 외부 통신 없음 튜닝 가능 설정 값 maxConnections 기본값: 8192 톰캣을 만든 사람들이 기본값을 아무 값이나 정했을리는 없을 것이다. 하나의 톰캣 인스턴스가 요청 8192 건은 충분히 받을수 있다는 말이 아닐까? (받을 수 있다는 거지 처리할 수 있다는 건 아닐 수 있다.) acceptCount 기본값: 100 조대협님의 블로그에는 10 내외의 값을 권하고 있다. maxThreads 기본값: 200 하나의 톰캣 인스턴스가 요청 8192 건은 충분히 처리할 수 있다는 말이 아닐까? (해당 요청의 작업 속도에 따라 다를 것이다.) 튜닝 목적 기본 값 사용 시 얼마나 많은 동시 요청을 처리할 수 있을지에 대..

Tomcat > 성능 튜닝을 위한 사전 학습

행복한 코딩 생활을 방해하는, 잊을만하면 다시 찾아와 괴롭게 만드는 웹 서버 이슈 정말 싫다. 이제 공부 좀 해야겠다. 학습 대상 Embedded Tomcat 9.0.70 (Spring Boot 2.7.7) 톰캣 9의 특징 BIO(Java Blocking Connector)가 삭제되고 기본적으로 NIO(Java Nio Connector)가 사용됨 https://tomcat.apache.org/tomcat-8.0-doc/config/http.html#Connector_Comparison https://tomcat.apache.org/tomcat-9.0-doc/config/http.html#Connector_Comparison BIO와 NIO의 차이점은 추후에 알아보겠다. NIO와 NIO2의 차이점은 추후에..