노마드코더 유투브 클론 코딩 을 공부한 기록입니다.
Node.js 란 무엇인가
자바스크립트는 웹 브라우저에 내장되어 있습니다. 다시 말해, 웹 브라우저에는 자바스크립트 실행을 위한 자바스크립트 엔진이 내장되어 있고 이는 브라우저를 사용하는 모든 사용자는 자바스크립트를 언제든 실행 시킬 수 있는 프로그램을 가지고 있음을 의미합니다.
브라우저 안에서는 누구든 얼마든 자바스크립트를 사용할 수 있습니다. 그러나 밖에서는요?
Node.js는 자바스크립트를 브라우저 밖으로, 사용자의 컴퓨터로 가지고 나와서 사용자가 사용할 수 있게 합니다.
Node.js로 자바스크립트를 꺼내와 서버를 만들 수 있습니다.
언제 Node.js를 쓸까?
- 서버를 빌드해야 하는 경우
- 자바스크립트를 정말 좋아하는🧡 개발자
- 프론트, 백엔드를 자바스크립트로 만들고 싶은 경우
프론트는 JS를 싫어해도 안쓴다는 선택지가 없습니다. 백엔드는 자바, PHP, 파이썬 등 여러 선택지가 있지만 프론트의 언어는 자바스크립트가 유일하기 때문입니다.
JS는 프론트에서는 무조건이고, 백엔드에서도 원하면 사용할 수 있습니다.
Node.js vs Python
데이터 사이언스나 이미지를 크롭하고 필터를 적용 후에 저장해야 하는 기능의 경우를 만들어야 한다면 Node.js의 사용은 추천하지 않습니다. 왜냐하면 Node.js는 메모리, 램, 하드웨어에 접근할 수 없기 때문이죠.
유투브는 동영상을 업로드할 때마다
1. 4가지 포맷으로 바꾸고
2. 그 중에 오디오 트랙을 찾아
3. 오디오트랙이 저작권을 갖고 있는 다른 오디오트랙과 같은지 비교하는 작업들은 노드로는 하기 어렵습니다.
이런 작업은 파이썬과 장고로 하는 것을 추천합니다.
Django는 어플리케이션의 빠른 개발을 돕기 위해 만들어진 파이썬으로 작성된 프레임워크입니다.
다시 말하면 하드코어한 작업은 서버의 램과 서버의 하드 드라이브를 써야 합니다. 바이트 단위의 어려운 작업이나 비디오의 인코딩/디코딩같은 작업에 Node.js는 추천하지 않습니다.
반면에 실시간으로 대화를 하는 채팅 서비스는 파이썬보다 Node.js로 작업하는 것이 좋습니다. 파이썬은 비동기 언어가 아니기 때문에 실시간 처리를 할 수 있는 엘리먼트가 없습니다.
✏️ 정리
- 서버의 메모리, 램 등에 접근이 필요한 하드웨어 제어가 필요한 작업 👉 파이썬&장고나 PHP&라라벨.
- 실시간 서비스 구현할 때는👉 Node.js
'Server > Node.js' 카테고리의 다른 글
node-pre-gyp ERR! Tried to download(404) 해결방법 (0) | 2021.04.01 |
---|---|
Node.js 설치하기 (0) | 2020.06.13 |