Skip to content

Latest commit

 

History

History
79 lines (56 loc) · 3.52 KB

File metadata and controls

79 lines (56 loc) · 3.52 KB

CHAPTER 14-15

  • CHAPTER 14 중첩된 데이터에 함수형 도구 사용하기
  • CHAPTER 15 타임라인 격리하기

공감가는 내용

  • 중첩되어 있는 객체의 값 변경 시 nestedUpdate()를 통해 불변성을 보장 (카피-온-라이트의 반복 과정)
  • 재귀가 깊어지는 경우, 각 카피-온-라이트를 별도의 함수(계산)으로 빼내는 과정 👍👍
  • 액션을 타임라인화 하는 과정에서, 언어마다 액션의 크기를 다르게 바라보는 방식
    • 자바스크립트는 이벤트루프를 통해 비동기 콜백을 제외하고 하나의 액션이라고 바라볼 수 있음
  • 반복문과 재귀는 서로 잘 표현할 수 있는 코드가 다르다. 반복문은 forward한 것을, 재귀는 revert한 것을 잘 표현한다.
  • 재귀 함수 호출로 중첩된 구조를 개선하는 부분
  • 반복문의 경우 스택을 직접 관리 해야 하지만, 재귀 호출의 경우 리턴 받는 곳에서 기존의 인잣값을 스택으로 유지 할 수 있다.
  • 비동기 콜백의 실행 순서를 타임라인 다이어그램을 통해 공유 자원을 확인하고 없애는 과정

공유하고 싶은 내용

얘기해보고 싶은 내용

  • ++와 +=는 하나의 연산자이지만, 복합적인 액션으로 되어 있다고 한다.(읽기, 계산, 쓰기) 이러한 과정이 JS에서도 문제가 될 수 있나??

    • 호준: 멀티스레드 환경인 java에서는 다른 스레드 간의 실행 순서가 얽힐 수 있기 때문에 문제가 생기지만 (synchronized 키워드 사용 시 동기적 처리 가능)

    • Thread Safety in Signleton Pattern

      Single ton

  • async&await 사용시 콜백 함수가 요청 큐가 아닌 작업큐에 쌓이는 가?

    Untitled

const takeTask1 = async () => {
  await task1();
  await task2();
  await task3();
};

const takeTask2 = async () => {
  await task1();
  await task2();
  await task3();
};

// 요청 큐
  • 콜백 함수, 비동기 이벤트를 처리하기 위한 테스트를 어디까지 진행해야 하는지 (도구?, 액션에 대한 테스트)
    • 단위 테스트로 커버 하기 어려운 경우 통합 테스트(E2E 테스트)를 통해 시나리오를 테스트

궁금한 내용

  • 메시지 패싱 프로세스란 뭘까? 엘릭서나 얼랭 같은 언어가 서로 다른 프로세스를 동시에 실행할 수 있는 스레드 모델을 지원한다고 한다. 403p
    • IPC 비용은 낮고, 메모리는 독립적으로 (공유하는 자원이 없음.)