일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 파일 업로드
- 스프링 프로젝트 설정
- 인증번호 전송
- 이미지 출력
- 스프링 쇼핑몰
- spring 프로젝트
- 스프링 쇼핑몰 프로젝트
- 로그인 기능
- spring 쇼핑몰
- Bcrypt
- 스프링 메일 전송
- 로그아웃 기능 구현
- 쇼핑몰 프로젝트
- 스프링 게시판 구현
- 스프링 포트폴리오
- 스프링 프로젝트 기본 설정
- oracle 설치방법
- ResponseEntity
- 스프링 게시판
- 스프링 파일 삭제
- 스프링 이미지
- 삭제 구현
- BCrypt 적용
- 스프링 HikariCP
- 스프링 업로드
- 스프링 프로젝트
- 정규표현식
- arraylist
- 회원가입 기능
- 쇼핑몰 포트폴리오
- Today
- Total
Kim VamPa
[스프링]의존성 주입(Dependency Injection) 본문
개인 공부 후 자료를 남기기 위한 목적이기에 내용 상에 오류가 있을 수 있습니다.
목표
- 의존성 주입이 무엇인지 이해한다.
- 의존성 주입의 장점에 대해 이해한다.
목차
1. 의존성 주입
1. 의존성 주입
의존성(Dependency)
"하나의 객체가 다른 객체 없이 제대로 된 역할을 할 수 없다는 것"
- A객체가 B객체 없이 동작이 불가능한 상황을 'A가 B에 의존적이다'라고 표현합니다.
주입(Injection)
"외부에서 밀어 넣는 것"
의존성주입(Dependency Injection)
"어떤 객체가 필요한 객체를 외부에서 밀어 넣는것"
- 의존성 주입의 장점은 "주입을 받는 입장에서는 어떤 객체인지 신경 쓸 필요가 없다", "어떤 객체에 의존하든 자신의 역할은 변하지 않는다" 입니다.
- 스프링은 ApplicationContext를 통해서 객체들을 관리하여 의존성 주입을 구현합니다.
- 스프링에서 'ApplicationContext'가 관리하는 객체들을 '빈(Bean)'이라고 불립니다.
- 빈과 빈사이의 의존관계는 "xml설정", "어노테이션설정", "Java 설정"방식을 통해서 정의 할 수 잇습니다.(의존관계 설정 방법)
예시1) 음식점, 프렌차이즈 음식점
- 음식점은 '식재료'가 없으면 음식을 팔수가 없습니다. 따라서 음식점은 식재료에 의존적입니다.
- 보통의 음식점은 음식을 팔기위해 '식재료'를 사러 가야합니다.
- 프렌차이즈 음식점 경우 '식재료'를 직접 사러 갈 필요가 없이 대행업체에서 배송해 주는 '식재료'를 사용하기때문에 장사에만 집중할 수 잇습니다.
예시2) 스프링 에서의 객체
- A객체, B객체가 있고 A객체는 B개체에 의존적이라고 가정합니다.
- A객체는 자신의 역할을 수행하기 위해 B객체를 직접 호출하여 자신의 역할을 수행하게 됩니다.
- 의존성 주입을 적용한 경우 A객체는 스프링(ApplicationContext)에 B객체가 필요하다는 요청을 보냅니다.
- 이에따라 스프링(ApplicationContext) B객체를 호출하여 A객체에 주입합니다.
결론
- 의존성 주입이란 "어떤 객체가 필요한 객체를 외부에서 밀어 넣는다"는 의미입니다.
- 스프링은 ApplicationContext라는 존재를 통해서 의존성 주입 기능을 실행합니다.
- 의존성 주입을 통한 장점은 "주입을 받는 입장에선 어떤 객체인지 신경 쓸필요 없다"는 점과 "어떤 객체에 의존하든 자신의 역할은 변하지 않는다"는 장점이 있습니다.
Reference
- "코드로 배우는 스프링 웹 프로젝트"(남가람북스)
Date
- 2020.03.30 작성
'스프링 프레임워크' 카테고리의 다른 글
[Spring]Lombok 개념 및 설치방법 (0) | 2020.03.28 |
---|---|
스프링 프레임워크(Spring Framework)란? (0) | 2020.03.24 |