본문 바로가기

BackEnd36

서블릿 컨테이너의 ServletContext 동작 방식 / HttpSession 서블릿 관련된 포스팅이 있어서 공부 후 기록했다.ServletContext 의 생성 및 Session의 클라이언트와 서버간 동작 방식과 소멸 등에 대한 내용을 담고있다. ServletContext서블릿 컨테이너(아파치 톰캣과 같은)가 시작되면, 해당 서블릿 컨테이너는 모든 웹 어플리케이션들을 배포하고 로드(load)합니다.웹 어플이케이션이 로드되면 서블릿 컨테이너는 ServletContext를 한번 생성하여, 서버의 메모리에 보관합니다.(각 웹 애플리케이션에 대해 서블릿 컨테이너는 해당 애플리케이션의 설정 파일인 web.xml 또는 애너테이션 기반 설정을 읽고 초기화 작업을 수행.) 애플리케이션 시작 시 생성:웹 애플리케이션이 처음 로드되고 초기화될 때 서블릿 컨테이너가 ServletContext 객체를.. 2025. 1. 20.
[Linux] alias 등록 / alias 수정 / alias 별칭 영구등록 리눅스의 명령어 중 뎁스가 깊은 경로로 이동하거나, 로그 보는 명령어 등 자주 사용하는데 매번 작성하기 불편한 명령어를 별칭(alias)로 등록하여 사용할 수 있다.# 현재 등록되어 있는 별칭 보기alias # alias 등록# alias 지정별칭 = '명령어'alias waslog='tail -f /server/tomcat_main/logs/catalina.out' 사용시, 지정별칭인 waslog 만 입력하면 됨. # alias 삭제# unalias 명령어별칭unalias waslog 하지만 이렇게 등록하거나 수정한 alias는 서버가 재부팅 되면 초기화가 된다. 이를 해결 하기 위해서는 alias를 ./bashrc 에 등록해서 사용해준다.# 파일 수정(없으면 생성 후 등록)vi ~/.bashrc# i.. 2024. 11. 14.
[JAVA] Thread pool 을 위한 ExecutorService 의 생성과 submit, shutdown Thread poolThread pool은 작업 처리에 사용되는 스레드를 제한된 개수만큼 정해 놓고 작업 큐(Queue)에 들어오는 작업들을 하나씩 스레드가 맡아 처리하는 것을 말한다. => 자원 효율성, 작업 처리 속도 향상(대기 중인 쓰레드 활용), 작업 제어(:동시 처리 가능한 개수 미리 지정)Java에서는 Thread pool 을 구현하기 위해 Executor 및 ExecutorService 인터페이스를 사용한다.  ExecutorService ExecutorService는 비동기 모드에서 작업 실행을 간소화하는 JDK API입니다. 일반적으로 ExecutorService는 스레드 풀과 작업 (Runnable, Callable) 할당을 위한 API를 제공합니다. Runnable  : 결과를 반환.. 2024. 11. 13.
[Spring] Quartz 를 통한 스케줄링 등록 스프링의 Quartz 를 통해 간단히 스케줄러 작업을 등록해봤다.Quartz 트리거, 설정파일 부분을 기록하며,실제 업무에 사용되는 실행 로직은(Job) 원하는 기능을 클래스파일에 구현하면됨. (여기서는 Myjob.class로 나온다) 1. pom.xml에서 의존성 주입 org.quartz-scheduler quartz 2.3.0  2. Quartz 스케줄러 등록 : QuartzConfigTest.java스케줄러를 3가지 요소로 구성해보면 스케줄러, 실행내용인 Job, Job을 실행할 Trigger 이다.( 스케줄러를 빈으로 등록하고 트리거를 설정해 호출하며, 호출할 Job 클래스 파일을 생성하면 끝!)Spring의 @Configuration 클래스나 XML 설정에서 SchedulerFactoryBea.. 2024. 9. 3.
@Value 애너테이션이 property 값을 null로 받아오는경우 @Value 애너테이션이 property 값을 받아오지 못하는 경우는 여러가지가 있다.일단,1.문법도 프로퍼티명도 틀리지 않았고,2. 빈으로도 정상적으로 등록했을 경우 최종최종~ null 오류였던 코드를 메모했다.* Bean으로 등록되지 않은 경우란?클래스를 Bean으로 등록하지 않으면 Spring이 의존성 주입을 할 수 없다.나같은 경우, UploadSftp 클래스를 @Component 애너테이션으로 Bean 등록을 했기 때문에 문제가 없었다. 또한 FileUploadController.java 라는 다른 코드에서는 똑같은 문법으로 작성했을때 env.properties 파일에서 값을 잘 받아왔다. 그런데 새로 만든 UploadSftp.java 에서만 null 오류 발생. @Value("#{env['FL.. 2024. 8. 14.
[Spring] MVC HandlerInterceptor / Interceptor를 사용하여 HTTP 요청을 가로채는 방법 Spring Handler Interceptor Simply put, a Spring interceptor is a class that either extends the HandlerInterceptorAdapter class or implements the HandlerInterceptor interface. public class LoggerInterceptor implements HandlerInterceptor { ... } Spring Interceptor는 ①HandlerInterceptor 인터페이스를 구현 하거나, ②HandlerInterceptorAdapter 클래스를 상속 하는 클래스다. ①HandlerInterceptor 인터페이스를 구현 HandlerInterceptor 에는 3가지.. 2023. 6. 19.