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 |
댓글