Page 13 -
P. 13
Note MVC 패턴을 자세히 알고 싶다면 https://martinfowler.com/eaaDev/uiArchs.html에서 마틴 파울
러(Martin Fowler)가 MVC 진화를 설명한 내용을 찾아 읽어 보세요.
견고하고 오랜 테스트를 거친 구조라는 이유로 많은 프레임워크 개발자가 이 MVC 패턴의 변형된
형태를 사용해 왔습니다. 현대 웹 프레임워크를 어떻게 설계하고 만들었는지 알고 싶다면 에멧 스
콧 주니어(Emmit A. Scott Jr)가 쓴 <SPA Design and Architecture(SPA 디자인과 설계)>(Manning
Publications, 2015)를 확인하세요.
현대 소프트웨어 개발에서 MVC 패턴은 단일 애플리케이션의 한 부분으로 쓰이며, 코드 역할을
분리하는 훌륭한 메커니즘을 제공합니다. MVC 패턴을 사용하는 웹 사이트에서는 모든 요청이 클
라이언트에서 서버로 향하는 정보 흐름의 시작을 담당하고, 반대로 데이터베이스는 서버에서 클
라이언트로 향하는 데이터 흐름의 시작을 담당합니다. 이 과정에서 시간이 많이 소요되고, 자원
집약적이 되며, 반응형 사용자 경험을 제공하지 못합니다.
몇 년 동안 개발자들은 비동기식 웹 요청과 클라이언트 단 MVC를 사용하여 서버로 전송된 요청
들이 차단되지 않고 응답 없이 계속 진행하는 방식으로 웹 기반 애플리케이션의 상호 작용성을 높
여 왔습니다.
하지만 웹 애플리케이션이 데스크톱 역할을 대신하기 시작하면서 클라이언트/서버의 소통을 마냥
기다리는 것은 사용자에게 애플리케이션이 비정상적으로 작동하는 것처럼 보일 수 있습니다. 다
음에 알아볼 패턴으로 이를 해결할 수 있습니다.
Note 비즈니스 로직에 대한 한마디
비즈니스 로직을 어디에 구현해야 할지에 대해 MVC 패턴은 좋은 유연성을 제공합니다. 그림 1-1에서는 단순화하
려고 비즈니스 로직을 모델에만 축약했지만, 이는 컨트롤러를 포함한 애플리케이션의 다른 층 로직에도 존재합니다.
MVC 패턴은 1979년 트라이브 린스케이지(Trygve Reenskaug)가 발표했고, 이후 Smalltalk-76이 등장하면서
이에 맞추어 변화하게 됩니다.
사용자가 입력한 우편번호 인증을 예로 들어 보겠습니다.
•뷰는 우편번호가 입력된 시점 혹은 제출하는 시점 전에 자바스크립트로 인증을 할 수 있습니다.
•모델은 입력된 데이터를 포함하는 주소 객체를 생성할 때 우편번호를 인증할 수 있습니다.
•우편번호 필드에 대한 데이터베이스 제약으로 모델이 비즈니스 로직을 유지할 수도 있지만 좋은 습관은 아닙니다.
어떤 것이 비즈니스 로직을 구성하는지 정의하기 힘들고 대다수 상황에서 이전 제약들을 단 하나의 요청으로도 끝낼
수 있습니다.
이 책으로 애플리케이션을 만들면서 Vue와 이를 지원하는 라이브러리가 다양한 환경에서 기능을 어떻게 잘 유지하는
지, 비즈니스 로직을 어떻게 구성할지 알아보겠습니다.
024
Vue.js 코딩 공작소(본문)최종.indd 24 2019-09-07 오후 8:43:24