MVC XEROX PARC - ChoDragon9/posts GitHub Wiki


title: MVC XEROX PARC sidebar: auto

이 λ¬Έμ„œλŠ” MVC의 νžˆμŠ€ν† λ¦¬κ°€ λ‹΄κΈ΄ MVC XEROX PARC 1978-79을 λ²ˆμ—­ν•œ λ¬Έμ„œμž…λ‹ˆλ‹€.

XEROX PARC(제둝슀 파크)λŠ” λ―Έκ΅­ μΊ˜λ¦¬ν¬λ‹ˆμ•„μ£Όμ˜ μ„œλΆ€μ— μžˆλŠ” λ„μ‹œμΈ νŒ°λ‘œμ•¨ν†  [Palo Alto]에 μžˆλŠ” νšŒμ‚¬μž…λ‹ˆλ‹€. PARCλŠ” 컴퓨터 연ꡬ/κ°œλ°œμ„ ν•˜λŠ” 정보 기술 및 ν•˜λ“œμ›¨μ–΄ μ‹œμŠ€ν…œμ— κΈ°μ—¬ν•œ κ²ƒμœΌλ‘œ 유λͺ…ν•œ νšŒμ‚¬μž…λ‹ˆλ‹€.

1978λ…„ 여름뢀터 1979λ…„ μ—¬λ¦„κΉŒμ§€ μ €λŠ” 제둝슀 파크의 ν•™μŠ΅ 연ꡬ원과 ν•¨κ»˜ λ°©λ¬Έ κ³Όν•™μžλ‘œμ„œ 맀우 ν–‰λ³΅ν•˜κ³  고무적인 ν•΄λ₯Ό λ³΄λƒˆμŠ΅λ‹ˆλ‹€. 이 그룹은 Alan Kay의 비전을 μœ„ν•΄ μ†Œμœ μž/μ‚¬μš©μžμ— λŒ€ν•œ λͺ¨λ“  관심 데이터λ₯Ό 포함해야 ν•˜λŠ” νœ΄λŒ€μš© 컴퓨터인 Dynabook에 λŒ€ν•œ ν—Œμ‹ ν–ˆμŠ΅λ‹ˆλ‹€. κ°€μž₯ μ€‘μš”ν•œ 것은, μ΄λŸ¬ν•œ λ°μ΄ν„°μ—λŠ” μ†Œμœ μžκ°€ 이λ₯Ό μ‘°μž‘ν•˜λŠ” 데 μ‚¬μš©ν•œ ν”„λ‘œκ·Έλž¨μ΄ ν¬ν•¨λ˜μ–΄ μžˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. μ†Œμœ μž/μ‚¬μš©μžλŠ” ν”„λ‘œκ·Έλž¨μ„ μ΄ν•΄ν•˜κ³  μž‘μ„±ν•  수 μžˆμ–΄μ•Ό ν•˜λ©°, λ”°λΌμ„œ 컴퓨터보닀 μš°μœ„λ₯Ό 확보할 수 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.

MVC λ…ΈνŠΈλŠ” 이 배경에 νŒλ…ν•΄μ•Ό ν•©λ‹ˆλ‹€. The user was the czar; everything done at LRG was done to support him. 초기 λ¬Έμ„œμ—λŠ” MVC에 λŒ€ν•œ λͺ‡ 가지 λ°°κ²½(1979.03.22)이 μΆ”κ°€λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

