
Project: Gradle - Groovy Project
Spring Boot: 3.0.5
Language: Java
Packaging: Jar
Java: 17
Dependencies: Spring Web, Thymeleaf
스프링 핵심 개념! → 왜 만들었는가?!
・자바 언어 기반의 프레임워크
・자바 언어의 특징 = 객체지향!
⇒ 스프링은 객체 지향 언어가 가진 특징을 잘 살려냄
(=좋은 객체 지향 어플리케이션을 개발 할 수 있게 도와줌)
MVC 패턴을 가진 시스템의 각 컴포넌트는 자신이 맡은 역할만 수행한 후 다른 컴포넌트로 결과만 넘겨주면 되기 때문에 시스템 결합도를 낮출 수 있음
사용자가 controller를 조작하면 controller는 Model을 통해서 데이터를 가져오고, 그 정보를 바탕으로 View를 제어해서 사용자에게 전달하게 됨 (← 결과 화면을!)
비지니스 처리 로직인 Model과 UI영역인 View는 서로의 존재를 인지하지 못하고, Controller가 중간에서 Model과 View의 연결을 담당함
❕Model과 View를 분리함으로써 서로의 의존성을 낮추고 독립적인 개발을 가능하게 함
❕Controller는 View로 부터 들어온 사용자 요청을 해석하여 Model을 업데이트 하거나, Model로 부터 데이터를 받아 View로 전달하는 작업을 수행함
Controller는 View와 도메인 Model의 데이터를 주고 받을 때 별도의 DTO를 주로 사용
→ 도메인 객체를 View에 직접 전달 할 수는 있지만, 민감한 도메인 비즈니스 기능이
노출될 수 있으며 Model과 View 사이에 의존성이 생기기 때문에 DTO를 사용
(소규모인 경우 DTO 사용이 불필요한 경우도 있음)
이거 보면 스프링 마스터 가능한가요?