[TIL] 비동기/동시성 프로그래밍

개구링·2021년 8월 17일
post-thumbnail

⏰ 하루 일정


2021/08/12

✅ 강의: 비동기/동시성 프로그래밍
✅ TIL 정리
✅ CS스터디 발표 준비




📑 TIL - 요약!


비동기를 만드는 Promise

  • Promise의 특징
    • 비교해보기
  • 값으로서의 Promise 활용
    • 일급 활용
    • Composition: 합성관점에서의 Promise와 모나드
    • Kleisli Composition(Kleisli Arrow) 관점에서의 Promise

비동기 제어

  • go(), pipe(), reduce()

Promise.then()의 중요한 규칙

  • Promise가 중첩되어있을 때도 단 한번의 then()을 통해 안에있는 결과를 꺼낼 수 있다.
  • 아무리 깊숙한 곳에 Promise를 위치시켜도 그 Promise 값을 꺼낼 수 있다.

지연 평가 + Promise

  • L.map(), nop, take()
  • reduce()에서 nop지원하기
  • 지연 평가 + Promise의 효율성

병렬성: 지연된 함수열을 병렬적으로 평가하기

  • C.reduce(), C.take() 구현

즉시 + 지연 + Promise + 병렬성 조합하기

  • 즉시 평가: 모두 엄격하게 평가 (map - filter - map)
  • 지연 평기: 평가를 최소화 (L.map - L.filter - L.map)
  • 병렬적 평가 전략

Node.js에서 SQL 병렬 평가로 얻은 효율

async / await

  • async와 await를 사용해 Promise의 값을 평가하기
  • Promise에 대한 이해가 필요한 이유



🐣 새롭게 알게된 것


  • 비동기를 만들어주는 Promise의 존재를 처음 알게 되었다.
  • 즉시 실행, 지연 평가, 병렬적 평가의 각 동작 방식과 그 차이점을 알게되었다.
  • 전략적으로 즉시, 지연, 병렬성을 조합하여 사용하는 것이 성능 향상에 도움이 된다.


    (사실 아직 확실하게 알게된 내용은 없다🥲)


🚀 추가학습 list




👀 하루 후기

Day9

' 나는 비.동.기를 읽을 줄만 알았구나 '

정말이지 모든 것이 새로웠다.
용어부터 비동기로 작성된 코드의 작동과정을 보는 것까지 익숙한 것이 없었다.
무엇을 몰랐고, 그래서 무엇을 알아봐야하는지 실제로 코드로 구현할 때는 어떻게 되는지를 알 수 있었다.
오늘의 난이도는 최상이었지만 일단은 비동기/동시성 프로그래밍이라는 중요한 패러다임에 발을 들여놓은 역사적인 날로 기록해두려고 한다💡


profile
기록을 취미로

0개의 댓글