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* 패턴, 챕터 9: 비동기 프로그래밍 패턴 #84

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
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
41 changes: 41 additions & 0 deletions 챕터_8/신승준.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# 자바스크립트 MV* 패턴

## MVC 패턴

### 모델

도메인 관련 데이터를 표현. 모델이 변경되면 관찰자에게 알림을 보냄.

모델의 데이터는 지속적으로 유지되길 원하기에 데이터베이스에 저장되곤 한다.

### 뷰

모델의 현재 상태 표현. 관찰자 패턴을 통해 모델이 변경되었음을 알아차림. 화면에 보이는 부분만 담당.

### 컨트롤러

키보드 입력이나 클릭 같은 사용자와의 상호작용 처리.

모델을 업데이트하는 작업은 컨트롤러가 처리한다.

### MVC를 사용하는 이유

유지보수 용이

> 하지만 MVC는 양방향 데이터 흐름이라 관리가 어려워질 수 있다고 하네요. vue도 양방향이라서 조금 헷갈릴 떄가 있었던 것이 기억 났어요.

### MVP

컨트롤러 대신 프레젠터

MVC에서 뷰는 모델을 구독하고 있었다. 하지만 MVP에서는 뷰가 모델을 구독하지 않는다. 대신 프레젠터가 모델로부터 받은 데이터를 가공하여 뷰에게 전달한다.

뷰와 모델 간의 결합도가 낮아진다.

### MVVM

> MVP랑 비슷해보이는디... 차이를 잘 모르겠네요..!

### 최신 MV* 패턴

리액트나 Vue는 애플리케이션의 뷰 혹은 프레젠테이션 계층을 담당한다.
19 changes: 19 additions & 0 deletions 챕터_9/신승준.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# 비동기 프로그래밍 패턴

비동기 코드는 오래 실행되는 작업을 수행할 때 유용함. 네트워크 요청, 데이터베이스 읽기/쓰기, 기타 I/O 작업

이 기능을 활용하면 비동기 코드를 동기 코드처럼 쓸 수 있어 코드 가독성과 이해도가 높아짐.

### 배경

콜백 쓰면 콜백 지옥 벌어짐.

### 프로미스 경쟁

> Promise.race를 회사에서 써보신 분..?

### 비동기 반복

for-await-of 반복문을 사용해 순회 가능

> for-await-of 대신 forEach 써서 순서 보장이 안되는 낭패를 봤었네요.
Loading