MVVM 패턴의 이해

Similar documents
제8장 자바 GUI 프로그래밍 II

Intro to Servlet, EJB, JSP, WS

제목

PowerPoint Presentation

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi

성능 감성 감성요구곡선 평균사용자가만족하는수준 성능요구곡선 성능보다감성가치에대한니즈가증대 시간 - 1 -

숭실브로슈어 표지 [Converted]

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

2005CG01.PDF

슬라이드 1

PCServerMgmt7

RVC Robot Vaccum Cleaner

학습영역의 Taxonomy에 기초한 CD-ROM Title의 효과분석

PowerPoint Template

오버라이딩 (Overriding)

Convenience Timetable Design

PRO1_02E [읽기 전용]

CONTENTS 숭실사이버대학교 소개 총장 인사말 교육이념 및 비전 콘텐츠의 특징 숭실사이버대학교 역사 숭실사이버대학교를 선택해야 하는 이유 숭실사이버대학교 학과 소개 1 1 학과 소개 30 연계전공 & 신 편입생 모집안내 숭실사이버대학교 C

APOGEE Insight_KR_Base_3P11

1

MasoJava4_Dongbin.PDF

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Microsoft Word - src.doc

PowerPoint Presentation

< C4BFB8AEBEEEC6D0BDBA20BBE7B7CAC1FD5FB0C7C3E02E687770>

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

Inclusion Polymorphism과 UML 클래스 다이어그램 구조에 의거한 디자인패턴 해석

대한한의학원전학회지24권6호-전체최종.hwp

자바GUI실전프로그래밍2_장대원.PDF

Journal of Educational Innovation Research 2019, Vol. 29, No. 1, pp DOI: * Suggestions of Ways

Output file

Multi-pass Sieve를 이용한 한국어 상호참조해결 반-자동 태깅 도구

PRO1_04E [읽기 전용]

PowerPoint Presentation

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

슬라이드 1

I

Microsoft PowerPoint - CSharp-10-예외처리

슬라이드 1

<31325FB1E8B0E6BCBA2E687770>

Microsoft 을 열면 깔끔한 사용자 중심의 메뉴 및 레이아웃이 제일 먼저 눈에 띕니다. 또한 은 스마트폰, 테블릿 및 클라우드는 물론 가 설치되어 있지 않은 PC 에서도 사용할 수 있습니다. 따라서 장소와 디바이스에 관계 없이 언제, 어디서나 문서를 확인하고 편집

Software Requirrment Analysis를 위한 정보 검색 기술의 응용

ecorp-프로젝트제안서작성실무(양식3)

SH100_V1.4

300 구보학보 12집. 1),,.,,, TV,,.,,,,,,..,...,....,... (recall). 2) 1) 양웅, 김충현, 김태원, 광고표현 수사법에 따른 이해와 선호 효과: 브랜드 인지도와 의미고정의 영향을 중심으로, 광고학연구 18권 2호, 2007 여름

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가

05Àå

UML

OOP 소개

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

C. KHU-EE xmega Board 에서는 Button 을 2 개만사용하기때문에 GPIO_PUSH_BUTTON_2 과 GPIO_PUSH_BUTTON_3 define 을 Comment 처리 한다. D. AT45DBX 도사용하지않기때문에 Comment 처리한다. E.

