기술면접[7~8]

Cheddaryeon·2023년 8월 30일

7. var, let, const의 차이에 대해 알려주세요

답변

8. Async/Await와 Promise의 차이

답변

  • Promise :
    3가지 상태
    • Pending (대기)
    • Fulfilled (이행)
    • Rejected (실패)
      비동기 처리가 완료 되지 않았다면 Pending, 완료 되었다면 Fulfilled, 실패하거나 오류가 발생하였다면 Rejected 상태
  • Async/Await :
    callback 이나 Promise 의 경우에 단점은 콜백 지옥, then() 지옥이라고 부른다.
    await 를 통해 Promise 반환 값을 받아 올 수 있다.
    await 는 async 함수 안에서만 동작
  • 차이점
    • 에러 핸들링
      • Promise 를 활용할 시에는 .catch() 문을 통해 에러 핸들링이 가능하지만, async/await 은 에러 핸들링 할 수 있는 기능이 없어 try-catch() 문을 활용해야 한다
      • async/await error가 어디서 발생했는지 알기 쉽다
    • 코드 가독성
      • Promise의 .then() 지옥의 가능성
      • 코드가 길어지면 길어질수록, async/await 를 활용한 코드가 가독성이 좋다.
      • async/await 은 비동기 코드가 동기 코드처럼 읽히게 해준다. 코드 흐름을 이해 하기 쉽다.
  • 비동기처리 : 특정 로직의 실행이 끝날때까지 기다려주지 않고 나머지 코드를 먼저 실행하는것
    • 무엇이 어떤 순서로 진행될지 예측하기가 상당히 어렵다
    • 콜백지옥 : 각각의 비동기 작업이 "끝"났을 때 뒤에 이어질 작업을 미리 부여하는 식으로 흐름을 제어하기 때문에
profile
study frontend

0개의 댓글