μ €λŠ” 가끔 제 λŠ₯λ ₯보닀 더 λ§Žμ€ 곡을 μΈμ •λ°›μ•˜μŠ΅λ‹ˆλ‹€. κ·Έλž˜μ„œ μ €λŠ” Smalltalk의 독창적인 발λͺ…κ°€κ°€ μ•„λ‹ˆλΌλŠ” 것을 κ°•μ‘°ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ €λŠ” 이 ν˜μ‹ μ μΈ ν˜μ‹ μ— 맀우 λΉ λ₯΄κ³  열정적인 μ‚¬μš©μž 쀑 ν•œ λͺ…일 λΏμž…λ‹ˆλ‹€. 1978λ…„ 제둝슀 νŒŒν¬μ— μžˆλŠ” 졜초의 MVC λ…ΈνŠΈλ₯Ό 처음으둜 κ΅¬ν˜„ν•˜μ—¬ μΌμŠ΅λ‹ˆλ‹€. λ©”λͺ¨λŠ” Model, View, Controller 및 Editor의 λ„€ 가지 μš©μ–΄λ₯Ό μ •μ˜ν•©λ‹ˆλ‹€. EditorλŠ” View와 마우슀 및 ν‚€λ³΄λ“œμ™€ 같은 μž…λ ₯ μž₯치 μ‚¬μ΄μ˜ μΈν„°νŽ˜μ΄μŠ€λ‘œ ν•„μš”ν•  λ•Œ μƒμ„±ν•˜λŠ” μ‚¬μš© ν›„ μ‚­μ œ ꡬ성 μš”μ†Œμž…λ‹ˆλ‹€.

짐 μ•Œν† ν”„(Jim Althoff)와 λ‹€λ₯Έ μ‚¬λžŒλ“€μ€ μ œκ°€ 제둝슀 파크λ₯Ό λ– λ‚œ 후에 MVCλ₯Ό Smalltalk-80 class library에 μ μš©ν–ˆμŠ΅λ‹ˆλ‹€. μ €λŠ” 이 일에 κ΄€μ—¬ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. 짐 μ•Œν† ν”„(Jim Althoff)λŠ” λ‚˜μ™€λŠ” 쑰금 λ‹€λ₯΄κ²Œ ControllerλΌλŠ” μš©μ–΄λ₯Ό μ‚¬μš©ν•œλ‹€. μ›λž˜μ˜ MVC의 μ€‘μš”ν•œ 츑면은 κ·Έκ²ƒμ˜ Controllerκ°€ κ·Έκ²ƒμ˜ ν•˜μœ„ Viewλ₯Ό λ§Œλ“€κ³  μ‘°μ •ν•˜λŠ” μ±…μž„μ΄ μžˆλ‹€λŠ” κ²ƒμ΄μ—ˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ μ΄ν›„μ˜ MVC κ΅¬ν˜„μ—μ„œλŠ” Viewκ°€ μžμ‹ κ³Ό κ΄€λ ¨λœ μ‚¬μš©μž μž…λ ₯을 μˆ˜μš©ν•˜κ³  μ²˜λ¦¬ν•©λ‹ˆλ‹€. ControllerλŠ” Controller/View μ–΄μ…ˆλΈ”λ¦¬μ™€ κ΄€λ ¨λœ μž…λ ₯을 μˆ˜μš©ν•˜κ³  μ²˜λ¦¬ν•˜λ©°, ν˜„μž¬λŠ” Tool이라고 ν•©λ‹ˆλ‹€.

MVC의 κΈ°λ³Έ λͺ©μ μ€ μ‚¬μš©μžμ˜ λ©˜νƒˆλͺ¨λΈκ³Ό 컴퓨터에 μ‘΄μž¬ν•˜λŠ” 디지털 λͺ¨λΈ κ°„μ˜ 차이λ₯Ό μ—°κ²°ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 이상적인 MVC μ†”λ£¨μ…˜μ€ μ‚¬μš©μžκ°€ 도메인 정보λ₯Ό 직접 보고 μ‘°μž‘ν•˜λŠ” 착각을 μ§€μ›ν•©λ‹ˆλ‹€. 이 κ΅¬μ‘°λŠ” μ‚¬μš©μžκ°€ λ™μΌν•œ λͺ¨λΈ μš”μ†Œλ₯Ό λ‹€λ₯Έ μ»¨ν…μŠ€νŠΈμ—μ„œ λ™μ‹œμ— λ³΄κ±°λ‚˜ λ‹€λ₯Έ κ΄€μ μ—μ„œ 보아야 ν•˜λŠ” κ²½μš°μ— μœ μš©ν•©λ‹ˆλ‹€. μ•„λž˜ 그림은 κ·Έ 생각을 λ³΄μ—¬μ€λ‹ˆλ‹€.