27 2, 17-31, , * ** ***,. K 1 2 2,.,,,.,.,.,,.,. :,,, : 2009/08/19 : 2009/09/09 : 2009/09/30 * 2007 ** *** ( :

JAVA PROGRAMMING 실습 08.다형성

(......).hwp

Journal of Educational Innovation Research 2017, Vol. 27, No. 4, pp DOI: A Study on the Opti

Microsoft PowerPoint - 2강

Spring Boot

01-OOPConcepts(2).PDF

03-최신데이터

안드로이드기본 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 -

Internet Explorer 11 자동업데이트방지 사용자가이드 작성일 : Version 1.0

소프트웨어개발방법론


Microsoft PowerPoint - 14주차 강의자료

SMV Vending Machine Implementation and Verification 김성민 정혁준 손영석

Ver. DS-2012.T3.DWS.STR-1.0 System Test Report for Digital Watch System Test Cases Specification Test Summary Report Project Team 이동아 Latest update on

<B1A4B0EDC8ABBAB8C7D0BAB8392D345F33C2F75F E687770>

untitled

untitled

캐빈의iOS프로그램팁01

대한한의학원전학회지26권4호-교정본(1125).hwp

금오공대 컴퓨터공학전공 강의자료

Microsoft Word - [2017SMA][T8]OOPT_Stage_2040 ver2.docx

<C7D1B9CEC1B7BEEEB9AEC7D03631C1FD28C3D6C1BE292E687770>

DataBinding

Visual Basic 반복문

2ndWeek_Introduction to iPhone OS.key

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

기술 이력서 2.0

제11장 프로세스와 쓰레드

Dialog Box 실행파일을 Web에 포함시키는 방법

Microsoft PowerPoint - additional08.ppt [호환 모드]

Network Programming

Index Activity Refine System Architecture Activity Define Design Class Diagrams Activity 2141, 2142, 2144 Design Real Use Case + Define Re

Something that can be seen, touched or otherwise sensed

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx


본문

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

74 현대정치연구 2015년 봄호(제8권 제1호) Ⅰ. 서론 2015년 1월 7일, 프랑스 파리에서 총격 사건이 발생했다. 두 명의 남성이 풍자 잡지 주간 샤를리 의 본사에 침입하여 총기를 난사한 것이다. 이 사건으로 인해 열두 명의 사람이 목숨을 잃었다. 얼마 후에

SW¹é¼Ł-³¯°³Æ÷ÇÔÇ¥Áö2013

Journal of Educational Innovation Research 2018, Vol. 28, No. 3, pp DOI: NCS : * A Study on

DE1-SoC Board

tiawPlot ac 사용방법

Fig. 1. Some examples of the sudoku game. 지향적으로설계되지않아서 와같이객체지향언어를사용하는경우오픈되어있는기존의소스를재사용하는데편리하지않다 기반으로구현된스도쿠앱도많지만 소스가오픈된경우가매우드물며 스도쿠게임서객체지향개념의근간이되는클래스의캡


2 - ABSTRACT The object of this study is to investigate the practical effects of Senior Employment Project, implemented by government as a part of sen

Transcription:

Seo Hero 요약 joshua227.tistory. 2014 년 5 월 13 일 이문서는 WPF 어플리케이션개발에필요한 MVVM 패턴에대한내용을담고있다. 1. Model-View-ViewModel 1.1 기본개념 MVVM 모델은 MVC(Model-View-Contorl) 패턴에서출발했다. MVC 패턴은전체 project 를 model, view 로나누어 data 와 user interface 를분리하고, 제어를 control 에서하겠다는생각에서나왔다. 하지만 view 와 control 을완전히분리하기는힘들었고, project 가커지면서그경계가모호하게되는경우가많았다. 이에대한대안으로 MVP(Model-View-Presenter), view 와 view 의상태를분리하는 PM(Presentation Model) 등이새롭게등장하였다. MVVM 은 WPF 를위해기존모델들을수정하고 새롭게 ViewModel 을정의하였다. Dept. of Computer Science & Engineering 1/7

Model 과 View 를완전히분리하고그사이에 view 의추상화인 ViewModel 이데이터 바인딩을통해느슨하게서로를연결한다. ViewModel 의속성값이변경되면이러한새값이 데이터바인딩을통해자동으로 View 로전파된다. 사용자가 View 의단추를클릭하면요청된작업을수행하기위해 ViewModel 에있는명령이 실행된다. ViewModel 은모델데이터에대한모든수정을수행하며 View 는이러한작업을 수행하지않는다. View class 는 Model class 가존재한다는것을알수없으며 ViewModel 과 Model 은 View 를 인식하지못한다. 실제로 Model 은 ViewModel 와 View 가존재한다는사실을전혀알수없다. 1.2 Model As in the classic MVC pattern, the Model refers to either: 1) An object model that represents the real state content (an object-oriented approach), ( 컨텐츠를표현하는 object 모델 ) 2) The data access layer that represents the content (a data-centric approach). ( 컨텐츠를표현하는 data access layer) 1.3 View As in the classic MVC pattern, the View refers to all elements displayed by the GUI such as buttons, windows, graphics, and other controls. 1.4 ViewModel The ViewModel is a "Model of the View" meaning it is an abstraction of the View that also serves in data binding between the View and the Model. It could be seen as a specialized aspect of what would be a Controller (in the MVC pattern) that acts as a data binder/converter that changes Model information into View information and passes commands from the View into the Model. The ViewModel exposes public properties, commands, and abstractions. The ViewModel has been likened to a conceptual state of the data as opposed to the real state of the data in the Model. Dept. of Computer Science & Engineering 2/7

