1. 비동기 작업의 이해
웹 애플리케이션을 만들다 보면 처리할 때 시간이 걸리는 작업이 있다.
예를 들어 웹 애플리케이션에서 서버 쪽 데이터가 필요할 때 Ajax 기법을 사용하여 서버의 API를 데이터를 수신한다.
이렇게 서버에 API를 사용해야 할 때는 네트워크 송수신 과정에서 시간이 걸리기 떄문에 작업이 즉시 처리되는 것이 아니라, 응답을 받을 때까지 기다렸다가 전달받은 응답 데이터를 처리!!이과정에서 해당 작업을 비동기적으로 처리한다.
작업을 동기적으로 처리한다면 요청이 끝날 때까지 기다리는 동안 중지 상태 가 되기 때문에 다른작업을 할 수 없다.
하지만 비동기적으로 처리하면 웹 애플리케이션이 멈추지 않기 때문에 동시에 여러 가지 요청을 처리할 수도 있고, 기다리는 과정에 다른 함수를 호출할 수 있다.
콜백함수
실행과정
파라미터 값이 주어지면 1초 뒤에 10을 더해서 반환하는 함수가 있다고 가정하자
값은
1초에 걸려서 10, 20, 30, 40과 같은 형태로 여러 번 순차적으로 치러하고싶으면 콜백함수로 구현 할 수 있다.
결과값 또한 10, 20 , 30, 40 을 1초에 걸쳐서 여러번 순차적으로 처리가 된다.
여기서 중요한건 작업결과가 순서대로 출력되는 것이 아닌작업 시간 이후 increase()가 호출되고 기다리지 않고 "이건 비동기식"이 호출이된다.
그 후 1초씩 뒤에 숫자가 되는 것을 볼 수 있다.
이러한 형태의 코드를 '콜백 지옥이라고 한다.'