자바스크립트를 공부하는데 async / await 가 짱이다 라고 생각한다면 당신은 공부를 더 하셔야 합니다. 근데 저도 잘 몰랐으니까 같이 공부합시다.
async / await가 왜 좋은지를 알려면 역사를 알아야하지. sveltekit에서 비동기
Callback 지옥과 비동기 처리의 발전: SvelteKit에서의 변화
getData1((result1) => { getData2((result2) => { getData3((result3) => { // 결과를 처리하는 코드 }); }); });
이런 구조는 코드의 가독성을 떨어뜨리고, 오류 처리가 복잡해지며, 유지보수가 어려워진다는 단점이 있습니다.
getData1() .then(result1 => getData2()) .then(result2 => getData3()) .then(result3 => { // 결과를 처리하는 코드 }) .catch(error => { // 오류 처리 });
하지만 여전히 여러 개의 비동기 작업을 병렬로 처리하기에는 한계가 있었습니다.
async function fetchData() { try { const result1 = await getData1(); const result2 = await getData2(); const result3 = await getData3(); // 결과를 처리하는 코드 } catch (error) { // 오류 처리 } }
async function loadData() { try { const [ monthlyVisitorCount, loginConflicts, { inProgressCount, uploadPendingCount, processingCount }, upcomingEventList, inProgressToCompletedCount, customerInquiryCount, prevDayVisitLog, thisMonthVisitLog ] = await Promise.all([ getMonthlyVisitorCount(), getLoginConflictsCount(), getSupportStatus(), upcomingEvents(), completedSupportRequests(), getCustomerInquiries(), getPrevDayVisitLog(), getThisMonthVisitLog() ]); // 데이터 처리 } catch (error) { // 오류 처리 } }
이와 같이 SvelteKit을 사용하면 비동기 코드의 가독성과 유지보수성을 높이고, 성능 최적화를 통해 사용자 경험을 향상시킬 수 있습니다.
과거의 콜백 지옥에서 비동기 처리 방식의 발전을 통해, SvelteKit과 같은 현대적인 프레임워크에서는 더 간결하고 효율적인 코드 작성을 가능하게 합니다. 이를 통해 개발자는 복잡한 비동기 로직을 쉽게 관리하고, 사용자에게 더 나은 경험을 제공할 수 있습니다. ORM 내에서 특히 prisma같은 경우는 $transaction으로 함수로 모든 성공을 보장할 수도 있습니다. 일관성 굿굿 이는 추후 공부해보시죠