Callback / Promise

majungha·2023년 3월 22일
1

메모

목록 보기
14/57

오늘의 공부 👍

오늘은 230306_TIL에서 언급했던 callback과 promise에 대해 자세히 알아보겠습니다.

📝 callback과 promise


  • JavaScript는 싱글 스레드이기 때문에 한번에 하나의 동작만 수행이 가능합니다.
  • 이를 동기적 실행방식이라고 합니다.
  • 여기서 동기란 하나의 작업이 종료될 때까지 다음 동작은 대기하는 실행방식입니다.
  • 예를 들어 카페에서 주문을 처리할 때
    1. 손님이 주문합니다.
    2. 앞선 손님의 주문에 대한 응답이 완료될 때까지 다음 손님은 아무런 동작을 할 수 없습니다.
    3. 앞선 손님이 주문에 대한 응답을 받았다면 다음 손님이 주문할 수 있습니다.
    • 앞선 작업이 프로세스를 점유하고 있어서 다음 작업이 시작되지 않는 것입니다.

📝 callback


  • 비동기 작업을 수행하기 위해 가장 먼저 나온 해결책은 callback 함수를 활용하는 것
  • callback 함수가 여러번 중첩되는 경우 가독성에서 심각한 손해를 보게 되는
    콜백 지옥(callback hell)을 만나게 되는 문제가 있음

📝 promise


  • 이러한 문제점을 해결하기 위해 Promise 의 개념이 나타남

  • 현재는 얻을 수 없지만 추후 작업이 완료되면 받아올 수 있는 데이터에 대한 접근 수단의 역할을 해줌

  • Promise 객체를 new Promise()와 같은 코드를 입력하여 직접 생성해 줄 수 있음

  • 대기(Pending) - 비동기 처리가 아직 완료되지 않은 상태

  • 이행(Fulfilled) - 비동기 처리가 완료되어 결과를 반환한 상태

  • 실패(Rejected) - 비동기 처리가 실패하였거나 오류가 발생한 상태

  • 위 코드는 promiseTest라는 함수를 실행 했을 때, 그 반환 값으로 Promise 객체를 돌려받는 코드


출처 및 참고
코드캠프

profile
개발자 블로그 / 항상 겸손한 자세로 배우면서 성장하자 할 수 있다!

0개의 댓글