Spring boot
-
1. 컴파일러 수준(Java 컴파일 타임)@Servicepublic class UserService { private final UserRepository userRepository; // 생성자 파라미터 주입 public UserService(UserRepository userRepository) { this.userRepository = userRepository; }} 컴파일러는 단순히 생성자에 UserRepository 타입 파라미터가 필요하다는 사실만 기록한다.즉, 바이트코드 수준에서는UserService 를 만들려면 UserRepository 타입 인자가 필수라는게 명시된다.userRepository 는 final 이라서 생성자 호출 시 반드시 초기화되어 있어..
Spring Bean 관련 생성자 파라미터 주입 동작 과정1. 컴파일러 수준(Java 컴파일 타임)@Servicepublic class UserService { private final UserRepository userRepository; // 생성자 파라미터 주입 public UserService(UserRepository userRepository) { this.userRepository = userRepository; }} 컴파일러는 단순히 생성자에 UserRepository 타입 파라미터가 필요하다는 사실만 기록한다.즉, 바이트코드 수준에서는UserService 를 만들려면 UserRepository 타입 인자가 필수라는게 명시된다.userRepository 는 final 이라서 생성자 호출 시 반드시 초기화되어 있어..
2025.09.11 -
@ConditionalOnBean, @ConditionalOnExpression두개의 어노테이션들은 조건부 Bean 등록을 하는 어노테이션들이다.보통 @Configuration 클래스나 @Bean 메서드에 붙여서 특정 조건이 만족될 때만 Bean 등록할 수 있도록 한다. 1. @ConditionalOnBean정의: 어플리케이션 컨텍스트에 특정 Bean 이 존재할 경우 현재 Bean 을 등록하도록 조건을 거는 어노테이션용도: 어떤 기능이 다른 Bean 이 존재해야만 동작 가능한 경우 사용예시@Configurationpublic class MyConfig { @Bean public ServiceA serviceA() { System.out.println("================..
@ConditionalOnBean, @ConditionalOnExpression@ConditionalOnBean, @ConditionalOnExpression두개의 어노테이션들은 조건부 Bean 등록을 하는 어노테이션들이다.보통 @Configuration 클래스나 @Bean 메서드에 붙여서 특정 조건이 만족될 때만 Bean 등록할 수 있도록 한다. 1. @ConditionalOnBean정의: 어플리케이션 컨텍스트에 특정 Bean 이 존재할 경우 현재 Bean 을 등록하도록 조건을 거는 어노테이션용도: 어떤 기능이 다른 Bean 이 존재해야만 동작 가능한 경우 사용예시@Configurationpublic class MyConfig { @Bean public ServiceA serviceA() { System.out.println("================..
2025.09.09 -
🔑 STS(Git) 주요 용어 정리 1. CommitGit 개념 : 현재 변경된 파일(Working Tree → Staging Area)을 하나의 버전으로 저장하는 행위Git Staging 뷰에서 Staged Changes 에 있는 파일을 선택 → Commit 버튼메세지를 입력해야함🚩 결과 : 로컬 저장소(Local Repository)에만 기록된다. 아직 원격저장소에는 저장하지 않은 상태 2. PushGit 개념 : 로컬 저장소(Local Repository)에 Commit 한 데이터를 원격 저장소(Remote Repository) 에 업로드Team → Push Branch ... 또는 Git Staging 뷰에서 Commit and Push 가능🚩 결과 : 다른 팀원들이 원격 저장소에 있는 내..
STS git 사용용어 정리🔑 STS(Git) 주요 용어 정리 1. CommitGit 개념 : 현재 변경된 파일(Working Tree → Staging Area)을 하나의 버전으로 저장하는 행위Git Staging 뷰에서 Staged Changes 에 있는 파일을 선택 → Commit 버튼메세지를 입력해야함🚩 결과 : 로컬 저장소(Local Repository)에만 기록된다. 아직 원격저장소에는 저장하지 않은 상태 2. PushGit 개념 : 로컬 저장소(Local Repository)에 Commit 한 데이터를 원격 저장소(Remote Repository) 에 업로드Team → Push Branch ... 또는 Git Staging 뷰에서 Commit and Push 가능🚩 결과 : 다른 팀원들이 원격 저장소에 있는 내..
2025.09.02 -
SpringSessionBackedSessionRegistry 이란?Spring Security 의 동시 세션 제어 기능 및 Spring Session 을 사용하여 분산 환경(다중 서버)에서도동작하게 만들어주는 구현체입니다. SessionRegistry 란?Spring Security 의 SessionRegistry 인터페이스란 현재 로그인한 사용자의 세션 목록을 관리하고동시 세션 개수를 제어하는데 사용된다. public interface SessionRegistry { List getAllPrincipals(); List getAllSessions(Object principal, boolean includeExpiredSessions); SessionInformation getSess..
Spring Security SessionRegistry, SpringSessionBackedSessionRegistry<S extends Session>SpringSessionBackedSessionRegistry 이란?Spring Security 의 동시 세션 제어 기능 및 Spring Session 을 사용하여 분산 환경(다중 서버)에서도동작하게 만들어주는 구현체입니다. SessionRegistry 란?Spring Security 의 SessionRegistry 인터페이스란 현재 로그인한 사용자의 세션 목록을 관리하고동시 세션 개수를 제어하는데 사용된다. public interface SessionRegistry { List getAllPrincipals(); List getAllSessions(Object principal, boolean includeExpiredSessions); SessionInformation getSess..
2025.08.13 -
Spring 에서의 세션(Session) 은 기본적으로 서블릿 컨테이너(예: Tomcat, Jetty 등) 에 의해 관리된다. 🔍 기본 세션 관리 구조 항목내용세션 저장소기본적으로 서블릿 컨테이너가 HttpSession 객체를 사용해 관리저장 위치서버 메모리 (in-memory), 필요 시 Redis 등 외부 저장소로 대체 가능Spring 역할Spring 은 HttpSession 에 접근하거나, 추가 기능을 제공하는 수준(예: 세션 리스너 등록, 커스텀 세션 전략 등) ✅ 기본 흐름 클라이언트가 요청을 보냄(JSESSIONID쿠키 포함 OR 없음)서블릿 컨테이너(Tomcat 등)가 HttpSession 생성 또는 식별Spring 은 내부적으로 HttpServletRequest.getSession(..
Spring 에서 Session 관리 주체Spring 에서의 세션(Session) 은 기본적으로 서블릿 컨테이너(예: Tomcat, Jetty 등) 에 의해 관리된다. 🔍 기본 세션 관리 구조 항목내용세션 저장소기본적으로 서블릿 컨테이너가 HttpSession 객체를 사용해 관리저장 위치서버 메모리 (in-memory), 필요 시 Redis 등 외부 저장소로 대체 가능Spring 역할Spring 은 HttpSession 에 접근하거나, 추가 기능을 제공하는 수준(예: 세션 리스너 등록, 커스텀 세션 전략 등) ✅ 기본 흐름 클라이언트가 요청을 보냄(JSESSIONID쿠키 포함 OR 없음)서블릿 컨테이너(Tomcat 등)가 HttpSession 생성 또는 식별Spring 은 내부적으로 HttpServletRequest.getSession(..
2025.08.05 -
ServletListenerRegistrationBean 이란?Spring Boot 에서 서블릿 스펙의 Listener(예: HttpSessionListener, ServletContextListener) 를 서블릿 컨테이너에등록하기 위한 Spring Bean 이다. 즉, 서블릿 컨테이너가 감지할 수 있도록 Spring Bean 을 리스너로 등록해주는 중간 다리 역할을 한다. 🔄 동작 흐름 요약 HttpSessionListener 같은 서블릿 리스너를 구현하거나 이미 구현된 클래스(HttpSessionEventPublisher) 를 사용한다.ServletListenerRegistrationBean 으로 위 클래스를 Spring Bean 으로 등록한다.Spring Boot 는 내장 톰캣(또는 서블릿 컨..
ServletListenerRegistrationBean<T extends EventListener>ServletListenerRegistrationBean 이란?Spring Boot 에서 서블릿 스펙의 Listener(예: HttpSessionListener, ServletContextListener) 를 서블릿 컨테이너에등록하기 위한 Spring Bean 이다. 즉, 서블릿 컨테이너가 감지할 수 있도록 Spring Bean 을 리스너로 등록해주는 중간 다리 역할을 한다. 🔄 동작 흐름 요약 HttpSessionListener 같은 서블릿 리스너를 구현하거나 이미 구현된 클래스(HttpSessionEventPublisher) 를 사용한다.ServletListenerRegistrationBean 으로 위 클래스를 Spring Bean 으로 등록한다.Spring Boot 는 내장 톰캣(또는 서블릿 컨..
2025.07.28