본문 바로가기
728x90
반응형

Callback3

Callback에 대한 의문과 Promise 와 Async/Await 를 쓰는 이유 (feat.비동기vs동기) 콜백이 무엇이고, 콜백을 사용해야하는 이유가 무엇인가? 콜백함수는 한마디로 비동기 작업을 처리할 때 순서를 보장해주는 함수이다. 자바스크립트에서 비동기 작업을 해야할 때가 생긴다. 그럴 때 제일 중요한 것은 순서이다. 예를 들어 토스트에 잼을 발라서 먹으려고 하는데 집에 잼은 있는데 빵이 없다. 그래서 이상적인 순서가 아래와 같다면 마트에서 빵을 사고 -> 빵을 굽고 -> 빵에 잼을 바르기 위 순서가 지켜져야지만 원하는 결과를 얻을 수 있을 것이다. 컴파일러는 기본적으로 위에서 아래로 코드를 읽고 컴파일하지만 비동기 작업은 순서가 보장되지 않기 때문이다. 그러면 그 순서를 보장해줘야 하는데 그때 쓰는게 콜백이다. 위 내용을 콜백함수를 쓰는 코드로 바꾸면 아래와 같을 것이다. function getBrea.. 2024. 1. 30.
[JavaScript] 콜백함수 (CallBack)가 도대체 뭐길래? 앞서 자바스크립트의 작동원리 및 비동기와 동기를 설명하면서 어떤 이유에서인지 실행하는데 시간이 걸리는 코드가 생기고 그래서 그걸 잠시 죽이는 비동기화를 진행하게 되면 아래의 코드가 먼저 실행이 되어서 순서가 꼬일 수 있다고 했다. 이제 그 순서를 꼬이지 않게 하기 위해 프로그래머가 임의로 아래의 코드 또한 비동기화시켜서 임시저장소로 보낼 수 있다고 했다. 그러면 어떻게 그게 가능할까? 바로 오늘 설명할 콜백함수를 이용하면 가능하다. Call Back. 문자 그대로 돌아오라고 부르는 것이다. 집나간집 나간 아들을 향해 "집으로 돌아와~!!!" 해서 집 나간 아들이 집에 다시 돌아온다면 그것이야 말로 콜백이다. 뜬금없이 무슨말인가? 비동기화가 진행되게 되면 코드가 임시저장소로 보내지고 그 코드는 거기서 컴퓨.. 2022. 2. 27.
[JavaScript] 코드 인터프리터 작동 원리 및 순서 ( 비동기 vs 동기) 기본적으로 컴퓨터는, 그리고 인터프리터는 작성된 코드를 위에서부터 읽고 순차적으로 코드를 실행시킨다. 즉 위에서 아래로 코드 실행 순서가 정해진다는 뜻이다. 하지만! 특정 코드에서 결과를 얻기까지 오랜 시간이 걸리면 어떻게 될까? 예를 들어 1분이 걸린다고 가정해보자. 그러면 아래 줄의 코드는 전혀 실행되지 않는 병목 현상이 생기게 되는 것! 언제 그럴까? 1. 네트워크 통신 2. 복잡한 계산을 실행하는 코드 3. 타이머를 정해두고 그 시간이 만료되면 코드를 실행하는 함수를 쓴 경우 (예: setTimeout(), setInterval() ) 가 대표적인 케이스이다. 위와 같은 상황을 방지하고 빨리빨리 실행할 수 있는 것부터 실행하기 위해서 자바스크립트는 비.동.기 방식을 지원한다. 비동기 방식이란? 어.. 2022. 2. 18.
728x90
반응형