프로그래밍/Javascript

javascript Promise

2018. 5. 11. 23:01

 요즘 H3X0R CTF 사이트를 구축하면서 우리 학교에 js를 잘하는 친구들에게 이것저것 물어보다가 a1paka 라는 친구가 Promise, async await 라는 것들을 소개시켜주었다. 


 이것들은 콜백 함수의 문제점들을 해결하기 위해서 등장하였다. 콜백함수라고 하면 자바스크립트에서 가장 중요한 개념 중 하나인 비동기식 프로그래밍을 설명하기 가장 좋은 예제가 아닐 수가 없다. 하지만, 콜백함수로 계속 프로그래밍하다간 이유를 모르는 오류들이 하나둘씩 생겨날 것이다. 


 콜백함수의 drawback은 바로 이것이다. 역설적이게도, 그것은 비동기식 프로그래밍을 구현한 것이라는 점이다. 비동기식 프로그래밍을 생각해보면, 순서에 구애 받지 않고 코드를 실행시키지 않는다는 것을 알 수 있다. 이 과정에서 순서가 맞지 않아서 발생하는 에러가 날 수도 있는 부분이다. 


 또 콜백함수 한두 개 정도는 해석하기 쉬운 편이지만, 콜백함수가 계속 중첩되는 상황이라면 상당히 난감할 수 밖에 없을 것임에 틀림없다. 이러한 상황을 구글링해보니까 "콜백지옥"이라고도 표현하기도 하더라ㅋㅋ 그래서 Promise와 async await 라는 개념이 필요해진 것이다. 


 자바스크립트에 대해 잘 모르는 사람입니다. 만약 글의 내용 중 틀린 개념이 있다면 댓글로 지적해주세요. 열심히 찾고 배우겠습니다.