728x90
학습 목표
- 의존성 주입의 주요 방식 개념을 이해하고 차이점을 설명할 수 있다.
- Spring XML 설정에서 생성자 주입과 세터 주입을 사용하여 객체의 의존성을 설정할 수 있다.
- XML 설정을 통해
<value>
,<list>
,<map>
등의 태그를 사용하여 값 주입을 구현할 수 있다. - ApplicationContext 사용하여 에플리게이신이 실성을 관리하고, 필요한 김포넌트와 다잉 시스템 레벨이 시비스 (리소스 접근, 이벤트 발행, 메시지 서리 등) 확인하고 실망할 수 있다.
의존성 주입
의존성 주입이란 객체가 직접 의존 객체를 생성하지 않고 외부에서 주입받는 설계 방식을 의미한다.
이렇게 하면 직접 객체를 생성할때보다 느슨한 결합으로 설계가 가능하다.
의존성 주입 방식은 크게 3가지가 있다.
- 생성자 주입
- 세터 주입
- 필드 주입
실무에서는 생성자로 의존성을 주입하고, 선택적일 경우에만 세터를 사용해 주입한다고 한다.
xml을 사용한 의존성 주입
xml을 사용하면 프레임워크가 객체를 대신 생성하고 주입까지 처리해주는 자동화 방식으로 처리할 수 있다.
이는 규모가 큰 프로젝트에서 관리하기 편하고 유지보수에 용이하다는 장점을 갖는다.
태그를 통해 xml로 값 주입하기
기본값 주입
<property name="title" value="Spring 입문"/>
리스트 주입
<property name="items">
<list>
<value>사과</value>
<value>바나나</value>
</list>
</property>
맵 주입
<property name="settings">
<map>
<entry key="lang" value="ko"/>
<entry key="timezone" value="Asia/Seoul"/>
</map>
</property>
ApplicationContext
ApplicationContext
는 스프링의 핵심 인프라로 주요 기능은 아래와 같다.
기능 인터페이스 | 설명 |
ListableBeanFactory |
Bean 조회 기능 (getBeanNamesForType , getBean ) |
ResourceLoader |
클래스패스, 파일, URL 경로 리소스 통합 접근 (getResource ) |
ApplicationEventPublisher |
이벤트 발행 기능 (예: 로그인 성공, 주문 완료 등 알림) |
MessageSource |
메시지 국제화 처리 (getMessage ) |
Environment |
시스템 환경 변수, 프로파일 정보 제공 (getProperty ) |
Spring을 잘 사용하려면 DI 설정 뿐만 아니라 ApplicationContext
또한 잘 알아둬야 한다.
회고
의존성 주입의 경우 예전에 TDD 기반 코드를 연습하면서 중요성을 뼈저리게 느꼈었다.
때문에, 오늘 학습한 내용은 나에게 많이 와닿는것 같다.
기존에는 의존성 주입을 setter나 외부 주입으로만 처리했지 xml을 사용하는 방법은 몰랐었다.
이번에 학습하면서 자동으로 객체 생성, 주입까지 해주는걸 보고 앞으로 있을 프로젝트에는 반드시 적용시켜봐야겠다고 다짐했다.
이전에 프로젝트를 할때는 하나하나 다 코드를 직접 작성해서 외부에 주입했었는데 스프링이 자동화를 해주면 편리할것같아 기대가 된다.
728x90
'부트캠프' 카테고리의 다른 글
[멋쟁이사자] 백엔드 - 54일차 회고록 (0) | 2025.06.09 |
---|---|
[멋쟁이사자] 백엔드 - 53일차 회고록 (0) | 2025.06.05 |
[멋쟁이사자] 백엔드 - 50일차 회고록 (2) | 2025.06.02 |
[멋쟁이사자] 백엔드 - 51일차 회고록 (0) | 2025.06.01 |
[멋쟁이사자] 백엔드 - 47, 48, 49일차 회고록 (0) | 2025.05.27 |