객체의 불변성을 유지하기 위해 변수를 final로 선언하며, 해당 변수를 즉시 초기화하거나 생성자를 통해 주입하는 방식을 사용한다. 생성자 주입은 객체 생성 시점에 의존성을 명확히 하고, 테스트 용이성과 코드 가독성을 높이는 장점이 있다. @Autowired 어노테이션을 사용하면 IoC 컨테이너에 의해 관리되는 빈을 주입받을 수 있다. 하지만 자동 의존성 주입으로 인해 객체 간 명시적인 의존관계가 모호해질 수 있고, 반드시 스프링 IoC 컨테이너에서 관리되는 빈 클래스에만 사용이 가능하기 때문에 추천하지 않는 방식이다. 수동으로 직접 IoC 컨테이너에 접근해서 빈을 가져오는 방법을 살펴보자 ApplicationContext context : 빈 팩토리 등등의 클래스들을 상속받은 클래스. IoC 컨테이너라..