MVCλŠ” μ‚¬μš©μžκ°€ 크고 λ³΅μž‘ν•œ 데이터 μ„ΈνŠΈλ₯Ό μ œμ–΄ν•˜λŠ” λ¬Έμ œμ— λŒ€ν•œ 일반적인 ν•΄κ²°μ±…μœΌλ‘œ κ°„μ£Όλ˜μ—ˆμŠ΅λ‹ˆλ‹€. κ°€μž₯ μ–΄λ €μš΄ 뢀뢄은 λ‹€λ₯Έ 건좕적 μš”μ†Œλ“€μ˜ 쒋은 이름에 λΆ€λ”ͺνžˆλŠ” κ²ƒμ΄μ—ˆμŠ΅λ‹ˆλ‹€. λͺ¨λΈ λ·° νŽΈμ§‘κΈ°(1979.05.12)κ°€ 첫 번째 μ„ΈνŠΈμ˜€μŠ΅λ‹ˆλ‹€.

특히 Adelle Goldberg와 였랜 ν† λ‘  끝에 Model-View-Controller(1979.12.10)λΌλŠ” μš©μ–΄λ₯Ό μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€.

ControllerλŠ” μ œκ°€ μ§€κΈˆ Tool이라고 λΆ€λ₯΄λŠ” 곳에 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. Smalltalk-80 ControllerλŠ” EditorλΌλŠ” λ„€ 번째 μš”μ†Œμž…λ‹ˆλ‹€. 이것은 View와 λ§ˆμš°μŠ€μ™€ ν‚€λ³΄λ“œ 같은 μž…λ ₯ μž₯치 μ‚¬μ΄μ˜ μΈν„°νŽ˜μ΄μŠ€λ‘œ ν•„μš”μ— 따라 Viewκ°€ μƒμ„±ν•˜λŠ” μ‚¬μš© ν›„ μ‚­μ œ κ΅¬μ„±μš”μ†Œμž…λ‹ˆλ‹€.

MVC λ¬Έμ œλŠ” λ‚΄κ°€ 1979년에 깨달은 것보닀 더 λ§Žμ€ 츑면을 가지고 μžˆμŠ΅λ‹ˆλ‹€. μ €λŠ” 2003λ…„ 8μ›” 20일에 쓰여진 λ§ˆμ§€λ§‰ μ΄ˆμ•ˆμ΄ μ„œλ‘œ λ‹€λ₯Έ 츑면을 λΆ„λ¦¬ν•˜κΈ° μœ„ν•΄ νŒ¨ν„΄ μ–Έμ–΄λ₯Ό μ—°κ΅¬ν•˜κΈ° μ‹œμž‘ν–ˆμŠ΅λ‹ˆλ‹€. κ·Έ κ³„νšμ€ ν˜„μž¬μ˜ 단 ν•œ λͺ…μ˜ μž‘κ°€λ§Œμ΄ μ•„λ‹ˆλΌ ν•œ 그룹의 μž‘κ°€λ“€μ— μ˜ν•΄ κ°œμ„ λ˜μ–΄μ•Ό ν•œλ‹€λŠ” κ²ƒμ΄μ—ˆμŠ΅λ‹ˆλ‹€. λΆˆν–‰ν•˜κ²Œλ„, κ·Έ ν”„λ‘œμ νŠΈλŠ” 그의 μ‹œμ μ—μ„œ μ€‘λ‹¨λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

MVC Pattern Language(2003.08.20)

κ³Όκ±° 및 ν˜„μž¬

The Model-View-Controller (MVC ). Its Past and Present

  • JavaZONE, Oslo, 2003.
  • Handout with draft pattern language PDF

