처음부터 차근차근

[TIL - 231209] Node.js, 동기/비동기 & Blocking/Non-Blocking 본문

TIL

[TIL - 231209] Node.js, 동기/비동기 & Blocking/Non-Blocking

HangJu_95 2023. 12. 9. 23:29
728x90

오늘 한 일

  • Node.js란 무엇인지 알아보는 내용 정리
  • 동기/비동기 & Blocking/Non-Blocking

Node.js란?

  • Node.js가 베이스인 프레임워크를 사용하였지만, 정작 Node.js가 무엇인지 정리하지 않았습니다.
  • 실제로 사용해보고 다시 공부하니, 내용이 머리속에 잘 박히는 느낌?!
  • Node.js는 V8 Javascript engine에서 동작하는 Javascript 런타임 환경입니다.

항상 NestJS, Express를 사용하면서, Node.js의 장점을 모르고 백엔드 설계를 진행한 것 같았습니다.

이번 Node.js 정리를 통해 여러가지 장점을 알게 되었으며, Node.js에 어울리지 않는 웹서비스도 파악하였습니다.

 

또한, 이를 통해 다른 언어의 프레임워크 (Java의 Spring, Golang 등)을 한번 배워야 할 것 같습니다.

이러한 언어, 프레임워크의 장점을 알아가면 추후 어떠한 웹 서비스를 만들 때, 어떤 언어와 프레임워크가 이 서비스에 적합한 지 잘 알아갈 수 있다고 생각합니다.

동기/비동기 & Blocking/Non-Blocking

  • Node.js를 정리하다가 나온 Non-Blocking에 대해 조금 더 자세하게 공부하였습니다.
  • 일반적으로 코드를 짤때 이런 것을 생각 안하고 코드를 작성하였는데, 이번 계기를 통해 동기/비동기 처리와 Blocking/Non-Blocking을 공부할 수 있어서, Promise와 async/await을 조금 더 이해하게 되었습니다.

이론적인 것을 깊게 학습하면서, 과거 작성한 제 코드에 대해 다시 한번 생각해보게 되었습니다.

동기/비동기 하면 생각나는 Async/await, Promise

단순히 비동기 작업을 조금 더 편하게 작업해 준다는 의미에서가 아니라, 비동기 작업을 동기적으로 처리해준다는 의미로써도 생각하게 되었습니다.