본문 바로가기
TIL ( Today I Learned )

210201_TIL

by outwater 2021. 2. 2.

Start Think: 짧은 휴식 끝 다시 2월 시작 ^.^ 
바쁘지만 알찬 또 한 달이 되기를~

🎄오늘 한 일

✔️ 1. JavaScript 에서 비동기처리를 위한 3가지 방법 학습

  • JS에서 비동기처리를 위해 전통적으로 사용되었던 콜백패턴과 콜백 헬로 인한 가독성 저하를 개선하기 위해 ES6에서 도입된 Promise를 통한 비동기처리법, promise를 좀 더 간편하게 구현할 수 있는 async & await 을 사용한 최신방법까지 학습하였다. 코드를 치는 것보다 Promise의 개념을 정확히 이해하는 것이 상당히 어려웠다.
    내일도 해당 부분 학습을 진행할 예정이여서 조금 더 익숙해지고, 자주 써보며 학습을 진행해야겠다. 

✔️ 2. Toy Coding Problem5

  • 하루에 한 문제씩 풀고 있는 Toy 문제5 번을 풀어보았다.
    2 x n 의 타일에 2 x 1의 타일로 채울 수 있는 경우의 수를 구하는 문제였는데, 해당 문제가 피보나치 수열과 같은 규칙을 가지고 있음을 캐치하여 문제를 해결하였다.
    피보나치 수열의 구현에서 시간복잡도를 O(N) 으로 해결할 수 있는 메모라이징 방식을 이용하여 해결해보았다.

 

🎄기억할 것

✔️1. 동기(Synchronous) 와 비동기(Asynchronous)의 차이

  • 동기는 하나의 요청이 주어졌을 때, 그 요청이 응답을 받을 때 까지 다른 작업을 하지 않고 기다린다.
  • 비동기는 요청에 대한 응답이 도착할 때 까지, 또다른 요청을 받고 작업을 계속해서 진행한다.

✔️ 2.  callback함수를 통한 비동기에서의 실행순서 제어 

  • 콜백함수안에 콜백함수를 다음 실행할 함수와 함께 넣어주어 실행순서를 제어 할 수 있다. 
  • 하지만 callback이 많아진다면 코드관리가 매우 어려워지며, 코드의 가독성도 상당히 떨어지게 된다.(일명 콜백헬)
    + 에러 catch 가 되지 않아 에러 핸들링이 어렵다.
  • 따라서 이를 Promise 객체를 사용하여 해결하고자 한다.

✔️ 3. Promise 객체를 통한 비동기에서의 실행순서 제어

  • Promise 객체는 new 키워드를 사용해 만들고, 매개변수로 ( resolve, reject ) 함수를 받아 각각 비동기 작업의 성공시 결과 값을 반환하거나, 실패 시 오류의 원인을 반환할 때 호출하도록 한다. 
  • promise로 구현된 비동기함수는 반드시 Promise 객체를 리턴해야하며, 이때 처리결과(resolve or reject)에 따라 후속 처리 메소드( then, catch)를 이용하여 후속작업을 진행할 수 있다.

🎄더 공부할 것

✔️1. 프로미스의 체이닝과 프로미스의 정적메소드( Promise.resolve, Promise.reject, Promise,all) 등에 대해서 더 알아보기


 : )  

'TIL ( Today I Learned )' 카테고리의 다른 글

210203_TIL  (0) 2021.02.04
210202_TIL  (0) 2021.02.03
210127_TIL  (0) 2021.01.28
210126_TIL  (0) 2021.01.26
210121_TIL  (0) 2021.01.22

댓글