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 링크를 통해 볼 수 있으므로 궁금하다면 확인하기 바란다.