포스트

2024.05.30 프로그래머스-북끼오 (bookkio) 프로젝트 7일차

Bookkio 프로젝트 7일차

비동기 프로그래밍과 Promise, async/await

오늘은 데브코스에서 JS의 비동기 프로그래밍과 Promise, async/await 사용에 대해 알아보았다.

해당 내용은 TIL 정도로 끝낼게 아니라 나도 추후에 필요할 경우 보기 위해 따로 글을 포스팅 하였다.

실제 비동기 프로그래밍은 JS와 뗄레야 뗄 수 없는 상이인것은 알고 있다.

JS는 이벤트 기반 싱글 스레드 구조로 동작하며, Non Blocking I/O의 특성까지 가지고 있어

비동기 프로그래밍은 더욱이 JS를 사용하는 개발자라면 깊이 알아야 할 부분이 아닌가 싶다.

강의에서의 코드

강의에서는 오늘 배운 async/await 문법으로 어제 작성했던 도서 주문하기 API 코드를 수정 하였는데,

그렇게 하려면 Model 쪽의 DB 에 연결된 코드도 바뀌고, 무엇보다 mysql2 라이브러리를 controller 측에서도 Import 하게 되는 것을 알게 되었다.

하지만 나는, 해당 과정을 보기만 하고 따라하지는 않았다.

async/await 당연히 좋은 기능이고, 특히나 await를 통해 이전 Promise 대기로 실행 순서를 보장할 수 있는 것은 엄청난 메리트이다.

다만, 나는 어제 비동기 문법을 사용하지 않고, 쿼리의 순서를 보장하는 mysql2 내부의 기능을 이용하여 주문하기 API 코드를 작성했기에, 강의의 내용을 따르지 않았다.

나중에 규모가 훨씬 큰 프로젝트에서는 어쩌면 비동기 프로그래밍은 필수요소일지도 모르겠지만,

지금의 내 프로젝트에서는 사실 그다지 CPU의 능력치를 요구하는 수준의 작업도 없다고 생각이 되어 강의의 코드를 채택하지 않았다.

내가 작성한 코드들은 글 상단의 github 링크를 통해 볼 수 있으므로 궁금하다면 확인하기 바란다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.