Backend/Spring

스프링 핵심 개념 - IoC, DI, Model

leecom116 2022. 11. 13. 18:35

IoC(Inversion of Control) - 제어의 역전
- 제어의 흐름을 변경
- 메소드나 객체의 호출작업을 외부에서 결정되는 것을 의미
- IoC의 효과 : 객체 간의 결합도 줄이고 유연한 코드 작성 가능,
                      가독성 및 코드 중복 방지, 편리한 유지보수


DI(Dependency Injection) - 의존성 주입
- 스프링만의 차별화된 의존 관계 주입 기능
- 객체를 외부에서 생성후 주입시켜 주는 방식
- DI의 효과 : 모듈간의 결합도 ↓ , 유연성 ↑

 

 

 

Model 객체

- Controller에서 생성된 데이터를 담아 View로 전달할 때 사용하는 객체

- Servlet의 request.setAttribute()와 비슷한 역할

- addAttribute("key", "value") 메서드를 이용하여 View에 전달할 데이터를 key, value 형식으로 전달할 수 있다.

 


@ModelAttribute

- View에서 넘어온 값들을 getter, setter, 생성자를 통해 주입하기 위해 사용

- 일반 변수로는 전달이 불가능하므로 model 객체를 통해서 전달

- 작성한 이름에 해당하는 Beans Class(getter,setter 포함)의 객체를 생성한 후

  뷰에서 넘어온 값들을 빈즈 클래스 속성값에 알맞게 넣는다

  그리고 나서 해당 객체는 자동으로 Model 객체에 추가되고 View에 전달된다.