책너두 (컴퓨터 밑바닥의 비밀) 8일차 콜백 함수

요약

  • 모든 것은 다음 요구에서 시작 된다.
  • 도넛을 만드는 라이브러리를 만드는 팀은 도넛을 만드는 라이브러리의 변경된 요구사항을 원하는 고객들의 니즈를 충족시켜야 함.
    • 이를 하나하나 요구사항에 맞게 조건문을 써가면서 해줄 수는 있지만 너무 많아지면 이거대로 문제가 됨.
  • 콜백이 필요한 이유
  • 콜백 함수를 이용하면 함수를 변수처럼 사용하여 요구사항이 달라도, 요구사항을 만족하는 함수 변수만 콜백함수로 넘겨주기만 하면 각 팀 별로 원하는 요구사항을 충족할 수 있음.
  • 비동기 콜백 → 새로운 프로그래밍 사고 방식
  • 비동기 콜백을 이용하면, 콜백 함수가 호출되더라도 호출 스레드는 콜백 함수 실행에 의존하지 않음.
  • 콜백 함수의 정의
  • 컴퓨터 과학에서 콜백 함수는 다른 코드에 매개변수로 전달되는 실행 가능한 코드임.
    • 특정 프로그래밍 언어와 관련된 기능이 아니므로 거의 모든 프로그래밍 언어에서 콜백 함수를 사용할 수 있음.
  • 콜백 함수와 주 프로그램은 같은 계층에 있지만, 우리는 콜백 함수를 작성할 책임만 있을 뿐이고 직접 호출하지는 않음.
  • 두 가지 콜백 유형
  • 동기 콜백과 비동기 콜백 두가지 유형에 대해 살펴봄.
    • 동기 콜백 (블로킹 롤백 이라고도 함)
      • 함수를 호출하고, 일정 시간이 지난 뒤 콜백 함수가 호출됨. 함수 호출의 흐름이 모두 끝나면 호출자가 다시 이어서 작업을 함.
    • 비동기 콜백
      • 함수를 호출하고 콜백함수가 호출되는 것과 별개로 함수 호출자는 그대로 작업을 실행함.
      • 이를 지연 콜백이라고 부르기도 함.
  • 비동기 콜백은 동기 콜백에 비해 다중 코어 리소스를 더 잘 활용 함.
  • 그러나 컴퓨터 과학에서 완전 무결한 기술은 없음.
    • 비동기 콜백 자체적으로 문제가 있음.
  • 비동기 콜백의 문제 : 콜백 지옥
  • 앞서 호출한 서비스의 결과를 계속해서 받아서 사용하는 형태라면 콜백 지옥에 빠질 수 있음.

댓글

Designed by JB FACTORY