더북(TheBook)

노드 12 버전에서 워커 스레드 기능의 안정화로 멀티 스레드 작업을 할 수 있게 되었지만, 멀티 스레드 프로그래밍을 하는 것은 싱글 스레드에 비해 난이도가 높습니다. 스레드가 작업을 나눠서 처리할 수 있게 직접 나눠주는 것이 상당히 어렵습니다. 또한, 멀티 스레드 프로그래밍을 하더라도 C, C++, Rust, Go와 같은 언어에 비해 속도가 많이 느립니다.

따라서 멀티 스레드 기능이 있다고 하더라도 이미지나 비디오 처리, 대규모 데이터 처리와 같이 CPU를 많이 사용하는 작업을 위한 서버로는 권장하지 않습니다. 노드보다 더 적합한 다른 언어 서버가 많습니다. 굳이 노드로 하고 싶다면, 요즘은 AWS 람다(AWS Lambda)나 구글 클라우드 펑션스(Google Cloud Functions) 같은 서비스에서 노드로 CPU를 많이 사용하는 작업을 처리한다는 사실을 고려해볼 필요가 있습니다. 이는 16장에서 사용해볼 것입니다. 싱글 스레드 방식의 프로그래밍은 멀티 스레드 방식보다 상대적으로 쉬우므로 서버 프로그래밍에 익숙하지 않은 사람도 쉽게 입문할 수 있습니다. 다만, 싱글 스레드 방식으로 서버를 운영할 때는 하나뿐인 스레드가 에러로 인해 멈추지 않도록 잘 관리해야 합니다. 에러를 제대로 처리하지 못하면 하나뿐인 스레드가 죽게 되어 서버 전체가 멈추기 때문입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.