java] 콜백 메서드??

3년동안 학교에서 프로그래밍 수업을 들으며 혹은 혼자 공부하면서 콜백 메서드? 라는 것을 익히 들어왔다. 하지만 이 콜백메서드에 대한 지식은 내 머리안에서 아주 얕았고 항상 모호하게 자리잡고 있었다.
그러다 firbase를 공부하며 프로그래밍을 하는 중, database를 다루다 콜백메서드라는 단어가 다시 튀어올랐다. 이 것을 사용해야하기에 뭔가 내 머릿속에서 명확히 해야 할 필요가 있었고 이해하기위해 공부를 해야했다.

알아보기 전 내가 생각하고 있던 콜백메서드의 정의는 무엇이었을까.
콜백.. 다시 호출한다.. 피호출자가 다시 호출자를 call한다..
얼추 맞는 말이긴하지만 이해하기는 힘들다.

어떤 개념에 대해서 다시, 아니면 새로 이해하려고 할때 뭔가 큰 과정을 머리 속에 그리면서 이해하면 더 잘 이해되는 것 같은 느낌이 든다.

lee라는 애가 wook에게 어떠한 일을 시킨 후 그 일이 다 처리된 후엔 다시 lee에게 알려 준다. 그동안 lee는 wook이 다 끝날 때 까지 기다리지 않고 다른 일을 한다.

비동식 방식으로 처리되기 때문에 node.js에서 자주 쓰여진 다고 한다.
프로그래밍에 있어 전반적으로 중요한 내용임은 확실하다.

직접 사용된 간단한 예제를 보자면

 interface를 이용하여 callback객체를 생성,
호출된메서드에서 할 일을 다 마친후에
이 콜백메서드가 다시 호출된다.

 이 DAO객체의 getUser가 호출될 메서드이며, 이 메서드안의 리스너가 할 일을 마치면 필드에 정의한 콜백객체의 메서드를 호출하게 한다.



 Main객체에서
 콜백객체 생성과 메서드가 구현되며 DAO객체에
적용하게된다. 그리고 원래 목적의 getUser메서드가를 호출한다. 











즉, main은 dao의 메서드를 호출 -> 호출된 dao의 메서드안에는 callback함수가 포함된다.
-> 지정된 일을 마친 후 callback함수를 호출-> 해당 callback메서드가 구현된 main으로 다시 돌아와 해당 작업을 실시한다. 

뭔가 그림을 그려 보는것이 이해하기 쉬울 것 같다.
머릿속의 내용들을 글로 옮긴다는 건 정말 어려운 작업인 것 같다.

댓글

가장 많이 본 글