SlideShare a Scribd company logo
MVC 패턴ModelViewControl Pattern아꿈사http://cafe.naver.com/architect1TTF	http://www.npteam.net
상호 작용 시스템■ 구성요소핵심 기능
사용자 인터페이스■ 핵심 기능시스템의 기능적 요구사항에 기초한다.
대체로 변경 없이 유지된다.■ 사용자 인터페이스변경되기 쉽다.
상황에 따라 유연하게 적용해야 한다.상호 작용 시스템의 2가지 패턴상호작용 시스템MVC 패턴PAC 패턴PresentationAbstractionControlModelViewController
각패턴의 사용 사례MVC 패턴MFC 라이브러리
스몰토크PAC 패턴AI(artifical intelligence)MVC 패턴의 3가지 컴포넌트Model Component  - 핵심기능  - 데이터View Component  - 사용자에게 정보를 출력Controller Component  - 사용자 입력을 처리
MVC Pattern - Context■ 정황(Context)  - 상호작용 Application에 유연한 사람-컴퓨터간인터페이스를 구축해야 한다.매튜네이글은 뇌에 이식된 칩을 컴퓨터에 연결하여 생각으로 로봇팔, 마우스 포인터를 움직인다.이미지 출처 : http://www.scienceahead.com/entry/rsearchers-to-develop-a-brain-control-interface-device-that-could-be-manipulated-by-heartbeat/
MVC Pattern - Problem■ 문제(Problem)  - 고객의 요구에 따라서 사용자 인터페이스는 변경될 가능성이 높다.이미지 출처 : http://kr.engadget.com/2009/07/01/Victorinox-Swiss-Army/
MVC Pattern - Problem■ 문제(Problem)  - 사용자마다 상충되는 요구사항을 통합할 수 있어야 한다.
MVC Pattern - Problem■ 유연성(Flexibility)  - 사용자 인터페이스를 분리해야 하는 이유① 코드 수정 비용 증가② 오류 발생 확률 증가③ 결합도가 높은 모듈에 변경사항 발생시 모든 모듈을 일일이 변경해야 한다. 이미지 출처 : http://hightouch.kr/522
MVC Pattern - Problem■ 문제에 내포된 영향력(Force)  - 동일한 정보가 서로 다른 모습으로 표시된다.   - 데이터 변경 사항이 Application과 Display에 즉각 반영되어야 한다.
MVC Pattern - Problem■ 문제에 내포된 영향력(Force)  - 사용자 인터페이스는 쉽게변경될 수 있어야 한다.  - 사용자 인터페이스 변경시 핵심코드는 어떠한 영향도 미쳐선 안 된다.
MVC Pattern – Solution■ 해법(Solution)  - MVC는 상호작용 Application을 3가지 영역으로 분리한다.① 프로세싱(processing)② 출력(output)③ 입력(input)  - 3가지 컴포넌트로 구성된다.① 모델 컴포넌트(Model component)② 뷰 컴포넌트(View component)③ 컨트롤러 컴포넌트(Controller component)
MVC Pattern – Solution■ 모델 컴포넌트(Model component)  - 핵심 기능과 데이터를 캡슐화하여입출력에 영향을 받지 않고 독립적이다.■ 뷰 컴포넌트(View component)  - 사용자에게 정보를 디스플레이 한다.  - 모델로부터 제공된 데이터를  다양한 View를 통해 표시한다.
MVC Pattern – Solution■ 뷰 컴포넌트(View component)  - 각 View마다 컨트롤러가 하나씩 연결된다.  - 컨트롤러는 사용자 입력을 이벤트로 받는다.  - 사용자는 오직 컨트롤러를 통해서만 시스템과 상호작용 한다.
MVC Pattern – Solution■ 컨트롤러 컴포넌트(Controller component)  - 이벤트 형태로 사용자 입력을 받는다.  - 사용자 인터페이스 플랫폼에 따라 이벤트 전달 과정이 달라진다.  - 모델 데이터 상태에 따라 컨트롤러 UI 변경이가능하다.(변경 전파 메커니즘)
MVC Pattern – Solution■ MVC 패턴 UML 다이어그램  - 뷰와 컨트롤러 클래스는 Update 인터페이스를 가진 기본클래스(Observer)에서 상속 받는다.
MVC Pattern – Dynamic■ MVC 동작 묘사(시나리오1)  - 컨트롤러는 사용자로부터 이벤트를 받는다.  - 모델의 서비스 프로시저에 이벤트를 보낸다.  - 모델은 서비스를 수행하고 내부 데이터를 변경시킨다.
MVC Pattern – Dynamic■ MVC 동작 묘사(시나리오1)  - 모델은 업데이트 프로시저를 호출한다.  - 변경전파 메커니즘의 모든 뷰와 컨트롤러에 통지를 보낸다.  - 뷰는 모델에 변경 데이터를 요청하고 화면을 갱신한다.
MVC Pattern – Dynamic■ MVC 동작 묘사(시나리오1)  - 컨트롤러는 모델로부터 데이터를 가져와서 컨트롤러를 활성화/비활성화 한다.  - 컨트롤러가 제어권을 반환 받는다.
MVC Pattern – Dynamic■ MVC 동작 묘사(시나리오2)  - 모델 인스턴스가 생성되며, 내부 데이터 구조 초기화
MVC Pattern – Dynamic■ MVC 동작 묘사(시나리오2)  - 뷰 객체 생성.  - 초기화를 위해 모델의 참조를 매개변수로 입력 받는다.
MVC Pattern – Dynamic■ MVC 동작 묘사(시나리오2)  - 뷰는attach 프로시저 호출.  - 모델의 변경전파 매커니즘에 자신을 등록한다.
MVC Pattern – Dynamic■ MVC 동작 묘사(시나리오2)  - 뷰는컨트롤러 생성 및 초기화.  - 뷰는 모델과 자신의 참조를 초기화 프로시저에 넘긴다.
MVC Pattern – Dynamic■ MVC 동작 묘사(시나리오2)  - 컨트롤러도 attach 프로시저를 호출. - 모델의 변경전파 매커니즘에 자신을 등록한다.
MVC Pattern – Dynamic■ MVC 동작 묘사(시나리오2)  - 초기화 종료.- Application은이벤트를 처리할 준비 완료.

