MVC의 철학적 기반
- 역할 분리의 중요성
- 각 구성 요소가 자신의 책임만 다하면 다른 요소가 변경되더라도 최소한의 영향을 받습니다.
- 애플리케이션의 복잡성을 줄이고, 디버깅과 유지보수를 용이하게 합니다.
- MVC의 핵심은 "하나의 요소는 하나의 역할만 수행해야 한다"는 원칙에서 출발합니다. 이는 소프트웨어 개발의 관심사 분리(Separation of Concerns) 원칙과 직결됩니다.
- 사용자와 시스템의 상호작용 모델링MVC는 이러한 상호작용을 단계적으로 나누어 체계적으로 정리합니다.
- 사용자는 단순히 데이터를 요청하거나 입력하지만, 시스템 내부에서는 이를 처리하고 응답하기 위해 다양한 로직이 수행됩니다.
1. Model (모델)
- 개념:
- 모델은 애플리케이션의 데이터와 그 데이터를 처리하는 비즈니스 로직을 담당합니다.
- 데이터베이스와의 상호작용, 데이터를 저장하거나 가공하는 작업을 수행합니다.
- 사용자가 보거나 수정할 수 있는 데이터를 표현합니다.
- Spring Boot에서의 구현:
- Entity 클래스: @Entity를 사용하여 데이터베이스 테이블과 매핑합니다.
- Repository 인터페이스: JpaRepository 등을 활용해 데이터 접근 계층을 구현합니다.
- Service 클래스: 비즈니스 로직을 처리하는 계층입니다. @Service로 표시합니다.
2. View (뷰)
- 개념:
- 뷰는 사용자에게 데이터를 시각적으로 표현하는 부분입니다.
- HTML, CSS, JavaScript와 같은 프론트엔드 요소로 구성되며, 사용자의 입력을 수집하는 역할도 합니다.
- Spring Boot에서의 구현:
- 템플릿 엔진: Thymeleaf, JSP, 또는 Mustache 등을 사용해 뷰를 작성합니다.
- 모델 데이터를 전달받아 렌더링합니다.
- 예: Thymeleaf에서 ${modelAttribute}를 사용해 데이터를 출력.
3. Controller (컨트롤러)
- 개념:
- 컨트롤러는 사용자의 요청을 처리하고, 필요한 데이터를 모델에서 가져와 뷰에 전달합니다.
- 주로 HTTP 요청을 처리하고, 적절한 응답을 반환하는 역할을 합니다.
- Spring Boot에서의 구현:
- @Controller 또는 @RestController를 사용해 컨트롤러 클래스를 작성합니다.
- 요청 매핑은 @RequestMapping 또는 @GetMapping, @PostMapping 등을 사용합니다.
- 모델 데이터를 뷰로 전달하려면 Model 객체를 활용합니다.
'Spring' 카테고리의 다른 글
Spring Web MVC - HTTP 요청 파라미터 처리 (1) | 2024.12.20 |
---|---|
Spring Web MVC - HTTP 요청 RequestMapping (1) | 2024.12.20 |
답글이 있는 게시판 만들기 (1) | 2024.12.20 |
JSP로 페이징 구현하기 (0) | 2024.12.20 |
MVC 패턴이란? (2) | 2024.12.19 |