[Spring] 의존성 주입

2024. 10. 2. 15:03·Spring

의존성 주입 (DI)

의존성은 어떤 코드가 다른 코드에 의존하는 것을 의미한다. 예를 들어, 클래스 A가 클래스 B를 사용해야 한다면, 클래스 A는 B에 의존하고 있다고 할 수 있다.

 

DI(Dependency Injection)는 이런 의존성을 코드 내에서 직접 생성하는 대신, 외부에서 주입하는 방식으로 해결한다.

 

 

Spring은 다음과 같은  두 가지 방법으로 DI를 지원한다.

 

  • 생성자 주입: 의존성이 필요한 객체를 생성자에서 받아서 주입하는 방식이다. 이 방식은 객체가 생성될 때 필요한 의존성을 미리 설정할 수 있어 더 안전한 방식으로 여겨진다.
  • Setter 주입: 기본 생성자를 호출한 후, 필요할 때 setter를 통해 의존성을 주입하는 방식이다. 이 방법은 유연성을 제공하지만, 객체가 완전하지 않은 상태에서 사용될 수 있다는 단점이 있다.

Spring에서 DI를 사용하는 이유

DI를 사용하면 코드의 유연성과 테스트 용이성이 높아진다.

의존성을 외부에서 주입받기 때문에 코드 간의 결합도를 낮출 수 있고, 변경에 더 강한 구조를 만들 수 있다.

또한 테스트 시 목의 객체(Mock Object)를 사용하여 독립적으로 테스트할 수 있는 장점도 있다.

'Spring' 카테고리의 다른 글

[Spring] DispatcherServlet, ViewResolver , DI 방식 정리  (0) 2024.10.07
[Spring] Spring DI와 비즈니스 로직  (2) 2024.10.06
[Spring] Spring에서의 객체 관리: XML 설정 파일 vs 어노테이션 기반 DI  (4) 2024.10.04
[Spring] 스프링 프레임워크  (1) 2024.10.01
스프링 프레임워크  (0) 2024.08.19
'Spring' 카테고리의 다른 글
  • [Spring] Spring DI와 비즈니스 로직
  • [Spring] Spring에서의 객체 관리: XML 설정 파일 vs 어노테이션 기반 DI
  • [Spring] 스프링 프레임워크
  • 스프링 프레임워크
yn98
yn98
좌우명 : 여전할 것 인가, 역전할 것 인가? 백엔드 개발자가 되고싶은 역전하고 있는 개발자 꿈나무의 블로그입니다. 개발을 하면서 공부한 것들을 기록합니다. 24.06 ~
  • yn98
    개발 꿈나무
    yn98
  • 전체
    오늘
    어제
    • 분류 전체보기 (131)
      • Python (3)
      • 공부 (7)
      • DB (7)
      • JAVA (24)
      • JSP (9)
      • jQuery (2)
      • HTML (3)
      • Spring (20)
      • 웹 (4)
      • C (1)
      • Git (2)
      • 에러일기 (19)
      • 프로젝트 (6)
      • 책 (21)
        • 멘토씨리즈 자바 (14)
        • 2024 수제비 정보처리기사 (7)
      • 기타 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
    • Notion
  • 공지사항

  • 인기 글

  • 태그

    티스토리챌린지
    Di
    codeup 4891 : 행복
    스프링 프레임워크
    ViewResolver
    이벤트 스케줄러
    멘토씨리즈 자바
    recoverabledataaccessexception
    MVC
    정처기 실기
    수제비
    오블완
    @service
    aop
    오버로딩
    jsp
    정처기
    어노테이션
    @Component
    DispatcherServlet
    객체지향
    정보처리기사 실기
    정보처리기사
    Spring
    생성자
    java
    html
    2-layered 아키텍처
    상속
    @repository
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
yn98
[Spring] 의존성 주입
상단으로

티스토리툴바