비동기 처리

    동기/비동기(Sync/Async), Blocking/Non-Blocking

    시작하기에 앞서, 간단히 기준이 되는 용어를 보겠습니다. Blocking/Non-Blocking : '제어권'을 두고 구분 동기/비동기 : 결과값을 기다리느냐로 구분 1. Blocking VS Non-Blocking : 제어의 관점 요청한 처리되어야하는 작업이 전체 작업 흐름을 막는지 안 막는지? 🚩 Blocking 작업에 대한 제어권이 없다. 즉, 다른 주체에게 작업을 요청하면 결과가 돌아올 때까지 다른 작업을 하지않고 기다려야 한다. A함수가 B함수를 호출하면, 제어권을 B함수에게 넘긴다. B함수가 자신의 함수를 실행하고, A함수는 제어권이 없기 때문에 함수 실행을 잠시 멈춘다. B함수의 실행이 끝나면 자신의 제어권을 호출한 A에게 돌려준다. 🚩 Non-Blocking 작업에 대한 제어권을 그대로 가..

    [개념] 비동기 처리를 위한 문법 (ES6)

    비동기 처리를 위한 문법의 "역사" 이런 말이 맞을 지 모르겠지만 거창하게 역사 라는 말을 붙여보았다..ㅋㅋ비동기 처리를 위해 ES6에서 여러 문법이 추가되는 과정을 공부하고 나니 괜히 하나의 "역사"를 본 것 같아서ㅎㅎ Promises ES6의 새로운 문법 javascript에서 비동기를 처리할 때 주로 사용되는 문법 콜백 지옥(callback hell, 프로미스가 나오기 전에는 콜백을 사용해서 비동기를 처리하였는데, 콜백이 점점 쌓이면서 깊이가 점점 깊어지는 문제)을 해결하였다!! 용어 정리 비동기 처리 동기와 비동기에 대해 먼저 알아야 한다. 동기 (synchronus : 동시에 일어나는) 동시에 일어난다. 요청과 동시에 응답이 주어져야한다. 즉, 요청을 보냈을 때 응답을 받아야지만 다음 동작이 이..