async/await 내가 쉽고 재미있게 알려줄게!🤚🏻

2024. 10. 29. 16:23·프로젝트/GitHub Profile Viewer
728x90

async/await는 자바스크립트에서 비동기 작업(돟시에 여러 일 가능)을 훨씬 쉽게 처리할 수 있게 도와주는 도구입니다. Promise를 사용하지만, 마치 동기적으로 코드를 작성하는 것처럼 보이게 만들어주죠. 이 덕분에 코드가 더 깔끔하고 이해하기 쉬워집니다!

AI로 생성해본 그림


async와 await

  • async 함수는 항상 Promise를 반환합니다. 이 함수 내부에서 비동기 처리를 할 수 있어요. => async는 비동기
  • await은 Promise가 완료될 때까지 기다렸다가 그 값을 반환합니다. 단, await은 async 함수 안에서만 사용할 수 있어요. => await는 동기

왜 async/await이 필요한가요? 🤯

비동기 작업을 처리할 때, 콜백 함수나 복잡한 Promise를 사용할 필요가 없습니다. 예를 들어, 아래 두 코드의 차이를 보겠습니다.

Promise 버전

fetch('https://api.example.com/data')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('에러 발생:', error));

async/await 버전

async function getData() {
  try {
    const response = await fetch('https://api.example.com/data');
    const data = await response.json();
    console.log(data);
  } catch (error) {
    console.error('에러 발생:', error);
  }
}
getData();

코드가 훨씬 읽기 쉬워졌죠? ("전 promise가 더 읽기 편한데요.."라면 아직 익숙치 않은겁니다 하하..;;)

본격적으로 사용하는 법을 알려드릴게요.


사용 방법과 주의점 🛠️

1. async 함수 선언하기
async 키워드를 함수 앞에 붙이면 됩니다.

async function myFunction() {
  return 'Hello!';
}

위 함수는 항상 Promise를 반환합니다. 즉, myFunction().then(...)처럼 사용할 수 있죠.

2. await 사용하기
await은 Promise가 완료될 때까지 멈췄다가 그 값을 반환합니다.

async function waitAndGetValue() {
  const value = await new Promise(resolve => setTimeout(() => resolve(42), 1000));
  console.log(value); // 1초 후에 42 출력
}

 

그런데 주의할 점? 꼭 알아야 할게 있어요.

에러 처리!

async/await을 사용할 때는 에러 처리가 필수입니다. try...catch 블록을 사용하면 코드가 깔끔하고 안정적이에요.

async function fetchData() {
  try {
    const response = await fetch('https://api.example.com/data');
    if (!response.ok) throw new Error('네트워크 응답이 올바르지 않습니다');
    const data = await response.json();
    console.log(data);
  } catch (error) {
    console.error('에러 발생:', error);
  }
}
fetchData();

 

 

728x90

'프로젝트 > GitHub Profile Viewer' 카테고리의 다른 글

테일윈드로 긴 url 줄이기: overflow-hidden, text-ellipsis, whitespace-nowrap  (2) 2024.10.29
비동기 작업과 Promise  (2) 2024.10.29
Next.js에서 use client 뭔지 알고 쓰자  (1) 2024.10.29
TurboPack 뭔지 알려드림. NextJS설치할 때 나오는 그거.  (5) 2024.10.29
대학생이라면 프로젝트, 다른 전공 학생이랑 반드시 해보세요!  (1) 2024.10.29
'프로젝트/GitHub Profile Viewer' 카테고리의 다른 글
  • 테일윈드로 긴 url 줄이기: overflow-hidden, text-ellipsis, whitespace-nowrap
  • 비동기 작업과 Promise
  • Next.js에서 use client 뭔지 알고 쓰자
  • TurboPack 뭔지 알려드림. NextJS설치할 때 나오는 그거.
튼튼발자
튼튼발자
프론트엔드 개발자입니다. 헬스를 가끔해서인지 몸이 튼튼한거 같습니다. 그래서 튼튼한 개발자 => 튼튼발자입니다. 프론트엔드 및 관련 개발 내용 블로그 글로 정리해서 올려둡니다.
    250x250
  • 튼튼발자
    튼튼발자
    튼튼발자
  • 전체
    오늘
    어제
    • 분류 전체보기 (192)
      • 튼튼발자의 끄적끄적 (10)
      • 웹개발 (94)
        • HTML (5)
        • CSS (2)
        • JavaScript (40)
        • TypeScript (5)
        • REACT (22)
        • Next.js (13)
        • GIt (7)
      • 기타 (3)
        • 일상 (3)
      • 프로젝트 (27)
        • Componique: UI 컴포넌트 라이브러리 (18)
        • GitHub Profile Viewer (8)
        • 잇핏 (1)
      • 프론트엔드 개발자로 취업준비 (1)
        • 기술 면접 (7)
        • 코딩 테스트 준비하기 (0)
        • 자기소개서&지원서&이력서 (0)
      • 컴퓨터과학 (12)
        • 운영체제 (6)
        • 알고리즘 (6)
      • 전공 공부 (37)
        • AI(인공지능) (2)
        • 컴퓨터네트워크 (19)
        • 네트워크프로그래밍 (3)
        • SW소프트웨어응용설계 (7)
        • 클라우드컴퓨팅 (3)
        • 웹서비스프로그래밍 (3)
      • PT (0)
      • 취준일기 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    트랜스포트계층
    웹개발
    tailwind
    프로그래밍
    NextJs
    네트워크
    데이터전송
    자바스크립트
    TCP
    리액트
    프론트엔드
    github
    ui컴포넌트
    react
    JS
    componique
    코딩
    상태관리
    JavaScript
    프론트엔드개발
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
튼튼발자
async/await 내가 쉽고 재미있게 알려줄게!🤚🏻
상단으로

티스토리툴바