-
Notifications
You must be signed in to change notification settings - Fork 2
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
[김동규] 챕터 17: 타임라인 조율하기 #76
Merged
The head ref may contain hidden characters: "\uCC55\uD13017/\uAE40\uB3D9\uADDC"
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
# 챕터 17: 타임라인 조율하기 | ||
|
||
#스터디-쏙쏙들어오는함수형코딩 | ||
|
||
## 이번 장에서 살펴볼 내용 | ||
|
||
- 타임라인을 조율하기 위한 동시성 기본형을 만들어봅니다. | ||
- 시간에 관한 중요한 관점인 순서와 반복을 함수형 개발자들이 어떻게 다루는지 확인합니다. | ||
|
||
## 왜 지금 타임라인이 더 빠를까요? | ||
|
||
한쪽은 두 응답을 순서대로 기다려야 하고, 한쪽은 응답을 병렬로 기다리고 있다. 기존 타임라인은 더 빨리 끝나긴하지만 문제가 있다. 이럴 경우 동시성 기본형을 만들어서 빠르고 항상 올바른 순서로 동작하게 만들 수 있다. | ||
|
||
## 모든 병렬 콜백 기다리기 | ||
|
||
목표는 동시에 도착하는 ajax 응답을 모두 기다렸다가 DOM업데이트를 진행하는 것 이다. 각 응답의 콜백은 서로 끝나기를 기다리는데 이것을 컷 이라고 부른다. | ||
컷을 만들면 좋은 점은 컷은 앞부분과 뒷부분이 서로 섞이지 않는다는 것 이다. 실행 가능한 순서를 줄이기 때문에 애플리케이션의 복잡성을 줄여준다. | ||
|
||
## 타임라인을 나누기 위한 동시성 기본형 | ||
|
||
여러 타임라인이 다른 시간에 종료되어도 서로 기다릴 수 있는 간단하고 재사용 가능한 기본형이 필요하다. 이런것은 결국 레이스 컨디션을 막을 수 있다. | ||
|
||
## 여러번 클릭하는 경우 분석 | ||
|
||
우리는 크게 3가지 복잡성을 다루고 있다. | ||
|
||
- 비동기 웹 요청 | ||
- 결과를 합쳐야 하는 두 개의 API응답 | ||
- 예측 불가능한 사용자 액션 | ||
1번과 3번은 아케텍쳐에 의해 생기는 복잡성이다. 애플리케이션을 만들 때 사용자 인터랙션을 적게 만들어 3번을 없앨 수 있다. | ||
ajax 요청을 사용하지 않으면 1번을 없앨 수 있다. | ||
|
||
``` | ||
실무에서 가능한 방법일까요... | ||
``` | ||
|
||
## 딱 한 번만 호출하는 기본형 | ||
|
||
첫번째로 done()을 부르면 콜백이 실행되는 동시성 기본형이 있다면 콜백을 한번만 부를 수 있다. 최초 한번만 효과를 발생하는 액션을 멱등원 이라고 합니다. | ||
|
||
## 암묵적 시간 모델 vs 명시적 시간 모델 | ||
|
||
간단한 프로그램에서는 암묵적 시간 모델은 좋다. 암묵적 시간 모델의 실행 방식이 애플리케이션에서 필요한 실행 방식과 딱 맞을 일은 거의 없습니다. 그래서 함수형 개발자는 필요한 실행 방식에 가깝게 새로운 시간 모델을 만듭니다. |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤔 😢