피드로 돌아가기
Recap — M0 Foundations
Dev.toDev.to
Backend

Startup-time Factory 기반의 IoC/DI 구조를 통한 의존성 결합도 해소 및 Fail-fast 보장

Recap — M0 Foundations

Ankit Verma2026년 6월 16일9intermediate

Context

클래스가 직접 협력 객체를 생성하는 구조로 인한 객체 생성 로직과 비즈니스 로직의 강한 결합 발생. 이로 인해 구체적인 구현체 변경 시 수정 범위가 확대되며 단위 테스트 작성이 어려운 설계적 한계 노출.

Technical Solution

  • IoC 원칙에 따라 객체 제어권을 프레임워크로 이전하여 생성-연결-관리의 책임을 분리한 Container 구조 설계
  • Constructor Injection 방식을 채택하여 필드 불변성 확보 및 객체 생성 시점의 완전성 보장
  • Bean Lifecycle(Instantiate → Populate → Initialize → Destroy)의 정교한 제어를 통한 초기화 시점 제어
  • Singleton Scope를 기본으로 채택하여 런타임 메모리 효율을 높이되, 무상태(Stateless) 설계를 통한 Thread-safe 확보
  • ApplicationContext를 통한 Eager Loading 전략으로 런타임 오류를 부트 시점으로 앞당기는 Fail-fast 메커니즘 구현
  • BeanFactory의 기본 기능을 확장하여 설정 스캐닝과 자동 배선(Autowiring)을 통한 빈 정의 및 연결 자동화

1. 필드 주입 대신 생성자 주입을 사용하여 객체의 불변성과 테스트 용이성을 확보했는가

2. Singleton Bean 내부에 가변 상태(Mutable State)를 두어 Race Condition 위험을 초래하지 않았는가

3. 의존성 주입 이후의 초기화 로직을 생성자가 아닌 @PostConstruct 단계에서 처리했는가

4. Prototype Bean을 Singleton에 주입하여 상태가 고정되는 현상을 방지하기 위해 ObjectProvider를 검토했는가

원문 읽기