MVCλŠ” 1978년에 νŠΉμ • λ¬Έμ œμ— λŒ€ν•œ 섀계 μ†”λ£¨μ…˜μœΌλ‘œ κ΅¬μƒλ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ΅œμƒμœ„ λͺ©ν‘œλŠ” κ΄€λ ¨ 정보 곡간에 λŒ€ν•œ μ‚¬μš©μžμ˜ λ©˜νƒˆλͺ¨λΈμ„ μ§€μ›ν•˜κ³  μ‚¬μš©μžκ°€ 이 정보λ₯Ό κ²€μ‚¬ν•˜κ³  νŽΈμ§‘ν•  수 μžˆλ„λ‘ ν•˜λŠ” κ²ƒμ΄μ—ˆμŠ΅λ‹ˆλ‹€. 첫 번째 λΆ€λΆ„μ—μ„œλŠ” μ›λž˜ 문제λ₯Ό μ„€λͺ…ν•˜κ³  μ„ νƒν•œ μ†”λ£¨μ…˜μ— λŒ€ν•΄ μ„€λͺ…ν•©λ‹ˆλ‹€. 두 번째 λΆ€λΆ„μ—μ„œλŠ” μ›λž˜μ˜ 아이디어λ₯Ό μ„€λͺ…ν•˜κ³  ν˜„μž¬μ˜ λ‹Ήλ©΄ 과제λ₯Ό μ›λž˜ λͺ©ν‘œκΉŒμ§€ ν¬ν•¨ν•˜λ„λ‘ λ²”μœ„λ₯Ό ν™•μž₯ν•©λ‹ˆλ‹€. 그것은 λͺ¨λ‘ μš”μ•½λœ MVC νŒ¨ν„΄ μ–Έμ–΄λ‘œ μš”μ•½λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

THING-MODEL-VIEW-EDITOR an Example from a planning system.

  • Xerox PARC technical note May 1979 PDF

μ›λž˜ MVC λ¦¬ν¬νŠΈμž…λ‹ˆλ‹€. λ…Έλ₯΄μ›¨μ΄μ— μžˆλŠ” Aker Group의 μ•Όλ“œλŠ” μˆ˜λ…„κ°„ λ„€νŠΈμ›Œν¬ 기술과 μž„μ‹œ 방법을 μ‚¬μš©ν•˜μ—¬ κ³„νš 및 μ œμ–΄ν•΄ μ™”μŠ΅λ‹ˆλ‹€. μ‚¬μš©λœ μ‹œμŠ€ν…œμ€ λ§Œμ‘±μŠ€λŸ½μ§€ λͺ»ν•˜λ©°, μƒˆλ‘œμš΄ λͺ¨λΈλ§ 도ꡬ가 κ°œλ°œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이 λ„κ΅¬μ˜ κΈ°λ³Έ ꡬ성 μš”μ†ŒλŠ” κΈ°μ‘΄ λ„€νŠΈμ›Œν¬μ˜ ν™œλ™λ³΄λ‹€ 훨씬 더 κ°•λ ₯ν•©λ‹ˆλ‹€. 그것은 μ»΄ν¬λ„ŒνŠΈλΌκ³  뢈리며, 그것듀을 μ‘°μž‘ν•˜λŠ”λ° ν•„μš”ν•œ 자체 데이터와 μ•Œκ³ λ¦¬μ¦˜μ„ λͺ¨λ‘ 가지고 μžˆμŠ΅λ‹ˆλ‹€. 각 κ΅¬μ„±μš”μ†ŒλŠ” μ•Όλ“œμ˜ μ‹€μ œ ν™˜κ²½μ—μ„œ 식별 κ°€λŠ₯ν•œ 뢀뢄을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€. κ³„νš ν”„λ‘œμ„ΈμŠ€λŠ” μˆ˜μ‹ λœ 정보에 따라 정보λ₯Ό μ„œλ‘œ μ£Όκ³ λ°›λŠ” ꡬ성 μš”μ†Œλ‘œ μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€.

MODELS - VIEWS - CONTROLLERS

  • Xerox PARC technical note December 1979 PDF

PROKON/PLAN-A MODELLING TOOL FOR PROJECT PLANNING AND CONTROL.

  • Paper, IFIP Congress, Toronto, Canada, 1977
  • First published in the 1977 IFIP Proceedings.
  • Scanned by the author July 2003. PDF

