Skip to content

Commit

Permalink
[이상조] 챕터 8: 자바스크립트 MV* 패턴 (#83)
Browse files Browse the repository at this point in the history
  • Loading branch information
sjoleee authored Nov 24, 2024
1 parent 6f21dd1 commit 6dcff3a
Showing 1 changed file with 47 additions and 0 deletions.
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의 상태를 직접 관리
- 재사용성과 테스트 용이성이 높음

0 comments on commit 6dcff3a

Please sign in to comment.