📌 오브젝트 팩토리
팩토리는..
객체의 생성방법을 결정하고 그렇게 제작된 오브젝트를 돌려주는 클래스를 팩토리라고 말한다.
디자인 패턴에서 특별한 문제를 해결하기 위한 추상 팩토리 패턴이나 팩토리 메서드 패턴과는 다르다
핵심 요소는 오브젝트의 생성과 생성된 오브젝트의 사용하는 역할과 책임을 분리하기 위해서다.
만든다는 개념과 사용한다는 개념은 분명히 다른 관심사이다.
팩토리는 설계도라고 할 수 있다. 어떤 오브젝트가 어떤 오브젝트를 사용하는지 정의해둔 코드라고 생각하면 된다.
📌 애플리케이션 컨텍스트
빈 팩토리
스프링이 제어권을 가지고 직접 만들고 관계를 부여하는 오브젝트를 빈이라 한다.
빈의 생성과 관계설정의 제어를 담당하는 오브젝트를 빈 팩토리라고 가리키고 있다 애플리케이션 컨텍스트는
IoC가 적용된 빈 팩토리라고 할 수 있다.
애플리케이션 컨텍스트는 직접 클래스의 정보를 가지고 있지는 않지만 대신 클래스에 관한 정보를 가지고 있어 활용할 수 있는 범용적인 IoC 엔진이다.
✅ 클라이언트는 구체적인 팩토리 클래스를 알 필요가 없다.
애플리케이션의 계속 개발되면서 오브젝트도 계속 증가될 것이다 그러면 클라이언트가 사용하려는 오브젝트를 찾고 연결해 주는 작업을 매번 반복해야 한다 하지만 애플리케이션 컨텍스트를 사용하면 클라이언트는 번거로운 작업을 할 필요 없이 원하는 오브젝트를 사용할 수 있다.
✅ 애플리케이션 컨텍스트는 종합 IoC 서비스를 제공해 준다.
애플리케이션 컨텍스트의 역할을 오브젝트의 생성과 관계설정만 담당하는 게 아닌 생성방식, 시점과 전략을 다르게 가져갈 수 있고 그 외에 부가적인 자동생성과 오브젝트의 후처리, 정보조합, 설정 다변화, 인터셉팅등의 다양한 기능을 제공해 준다.
✅ 애플리케이션 컨텍스트를 통해 다양한 빈 검색 방법을 제공할 수 있다.
빈의 이름을 통해서 빈을 찾아준다 타입만으로도 빈을 찾을 수 있고 특별한 애노테이션 설정이 되어있는 빈도 찾을 수 있다.
[참고] 토비의 스프링 vol.01