More Related Content

What's hot (20)

PDF
04.실행환경 실습교재(화면처리)
Hankyo
 
PDF
Gef 정리
SangHun Lee
 
PPT
Spring MVC
ymtech
 
PDF
[NEXT] Andorid에 MVC 패턴 적용하기
YoungSu Son
 
PPTX
HOONS닷넷 오픈소스 프로젝트 Part1.
Hojin Jun
 
PPTX
HeadFisrt Servlet&JSP Chapter 3
J B
 
PDF
HeadFisrt Servlet&JSP Chapter 2
J B
 
PDF
Rails style-guide-2
Yunho Jo
 
PDF
[오픈소스컨설팅]Spring MVC
Ji-Woong Choi
 
PDF
04.[참고]개발환경 실습교재
Hankyo
 
PDF
04.실행환경 교육교재(화면처리)
Hankyo
 
PDF
Implementing_AOP_in_Spring_SYS4U
sys4u
 
PPTX
[스프링 스터디 3일차] @MVC
AnselmKim
 
PPTX
세미나 Spring mybatis
Somang Jeong
 
PDF
아키텍트가 바라보는 Spring framework
Haeil Yi
 
PDF
02.실행환경 교육교재(데이터처리)
Hankyo
 
PDF
Facebook은 React를 왜 만들었을까?
Kim Hunmin
 
PPTX
Knockout js소개
Kwangho SEO
 
PDF
03.모바일 실습교재(모바일 공통컴포넌트 실습)
Hankyo
 
PDF
스프링컨트롤러예외처리,@ExceptionHandler, @ControllerAdvice
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
04.실행환경 실습교재(화면처리)
Hankyo
 
Gef 정리
SangHun Lee
 
Spring MVC
ymtech
 
[NEXT] Andorid에 MVC 패턴 적용하기
YoungSu Son
 
HOONS닷넷 오픈소스 프로젝트 Part1.
Hojin Jun
 
HeadFisrt Servlet&JSP Chapter 3
J B
 
HeadFisrt Servlet&JSP Chapter 2
J B
 
Rails style-guide-2
Yunho Jo
 
[오픈소스컨설팅]Spring MVC
Ji-Woong Choi
 
04.[참고]개발환경 실습교재
Hankyo
 
04.실행환경 교육교재(화면처리)
Hankyo
 
Implementing_AOP_in_Spring_SYS4U
sys4u
 
[스프링 스터디 3일차] @MVC
AnselmKim
 
세미나 Spring mybatis
Somang Jeong
 
아키텍트가 바라보는 Spring framework
Haeil Yi
 
