컴퓨터언어/Node.js

[http] Callback

bbanpro 2020. 5. 18. 17:56
728x90
반응형

콜백함수란 어떤 함수 자체가 하나의 값으로서 상위 함수의 인자가 되는 것이다.

여기서 상위 함수를 고차함수라고 하며, 고차함수가 먼저 실행된 뒤에 그 안에 있는 콜백함수가 실행된다.

 

http 통신에서 콜백함수가 많이 쓰이는 이유는,

통신분야 특성상 여러 대의 컴퓨터가 정보를 서로 주고받는 과정에서는 시간이 소요되고 에러의 위험이 있기 때문에, 짜여진 코드처럼 순서대로 착착 맞아떨어질 수가 없다.

만약 그냥 초보적인 수준으로 function(){}만을 사용한다면 통신을 담당하는 코드가 서버에서 자료를 온전히 불러오기도 전에 다음 코드로 진행하기 때문에 나의 웹서비스는 에러만을 출력할 것이다.

하지만 콜백을 사용하면 일반적으로 화면을 렌더링하는 등 즉각 필요한 코드들은 Stack에서 모두 실행시키고 빼버린 뒤,

통신처럼 좀 시간이 필요한 코드들은 따로 내부 Queue에서 여유롭게 진행할 수 있는 것이다.

또한 콜백을 사용하면 에러가 발생한 경우와 통신이 성공한 경우를 서로 다르게 분기하여 로직을 정리할 수 있다.

728x90
반응형