서버로서의 노드
- 목차
노드는 서버가 아니지만, 내가 서버로 동작할 수 있도록 하는 JS 코드를 작성하면, 노드가 얘를 실행해주고 내 컴퓨터가 서버로 돌아갈 수 있도록 해줌.
✔️노드 서버의 장단점
📌노드 서버의 장점과 단점
👉장점과 단점 번갈아서
- 멀티 스레드 방식에 비해 컴퓨터 자원을 적게 사용(장점)
- 싱글 스레드라서 CPU 코어를 하나만 사용함(단점)
- 컴퓨터 자원을 많이 써서, 일을 많이 할 수 있으면 좋은데 하나만 쓰는거임
- I/O 작업이 많은 서버로 적합(장점)
- Input, Output -> 요청 받고 응답 주고, 파일 읽고, 읽은 거 전달해주고, 이런 왔다갔다 하는 건 잘함
- CPU 작업이 많은 서버로는 부적합(단점)
- 뭔가 서버에서 연산을 굉장히 많이 해야하는 서버로는 부적합함.(이미지 리사이징, 암호화, 혹은 알고리즘 작업 등)
- 이럴 때 멀티스레딩이 필요한데 앞 포스팅에서 이야기햇듯 Node.js 14 버전부터 멀티스레딩이 가능해졌다고 이야기했음.
- 이런걸 위해서 멀티스레딩을 열어준거임
- 멀티스레드 방식보다 쉬움(장점)
- 하나뿐인 스레드가 멈추지 않도록 관리해야 함(단점)
- 가게에 직원이 하나뿐이 없으니까 아프면 문을 닫아버려야 하는거임.
- 웹 서버가 내장되어 있음(장점)
- Node.js는 내부적으로 http 모듈을 가지고 있음.
- 별도의 웹 서버를 필요로 하지 않는 거임.
- 어중간한 성능(단점)
- 머신러닝, 코인채굴 이런 너무 많은 연산이 필요한 것들 쓰기 어려움
- JSON 형식과 호환하기 쉬움
- JS사용하니까 ㅎㅎ
✔️서버 외의 노드
자바스크립트 런타임이니까 노드로 서버를 만드는 데만 사용되는 게 아님
웹 프레임워크(React, Vue, 혹은 React Native)랑 데스크탑 개발 도구(Electron)가 노드 기반으로 동작함.
'Node.js' 카테고리의 다른 글
Node.js process (1) | 2023.05.17 |
---|---|
노드의 특성 (1) | 2023.05.12 |
노드의 정의 (0) | 2023.05.12 |