250x250
반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 윈도우
- 녹화프로그램
- programmers
- neo4j
- json
- DaVinci Resolve
- 프로그래머스
- Apple
- 스프링
- SQL
- iPad
- AWS
- Python
- graph DB
- 아이패드
- Kotlin
- 애플
- spring
- unity
- 파이썬
- 한글
- 코틀린
- 코딩학습
- 유니티
- 튜토리얼
- 영상편집
- 아이폰
- kakao
- 윈도우10
- Tutorial
Archives
- Today
- Total
코드짜는 노인네
[Spring] DI(Dependency Injection), IoC(Inversion of Control), Bean 개념 간단히 정리 본문
spring
[Spring] DI(Dependency Injection), IoC(Inversion of Control), Bean 개념 간단히 정리
ikohong 2022. 7. 21. 11:44728x90
반응형
[Spring]
DI(Dependency Injection), IoC(Inversion of Control), Bean 개념 간단히 정리
▶ IoC(Inversion of Control) - '대신 해준다'는 뜻
'Inversion of Control 을 한글로 번역하면 '제어 역전'이라는 의미를 가지고 있습니다. 기존에 객체를 만들려면 다음과 같은 순서로 진행을 했습니다.
1. 객체 생성 → 2. 의존성 객체 생성 (클래스 내부) → 3. 의존성 객체 메소드 호출
허나 IoC는 직접적으로 의존성을 만들지 않고, 외부에서 의존성을 가져오는 경우입니다.
1. 객체 생성 → 2. 의존성 객체 주입 (제어권을 스프링에게 위임하여 스프링이 만들어놓은 객체를 주입) → 3. 의존성 객체 메소드 호출
▶ DI(Dependency Injection) - '대신 넣어준다.'는 뜻
외부에서 의존성을 주입해주는것을 DI(Dependency Injection) 이라 합니다. 위에서 언급했던 IoC의 일종이라 생각할 수 있는데요. 개발자가 Bean 설정파일에 의존관계가 필요한 정보를 추가해주면서 각 객체간의 의존성을 컨테이너가 자동으로 연결해줍니다.
스프링 컨테이너
> 자바 객체의 생명 주기를 관리하며, 생성된 자바 객체들에게 추가적인 기능을 제공하는 역할.
> 자바 객체를 스프링에서는 Bean 이라고 부름.
반응형
▶ Bean (Java Bean, Spring Bean)
Java Bean
Java Bean 규약에 맞춰서 만들어진 클래스를 의미
※ Java Bean 규약
- 기본생성자가 존재
- 모든 멤버변수의 접근제어자는 private
- 멤버변수마다 getter/setter 가 존재
- 외부에서 멤버변수에 접근하기 위해서는 메소드로만 접근 가능
- Serializable (직렬화)가 가능
Spring Bean
Spring Bean은 Spring IoC 컨테이너가 관리하는 자바의 객체를 이야기합니다.
Spring은 뷰 영역에 데이터를 출력하고 싶을 때 Java Bean 규약에 맞춰 만들어진 객체를 사용하고, 객체들을 외부 저장소에 저장하고 전송할 때 사용한다.
참고 자료
- [Spring] 스프링 컨테이너와 빈이란?
- 스프링 빈(Spring Bean)이란? 개념 정리
- [Spring] 스프링 의존성 주입(DI) 이란?
- [Spring] 예제로 배워보는 IoC/DI & Spring Bean Life Cycle
728x90
반응형
'spring' 카테고리의 다른 글
[Spring] MVC - Request (0) | 2022.08.22 |
---|---|
[SpringBoot] SpringBoot 프로젝트 생성방법 (0) | 2022.08.22 |
[Spring] CORS (Cross Origin Resource Sharing) (0) | 2022.07.24 |
[Spring] 클라이언트에서 보낸 데이터 서버에서 받는 방법 (@PathVariable, @RequestParam, @ModelAttribute, @RequestBody) (0) | 2022.07.22 |
[spring] 서버에서 클라이언트로 데이터 보내는 방법 (@Responsebody, Model) (0) | 2022.07.21 |
Comments