File tree Expand file tree Collapse file tree 2 files changed +60
-0
lines changed
Expand file tree Collapse file tree 2 files changed +60
-0
lines changed Original file line number Diff line number Diff line change 1+ # 자바스크립트 MV* 패턴
2+
3+ ## MVC 패턴
4+
5+ ### 모델
6+
7+ 도메인 관련 데이터를 표현. 모델이 변경되면 관찰자에게 알림을 보냄.
8+
9+ 모델의 데이터는 지속적으로 유지되길 원하기에 데이터베이스에 저장되곤 한다.
10+
11+ ### 뷰
12+
13+ 모델의 현재 상태 표현. 관찰자 패턴을 통해 모델이 변경되었음을 알아차림. 화면에 보이는 부분만 담당.
14+
15+ ### 컨트롤러
16+
17+ 키보드 입력이나 클릭 같은 사용자와의 상호작용 처리.
18+
19+ 모델을 업데이트하는 작업은 컨트롤러가 처리한다.
20+
21+ ### MVC를 사용하는 이유
22+
23+ 유지보수 용이
24+
25+ > 하지만 MVC는 양방향 데이터 흐름이라 관리가 어려워질 수 있다고 하네요. vue도 양방향이라서 조금 헷갈릴 떄가 있었던 것이 기억 났어요.
26+
27+ ### MVP
28+
29+ 컨트롤러 대신 프레젠터
30+
31+ MVC에서 뷰는 모델을 구독하고 있었다. 하지만 MVP에서는 뷰가 모델을 구독하지 않는다. 대신 프레젠터가 모델로부터 받은 데이터를 가공하여 뷰에게 전달한다.
32+
33+ 뷰와 모델 간의 결합도가 낮아진다.
34+
35+ ### MVVM
36+
37+ > MVP랑 비슷해보이는디... 차이를 잘 모르겠네요..!
38+
39+ ### 최신 MV* 패턴
40+
41+ 리액트나 Vue는 애플리케이션의 뷰 혹은 프레젠테이션 계층을 담당한다.
Original file line number Diff line number Diff line change 1+ # 비동기 프로그래밍 패턴
2+
3+ 비동기 코드는 오래 실행되는 작업을 수행할 때 유용함. 네트워크 요청, 데이터베이스 읽기/쓰기, 기타 I/O 작업
4+
5+ 이 기능을 활용하면 비동기 코드를 동기 코드처럼 쓸 수 있어 코드 가독성과 이해도가 높아짐.
6+
7+ ### 배경
8+
9+ 콜백 쓰면 콜백 지옥 벌어짐.
10+
11+ ### 프로미스 경쟁
12+
13+ > Promise.race를 회사에서 써보신 분..?
14+
15+ ### 비동기 반복
16+
17+ for-await-of 반복문을 사용해 순회 가능
18+
19+ > for-await-of 대신 forEach 써서 순서 보장이 안되는 낭패를 봤었네요.
You can’t perform that action at this time.
0 commit comments