이번 포스팅에서는 프로젝트를 진행하는데 있어 코드의 가독성, 유지 보수성과 요구사항이 추가됨에 따라 증가되는 비용을 최소화 할 수 있는 여러가지 패턴 중 MVC 패턴에 대해 알아보고자 한다.
패턴을 새롭게 접할 때 가장 중요한 것은 역할 분담이다. MVC 패턴의 경우 Model, View, Controller 로 나뉠 수 있다. Model 은 오직 데이터만 관리하는 역할을 하고 View 는 오직 UI 만 띄어주는 역할을 하고 Controller 는 Event, Action 과 같은 Input 을 처리하는 역할을 한다.
어느 패턴이든 이 역할을 완벽히 수행하도록 구현하는 것은 상당히 어렵다고 생각한다. 그렇기 때문에 최대한 각 역할에 대해 흐름을 정의해서 구현하면 어느정도 해당 패턴에 맞추어 구현하는데 도움이 된다. 필자가 정의한 MVC 패턴의 흐름은 아래와 같다.
필자가 MVC 패턴을 기반으로 프로젝트를 진행하면서 위의 흐름을 최대한 지키려고 노력해도 변수는 항상 생기기 마련이였다. (예를 들면, Controller 에서 처리한 Event / Action 은 Model 의 상태를 변경하지 않고 즉시 View 에게 UI 를 띄우라는 명령이 있을 수 있다.)
어떤 패턴이든 정답은 없다고 생각한다. 중요한 것은 각 역할에 대해 얼마나 충실히 수행을 하느냐에 따라 해당 패턴의 구조가 잘 짜였는지 평가될 수 있다.
오늘도 역시 성장했다.