μ μ΄μ μμ IoC ( Inversion of Control )
μΌλ°μ μΈ μλ° κ°λ°μ κ²½μ° κ°μ²΄λ₯Ό μ¬μ©νκΈ° μν΄ μλμ κ°μ μ½λ μ¬μ©
@RestController
public class NoDIController{
private MyService service = new MyServiceImpl();
@GetMapping("/no-di/hello")
public String getHello(){
return service.getHello();
}
}
μ¦, μ¬μ©νλ €λ κ°μ²΄λ₯Ό μ μΈνκ³ ν΄λΉ κ°μ²΄μ μμ‘΄μ±μ μμ±ν ν κ°μ²΄μμ μ 곡νλ κΈ°λ₯μ μ¬μ©
κ°μ²΄λ₯Ό μμ±νκ³ μ¬μ©νλ μΌλ ¨μ μμ
μ κ°λ°μκ° μ§μ μ μ΄νλ ꡬ쑰
νμ§λ§, μ μ΄μ μμ (IoC)μ νΉμ§μΌλ‘ νλ μ€νλ§μ κΈ°μ‘΄ μλ° κ°λ° λ°©μκ³Ό λ€λ₯΄κ² λμ
IoCλ₯Ό μ μ©ν νκ²½μμλ μ¬μ©ν κ°μ²΄λ₯Ό μ§μ μμ±νμ§ μκ³ κ°μ²΄μ μλͺ
μ£ΌκΈ° κ΄λ¦¬λ₯Ό μΈλΆμ μμν¨
μ¬κΈ°μ μΈλΆ
λ μ€νλ§ μ»¨ν
μ΄λ(Spring Container) λλ IoC 컨ν
μ΄λλ₯Ό μλ―Έ
κ°μ²΄μ κ΄λ¦¬λ₯Ό 컨ν
μ΄λμ 맑겨 μ μ΄κΆμ΄ λμ΄κ° κ²μ μ μ΄μ μμ
μ΄λΌκ³ λΆλ₯΄λ©°, μ μ΄μ μμ μ ν΅ν΄ μμ‘΄μ± μ£Όμ
(DI; Dependency Injection)
, κ΄μ μ§ν₯ νλ‘κ·Έλλ°(AOP; Aspect-Oriented Programming)
λ±μ΄ κ°λ₯ν΄μ§
β μ€νλ§μ μ¬μ©νλ©΄ κ°μ²΄μ μ μ΄κΆμ 컨ν μ΄λλ‘ λκΈ°κΈ° λλ¬Έμ κ°λ°μλ λΉμ¦λμ€ λ‘μ§μ μμ±νλ λ° λ μ§μ€ κ°λ₯
'μ€νλ§' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
κ΄μ μ§ν₯ νλ‘κ·Έλλ° (AOP) (0) | 2022.09.01 |
---|---|
μμ‘΄μ± μ£Όμ ( DI ) (0) | 2022.09.01 |
κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° (0) | 2022.08.31 |
μ€νλ§μ΄λ ? (0) | 2022.08.31 |
[ Spring Boot ] API (0) | 2022.08.30 |