(Spring) DI와 IOC 이해하기

2024. 10. 18. 12:35·Spring
목차
  1. 1. Spring의 DI와 IOC 이해하기
  2. 2. 내용
  3. 3. 코드 예제
  4. 4. TIP & 정리

1. Spring의 DI와 IOC 이해하기

2. 내용

  • IOC (Inversion of Control)
    • 객체 생성 및 의존성 관리의 제어 흐름이 외부로 전환되는 원칙.
    • 전통적인 프로그래밍에서는 객체가 직접 의존성을 관리하지만, IOC에서는 객체가 필요로 하는 의존성을 외부에서 주입받는다.
  • DI (Dependency Injection)
    • IOC의 구체적인 구현 방식 중 하나로, 객체가 의존하는 다른 객체를 외부에서 주입받는 방법.
    • 주입 방식
      • 생성자 주입 : 생성자를 통해 의존성을 주입.
      • 세터 주입 : 세터 메서드를 통해 의존성을 주입.
      • 인터페이스 주입 : 특정 인터페이스를 통해 의존성을 주입.

3. 코드 예제

// 인터페이스
public interface MessageService {
    void sendMessage(String message, String receiver);
}

// 구현 클래스
public class EmailService implements MessageService {
    public void sendMessage(String message, String receiver) {
        System.out.println("Email sent to " + receiver + " with message: " + message);
    }
}

// 의존성 주입이 필요한 클래스
public class UserController {
    private MessageService messageService;

    // 생성자 주입
    public UserController(MessageService messageService) {
        this.messageService = messageService;
    }

    public void sendUserMessage(String message, String user) {
        messageService.sendMessage(message, user);
    }
}

4. TIP & 정리

  • 요약 : Spring의 DI와 IOC는 소프트웨어 설계에서 필수적인 개념으로, 코드의 유연성과 테스트 용이성을 극대화한다. DI를 통해 객체 간의 의존성을 명확히 하고 결합도를 낮출 수 있으며, 이는 유지보수를 더 용이하게 만든다. 이러한 원칙들은 Spring Framework의 강력한 기능 중 하나로, 많은 자바 개발자들에게 필수적으로 익혀야 할 내용이다.
  • 테스트 용이성 : DI를 사용하면 Mock 객체를 쉽게 주입하여 단위 테스트를 수행할 수 있다. 이로 인해 테스트 환경을 쉽게 구성할 수 있고, 테스트의 정확성을 높일 수 있다.
저작자표시 비영리 변경금지 (새창열림)

'Spring' 카테고리의 다른 글

(Spring) 삭제 관련 Cascade 사용 여부에 따른 정리  (0) 2024.10.24
(Spring) Controller & RestController란 무엇인가  (1) 2024.10.23
(Spring) Servlet & DispatcherServlet 개념  (0) 2024.10.14
(Spring) MVC와 Spring MVC  (0) 2024.10.11
(Spring) Lombok & Application Properties  (0) 2024.10.07
  1. 1. Spring의 DI와 IOC 이해하기
  2. 2. 내용
  3. 3. 코드 예제
  4. 4. TIP & 정리
'Spring' 카테고리의 다른 글
  • (Spring) 삭제 관련 Cascade 사용 여부에 따른 정리
  • (Spring) Controller & RestController란 무엇인가
  • (Spring) Servlet & DispatcherServlet 개념
  • (Spring) MVC와 Spring MVC
lastdove
lastdove
lastdove 님의 블로그 입니다.
  • lastdove
    lastdove 님의 블로그
    lastdove
  • 전체
    오늘
    어제
    • 분류 전체보기 (80)
      • Spring (16)
      • JAVA (17)
      • JAVA 알고리즘 (20)
      • Project (5)
      • SQL 문제풀이 (17)
      • Git&Linux (2)
      • Web development(입문) (2)
      • Sparta (1)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
lastdove
(Spring) DI와 IOC 이해하기

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.