SpringMVC
- MVC 패턴 기반의 웹 프레임워크입니다.
- Spring MVC는 모든 요청을 받아 각 컨트롤러로 요청을 위임 해주는 Front Controller를 사용합니다.
- 어노테이션을 이용한 편리하고 효율적인 개발을 지원합니다.
MVC 패턴이란?
- 디자인 패턴의 한 종류로, 프로그램을 세 가지의 주요 구성요소로 나누어 관리함으로써 애플리케이션의 구조를 향상시키며 유지보수를 쉽게 만들어주는 패턴입니다.
1. Model (모델):
- 애플리케이션의 데이터와 비즈니스 로직을 관리합니다.
- 데이터의 상태를 유지하고 조작하는 역할을 합니다.
- 데이터의 변경 사항을 감지하고, View 및 Controller에 통지하여 업데이트를 수행합니다.
2. View (뷰):
- 사용자에게 정보를 표시하고, 사용자의 입력을 받는 역할을 합니다.
- 모델의 데이터를 표시하기 위해 그래픽 또는 텍스트 인터페이스를 가집니다.
- 모델의 상태 변경 시에는 이를 감지하고 업데이트된 데이터를 화면에 반영합니다.
3. Controller (컨트롤러):
- 사용자의 입력을 처리하고, 그에 따라 모델이나 뷰를 업데이트하는 역할을 합니다.
- 사용자 인터페이스 이벤트에 응답하여 모델의 상태를 변경하고, 이에 따라 뷰를 업데이트합니다.
- 모델과 뷰 간의 통신을 조율하여 둘 간의 직접적인 의존성을 피합니다.
장점
- 재사용성 (Reusability): 모델이나 뷰를 변경하지 않고도 컨트롤러를 재사용할 수 있습니다.
- 유지보수성 (Maintainability): 각 구성 요소의 역할이 명확하게 정의되어 있기 때문에 코드를 쉽게 이해하고 유지보수를 쉽게 할 수 있습니다.
- 테스트 용이성 (Testability): 각 구성 요소는 독립적으로 테스트하기 쉽습니다.
Ex)
1. 사용자의 입력:
사용자는 애플리케이션 화면에서 "새 메모 작성" 버튼 등을 클릭하여 새로운 메모를 작성하기 시작합니다.
2. 컨트롤러의 처리:
사용자의 입력을 처리하는 컨트롤러는 "새 메모 작성" 동작을 감지하고, 이에 따라 모델에 새로운 메모를 생성하도록 요청합니다.
이 과정에서 사용자가 입력한 내용도 함께 모델에 전달됩니다.3. 모델의 업데이트
모델은 새로운 메모 객체를 생성하고, 사용자가 입력한 내용을 해당 메모에 저장합니다.
모델은 변경 사항을 감지하고, 이를 뷰와 컨트롤러에 통지합니다.4. 뷰의 업데이트
뷰는 모델로부터 업데이트된 메모 목록을 가져와 화면에 표시합니다.
이때, 새로 작성한 메모도 화면에 추가되어 나타납니다.5. 사용자에게 표시
최종적으로, 사용자는 화면에 새로 작성한 메모가 추가된 것을 확인할 수 있습니다.
이렇게 유용한 정보를 공유해주셔서 감사합니다.