Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[이상조] 챕터 8: 자바스크립트 MV* 패턴 #83

Merged
merged 1 commit into from
Nov 24, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions 챕터_8/이상조.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# mvc

## 모델
데이터와 비즈니스 로직 담당
상품의 이름, 가격, 재고량 같은 데이터, 할인 가격을 계산하거나 재고를 관리하는 등 비즈니스 로직도 모델에 포함
모델은 뷰나 컨트롤러를 모름. 데이터와 그 데이터를 다루는 규칙
데이터가 변경되면 옵저버들에게 알려 뷰를 업데이트

##
사용자에게 보여지는 인터페이스
뷰는 수동성을 지님. 데이터를 직접 수정하거나 복잡한 로직 없고 컨트롤러로부터 받은 데이터를 정해진 방식대로 표시함

## 컨트롤러
뷰와 모델의 중재자

View → Controller: 사용자 입력 전달
Controller → Model: 데이터 업데이트 지시
Model: 데이터 변경 및 Observer들에게 알림
View: 알림을 받고 화면 자동 업데이트

# mvp

mvc와 비슷한 것 같기도 한데, 모델과 뷰의 관계가 조금 다른 듯
관찰자 패턴 대신 presenter가 뷰와 모델의 모든 통신을 중개하는 형태?

리액트만 써서 전혀 감이 안옴;;

# mvvm

뷰와 뷰모델이 자동으로 동기화되는 것이 핵심(데이터 바인딩)
리액트도 비슷한 원리


# 중간 계층의 역할

- Controller (MVC)
- 사용자 입력을 직접 받아 처리
- Model의 변경을 View에 반영하는 역할
- View와 Model 모두에 대해 알고 있음
- Presenter (MVP)
- View는 Presenter를 통해서만 Model과 상호작용
- View는 수동적이며 Presenter가 모든 UI 업데이트를 주도
- 테스트 용이성이 높음
- ViewModel (MVVM)
- 양방향 데이터 바인딩 지원
- View의 상태를 직접 관리
- 재사용성과 테스트 용이성이 높음
Loading