웹 애플리케이션 프레임워크(Web Application Framework)

rss
웹 애플리케이션 프레임워크란?

웹 애플리케이션 프레임워크(Web application framework)란 동적인 웹사이트(dynamic websites), 웹 애플리케이션(Web applications), 웹 서비스(Web services) 등의 개발을 지원하기 위해 고안된 소프트웨어 프레임워크(software framework)이다. 이러한 프레임워크는 웹 개발에 이용되는 공통 작업에 수반된 비용(overhead)을 줄이는 것이 목적이다. (데이터베이스 접근, 세션 관리, 코드 재사용 등이 이에 해당하는 예이다.)


아키텍처(architecture)

Model-View-Controller (MVC)

사용자 삽입 이미지
원본 이미지: The Basic MVC Model.

많은 프레임워크들이 데이터 모델, 비지니스 룰, 유저 인터페이스를 서로 분리하기 위해 모델-뷰-컨트롤러(model-view-controller, MVC) 패턴을 따르고 있다. 대용량의 데이터를 처리해야 하는 대규모 애플리케이션 등에서는 개발자가 종종 데이터(모델)와 유저 인터페이스(뷰)를 분리하기를 원하는 경우가 생긴다. 이렇게 하면 데이터나 유저 인터페이스 가운데 어느 한쪽이 변경되더라도 상대방에 영향을 미치지 않기 때문이다. 일례로 하나의 모델을 바탕으로 다양한 뷰(예를 들어, 차트나 테이블, 그래프 등)를 생성할 수 있다. 모델-뷰-컨트롤러 패턴은 모델과 뷰 사이에 중간자적인 요소인 컨트롤러(데이터 처리)를 도입하였다. 이를 이용하면 데이터 표현(data presentation)과 유저 인터랙션(user interaction)에서 데이터 접근(data access)와 비지니스 로직(business logic)이 분리되어 이러한 문제를 해결하게 된다.

다시 말해, 모델(Model)은 프로그램 상태에 대한 논리적인 표현을, 뷰(View)는 데이터에 대한 시각적인 표현을 담당한다. 컨트롤러(Controller)는 사용자의 입력을 어떻게 다루어야 할지를 담당한다.


푸시 기반 대 풀 기반(push-based vs. pull-based)

대부분의 MVC 프레임워크는 푸시 기반 아키텍처이다. 이러한 프레임워크는 요구 사항을 처리(processing)한 후 결과를 보여 주기 위해 데이터를 뷰(view) 레이어에 밀어넣는다(push).

다른 방식으로는 "요소 기반(component-based)"이라고도 불리는 풀 기반 아키텍처가 있다. 이러한 방식은 프레임워크가 먼저 뷰(view) 레이어를 실행시키고, 뷰 레이어가 다수의 컨트롤러(controller)로부터 처리 결과를 끌어오는(pull) 방식이다. 이 방식에서는 하나의 뷰(view)에 다수 개의 컨트롤러(controllers)가 관여할 수 있다.



References
  1. wikipedia.org, "Web application framework".
  2. wikipedia.org, "Model-view-controller".
  3. javastudy.co.kr, "Swing MVC 모델에 대한 설명".
  4. 한빛미디어, "MVC 모델과 observer 패턴", 2004/03/24.


Posted by EXIFEEDI
,