비동기 코드에는 async 함수를 사용하기

여러분은 언제 함수에 async를 붙이시나요? 저는 async/await를 쓰고 싶을 때 함수에 async를 써왔습니다. 하지만 function에 async를 붙이는 작업은 그 이상의 의미가 있습니다. function에 async를 붙이면 선언한 함수를 "비동기 함수"로 강제합니다. 함수를 비동기 함수로 강제하면 리턴 값이 Promise로 고정되기 때문에 함수의 동작을 예측하기가 쉬워집니다. 이펙티브 타입스크립트의 저자인 댄 벤더캄은 함수는 항상 동기 또는 항상 비동기로 실행되어야 하며 절대 혼용해서는 안 된다고 얘기합니다. 아래는 예시입니다. ❌ function fetchPosts() {  if (cache) return cache  return axios.get(...) } 분기문의 조건에 따라 함수가 동기/비동기로 나뉘어지므로 함수의 동작에 대한 예측이 쉽지않고, 타입스크립트를 사용한다면 리턴 타입에 따른 처리도 까다로워집니다. 👍 async function fetchPosts() {  if (cache) return cache  return axios.get(...) } 함수가 일관적으로 Promise를 리턴하고 있어서 결과 예측이 쉬워지고 타입스크립트의 타입 추론에도 도움이 됩니다. 현업에서는 API 요청을 위한 비동기 함수에 의존하는 코드들이 많기 때문에 유지보수하기 쉬운 코드를 작성하는 것이 중요합니다. 구현도 중요하지만 작성한 코드가 나만 이해하는 코드가 아닐지 한 번 더 되돌아보는 습관을 길러보아요.

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2022년 11월 16일 오전 3:44

 • 

저장 11조회 2,351

댓글 0