WEB개발/WEB, WAS (8) 썸네일형 리스트형 코헤런스 (Coherence) : 오라클(Oracle)에서 제공하는 분산 인 메모리 데이터 그리드 솔루션입니다.분산 캐싱과 데이터 공유를 위한 클러스터링 솔루션대규모 애플리케이션에서 고성능, 확장성, 가용성을 보장인메모리 데이터 그리드(IMDG, In-Memory Data Grid) 역할 수행금융, 전자상거래, 실시간 데이터 분석 등 대규모 트랜잭션 처리에 사용됨 CoherenceWeb 사용 시 세션 값 변경 시 동작 방식 Coherence Web은 세션을 Coherence 캐시에 저장하고, 여러 WAS 간에 공유하는 방식입니다. 기본적으로 WAS와 Coherence 두 군데에서 쓰기 작업이 발생하며 특정 WAS에서 세션을 변경하면, 다른 WAS들도 최신 세션을 가져오도록 동기화됩니다.세션 변경 흐름 1️⃣ 사용자가 특정 WAS.. HTTP Authentication 1. Basic Authentication : 클라이언트가 서버에 리소스를 요청할 때, 인증이 필요한 경우 서버는 401 Unauthorized 응답을 반환하고, WWW-Authenticate 헤더를 통해 인증 방식을 지정합니다. 인증 헤더 생성: 클라이언트는 사용자 이름과 비밀번호를 "username:password" 형식으로 결합하고, 이를 Base64로 인코딩하여 Authorization 헤더를 생성합니다. username:password=>BASE64인코딩 : dXNlcm5hbWU6cGFzc3dvcmQ= GET /protected/resource HTTP/1.1 Host: example.com Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ= 2. Bearer T.. Tomcat - Jasper (JSP Engine) 기호의믜설명^문자열의 시작문자열이 특정 문자로 시작함을 의미-문자가 1번 이상 발생문자가 1번 이상 발생*문자열의 끝문자열이 특정 문자로 끝남을 의미+임의의 한 문자문자가 1번 이상 발생-문자가 0번 이상 발생문자가 1번 이상 발생 실제 JSP 페이지의 요청을 처리하는 ServletHTTP 요청을 Coyote에서 받아서 Catalina로 전달합니다.그러면 Catalina (Servlet Container)에서 전달받은 HTTP 요청을 처리할 웹 어플리케이션 (Context)를 찾고, WEB-INF/web.xml 파일 내용을 참조하여 요청을 전달합니다.요청된 Servlet을 통해 생성된 jsp 파일들이 호출될 때, Jasper (JSP Engine)이 Validation Check / Compile 등을.. Class Loader & Hot Deploy Class Loader란?Class Loader는 자바 바이트코드를 읽어들여 클래스 객체를 생성하는 역할을 담당한다. 클래스 로딩 방식에는 load-time dynamic loading과 run-time dynamic loading이 있다.load-time dynamic loading은 클래스를 로딩하는 과정에서 다시 필요한 클래스를 로딩한다. 예를 들어 HelloWorld 클래스 내에 System.out.println이 있다면 java.lang.System을 로딩할 것이다. run-time dynamic loading은 클래스 내 코드를 실행하는 과정에서 필요한 클래스를 로딩한다. Class.forName()을 사용하는 경우가 대표적이다. 클래스 로딩의 순서는?Bootstrap Class Loader.. Jenkins & SVN or Git & Docker 형상관리는 소프트웨어 개발 및 다른 프로젝트에서 코드, 문서, 구성 요소 등의 변경을 관리하고 추적하는 과정을 말합니다. 이를 통해 개발자나 팀은 프로젝트의 이전 버전과 변경 사항을 관리하고, 협업하며, 문제를 해결할 수 있습니다. 1. CI (Continuous Integration) - 지속적 통합목적: 개발자가 작성한 코드를 정기적으로(종종 하루에도 여러 번) 중앙 저장소에 통합하여 코드 충돌을 최소화하고 빠르게 문제를 발견하는 것.주요 활동:코드 변경 사항을 중앙 저장소에 푸시하면 자동 빌드와 테스트가 실행됨.작은 단위로 자주 통합하여 충돌을 줄이고 코드 품질을 보장.필요한 도구: Jenkins, GitHub Actions, GitLab CI, CircleCI 등. CI의 주요 단계:코드 병합: .. TheadLocal & MDC & Log4j2 서버에서 로그를 확인할 경우 grep으로 로그를 캐치할 시 라인단위로 인식하기 때문에 모든 trace를 볼 수 없다. MDC와 log4j2를 사용하면 각 접속한 IP별로 로그를 확인 할 수 있다. ThreadLocal ThreadLocal 변수를 선언하면 멀티 스레드 환경에서 각 스레드마다 독립적인 변수를 가지고, get(), set() 메소드를 통해 값에 대해 접근할 수 있다. public class TestThread implements Runnable { private ThreadLocal threadLocal = new ThreadLocal() { @Override protected DataObj initialValue() { DataObj dataObj = new DataObj(); .. WEB.XML Config (context-param, init-param, web-app ... ) 1. 컨텍스트 초기화 파라미터() - context-param은 init-param 그 이상으로 전역 즉 모든 서블릿에서 사용할 수 있는 파라미터 값이다.- 항목내에 작성- 예) DD상에 작성방법 paraname paravalue - 서블릿 상에서 호출시: getServletContext().getInitParameter("paraname");- 범위: 웹 애플리케이션에 존재하는 어떤 서블릿이나 jsp모두 2. 서블릿 초기화 파라미터()-해당 파라미터 값은 지정해준 서블릿 내에서만 쓸 수 있는 값이다.- 항목 안에 작성- 예) DD상에 작성방법 servletname servletclass paraname paravalue .. ClassPath, ClassLoad, JAVA COMPILE(컴파일), Tomcat 클래스패스란(Class Path)란?? 클래스패스란 말 그대로 클래스를 찾기위한 경로이다. 자바에서 클래스패스의 의미도 똑같다. 즉, JVM이 프로그램을 실행할 때, 클래스파일을 찾는 데 기준이 되는 파일 경로를 말하는 것이다. 소스 코드(.java로 끝나는 파일)를 컴파일하면 소스 코드가 “바이트 코드”(바이너리 형태의 .class 파일)로 변환된다. java runtime(java 또는 jre)으로 이 .class 파일에 포함된 명령을 실행하려면, 먼저 이 파일을 찾을 수 있어야 한다. 이때 .class 파일을 찾을 때 classpath에 지정된 경로를 사용한다. java -cp .:lib/library.jar com.example.Main-cp(또는 -classpath) 옵션으로 클래스패스를 지정합.. 이전 1 다음