- Published on
2024.03.19
[함수형 코딩] - 16. 타임라인 사이에 자원 공유하기
버그가 생기는 이유
버그는 자원을 공유하기 때문에 생긴다. 두 액션이 자원을 공유하지 않는다면 실행 순서를 신경 쓸 필요가 없지만, 자원을 공유하기 때문에 버그가 발생한다.
공유하면 문제가 될 수 있는 것
- 전역변수
- DOM
- 지역변수를 공유
- 데이터베이스
- API 호출
예시로 처음 호출한 DOM 업데이트가 나중에 실행되면 두 번째 결과를 덮어쓰게 된다.
업데이트되는 순서를 보장해야 하는데, 타임라인의 순서를 보장할 방법은 없으므로 업데이트 순서를 제한해야 한다.
큐
를 사용
자바스크립트에서 큐 만들기
자바스크립트는 큐 자료 구조가 없기 때문에 만들어야 한다.
동시성 기본형: 자원을 안전하게 공유할 수 있는 재사용 가능한 코드 - 타임라인에서는 큐를 의미
동시성이나 타임라인에 대한 내용이지만, 챕터 대부분의 예제와 코드는 큐의 구현이라고 봐도 될 정도로 큐를 만들어 작업을 관리하는 데에 많은 분량이 할애되어 있었다. 예상 못한 큐의 내용이었지만, 큐를 구현해가면서 단계별로 하나씩 마주하는 상황들을 보고 그 다음 단계의 코드를 구현해가며 설명해주어 큐에 대해 이해하기 좋았다.