나의 삶

Node.js에서 Async Await, Try Catch 남발하기

꼰딩 2023. 10. 6. 01:34

저는 Node.js 백엔드 개발자입니다.

엘리스 (부트캠프)로 Node.js를 처음 배웠습니다.

부트캠프에서는 동기, 비동기에 대해 설명은 해주지만 초심자가 알아듣게 설명을 해주지는 않고, 설명을 해준다고 해도 그때는 이해하기 어려운 개념이었습니다.

동기, 비동기, Blocking, Non-Blocking 등 취업을 해야하니까 이론으로 공부만 했지, 실제로는 어떻게 작동하는지 감을 못잡았습니다.

 

회사에서 일을 하다보니 서버를 나누고, 비동기적으로 처리해야될게 많아져 다른분들께서 작성하신 코드를 보며, 그리고 그 코드들을 따라하며 어느정도 눈을 뜨게 되었습니다.

 

그러다보니 제 스스로 제가 작성했던 코드에 대해 창피한 순간이 많은데, 그 중에 두가지가 Async Await, Try Catch를 남발한 것입니다.

 

Async Await는 처음 제로초 유튜브를 보고 지금까지 잘못쓰고 있었다는 것을 깨달았습니다.

https://www.youtube.com/watch?v=r6Tl4VcJaEI&pp=ygUU7KCc66Gc7LSIIGFzeW5jIGF3aXQ%3D 

[인간 JS 엔진 되기 2-6]무지성 await 연달아쓰기 금지!

그리고 회사코드중에 다른 분들이 작성하신 코드를 보니  위 영상에서 나온것들이 이미 적용되어 있었습니다.

저는 Promise 객체를 반환하는 함수이면 무조건 await 를 붙였는데, 얼마나 비효율적인지 깨닫게 되었습니다.

병렬처리, 동기/비동기에 대한 개념이 필수적이라고 생각합니다.

 

Try Catch도 만만치 않습니다.

부트캠프에서는 특히 에러핸들링에 대해 알려주지 않습니다.

단순히 전역 해들러를 설정하고 끝이였기때문에, 에러를 어떻게 처리해야하는지 알지 못했습니다.

프로젝트 코치님께서 에러핸들링이 중요하다고 말씀해주셨지만, 구체적으로 어떻게 하는지는 몰랐습니다.

그래서 Try Catch를 써야할곳엔 안쓰고, 안써도 될 곳엔 써서 에러핸들링을 더 어렵게 해버렸습니다.

그거때문에 버그도 발생했었고, 결국 제가 아니라 사수 분께서 해결을 해주셨었는데 너무 창피했던 기억이 납니다.

 

10월 4일자로 일을 한지 1년이 되었는데, 그동안 많은 일들이 있었고, 많이 성장했습니다.

그 기념으로 지난 기간동안 기억나는 일화를 작성해보았습니다.

 

지금은 절망의 계곡에서 헤매고 있습니다.