02.실행환경 교육교재(데이터처리)
Hankyo
 
Facebook은 React를 왜 만들었을까?
Kim Hunmin
 
Knockout js소개
Kwangho SEO
 
03.모바일 실습교재(모바일 공통컴포넌트 실습)
Hankyo
 
스프링컨트롤러예외처리,@ExceptionHandler, @ControllerAdvice
탑크리에듀(구로디지털단지역3번출구 2분거리)
 

Viewers also liked (20)

PDF
SW 아키텍처 분석방법
YoungSu Son
 
PPTX
SpringMVC 전체 흐름 알아보기
Myung Woon Oh
 
PPTX
동국대학교 중앙동아리 D.N.A 2014년도 동아리 창립제 발표 자료 - 자바 기초 스터디
dgu_DNA
 
PPTX
리펙토링 4장 테스트만들기
Heo Seungwook
 
PPTX
리펙토링 6장 p147_p158
Heo Seungwook
 
PPTX
2010 연말행사 온라인스터디
Heo Seungwook
 
PDF
리팩토링 10장 p357_p369
Heo Seungwook
 
PPTX
리펙토링 10장 p316_p324
Heo Seungwook
 
PDF
리펙토링 11장 p389_p400
Heo Seungwook
 
PPTX
Cruise control net_and_terminal_with_gamedev
Heo Seungwook
 
PPTX
Pac pattern
Heo Seungwook
 
PPTX
프로그램은 왜 실패하는가
Heo Seungwook
 
PPTX
Master slave pattern
Heo Seungwook
 
PPTX
Abstract factory pattern
minjin00
 
PDF
Studyforprogrammer
guest0a0b14
 
PPTX
HolubOnPatterns/chapter3_2
Vong Sik Kong
 
PDF
misspattern
YoungSu Son
 
PDF
The hidden gems of Spring Security
Massimiliano Dessì
 
PPTX
Solid
Sway Wang
 
PPTX
데브루키 스터디 발표
dagri82
 
SW 아키텍처 분석방법
YoungSu Son
 
SpringMVC 전체 흐름 알아보기
Myung Woon Oh
 
동국대학교 중앙동아리 D.N.A 2014년도 동아리 창립제 발표 자료 - 자바 기초 스터디
dgu_DNA
 
리펙토링 4장 테스트만들기
Heo Seungwook
 
리펙토링 6장 p147_p158
Heo Seungwook
 
2010 연말행사 온라인스터디
Heo Seungwook
 
리팩토링 10장 p357_p369
Heo Seungwook
 
리펙토링 10장 p316_p324
Heo Seungwook
 
리펙토링 11장 p389_p400
Heo Seungwook
 
Cruise control net_and_terminal_with_gamedev
Heo Seungwook
 
Pac pattern
Heo Seungwook
 
프로그램은 왜 실패하는가
Heo Seungwook
 
Master slave pattern
Heo Seungwook
 
Abstract factory pattern
minjin00
 
Studyforprogrammer
guest0a0b14
 
HolubOnPatterns/chapter3_2
Vong Sik Kong
 
misspattern
YoungSu Son
 
The hidden gems of Spring Security
Massimiliano Dessì
 
Solid
Sway Wang
 
데브루키 스터디 발표
dagri82
 
Ad

Similar to Mvc pattern (20)

PDF
iOS Architecture.pdf
ssuser86e2971
 
PDF
MVVM Pattern for Android
taeinkim6
 
PDF
adios 2021 oct 유현식 발표자료
Hyun-sik Yoo
 
PDF
[iOS] MVC, MVP, MVVM
Bill Kim
 
PPTX
메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함
uEngine Solutions
 
PPTX
Flux적용내역
세종 이
 
PDF
[아꿈사/110903] 도메인주도설계 4장
sung ki choi
 
PPTX
분석과 설계
Haeil Yi
 
PDF
프로그래밍 방식의 변천 과정
중선 곽
 
PPTX
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
중선 곽
 
PPTX
Model View ViewModel이란 무엇이고 UE에서는 어떻게 적용하는가?
yoon20002000
 
PDF
Rx for iOS App. RxMVVM-DataCenter!
SUNGCHEOL KIM
 
PDF
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
NAVER Engineering
 
PPT
Uml 세미나
Daniel Shin
 
PPTX
디자인패턴 1~13
Shin heemin
 
PPTX
Head first디자인패턴 1~13_희민_호준
HoJun Sung
 