λ…Έλ₯΄μ›¨μ΄μ— μžˆλŠ” Aker Group의 μ•Όλ“œλŠ” μˆ˜λ…„κ°„ λ„€νŠΈμ›Œν¬ 기술과 μž„μ‹œ 방법을 μ‚¬μš©ν•˜μ—¬ κ³„νš 및 μ œμ–΄ν•΄ μ™”μŠ΅λ‹ˆλ‹€. μ‚¬μš©ν•œ μ‹œμŠ€ν…œμ€ λ§Œμ‘±μŠ€λŸ½μ§€ λͺ»ν•˜λ©°, λ§ˆλ‹Ήμ„ μœ„ν•΄ μƒˆλ‘œμš΄ ν‘œμ‹ 도ꡬλ₯Ό κ³ μ•ˆν–ˆμŠ΅λ‹ˆλ‹€. 이 λ„κ΅¬μ˜ κΈ°λ³Έ ꡬ성 μš”μ†ŒλŠ” κΈ°μ‘΄ λ„€νŠΈμ›Œν¬μ˜ ν™œλ™λ³΄λ‹€ 훨씬 더 κ°•λ ₯ν•©λ‹ˆλ‹€.

그것은 μ»΄ν¬λ„ŒνŠΈλΌκ³  뢈리며, 그것듀을 μ‘°μž‘ν•˜λŠ”λ° ν•„μš”ν•œ 자체 데이터와 μ•Œκ³ λ¦¬μ¦˜μ„ λͺ¨λ‘ 가지고 μžˆμŠ΅λ‹ˆλ‹€. 각 κ΅¬μ„±μš”μ†ŒλŠ” μ•Όλ“œμ˜ μ‹€μ œ ν™˜κ²½μ—μ„œ 식별 κ°€λŠ₯ν•œ 뢀뢄을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€. κ³„νš ν”„λ‘œμ„ΈμŠ€λŠ” μˆ˜μ‹ λœ 정보에 따라 정보λ₯Ό μ„œλ‘œ μ£Όκ³ λ°›λŠ” ꡬ성 μš”μ†Œλ‘œ μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€. A/S λ²„κ²μŠ€ λ©”μΉ΄λ‹ˆμŠ€μΌ€ λ² λ₯΄μΌ€λ” 섀계뢀문 기획 및 관리λ₯Ό μœ„ν•œ μ‹€ν—˜μ  μ‹œμŠ€ν…œμ΄ κ°œλ°œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.

ADMINISTRATIVE CONTROL IN THE SHIPYARD.

  • Paper, ICCAS conference, Tokyo, 1973.
  • Scanned by the author July 2003 PDF

μ•Όλ“œμ˜ 쑰직은 μ‚¬μš©ν•˜λŠ” 정보 μ‹œμŠ€ν…œμ˜ 영ν–₯을 크게 받을 수 μžˆμŠ΅λ‹ˆλ‹€. μ‹œμŠ€ν…œ κ°œλ°œμ€ 쑰직의 μ›ν•˜λŠ” 진화에 μ’…μ†λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€. 데이터 ν”„λ‘œμ„ΈμŠ€ ν†΅μ‹ μ˜ 원칙은 κΈ°μ‘΄ 쑰직을 μ ν•©μ‹œν‚€κ³  지속적인 κ°œλ°œμ— μ μ‘ν•˜κΈ° μœ„ν•΄ μ‰½κ²Œ λͺ°λ”©λ˜λŠ” 정보 μ‹œμŠ€ν…œμ„ κ΅¬μΆ•ν•˜κΈ° μœ„ν•œ λ„κ΅¬λ‘œ λ„μž…λ©λ‹ˆλ‹€. 원리에 λŒ€ν•œ μ„€λͺ…κ³Ό 이λ₯Ό μ‹€μ œ μ„ λ°• νšŒμ‚¬μ—μ„œ μ‹œν—˜ν•˜κΈ° μœ„ν•΄ μ„€κ³„λœ μƒˆλ‘œμš΄ μ‹œμŠ€ν…œμ˜ κ°œμš”κ°€ μ œκ³΅λ©λ‹ˆλ‹€.


μ°Έκ³ λ¬Έμ„œ