티스토리 뷰

반응형

1. 서론

 

 

우선 프리즘에 대해서 이야기를 하기전에 patterns & practices라는 부분에 대해 살펴 보기로 하자.

http://msdn.microsoft.com/en-us/library/ff921345.aspx

한마디로 정의를 해보자면 Microsoft platform으로 디자인과 개발을 할때 사용할 패턴과 사례를 추천하는 것이다.

솔루션 개발, 클라우드 개발, 데스크탑 개발, 폰 발, 서비스 개발, 웹 개발 등 각 부분별로 여러가지 내용들이 있는데 그 중에서도 Prism이 중요하게 다루어 지고 있다는 것을 알아야 할 것이다.(한마디로 왕추천이라는 것이다)

patterns & practices의 자세한 내용은 위의 링크를 통해 알 수 있다.

 

Prism 4.1 - Developer's Guide to Microsoft Prism

http://msdn.microsoft.com/en-us/library/gg406140.aspx

프리즘의 현제 버전이다. 프리즘 4.1로 개발 가능한 환경은 Visual Studio 2010, .Net Framework 4.0, WPF, Silverlight, Window Phone 7 이라는 설명이 적혀 있다. 그런데.. 얼마전 Store app 개발에 사용가능 한 Prism nuget package가 등록 되었다.

 

patterns & practices: Prism for the Windows Runtime

http://prismwindowsruntime.codeplex.com/

문서 링크로 하단부에 pdf로 메뉴얼을 제공한다.

http://msdn.microsoft.com/en-us/library/windows/apps/xx130643.aspx

위의 링크 페이지에서 소스를 다운로드 받아서 실행하면 위와 같은 앱이 동작 된다. 가상 회사에서 운영하는 쇼핑몰 앱으로 기본 적인 상품 목록 조회, 장바구니, 결제, 배송에 이르기까지 모든 작업을 앱에서 처리하고 있다.

 

2. 왜 Prism에 대해서 이야기를 하려고 하는가?

처음 프리즘을 접하게된 계기는 교육센터를 통해서 알게되었고, Silverlight, ERP 프로젝트를 진행하면서 처음으로 Prism 4.1 MEF Container를 적용한 프레임웍을 만들었다. 새로운 개념, 사용 방법 등을 익히고, 개발했기 때문에 처음에는 고생을 많이 했다. 개발 시작 후 적응 기간이 끝나고나니, 여러가지 좋은 점들이 눈에 들어오면서.. 아 이래서 사용하는 구나..라고 생각했다.

 

ERP 프로젝에서 Out 후 몇 개월 후에 다시 Silverlight 프로젝트를 시작했다.

보안회사의 모니터링 시스템으로 많은 개발 인원과 시간을 들여서 만들어 놓은 시스템이였고, 성능개선과 추가 개발을 위한 투입이였다. 처음 ERP 프로젝트와 모니터링 시스템은 서로 다른 개발사와 인력이 진행한 프로젝트였다.

 

여기서 생각해 보자, 만약 여러분이 알고 있는 프로젝트였다면, 두개의 프로젝트 프레임웍이 어떨 것이라고 생각이 되나? 아마, 각 프로젝트의 프레임웍은 서로 많이 달라서 적응하는데 시간이 필요할 것이라고 생각될 것이다.

하지만, 다행히 두개의 프로젝트는 모두 Prism을 기반으로 만들어진 것이였고, 그렇기 때문에 적응기간이나 내용 파악하는 것이 무척 쉬웠다. 

처음 고생을 해서 Prism을 익혀 놓지 않았더라면? 보안회사 프레임웍의 기본이 Prism이 아니였더라면? 생각하기도 싫을 정도다.

 

닷넷을 이용한 큰 프로젝트에는 개발 시작전에 프레임웍을 만들고 진행을 하게되는데, 대부분은 그 프레임웍이 서로 달라 개발자 경험을 이어나가기 어려운 것이 현실이다. 개발자는 프로젝트에 투입이 될 때 마다 새로운 프레임웍을 익히고, 배워야 한다. 과거에는 이런 것이 당연시 되었지만, 이제 시대는 변하고 있다. Prism이 모든 프로젝트의 기본이 된다면, 개발, 유지보수 하기위한 인적자원을 확보하는 것은 어렵지 않을 것이라 생각한다.

 

 

3. Prism for Windows Runtime을 사용해서 얻을 수 있는 이점

. 일반적인 Windows 스토어 앱 개발 시나리오를 알 수 있다.

. 앱을 독립적, 협업전 조각들로 구성하여 만들 수 있다.

. MVVM을 지원하는 프리젠테이션, 프리젠테이션 로직, 그리고 모델을 구성할 수 있다.

. 일관되고 높은 품질의 을 생산하는 기초 인프라를 사용할 수 있다.

. Microsoft.Practices.Prism.StoreApps 클래스 라이브러리는 lifecycle 관리, Windows store app의 코어 서비스,  MVVM을 지원한다.

. Microsoft.Practices.Prism.PubSubEvents는 Portable Class Library이며, 앱에서 loosely coupled로 구성된 각 컴포넌트 사이에 커뮤니케이션을 담당한다. 이 라이브러리는 다른 라이브러리에 대한 종속성이 없고, Microsoft.Practices.Prism.StoreApps 라이브러리가 없어도 사용이 가능하며, PCL로 만들어져있어서 다른 플랫폼에서도 사용이 가능하다.

 

 

이번 포스트는 전체적인 내용을 정리하는 용도로 보면 될 것 같다. 시간이 허락하는 대로, 실제 구현 방법에 대해서 알아보는 포스트를 추가하도록 하겠다.

 

 

 

 

반응형
댓글