PDF
Beginning the UML - in Banking Domain (UML 교육자료)
Juhyeon Lee
 
PDF
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
Sa-ryong Kang
 
PDF
Mvc 패턴
Seokju Hong
 
PPTX
StarUML NS Guide - Design
태욱 양
 
iOS Architecture.pdf
ssuser86e2971
 
MVVM Pattern for Android
taeinkim6
 
adios 2021 oct 유현식 발표자료
Hyun-sik Yoo
 
[iOS] MVC, MVP, MVVM
Bill Kim
 
메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함
uEngine Solutions
 
Flux적용내역
세종 이
 
[아꿈사/110903] 도메인주도설계 4장
sung ki choi
 
분석과 설계
Haeil Yi
 
프로그래밍 방식의 변천 과정
중선 곽
 
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
중선 곽
 
Model View ViewModel이란 무엇이고 UE에서는 어떻게 적용하는가?
yoon20002000
 
Rx for iOS App. RxMVVM-DataCenter!
SUNGCHEOL KIM
 
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
NAVER Engineering
 
Uml 세미나
Daniel Shin
 
디자인패턴 1~13
Shin heemin
 
Head first디자인패턴 1~13_희민_호준
HoJun Sung
 
Beginning the UML - in Banking Domain (UML 교육자료)
Juhyeon Lee
 
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
Sa-ryong Kang
 
Mvc 패턴
Seokju Hong
 
StarUML NS Guide - Design
태욱 양
 
Ad

