IoC (Inversion Of Control) - 제어의 역전
- 객체(인스턴스)의 생명주기 관리를 개발자가 아닌 Spring Container (IoC Container) 가 모두 맡아서 함
기존 프로그램은 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성하고, 연결했다.
-> 제어 흐름을 스스로 조종했다
스프링 컨테이너를 사용하면 프로그램에 대한 제어 흐름에 대한 권한은 모두 스프링 컨테이너가 가지고 있다.
-> 외부에서 관리하는 것 => 제어의 역전(객체를 제어하고 관리하는 역할이 개발자로부터 스프링 컨테이너에 역전)
스프링 컨테이너란
ApplicationContext를 스프링 컨테이너라고 부른다.
@Bean 이라 적힌 메서드를 모두 호출해서 반환된 객체를 스프링 컨테이너에 등록한다.
장점: 싱글톤 패턴을 적용하지 않아도, 객체 인스턴스를 싱글톤으로 관리한다. => 싱글톤 레지스트리
-> Spring Container에 올라간 Bean 객체들을 모두 싱글톤 패턴으로 관리됨.
싱글톤 패턴이란?
싱글톤 패턴은 특정 클래스의 인스턴스를 1개만 생성되는 것을 보장하는 디자인 패턴이다.
즉, 생성자를 통해서 여러 번 호출이 되더라도 인스턴스를 새로 생성하지 않고 최초 호출 시에 만들어두었던 인스턴스를 재활용하는 패턴이다.
: 관리하는 게 쉽고, 메모리가 절약이 된다.
'공부 노트' 카테고리의 다른 글
추상화와 다형성 (1) | 2024.09.26 |
---|---|
스레드란? (스레드/멀티스레드) (4) | 2024.09.25 |
싱글톤 패턴이란? (1) | 2024.09.25 |
session 이란 (0) | 2024.07.15 |
PreparedStatement란 (1) | 2024.07.08 |