Java/Spring
-
Spring 컨테이너의 Bean 과 서블릿 컨테이너 수준의 컴포넌트 차이는등록 주체, 라이프사이클, DI 사용 가능성, 관리 방식 등에서 뚜렷한 차이가 있다. 핵심 차이 요약 항목Spring Bean서블릿 컨테이너 컴포넌트(@WebServlet, @WebFilter, @WebListener)관리 주체Spring 컨테이너(ApplicationContext)Servlet 컨테이너(Tomcat, Jetty 등)등록 방법@Component, @Controller, @Service, @Repository, @Configuration+@Bean@WebServlet, @WebFilter, @WebListenerDI 가능 여부가능 (@Autowired, 생성자 주입)기본적으로 불가능(Spring 관리 대상이 아님)..
Spring 컨테이너의 Bean 과 서블릿 컨테이너 수준의 컴포넌트 차이Spring 컨테이너의 Bean 과 서블릿 컨테이너 수준의 컴포넌트 차이는등록 주체, 라이프사이클, DI 사용 가능성, 관리 방식 등에서 뚜렷한 차이가 있다. 핵심 차이 요약 항목Spring Bean서블릿 컨테이너 컴포넌트(@WebServlet, @WebFilter, @WebListener)관리 주체Spring 컨테이너(ApplicationContext)Servlet 컨테이너(Tomcat, Jetty 등)등록 방법@Component, @Controller, @Service, @Repository, @Configuration+@Bean@WebServlet, @WebFilter, @WebListenerDI 가능 여부가능 (@Autowired, 생성자 주입)기본적으로 불가능(Spring 관리 대상이 아님)..
2025.07.23 -
@ServletComponentScan 이란?@WebServlet, @WebFilter, @WebListener 같은 Servlet 3.0+ 에서 제공하는 어노테이션 기반의서블릿 컴포넌트들을 자동으로 스캔하고 등록해주는 역할을 한다. 기본 개념Spring Boot는 기본적으로 Servlet 컴포넌트를 @Bean 으로 등록하거나 FilterRegistrationBean,ServletRegistrationBean 등을 사용해서 등록하길 권장한다. 하지만, 기존의 서블릿 스펙에 맞게 @WebServlet, @WebFilter 등으로 작성된 클래스를 사용할 경우이 클래스들을 자동으로 등록되려면 @ServletComponentScan 어노테이션이 필요하다. 주요 대상 어노테이션@ServletComponentS..
@ServletComponentScan 이란?@ServletComponentScan 이란?@WebServlet, @WebFilter, @WebListener 같은 Servlet 3.0+ 에서 제공하는 어노테이션 기반의서블릿 컴포넌트들을 자동으로 스캔하고 등록해주는 역할을 한다. 기본 개념Spring Boot는 기본적으로 Servlet 컴포넌트를 @Bean 으로 등록하거나 FilterRegistrationBean,ServletRegistrationBean 등을 사용해서 등록하길 권장한다. 하지만, 기존의 서블릿 스펙에 맞게 @WebServlet, @WebFilter 등으로 작성된 클래스를 사용할 경우이 클래스들을 자동으로 등록되려면 @ServletComponentScan 어노테이션이 필요하다. 주요 대상 어노테이션@ServletComponentS..
2025.07.23 -
RequestContextHolder 클래스란?Spring MVC 에서 현재 HTTP 요청(request) 과 관련된 컨텍스트 정보를 Thead Local 방식으로 관리해주는유틸리티 클래스이다.즉, 현재 처리중인 요청의 HttpServletRequest 나 HttpSession 에 접근할 수 있게 도와주는 도구입니다. 📌 주요 목적Spring 에서는 HTTP 요청이 하나의 스레드에서 처리되므로, RequestContextHolder 를 통해 전역 어디에서든요청 정보에 접근할 수 있습니다. 🔍 currentRequestAttributes() 메서드RequestAttributes attrs = RequestContextHolder.currentRequestAttributes(); 현재 스레드에 바인딩된 ..
RequestContextHolderRequestContextHolder 클래스란?Spring MVC 에서 현재 HTTP 요청(request) 과 관련된 컨텍스트 정보를 Thead Local 방식으로 관리해주는유틸리티 클래스이다.즉, 현재 처리중인 요청의 HttpServletRequest 나 HttpSession 에 접근할 수 있게 도와주는 도구입니다. 📌 주요 목적Spring 에서는 HTTP 요청이 하나의 스레드에서 처리되므로, RequestContextHolder 를 통해 전역 어디에서든요청 정보에 접근할 수 있습니다. 🔍 currentRequestAttributes() 메서드RequestAttributes attrs = RequestContextHolder.currentRequestAttributes(); 현재 스레드에 바인딩된 ..
2025.07.21 -
리스너(Linstener)란?웹 어플리케이션에서 특정 이벤트(세션 생성, 파괴, 요청 시작, 종료 등)를 감지하고 그에 대한 처리를 하기 위한컴포넌트이다. 즉, Spring Boot 또는 Servlet 기반 웹 어플리케이션에서는 리스너(Linstener) 를 사용해서 다음과 같은웹 라이프사이클 이벤트를 감지할 수 있다. 🔍 리스너 종류리스너 인터페이스설명HttpSessionListener세션 생성 / 삭제 감지HttpSessionAttributeListener세션 속성 추가/변경/삭제 감지SevletContextLisnter웹 어플리케이션 시작/종료 감지ServletRequestListener요청(Request) 시작/종료 감지 🧩 HttpSessionEventPublisher 란?HttpSes..
Spring Boot 서블릿 기반의 리스너(Servlet Listener) 와 HttpSessionEventPublisher리스너(Linstener)란?웹 어플리케이션에서 특정 이벤트(세션 생성, 파괴, 요청 시작, 종료 등)를 감지하고 그에 대한 처리를 하기 위한컴포넌트이다. 즉, Spring Boot 또는 Servlet 기반 웹 어플리케이션에서는 리스너(Linstener) 를 사용해서 다음과 같은웹 라이프사이클 이벤트를 감지할 수 있다. 🔍 리스너 종류리스너 인터페이스설명HttpSessionListener세션 생성 / 삭제 감지HttpSessionAttributeListener세션 속성 추가/변경/삭제 감지SevletContextLisnter웹 어플리케이션 시작/종료 감지ServletRequestListener요청(Request) 시작/종료 감지 🧩 HttpSessionEventPublisher 란?HttpSes..
2025.07.21 -
환경 : Spring Boot3, Java17, Thymeleaf, dialect layout Spring Boot 에서 Thymeleaf 를 사용하여 axios 라이브러리를 script 태그를 통해 import 시키려다가파일을 찾질 못해서 작성하게 됐다. ✅ 1. 기본 동작: /static/** → /로 매핑됨 Spring Boot 는 아래 디렉토리들을 기본적으로 정적 리소스 루트로 인식한다.src/main/resources/staticsrc/main/resources/publicsrc/main/resources/resourcessrc/main/resources/META-INF/resources예를 들어 아래 위치에 JS 파일이 있다고 가정하면src/main/resources/static/js/app..
Spring Boot 정적 리소스 설정환경 : Spring Boot3, Java17, Thymeleaf, dialect layout Spring Boot 에서 Thymeleaf 를 사용하여 axios 라이브러리를 script 태그를 통해 import 시키려다가파일을 찾질 못해서 작성하게 됐다. ✅ 1. 기본 동작: /static/** → /로 매핑됨 Spring Boot 는 아래 디렉토리들을 기본적으로 정적 리소스 루트로 인식한다.src/main/resources/staticsrc/main/resources/publicsrc/main/resources/resourcessrc/main/resources/META-INF/resources예를 들어 아래 위치에 JS 파일이 있다고 가정하면src/main/resources/static/js/app..
2025.06.27 -
Spring Security 의 CSRF 설정을 하면서 태그를 사용했는데메타데이터가 어떤건지 문득 궁금해져 작성한다. 메타데이터(Metadata) 란?데이터에 대한 데이터를 의미한다.쉽게 말하면 메타데이터는 어떤 데이터가 "무엇인지", "어떻게 사용되어야 하는지"에 대한 정보를 담고 있는 데이터이다. ✅ 예시로 이해하는 메타데이터 1. 📄 파일의 메타데이터파일 이름 : report.pdf크기 : 2MB생성일자 : 2025-06-24파일 형식 : PDF이 정보들이 바로 파일의 메타데이터이다.파일 자체가 본 데이터고 그에 대한 설명이 메타데이터이다. 2. 📷 사진의 메타데이터 (EXIF)사진 찍은 날짜카메라 모델GPS 위치 정보사진이라는 데이터를 설명해주는 메타데이터이다. 3. 🌐 웹에서의 메타데이..
메타데이터(Metadata)Spring Security 의 CSRF 설정을 하면서 태그를 사용했는데메타데이터가 어떤건지 문득 궁금해져 작성한다. 메타데이터(Metadata) 란?데이터에 대한 데이터를 의미한다.쉽게 말하면 메타데이터는 어떤 데이터가 "무엇인지", "어떻게 사용되어야 하는지"에 대한 정보를 담고 있는 데이터이다. ✅ 예시로 이해하는 메타데이터 1. 📄 파일의 메타데이터파일 이름 : report.pdf크기 : 2MB생성일자 : 2025-06-24파일 형식 : PDF이 정보들이 바로 파일의 메타데이터이다.파일 자체가 본 데이터고 그에 대한 설명이 메타데이터이다. 2. 📷 사진의 메타데이터 (EXIF)사진 찍은 날짜카메라 모델GPS 위치 정보사진이라는 데이터를 설명해주는 메타데이터이다. 3. 🌐 웹에서의 메타데이..
2025.06.24