Mvc pattern

  • 2. 상호 작용 시스템■ 구성요소핵심 기능
  • 3. 사용자 인터페이스■ 핵심 기능시스템의 기능적 요구사항에 기초한다.
  • 4. 대체로 변경 없이 유지된다.■ 사용자 인터페이스변경되기 쉽다.
  • 5. 상황에 따라 유연하게 적용해야 한다.상호 작용 시스템의 2가지 패턴상호작용 시스템MVC 패턴PAC 패턴PresentationAbstractionControlModelViewController
  • 6. 각패턴의 사용 사례MVC 패턴MFC 라이브러리
  • 7. 스몰토크PAC 패턴AI(artifical intelligence)MVC 패턴의 3가지 컴포넌트Model Component - 핵심기능 - 데이터View Component - 사용자에게 정보를 출력Controller Component - 사용자 입력을 처리
  • 8. MVC Pattern - Context■ 정황(Context) - 상호작용 Application에 유연한 사람-컴퓨터간인터페이스를 구축해야 한다.매튜네이글은 뇌에 이식된 칩을 컴퓨터에 연결하여 생각으로 로봇팔, 마우스 포인터를 움직인다.이미지 출처 : http://www.scienceahead.com/entry/rsearchers-to-develop-a-brain-control-interface-device-that-could-be-manipulated-by-heartbeat/
  • 9. MVC Pattern - Problem■ 문제(Problem) - 고객의 요구에 따라서 사용자 인터페이스는 변경될 가능성이 높다.이미지 출처 : http://kr.engadget.com/2009/07/01/Victorinox-Swiss-Army/
  • 10. MVC Pattern - Problem■ 문제(Problem) - 사용자마다 상충되는 요구사항을 통합할 수 있어야 한다.
  • 11. MVC Pattern - Problem■ 유연성(Flexibility) - 사용자 인터페이스를 분리해야 하는 이유① 코드 수정 비용 증가② 오류 발생 확률 증가③ 결합도가 높은 모듈에 변경사항 발생시 모든 모듈을 일일이 변경해야 한다. 이미지 출처 : http://hightouch.kr/522
  • 12. MVC Pattern - Problem■ 문제에 내포된 영향력(Force) - 동일한 정보가 서로 다른 모습으로 표시된다. - 데이터 변경 사항이 Application과 Display에 즉각 반영되어야 한다.
  • 13. MVC Pattern - Problem■ 문제에 내포된 영향력(Force) - 사용자 인터페이스는 쉽게변경될 수 있어야 한다. - 사용자 인터페이스 변경시 핵심코드는 어떠한 영향도 미쳐선 안 된다.
  • 14. MVC Pattern – Solution■ 해법(Solution) - MVC는 상호작용 Application을 3가지 영역으로 분리한다.① 프로세싱(processing)② 출력(output)③ 입력(input) - 3가지 컴포넌트로 구성된다.① 모델 컴포넌트(Model component)② 뷰 컴포넌트(View component)③ 컨트롤러 컴포넌트(Controller component)
  • 15. MVC Pattern – Solution■ 모델 컴포넌트(Model component) - 핵심 기능과 데이터를 캡슐화하여입출력에 영향을 받지 않고 독립적이다.■ 뷰 컴포넌트(View component) - 사용자에게 정보를 디스플레이 한다. - 모델로부터 제공된 데이터를 다양한 View를 통해 표시한다.
  • 16. MVC Pattern – Solution■ 뷰 컴포넌트(View component) - 각 View마다 컨트롤러가 하나씩 연결된다. - 컨트롤러는 사용자 입력을 이벤트로 받는다. - 사용자는 오직 컨트롤러를 통해서만 시스템과 상호작용 한다.
  • 17. MVC Pattern – Solution■ 컨트롤러 컴포넌트(Controller component) - 이벤트 형태로 사용자 입력을 받는다. - 사용자 인터페이스 플랫폼에 따라 이벤트 전달 과정이 달라진다. - 모델 데이터 상태에 따라 컨트롤러 UI 변경이가능하다.(변경 전파 메커니즘)
  • 18. MVC Pattern – Solution■ MVC 패턴 UML 다이어그램 - 뷰와 컨트롤러 클래스는 Update 인터페이스를 가진 기본클래스(Observer)에서 상속 받는다.
  • 19. MVC Pattern – Dynamic■ MVC 동작 묘사(시나리오1) - 컨트롤러는 사용자로부터 이벤트를 받는다. - 모델의 서비스 프로시저에 이벤트를 보낸다. - 모델은 서비스를 수행하고 내부 데이터를 변경시킨다.
  • 20. MVC Pattern – Dynamic■ MVC 동작 묘사(시나리오1) - 모델은 업데이트 프로시저를 호출한다. - 변경전파 메커니즘의 모든 뷰와 컨트롤러에 통지를 보낸다. - 뷰는 모델에 변경 데이터를 요청하고 화면을 갱신한다.
  • 21. MVC Pattern – Dynamic■ MVC 동작 묘사(시나리오1) - 컨트롤러는 모델로부터 데이터를 가져와서 컨트롤러를 활성화/비활성화 한다. - 컨트롤러가 제어권을 반환 받는다.
  • 22. MVC Pattern – Dynamic■ MVC 동작 묘사(시나리오2) - 모델 인스턴스가 생성되며, 내부 데이터 구조 초기화
  • 23. MVC Pattern – Dynamic■ MVC 동작 묘사(시나리오2) - 뷰 객체 생성. - 초기화를 위해 모델의 참조를 매개변수로 입력 받는다.
  • 24. MVC Pattern – Dynamic■ MVC 동작 묘사(시나리오2) - 뷰는attach 프로시저 호출. - 모델의 변경전파 매커니즘에 자신을 등록한다.
  • 25. MVC Pattern – Dynamic■ MVC 동작 묘사(시나리오2) - 뷰는컨트롤러 생성 및 초기화. - 뷰는 모델과 자신의 참조를 초기화 프로시저에 넘긴다.
  • 26. MVC Pattern – Dynamic■ MVC 동작 묘사(시나리오2) - 컨트롤러도 attach 프로시저를 호출. - 모델의 변경전파 매커니즘에 자신을 등록한다.
  • 27. MVC Pattern – Dynamic■ MVC 동작 묘사(시나리오2) - 초기화 종료.- Application은이벤트를 처리할 준비 완료.
  • 28. MVC Pattern – Consequence■ 결과(p154~155) - 동일한 모델로부터 여러 뷰들을 표시할 수 있다. - 모델, 뷰, 컴트롤러의 동기화 - 뷰와 컨트롤러를 플러그처럼 장착할 수 있다. - “룩앤필”의 교환 가능성을 제공한다. - 프레임워크로 확장할 수 있다. - 복잡성이 증가한다.(단순한 상황에 적용할 경우) - 엄청나게 많은 업데이트들이 동시에 진행될 수 있다. - 뷰와 컨트롤러가 밀접히 관련된다. - 뷰 및 컨트롤러가 모델에 밀접히 결합되어 있다. - 뷰가 데이터 액세스하는 일반적인 과정은 비효율적인 경향이 있다. - 다른 플렛폼에이식할때뷰와 컨트롤러 변경이 필요하다.- 최신 사용자 인터페이스 툴에 MVC를 적용하기 어렵다.