Spring 이론(1) @Bean

Cori1304·2025년 4월 1일
0

JAVA Spring 이론

목록 보기
1/1

스프링의 핵심 컨셉

  1. 스프링은 자바 언어 기반의 프레임워크
  2. 자바 언어의 가장 큰 특징 - 객체 지향 언어
  3. 스프링은 객체 지향 언어가 가진 강력한 특징을 살려내는 프레임워크
  4. 스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크

Bean 정의

Bean은 Spring의 IoC Container에 의해 관리되고 (managed), 객체가 되고 (instatiated), 가공되는(assembled) object로 IoC가 의존성을 주입할 때 사용된다. 쉽게 이해하면 IoC Container가 관리하는 객체를 Bean이라고 한다.

IoC란?

스프링 IoC(Inversion of Control)는 제어의 역전이라는 의미로, 객체의 생성 및 의존성 관리를 개발자가 직접 하는 것이 아니라 스프링 컨테이너에게 위임하는 것을 말한다.

IoC 컨테이너는 스프링 프레임워크의 핵심 부분이며, 애플리케이션의 객체(빈, Bean)를 생성하고 관리하며, 객체 간의 의존성을 주입하는 역할을 한다.

Bean을 사용하는 이유

제어 역전(IoC;IoC, Inversion of Control)을 특징으로 하는 스프링은 기존 자바 개발 방식과 다르게 동작해야 한다. 그렇기에 IoC가 관리하는 객체를 Bean을 이용한다.( 개발자들은 객체의 제어권을 컨테이너로 넘김으로 비즈니스 로직을 작성하는 데 더 집중할 수 있다.)
즉 Bean은 IoC라는 스프링의 핵심을 더 잘 구현하기 위해서 사용된다.

Bean을 사용해서 얻는 이점

  1. Spring이 객체의 생명 주기 관리
  2. 의존성 주입(DI, Dependency Injection)이 쉬워진다.
  3. 객체 재사용이 가능하다.
  4. 테스트를 진행하기 쉬워진다.

Bean 사용 코드

@Component, @Service, @Repository, @Controller

@Component
public class MyComponent {
    // IoC 컨테이너가 관리하는 Bean
}

@Service
public class MyService {
    // 비즈니스 로직을 처리하는 Bean
}

@Repository
public class MyRepository {
    // 데이터베이스 관련 Bean
}

@Controller
public class MyController {
    // 웹 요청을 처리하는 Bean
}

@Bean

@Configuration
public class MyConfig {
    
    @Bean
    public MyComponent myComponent() {
        return new MyComponent(); // 직접 객체 생성 후 Bean 등록
    }
}

참고 자료

profile
개발 공부 기록

0개의 댓글

관련 채용 정보