동기와 비동기의 차이, 싱글 스레드인 자바스크립트에서 어떻게 비동기 처리를 하는지 알기위해 브라우저에서 어떻게 돌아가는지 구조를 공부하고, 여러 비동기 Web API들, 그리고 자바스크립트 비동기 객체 Promise에 관해서 공부했다. 그리고 비동기 작업을 활용한 테크닉인 디바운싱, 쓰로틀링에 관해서도 배웠고, fetch를 사용해서 JSON 파일을 조작하고 Web API 요청을 하는 등 사용을 해봤다.
Promise개념이 아직 잘 이해가 되지 않는다. 디바운싱이나 쓰로틀링과 같은 비동기 테크닉도 어렵긴 했지만 그 코드를 이해할 수는 있었다. 나중에 관련된 기능이 필요할때 충분히 검색해서 사용할 수 있을것 같은 느낌이긴 하다. 하지만 Promise는 처음 Closure를 배울때와 같은 느낌이 난다. 어렵고, 어느 상황에 사용해야될지 잘 모르겠다. 그냥 fetch 같은 것들은 언제 사용해야될지 알거같은데 Promise는 감이 잘 오지 않는다.
Promise가 어려워서, 이걸 언제 어느 상황에 유용하게 사용할 수 있는지 좀 더 예제 코드를 보고싶다. (쉬운 버전으로!!) 여러 비동기 web API들이 있는데 굳이 Promise를 사용하는 이유가 뭘까? 이유가 있어서 만든 객체일텐데 아직 왜 유용한지 와닿지가 않는다. 즉 왜 쓰는가? 이걸 알고싶다.
오늘 수업이 짧아서 좀 더 개인공부를 할 수 있어 다행이다. 오늘 짧았지만 Promise 개념이 어려워서, 따로 공부해야겠다. Promise를 왜 쓰는지, 언제 사용하는지, 어떻게 사용하면 좋은지 등 뿐만아니라 그 전에 개념도 확실히 이해해야겠다.
자바스크립트를 배울때마다 어려워서 놀랍다. 다른 언어를 배울때는 이정도까지 개념이 많진 않았던것 같은데… 아직 클로저나 프로미스 등과 같은 묵직한 개념이 많이 남았을까?
그래도 이 빠른 커리큘럼에서 저 모든것을 완전히 이해하고 넘어간다는 것은 불가능할 것이다. 내가 여기서 최선을 다해서 할 수 있는 것은 저러한 개념들을 최대한 이해하려고 노력하고, 저런게 있다는 것을 기억하고 기록을 해 둔다면, 나중에 정말 저런 개념이 필요할때 검색해서 사용할 수 있을 것이다. 그리고 지금 자바스크립트 구조를 미약하게나마 파악함으로써 디버그를 하는데도 도움이 될거 같다. 물론, 더 열심히 배운것을 습득하고 더 배우고 자바스크립트에 대한 deep dive가 필요할 것 같다.