[10분 테코톡] 가콩의 Spring Bean은 왜
- Spring은 개발자가 반복적인 DI 작업을 하지 않도록 DI를 대신 처리하여 개발자가 비즈니스 로직에 집중할 수 있게 합니다. 👩💻
- Spring이 DI를 해주기 때문에 개발자는 의존 관계 변화에 따른 비즈니스 로직 수정, DI 코드 동기화, 테스트 코드 재작성의 3단계를 반복하지 않아도 됩니다. 🔄
- 애플리케이션의 복잡한 의존 관계를 고려할 때, 모든 클래스를 Singleton으로 관리하는 것이 메모리 효율성 측면에서 중요합니다. 💾
- Spring Bean은 Singleton 패턴과 달리 컨테이너 내에서 Bean ID 당 하나의 인스턴스를 보장하며, SingletonBeanRegistry를 통해 구현됩니다. 🗂️
- Spring은 컴포넌트 스캔을 통해 BeanDefinition을 생성하고, 이를 BeanDefinitionRegistry에 저장한 후 실제 인스턴스를 생성하여 SingletonBeanRegistry에 저장합니다. ⚙️
- Spring에서 Singleton Bean은 일반 자바 객체를 캐싱하여 Singleton처럼 사용하게 해주는 방식으로, Singleton 패턴의 문제점을 해결하면서 메모리 이점을 얻습니다. ✨
- Spring Bean을 사용함으로써 개발자는 의존 관계 주입, 객체 생성 등 유지보수에 필요한 작업들을 Spring에 맡기고 비즈니스 로직에 집중할 수 있습니다. ✅