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에 전달된다.