목록미들웨어 (18)
Technical NOTE
G1 GC (Garbage First Garbage Collector)는 Java 7부터 도입된 Garbage Collector로, 대용량 힙 메모리를 효율적으로 관리하는 데 중점을 둔 저지연(低遲延) GC입니다. G1 GC는 Stop-the-world (STW) 시간을 줄여 애플리케이션의 응답성을 높이고, 힙 메모리를 효과적으로 관리하여 메모리의 단편화 문제를 줄이는 것을 목표로 설계되었습니다.G1 GC의 주요 특징Region 기반 힙 관리:G1 GC는 전체 힙 메모리를 고정된 크기의 여러 개의 영역(Region)으로 나눕니다. 각 Region은 1MB에서 32MB 사이의 크기를 가지며, Eden, Survivor, Old 영역의 역할을 할 수 있습니다.이로 인해 연속된 메모리 블록을 할당해야 하는 기..
Tomcat Valve는 Apache Tomcat의 핵심 기능 중 하나로, 특정 요청이나 응답에 대해 처리 로직을 추가하거나 필터링을 수행할 수 있도록 해주는 메커니즘입니다. Valve는 Tomcat의 request-response 사이클에서 필터와 유사하게 동작하지만, 컨텍스트(Context)와 호스트(Host)에 종속적으로 동작할 수 있는 점에서 더 강력하고 Tomcat 서버에 밀접하게 통합되어 있습니다.Valves는 주로 로그 기록, 보안 처리, 요청 필터링 등의 용도로 사용되며, Tomcat의 server.xml 파일에 설정할 수 있습니다. Valve는 각 Host, Context, Engine 또는 Server 수준에서 설정이 가능하며, 이를 통해 Tomcat 서버의 각종 요청에 대한 세부적인 ..
Tomcat 10과 Tomcat 9는 주요 차이점이 있으며, 이 중 가장 큰 변화는 Java EE에서 Jakarta EE로의 네임스페이스 전환입니다. 두 버전의 비교를 통해 주요 차이점과 성능, 기능적 차이를 자세히 설명하겠습니다.Tomcat 10 vs Tomcat 9 비교 표항목Tomcat 9Tomcat 10Java EE/Jakarta EE 버전Java EE 8 (Servlet 4.0, JSP 2.3)Jakarta EE 9 (Servlet 5.0, JSP 3.0)네임스페이스javax.* 패키지를 사용jakarta.* 패키지를 사용Servlet 버전Servlet 4.0Servlet 5.0JSP 버전JSP 2.3JSP 3.0WebSocket 버전WebSocket 1.1WebSocket 2.0HTTP/2 지..
Tomcat 10은 Apache Tomcat 프로젝트의 최신 주요 버전 중 하나로, Java Servlet, JSP, EL(Expressions Language), WebSocket과 같은 다양한 Java 웹 기술을 지원하는 오픈소스 웹 서버 및 서블릿 컨테이너입니다. Tomcat 10은 Java EE(Java Enterprise Edition)에서 Jakarta EE로 전환된 후 처음으로 등장한 버전으로, 이 전환이 Tomcat 10의 가장 큰 변화 중 하나입니다.Tomcat 10의 주요 특징 및 변화1. Jakarta EE 네임스페이스로의 전환가장 중요한 변화는 Java EE에서 Jakarta EE로의 전환입니다. Java EE는 2017년부터 Eclipse Foundation에 의해 관리되고 있으며..
ZGC(Z Garbage Collector)를 사용할 때 주의해야 할 점과 적합한 힙 메모리 크기에 대한 설명을 아래에서 다루겠습니다.ZGC 사용 시 주의해야 할 점CPU 사용량:ZGC는 매우 병렬화된 가비지 컬렉션 작업을 수행하므로 CPU 리소스를 많이 사용합니다. 따라서 여유 있는 CPU 코어가 있는 환경에서 성능이 잘 발휘됩니다.CPU 리소스가 부족한 환경에서는 성능 저하가 발생할 수 있으며, 다른 가비지 컬렉터가 더 나은 선택일 수 있습니다.메모리 오버헤드:ZGC는 객체 포인터에 추가적인 메타데이터(색상 인지 포인터)를 저장하여 메모리 사용량이 약간 더 증가할 수 있습니다. 대규모 메모리 환경에서는 이 오버헤드가 상대적으로 적지만, 소규모 메모리 환경에서는 메모리 낭비가 발생할 가능성이 있습니다...
ZGC (Z Garbage Collector)는 Java 11에서 처음 도입된 가비지 컬렉터로, Java의 가비지 컬렉션 방식 중 하나입니다. ZGC의 가장 큰 목표는 초저지연 (low-latency)을 제공하는 것입니다. 이는 가비지 컬렉션(GC) 동안 애플리케이션이 멈추는 시간을 최소화하는 것을 의미합니다. ZGC는 대용량 메모리 환경에서도 10ms 미만의 짧은 GC 지연 시간을 유지하도록 설계되었습니다.ZGC의 주요 특징초저지연 GC (Low Latency)ZGC는 대용량 힙(수 테라바이트까지 확장 가능)에서도 정지 시간을 10ms 미만으로 유지합니다.애플리케이션의 처리 중단 시간을 최소화하여, 실시간 성능을 요구하는 시스템에서 적합합니다.컨커런트(Concurrent) 방식대부분의 가비지 컬렉션 작..
- 작성일 : 2024.09.24 SpringFramework 에서 지원하는 JavaEE(JakartaEE) 스펙 버전은 아래와 같이 정리가 가능하다. SpringFramework 버전JavaEE (JakartaEE) 버전Servlet 버전JSP 버전JPA 버전최소 Java 버전호환 Java 버전1.xJ2EE 1.32.31.2 JDK 1.3JDK 1.3, 1.42.xJ2EE 1.42.42.0 JDK 1.4JDK 1.4, 53.0JavaEE 52.52.11.0JDK 5JDK 5, 63.1JavaEE 52.52.11.0JDK 5JDK 5, 6, 73.2JavaEE 52.52.11.0JDK 5JDK 5, 6, 74.0JavaEE 63.02.22.0JDK 6JDK 6, 7, 84.1JavaEE 63.02.22...
- 작성일 : 2024.09.12 미들웨어 (웹서버, 와스서버)는 장애가 발생하면 언제나 점검해야되는 대상 중에 첫번째로 늘 거론되는 제품이다.사용자 서비스가 지연이 되거나 무한루프를 도는 경우 미들웨어를 먼저 점검한 후 데이터베이스, 서버, 네트워크, 보안 장비 등을 점검하는 순으로 장애를 처리하는게 일반적인 것같다. 그래서 미들웨어 엔지니어는 미들웨어 자체 기술력 뿐만 아니라, DBMS, OS, Network, Security Appliance 등에 대한 다양한 기술력을 어느정도 가지고 있는 것이 중요한 것같다. 그리고 자기 제품에 대한 문제가 없는 것을 입증하기 위해 다양한 방법론과 접근방식을 가지고 있어서 잘하고 오래 견딜 수 있는 실력자가 되는 것같다. 최근 보안장비에서 패킷을 드랍(Drop)시..
- 작성일 : 2024.09.12 Tomcat 을 설치했으면 제일 먼저 JVM 옵션을 설정해야 한다.JVM을 모니터링하고 튜닝하기 위한 최소한의 표준화된 옵션 작업이므로,싸이트 상황에 맞게 튜닝해서 사용하기를 권장한다. 먼저 gclog와 heapdump가 생성될 디렉토리를 생성하는 작업을 먼저 수행한다.$ mkdir /logs/tomcat/gclog $ mkdir /logs/tomcat/dump 그러면,catalina.sh 파일을 열어서 JAVA_OPTS 파라미터에 생성하는 작업을 해주겠다.설정 파라미터 값은 편의를 위해 TOMCAT_JVM 이라는 이름을 생성해서 추가해주겠다.$ cd ${TOMCAT_HOME}/bin $ vi catalina.sh>JAVA_OPTS="$JAVA_OPTS $JSSE_OPT..
- 작성일 : 2024.09.12 2024년 9월 기준으로 Tomcat 9 버전의 최신 패치는 Tomcat 9.0.93 버전이다. Tomcat 9 바이너리 다운로드 1. tomcat 싸이트에 접속해서 Tomcat 9 버전 최신 버전 확인하기아래 tomcat 공식 페이지에 접속해서, Tomat 9 버전의 최신 패치가 몇인지 확인한다.https://tomcat.apache.org/download-90.cgi Apache Tomcat® - Apache Tomcat 9 Software DownloadsWelcome to the Apache Tomcat® 9.x software download page. This page provides download links for obtaining the latest v..
- 작성일 : 2024.09.05 Tomcat 9 버전을 운영하기 위해 Java 8 이 필요하다고 가정했을 때,JDK 8 버전을 설치하는 방법을 설명한다. 먼저 Java를 설치할 경우, JRE를 설치할 수도 있고, JDK를 설치할 수도 있다.그런데 WAS의 경우 JRE를 설치하게 되면 javac 명령이 없어서 javac를 이용한 java파일을 컴파일 할 수 없게 된다. 그런 이유로 WAS에서는 jsp파일이 컴파일이 안되어 동작이 안될 수 있으니, 반드시 JDK를 설치해야한다. 여기서는 총 3가지 설치방법을 설명한다. 첫번째 방법 : yum을 이용한 OpenJDK 8 버전 설치하기 1. 먼저 설치 가능한 JDK 버전을 확인한다.$ sudo yum list java*jdk-devel-> 우리는 목록 중에 j..
- 작성일 : 2024.09.05 먼저 Tomcat 9 버전을 설치하기 위해 OS 버전과 설치할 OS 그룹명/계정명, 설치 디렉토리, 로그위치를 정해야 한다. 설치 전 점검 사항설치 항목설치 정보(값)기타Tomcat 버전Tomcat 9.0 Java 버전Java 8- JDK가 설치되어야 함 (JRE는 안됨)- Java 8u421 (2024년 9월 기준 최신)설치 OSCentOS 7.9 CPUx86/x64 OS Group명/GIDwebgrp / 10010 OS User명/UIDtomcat / 10020 설치 Directory명/app/tomcat/tomcat9 Log Directory명/logs/tomcat ※ 제품설치와 로그기록을 위해 별도의 Disk Mount 설정 권고. 용량은 싸이트 상황에 맞게 설..
- 작성일 : 2024.09.05- 참고 URL : egovframework:dev4.2:gettingstarted [eGovFrame] - 참고 URL : egovframework:dev4.2:gettingstarted [eGovFrame] egovframework:dev4.2:gettingstarted [eGovFrame]본 가이드는 전자정부 표준프레임워크 기반의 단순한 응용프로그램(HelloWorld)를 직접 실습해 봄으로써 빠른 시간 내에 전자정부 프레임워크의 기본 기능을 파악하기 위하여 제공한다. 본 가이드www.egovframe.go.kr 전자정부 표준프레임워크 4.2.0 버전이 릴리즈되면서 개발환경과 운영(실행)환경이 JDK버전 차이가 발생해서 혼란스러운 부분이 있는데, 개발환경의 경우 ec..
- 작성일 : 2024.09.05- 수정일 : 2024.09.24 / JEUS 21 추가 2024.12.05 / JEUS 8.5 -> JDK 17 지원 추가 / JEUS 9, JEUS 11 추가 (단 11버전은 Roadmap 상 내용임)- 기준일 : 2024년 12월 5일 기준 JEUS 버전Fix버전JDK 6JDK 7JDK 8JDK 11JDK 17JDK 21EE Version비고JEUS 7Fix#1 ~ #3●● 6 Fix#4●●● 6JDK 1.8 적용을 위해 jext_v7004_i105358_a691316.jar 패치 적용 필요Fix#5●●● 6 JEUS 8 ● ● 7 JEUS 8.5 ..
- 작성일 : 2024년 9월 5일- 제품 : JEUS 8.5 고객사에서 JEUS의 webadmin 화면에 접속하기 위해서 기본 context-path 인 /webadmin 이 아닌 다른 context-path를 설정하고자 하는 경우, JEUS 에서는 adminServer 의 jvm 설정에 -D 설정을 이용해서 context-path 설정이 가능하다. adminServer의 jvm option 에 "-Djeus.domainadminserver.webadmin.contextpath=/contextpath" 옵션 추가 후http://:/ 호출 시 webadmin 페이지 정상적으로 뜨는 것을 확인할 수 있다. 참고로 JEUS 7 버전은 별도의 패치파일이 필요할 수 있다. - JEUS 7.0 Fix#3 : 1..
JEUS 8.0 버전을 사용하면서 deploy시에 JEUS 엔진단에서 IllegalArgumentException 이 발생함그런데 로그를 보면 에러는 났지만 deploy는 그대로 진행하겠다고 하는데 실제로 deploy는 성공해서 page test는 성공아래는 JeusServer.log 파일에서 Exception이 발생한 Stack Trace임[2018.08.08 12:00:21][2] [www-31] [WEB-3911] Processing @HanlesTypes of ServletContainerInitializers failed for the class [module-info.class] but the deployment process will continue.>java.lang.IllegalArgum..
WAS에서 jsp파일을 컴파일하게 되면 자동으로 smap 확장자 파일이 생성되는 경우가 있다..smap 파일이 생성되지 않도록 하는 가이드이다. ※ 테스트 환경WAS : JEUS 6.0 Fix#9JDK : JDK 1.7.0_55 1. suppressSmap param 설정하기jsp compile 시 생성되는 .smap 파일은 jsp 파일의 debugging을 위해 자동으로 생성되는 파일이다.그래서 smap 파일을 생성하지 않기 위해서는 web.xml 파일에 jeus.servlet.servlets.JspServlet의 suppressSmap param 값을 true로 설정해 주어야 한다.또한 servlet-mapping을 *.jsp로 설정하여 모든 jsp에 대하여 적용되도록 해주면 된다. ▶ web.xml..
WAS에서 TO_CHAR를 이용해 요일을 한글로 가져오는 방법에 대해 설명한다. Windows 환경에서는 문제가 안될 것같은데,Linux나 Unix 환경에서는 TO_CHAR를 이용해서 날짜 데이타를 'YYYY/MM/DD DY' 포맷으로 요일 정보를 가져오는 경우 한글로 요일이 출력되어야 되는데 영문으로 출력되는 경우에 대한 해결 방법 ※ 테스트 환경OS : CentOSWAS : JEUS 7DB : Tibero 6 쿼리문 : SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD DY') FROM DUAL; 1. TbSQL에 접속해서 DB의 NLS_DATE_LANGUAGE 파리미터가 KOREAN 인지 확인하기TbSQL은 Tibero에서 제공하는 Command 기반 Tool이다. 오라클의sqlpl..