[javascript] Callback을 통한 비동기 처리

2023. 3. 21. 23:00· HTML-CSS-JavaScript/JavaScript
목차
  1. Callback

저번 포스트에서 공부하면서 비동기의 문제점에 대해 알게되었다. 

비동기적으로 실행하는데 실행할 때마다 실행되는 순서가 달랐다. 이렇듯 예측 불가능한 코드는 작성하고자 하는 의도와 다르게 동작할 수 있다. 따라서 이를 제어하기 위한 여러 방법중 Callback 함수를 통해 순서를 제어하는 방법에 대해 알아볼것이다 ! 

 

사실 비동기 코드를 작성해 사용해본적이 없었다. 그래서 처음 공부할 때 비동기적 코드는 실행 순서가 멋대로인데  다시 실행순서를 제어해줄거면 동기적 코드를 사용하면 되지 않나 ? 라는 생각을 했던 거같다. 그런데 어쨌든 !! 5개의 일이 있다고 가정하면 1-2-3-4-5 순으로 일이 진행되어야 한다고 가정할 때 동기적인 것은 1이 끝나고 2 ..3 ..4 ..5 이런식으로 진행되는데 비동기는 1,2,3,4,5 가 동시에 실행되고 수행을 마치는 순서만 1,2,3,4,5 로 해주는 것이니 비동기 코드가 더 유용하겠구나 느꼈다. 
ㅎㅎ 약간 바보같은 생각을 했던 거같다 ! 

 

Callback

const printString = (string, callback) => {
  setTimeout(function () {
    console.log(string);
    callback();
  }, Math.floor(Math.random() * 100) + 1);
};

const printAll = () => {
  printString('A', () => {
    printString('B', () => {
      printString('C', () => {});
    });
  });
};

printAll();

위와 같이 작성하게 된다면 printAll 이 실행되었을 때 printString ('A' , printString('B' , (printString('C', ... ) 로 콜백함수가 실행되면서 A 가 찍힌후에 B가 찍히고 C 가 찍히게 된다. 

콘솔창을 통해 A-B-C 순으로 결과가 나옵니다.

 

하지만 이렇게 비동기의 순서를 정해주기 위해 콜백 함수를 많이 불러 Callback Hell 이 발생한다는 단점이 생긴다. 

위의 코드는 ABC 만 있지만 만약 A 부터 Z 까지 찍는 코드를 생각해보면 ... 이해가 바로 갈 것이다. 

 

따라서 이런 콜백 헬을 방지하기 위해 나온 것이 Promise 이다.  Promise 에 대해선 다룰 내용이 많으므로 다음 포스트에서 쓰도록 하겠다 !! 

 

 

'HTML-CSS-JavaScript > JavaScript' 카테고리의 다른 글

[자료구조/알고리즘] javascript로 재귀 풀기  (0) 2023.04.11
[javascript] Promise,Async/Await 를 통한 비동기 처리  (0) 2023.03.22
[javascript] 비동기 - 타이머 API  (0) 2023.03.21
[javascript] 동기-비동기 용어 설명  (0) 2023.03.17
[javascript] DOM에 대하여  (0) 2023.03.08
  1. Callback
'HTML-CSS-JavaScript/JavaScript' 카테고리의 다른 글
  • [자료구조/알고리즘] javascript로 재귀 풀기
  • [javascript] Promise,Async/Await 를 통한 비동기 처리
  • [javascript] 비동기 - 타이머 API
  • [javascript] 동기-비동기 용어 설명
배트리버
배트리버
🐾 사람 좋아, 개발 좋아 🐾 궁금한 건 끝까지 파고들고, 배운 건 즐겁게 나누는 개발자의 놀이터
배트리버
리트리버의 개발 놀이터
배트리버
전체
오늘
어제
  • 분류 전체보기 N
    • 네트워크
    • 기초 셋팅
    • 오늘의 일기
    • 리액트
    • 코테 준비
      • 프로그래머스
      • 백준
    • 코드스테이츠44기 프론트엔드
    • HTML-CSS-JavaScript
      • HTML
      • CSS
      • JavaScript
    • 자료구조&알고리즘
    • TypeScript
    • Git
    • Tip
    • 프로젝트
    • Next.js N
    • 트러블슈팅

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • KPT 회고
  • 네트워크
  • 코드스테이츠 회고록
  • 리액트
  • 코드스테이츠 블로깅
  • BFS
  • 프로그래머스
  • 코드스테이츠
  • 오블완
  • 코드스테이츠 44기
  • 탄스택쿼리
  • 자바스크립트 비동기
  • 타입스크립트문법
  • 리액트쿼리
  • 프로젝트 회고
  • 코드스테이츠 44기 프론트엔드
  • 리액트 상태관리
  • 자바스크립트
  • 코드스테이츠 프론트엔드
  • 티스토리챌린지

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
배트리버
[javascript] Callback을 통한 비동기 처리
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.