본문 바로가기

전체 글

(93)
빈(Bean) 스코프 Spring에서 빈(Bean) 스코프는 스프링 컨테이너가 관리하는 빈의 생성 범위를 지정하는 개념입니다. 쉽게 말해, 특정 빈이 어떤 범위에서, 얼마나 오래 유지되는지를 결정하는 설정입니다. 스프링 빈 스코프 종류Spring은 다음과 같은 여러 가지 빈 스코프를 제공합니다. 스코프  종류설명사용 위치singleton(기본값) 하나의 인스턴스를 애플리케이션 내에서 공유스프링 컨테이너 전체prototype요청할 때마다 새로운 인스턴스를 생성스프링 컨테이너 전체requestHTTP 요청마다 새로운 인스턴스를 생성웹 애플리케이션 (Spring MVC)sessionHTTP 세션마다 새로운 인스턴스를 생성웹 애플리케이션 (Spring MVC)application애플리케이션(ServletContext) 당 하나의 인..
@Qualifier @Qualifier는 Spring에서 동일한 타입의 여러 빈(Bean)이 존재할 때, 특정 빈을 명확하게 지정하는 데 사용하는 어노테이션입니다. 보통 **자동 주입(@Autowired)**을 사용할 때 같은 타입의 빈이 여러 개 있을 경우 어떤 빈을 선택해야 할지 지정하는 역할을 합니다. 1. @Qualifier가 필요한 이유Spring에서 같은 인터페이스를 구현한 여러 개의 빈이 있을 경우, 어떤 빈을 주입해야 할지 알 수 없기 때문에 NoUniqueBeanDefinitionException 예외가 발생합니다. 동일한 타입의 여러 빈이 있을 때 문제 발생@Componentpublic class ServiceA implements MyService { @Override public void e..
자주 쓰는 GIT 명령어 1. 브랜치 관련 명령어 로컬 & 원격 브랜치 목록 확인git branch # 로컬 브랜치 목록 확인git branch -r # 원격 브랜치 목록 확인git branch -a # 로컬 + 원격 브랜치 목록 확인 브랜치 생성 & 전환git checkout -b feature-branch # 새 브랜치 생성 후 이동 (옛날 방식)git switch -c feature-branch # 새 브랜치 생성 후 이동 (새로운 방식)  브랜치 삭제git branch -d feature-branch # 로컬 브랜치 삭제 (병합된 브랜치만 삭제 가능)git branch -D feature-branch # 강제 삭제 (병합되지 않은 브랜치도 삭제)git push origi..
11. Basic Authentication 개요 1. Basic Authentication 동작 방식 1. 클라이언트가 서버에 요청을 보냄예를 들어, GET /secure-data 요청을 보냈다고 가정합니다. 2. 서버가 인증을 요구함인증이 필요한 경우 서버는 401 Unauthorized 상태 코드와 함께 WWW-Authenticate 헤더를 응답에 포함합니다.HTTP/1.1 401 UnauthorizedWWW-Authenticate: Basic realm="Access to the secure site" 3. 클라이언트가 인증 정보를 포함하여 재요청사용자 이름과 비밀번호를 :로 연결한 후 Base64로 인코딩하여 Authorization 헤더에 포함해 다시 요청합니다.GET /secure-data HTTP/1.1Host: example.comAut..
10. AuthenticationManager 개요 AuthenticationManager는 Spring Security에서 인증(authentication) 과정을 담당하는 핵심 인터페이스입니다. 이 컴포넌트는 클라이언트가 제공한 자격 증명을 기반으로 사용자를 인증하고, 인증된 사용자에 대한 정보를 반환하거나, 인증에 실패할 경우 예외를 발생시킵니다. 1. 동작 원리핵심 메소드:AuthenticationManager는 단 하나의 메소드인Authentication authenticate(Authentication authentication)를 정의합니다. 이 메소드는 입력된 Authentication 객체(예: 사용자의 아이디와 비밀번호)를 받아서 인증을 수행합니다.인증 과정:내부적으로 AuthenticationManager는 하나 이상의 Authenti..
9. InitializingBean Spring Framework에서 InitializingBean은 빈의 모든 속성이 주입된 후 초기화 작업을 수행할 수 있도록 해주는 인터페이스입니다. 이를 구현하면 Spring 컨테이너가 빈의 프로퍼티 설정이 완료된 후 자동으로 호출하는 afterPropertiesSet() 메서드를 통해 초기화 로직을 작성할 수 있습니다.아래는 InitializingBean을 사용한 예시와, 그 대안으로 자바 표준 어노테이션인 @PostConstruct를 이용한 예시를 함께 비교해 설명한 내용입니다.  1. InitializingBean 사용 방식InitializingBean을 구현하는 방식은 Spring 고유의 인터페이스를 이용해 빈 초기화 시점을 제어합니다. public class MyBean implements ..
8. Spring AuthenticationProvider 개요 Spring Security에서 AuthenticationProvider는 사용자 인증을 처리하는 핵심 인터페이스 중 하나입니다. 사용자의 자격 증명을 검사하고 인증이 성공하면 Authentication 객체를 반환합니다.즉, 사용자의 username/password를 확인하거나, OAuth, JWT, API Key 등의 인증 방식을 처리하는 역할을 수행합니다. 1. AuthenticationProvider의 역할Authentication 객체를 입력받아 인증을 수행.인증이 성공하면 Authenticated 상태의 Authentication 객체를 반환.인증 실패 시 예외(BadCredentialsException 등)를 발생.특정한 타입의 인증 객체만 처리할 수 있도록 제어 가능. 2. Authenti..
7. 6.1버전 전에 구현되었던 SecurityConfig 리펙토링 Spring Security는 6 버전대로 올라가면서 WebSecurityConfigurerAdapter가 Deprecated 되었습니다. 이로 인해 이전에는 WebSecurityConfigurerAdapter를 상속받아 메서드를 오버라이딩하는 방식으로 보안 구성을 했지만, 최신 버전(6.1 기준)에서는 SecurityFilterChain과 관련된 @Bean을 직접 정의하는 방식으로 구성이 바뀌었습니다. 1. 예전 방식 (WebSecurityConfigurerAdapter 사용) Spring Security 6.1 이전의 예시@Configuration@EnableWebSecuritypublic class SecurityConfig extends WebSecurityConfigurerAdapter { ..