오늘은 MVC 패턴에 대해 간단하게 알아보자
평소에 패턴을 잘 사용하지 않았지만 요즘들어 필요성을 체감하고 있다.....
MVC는 Model-View-Controller의 약자로, 소프트웨어를 구성하는 세 가지 주요 구성 요소를 분리하여 디자인하는 아키텍처 패턴이다.
Model: 애플리케이션의 데이터와 비즈니스 로직을 담당한다.
View: 사용자 인터페이스를 표시하고 사용자 입력을 처리한다.
Controller: 모델과 뷰 간의 상호 작용을 조정하고, 사용자 입력에 따라 모델을 업데이트하거나 뷰를 업데이트한다.
1. 각 구성 요소의 역할
모델 (Model)
데이터를 관리하고 비즈니스 로직을 수행한다.
데이터의 상태를 유지하고 업데이트한다.
예: 데이터베이스와의 상호 작용, 데이터 가공 및 처리 등의 기능
뷰 (View)
사용자에게 정보를 표시하고 사용자 입력을 받는다.
모델의 데이터를 시각적으로 표현한다.
예: 웹 페이지, 앱의 UI
컨트롤러 (Controller)
사용자의 입력을 처리하고 이를 바탕으로 모델을 업데이트하거나 뷰를 업데이트한다.
모델과 뷰 간의 중재자 역할을 한다.
예: 버튼 클릭, 폼 제출 등의 이벤트 처리한다.
2. 장점
유지보수와 확장에 용이: 유지보수와 확장이 용이하다. 각 구성 요소가 독립적으로 관리되기 때문이다.
재사용성 용이: 코드의 재사용성이 높다. 특히 모델 부분은 여러 뷰에서 재사용할 수 있다.
가독성 향상: 코드의 가독성이 좋아진다. 역할이 명확히 분리되어 있어 코드를 이해하기 쉽다.
3. 단점
테스트 어려움: 특히 뷰와 컨트롤러의 상호 작용이 복잡한 경우 유닛 테스트를 작성하기 어려울 수 있다.
너무 많은 중재자 역할: 컨트롤러가 모델과 뷰 사이의 중재자 역할을 수행하기 때문에 컨트롤러가 너무 많은 책임을 질 수 있다.
데이터 흐름의 복잡성: 데이터의 흐름이 복잡한 경우에는 MVC 패턴이 오히려 가독성을 떨어뜨릴 수 있다.
참 어렵지만 그래도 계속 공부해봐야겠다.
'IT관련 정보' 카테고리의 다른 글
오늘은 애자일(Agile) 방법론에 대해 알아보자 (0) | 2023.10.26 |
---|---|
애플리케이션 테스트에 대해 알아보자 (0) | 2023.10.22 |
최초적합, 최적적합, 최악적합에 대해 알아보자 (0) | 2023.10.14 |
JAVA 와 KOTLIN의 차이점에 대해 알아보자 (1) | 2023.10.11 |
인터페이스 기능 구현 기술에 대해 알아보자 (1) | 2023.10.07 |