(view 의추상화로 MVC 패턴에서 Controller 에해당한다.) 2. 예제 2.1 WPF Model-View-ViewModel WPF 프로젝트에서 MVVM 모델을쓰기위해서는 Model, View 를연결하기위한 ViewModel 이 필요하다. 그리고여기에는사용자가입력을주었을때, 해당하는기능을실행하는 command 가 구현되어있어야한다. MVVM 모델의기본템플릿을지원하는 toolkit 을설치하거나직접필요한항목을만들고 템플릿으로저장하여쓸수있다. 아래는일반적인 MVVM 모델의구성요소이다. Commands 와 ViewModels 폴더안에있는파일은기본적으로는수정할필요가없다. MainViewModel.cs 파일에 view 와 model 을제어하기위한내용이들어간다. MainWindow.xaml 은 화면을구성하는 View 가된다. 2.2 예제구성 화면에보이는 text box 에숫자를출력한다. + 와 버튼이있으며 + 버튼을누르면숫자가 올라가고, - 버튼을누르면 text box 에숫자가줄어든다. 숫자가 10 이되면 max 가되며숫자를출력하는 text box 옆에 max 를표시한다. 반대로 숫자가계속줄어들어 0 이되면 min 이되며 text box 에 min 이표시된다. Dept. of Computer Science & Engineering 3/7 SM 사업부

전체프로젝트에대한클래스구성은아래와같다. 1) Model 숫자정보를저장하는 Score class 는전체프로젝트에서 Model 에해당한다. 정보에는숫자 값인 score, 최대인지최소인지를나타내기위한 max, min 이있다. Dept. of Computer Science & Engineering 4/7 SM 사업부

2) View View 는 xaml 로작성되기때문에 class diagram 에는자세한정보가나타나지않는다. 아래는 MainWindow.xaml 정보를나타낸다. 위내용을자세히보면 text box 에는 Text={Binding}, 버튼에는 Command 가있다. View 에 대해서데이터와명령이바인딩되어있기때문에 View 와 Model 의분리가가능하다. 3) ViewModel MainViewModel class 가화면을제어하는 ViewModel 이된다. MainViewModel class 는 ViewModelBase class 를상속받아 Command 를제어하고 property 에대해데이터바인딩을할수있다. 2.3 예제코드 1) MainWindow.xaml View Dept. of Computer Science & Engineering 5/7 SM 사업부

2) Models Score.cs 3) ViewModels MainViewModel.cs Dept. of Computer Science & Engineering 6/7 SM 사업부

3. References 1) Model-View-ViewModel 디자인패턴을사용한 WPF 응용프로그램 http://msdn.microsoft.com/ko-kr/magazine/dd419663.asp 2) A Practical Quick-start Tutorial on MVVM in WPF http://www.codeproject.com/articles/81484/a-practical in-wpf 3) WPF Model-View-ViewModel Toolkit http://wpf.codeplex.com/releases/view/14962 Dept. of Computer Science & Engineering 7/7