일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- ipfs bean
- ipfs singletone
- kotiln const val
- kotiln functional interface
- javav 1676
- 안정해시
- java 백준 1509
- java 파티
- spring mongoTemplate switch
- 익명 객체 @transactional
- mongodb lookup
- 자바 백준 팩토리얼 개수
- java 1238
- 백준 특정한 최단 경로
- Java Call By Refernce
- spring mongodb switch
- nodejs rabbitmq
- java 1509
- 백준 1504 java
- spring mongoTemplate
- java 팩토리얼 개수
- 백준 2252 줄세우기
- 자바 1676
- kotiln const
- 전략 패턴이란
- spring mongodb
- rabbitmq 싱글톤
- Spring ipfs
- go
- 백준 연결요소 자바
Archives
- Today
- Total
공부 흔적남기기
IOC/DI란 무엇일까 본문
728x90
반응형
IOC란 Inversion Of Control의 약자로 제어의 역전이라는 의미를 가지고 있다.
그러면 제어의 역전은 어떤 의미를 담고 있는 걸까???
제어의 역전은 평소 개발자가 객체의 메소드를 호출하여 사용했다면 이러한 제어를 프레임워크에게 주어 프레임워크가 제어하는대로 개발하는 것이 제어의 역전의 의미이다.
예를들어 우리가 Repository를 사용하는데 MySql를 사용할지 Redis를 사용할지 정확히 몰라 둘다 개발해두었다고 가정하자 후에 어떤것을 사용할지 결정이되면 AppConfig라는 제어를 해주는 코드에 사용할 Respository를 적게되면 그 Repository가 사용되는 것이다. 이것은 수동의 예고 자동으로는 Component라는 어노테이션을 붙여주면 자동으로 설정되게 된다. 즉 어떤 레포지토리를 사용할지 우리가 코드로 적는 것이 아닌 프레임워크의 설정정보에 적어주면 이를 프레임워크가 제어하여 설정해주는 것이다.
이때 프레임워크가 설정정보를 가져와 저장할때 이러한 정보를 Bean이라고 한다.
설정정보들을 프레임워크의 컨테이너에 key(이름)와 value(객체)로 저장되어 관리된다. 즉 위의 예시를 사용한다면 결정된 Repository가 빈에 등록되어 나중에 필요한 곳에 주입되어 사용되게 된다.
이때 주입된다는 것이 외부 프레임워크에서 주입되는 것이기 때문에 DI(Denpendeny Injection) 의존성 주입이라고 한다.
예를들어 Controller에서 Service를 사용하고 Service는 Repository를 사용한다고 가정하면 Controller에서 Service는 빈에 등록된 Service객체 하나를 가져와 의존성 주입을 해줄 것이다. 이떄 Service는 Repository를 매개변수로 받는데 빈에 등록된 후 프레임워크가 의존관계를 알아서 맞춰준다.
728x90
반응형
'web study > Spring' 카테고리의 다른 글
Spring MVC (0) | 2022.02.06 |
---|---|
DispatcherServlet의 간단한 과정 (0) | 2022.01.30 |
jsp 간단한 사용방법 (ONLY JSP) (0) | 2022.01.26 |
Severlet 간단한 사용방법 (0) | 2022.01.26 |
Spring으로 간단한 게시판 만들기 (0) | 2022.01.25 |