리그캣의 개발놀이터

노드js[Node.js] 콜백(callback) 함수란? 본문

개발 공부/Node.js(웹)

노드js[Node.js] 콜백(callback) 함수란?

리그캣 2018. 1. 14. 18:07


마음 하나만은 열정적인 리그캣 입니다!!


오늘은 콜백 함수에 대해서 설명해드릴게요가 아니라 같이 배워 볼까요??


저도 오늘 처음 들어욬ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ


출처1(click)


출처2(click)


콜백 함수란??


노드를 이용한 서버 사이드 프로그래밍이 증가하면서 callback 함수에 대한 이해도를 높일 필요가 있어졌는데요


일반적인 개발에는 개발자가 시스템이 필요한 시점에 어떠한 특정 기능을 호출하는 방식으로 많이 사용하는데요


즉 , API를 제공받아 이 API를 시점에 맞게 호출하는 것이지요. 이것이 일반적인 프로그래밍 개발 방법입니다


하지만 이러한 함수의 호출을 시스템에 맞겨야 하는 상황이 발생하기도 합니다.


사용자가 호출 시점을 결정하는 것이 아닌 시스템 입장에서 필요한 타이밍에 호출이 필요한 상황인 것이죠.


예를 들면,


특정 이벤트가 발생할 때 이를 사용자에게 알려준다고 가정을 해봅니다.


특정 이벤트가 발생하기 전에는 프로그램 입장에서 이벤트의 정보를 사용자에게 알려줄 수도 없습니다.


그렇다고 개발자가 개발시에 사용자에게 알려줄 이벤트가 언제 발생할지도 모르죠.


이런 경우 이벤트 발생시 데이터를 전달하게 끔 Callback을 이용하여 구현해 놓은겁니다.


이 함수는 다른 함수의 매개변수로 호출될 함수를 전달하고, 특정 이벤트가 발생하고 나서 매개변수로 호출된 함수가 다시 호출 되는것을 의미합니다.


일반적인 프로그래밍에서 함수를 호출하는 방식은 호출자가 피호출자를 호출하게 되고 , 콜백함수의 경우 피호출자가 호출자를 호출하게 되는거죠.


라고 '구스의 엔지니어 세상' 에 나와있네요!!


그런데.. 나 이렇게 갖다 써도 되는건가.. 출처는 밝히긴 했지만 뭔가 방명록이라도 다음에 써야겟어요 ㅠㅠ 문제 될시 바로 삭제 하겠습니다!


위에 말을 좀더 편하게 말해볼까요??


음... 어... 음... 엄.... 저처럼 한번 써보세요 그냥ㅋㅋㅋㅋ


흠.. 비동기 프로그래밍이 뭔지 아시죠?? 예를 들어, 특정 함수를 실행하고 결과값이 반환될 때까지 기다리지 않고


그 다음 코드를 실행하려면 비동기 방식으로 만들어야 해요!!


즉, 특정 함수를 실행하는 데 시간이 걸릴 수 있기 때문에 바로 다음 코드를 실행해야 하는데요


그러고 원래 특정 함수의 연산이 끝났을때 파라미터로 전달한 함수가 실행될 수 있다면 


그 시점에서 결과를 바로 처리할 수 있으므로 효율적인 프로그램을 만들 수 있는데요


이때 파라미터로 전달되는 함수를 콜백함수(callback) 함수라고 합니다!!


@@,.,.

포기할까.. 나 


한마디로 말해서 콜백함수는 함수가 실행되는 중간에 호출되어 상태 정보를 전달하거나 결과 값을 처리하는데 사용됩니다!!


Comments