본문 바로가기
Today I learned!/오늘 하루 배운 것, 기억할 것

220622

by sweesweet 2022. 6. 22.

JavaScript 

  1. Promise.all의 기능과 필요한 이유에 대해 설명
    • 여러 개의 비동기 테스크를 동시에 실행하고 마지막 테스크가 완료될 때 다 끝낸 프라미스들을 배열로 반환하기 때문에, 가장 실행시간이 긴 프라미스가 완료되기까지 걸리는 시간이 곧 Promise.all의 완료시간이 되기때문에 각각의 프라미스를 순차적으로 실행하는것보다 시간을 더 단축할 수 있음
    • 다만 배열중 하나의 프라미스가 오류가 발생할 경우, Promise.all은 거부됨. -> 오류가없는 프라미스의 호출은 계속 일어나지만 결과가 나오지 않음.
    • 비동기의 실행시간을 단축시킬수 있지만, 순서가 제어 되지 않기때문에 순서가 중요한 경우는 Promise.all을 사용하면 안됨.
  2. 순수함수란? 불변성과 사이드 이펙트와 연결하여 설명
    • 순수함수란 어떤 입력값에 대해 항상 동일한 출력값을 가짐(불변성). 부수효과는 없음
    • 외부상태에 영향을 주거나 변화를 주는 함수가 아니기때문에 부수적으로 발생할 수 있는 사이드 이펙트가 없음
      그렇기때문에 유지보수할 때 순수함수가 아닐때 보다 더욱 편리하게 할 수있음.
    • 순수함수가 아닌 예) 전역변수가 함수내에서 변경될 때, 파일을 불러올 때, 네트워크(fetching) Math.random 함수 등