1. 역사
Node.js는 2009년 Ryan Dahl에 의해 처음 발표되었으며
Google Chrome V8 JavaScript Engine으로 Build JavaScript 런타임 환경입니다.
브라우저환경에서만 사용하던 Java Script를 서버측에서도 사용가능케 만들었습니다.
2. 장점
* Non-blocking I/O
이게 왜 장점이냐 DB와 웹표시가 별도로 이루어질수 있다는 것입니다.
비동기의 장점은 언제나 오래걸리는 작업을 기다리는 것이 아니라
라면 물을 올려놓고 파와 양파를 써는 것처럼 오래걸리는 작업보다 빠르게 처리할 수 있는 작업들을 먼저 처리할 수 있다는 장점이 있습니다.
일반적인 동기 프로그래밍의 경우 DB작업이 오래걸리고 그에 따라 웹표시가 지연되어 사용자가 답답함을 느낄 수 있기 때문입니다.
* 간편한 프로그래밍
실제 JavaScript 언어로 구성되어 있다보니 훨씬 쉽게 서버를 구축할 수 있습니다.
또한 단일 스레드 모델이기 때문에 복잡한 멀티 스레드의 동기화 문제를 걱정하지 않아도 됩니다 (개꿀)
3. 단점
* 장점이 곧 단점
단일 스레드로 인해 성능에 제약이 있습니다,,
* 상대적으로 새 기술이기에 취약점이 많다고 합니다
* 콜백지옥
비동기로 인해 콜백함수가 중첩될 경우 지저분해질 수 있습니다 (순차적으로 사용할 때 자주 발생)
await / async 같은 함수로 비동기 함수를 동기처럼 해결하는 것이 필요합니다.
'Web > NodeJS' 카테고리의 다른 글
NodeJS, .env파일 환경변수 사용 (0) | 2024.07.24 |
---|---|
NodeJS, nodemailer로 API 요청시 메일 보내기 (1) | 2024.07.24 |
Node js 설치 (0) | 2024.02.20 |