서버로서의 노드

    목차

노드는 서버가 아니지만, 내가 서버로 동작할 수 있도록 하는 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