Spring Framework에서 자주 등장하는 @Configuration과 @Bean 어노테이션은 초보 개발자뿐만 아니라 경력 개발자도 명확히 구분하지 못하고 사용하는 경우가 많습니다. 하지만 두 어노테이션은 내부적으로 Spring Bean 설정 및 생명주기 처리 방식에서 중요한 차이를 갖고 있습니다.@Configuration과 @Bean의 의미, 역할, 내부 처리 방식, 실무에서의 올바른 사용법을 알려드리겠습니다. 1. @Configuration: 설정 클래스 정의@Configuration은 해당 클래스가 Spring의 설정 클래스임을 선언하는 어노테이션입니다. 즉, Java 기반의 Bean 등록용 설정 클래스라는 의미이며, XML 설정을 대체하는 역할을 합니다.@Configurationpublic ..
Spring 애플리케이션을 개발하다 보면 @Component, @Service, @Repository 같은 어노테이션을 자주 접하게 됩니다. 이들 모두 Spring Bean으로 등록된다는 공통점이 있지만, 의미와 역할, 그리고 내부 처리 방식에서 차이가 존재합니다.이 세 어노테이션의 차이를 정확하게 짚고, 언제 어떤 것을 써야 하는지 실무 관점에서 정리합니다. 1. 공통점 – 모두 Component 스캔 대상먼저 이 세 가지 어노테이션은 모두 Spring의 Component 스캔 대상입니다. 즉, @Component를 기반으로 확장된 특수 목적의 세부 어노테이션들입니다.@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Co..
Spring Framework를 처음 접하거나 사용해 온 개발자라면, 반드시 이해하고 있어야 하는 두 가지 핵심 개념이 있습니다. 바로 Spring Bean과 IoC/DI (제어의 역전 / 의존성 주입)입니다.현업에서 수없이 사용되는 이 개념들을 실무 중심의 예제와 함께 정리해보겠습니다. 1. Spring Bean이란?간단히 말해 Spring Container가 생성하고 관리하는 객체를 Spring Bean이라고 합니다. 자바 클래스라도 개발자가 new로 직접 생성하면 일반 객체지만, @Component, @Service, @Repository, @Controller 등의 어노테이션을 붙여 Spring이 관리하게 만들면 그것은 Bean이 됩니다.@Servicepublic class UserService ..