어느 팀에서 1년간 Node.js 로 작업을 하고나서 다시 python으로 돌아 갔다는 을 보고나서는 그럴 수 있다고 생각했다. nodejs에서 사용하는 Javascript는 기존의 Javascript와 설계 방식이 다르다. 모든 곳에서 비동기적인 상황을 고려해야한다. 정확히는 I/O가 일어나는 함수의 경우에서 비동기적인 처리를 고려해야한다.


Nodejs는 구글의 자바스크립트 엔진인 V8이 JIT 컴파일러를 도입하면서 괜찮은 성능을 제공하였기 때문에 가능한 프레임웍이었다. 그리고, 최대한 동기적인 작업을 설계에서 배제시켰고, 그에 따라 nodejs 생태계는 비동기 철학에 맞춰 확장이 되었다.


처음 nodejs가 나왔을 때 비동기적인 설계를 편하게 구현할 수 있는 자바스크립트의 문법적 기능으로는 closure 밖에는 없었던 것 같다. 지금은 co-routine을 구현하기 위한 generator가 들어가고, Promise가 들어가면서 지금과는 다른 설계방식이 앞으로는 유행하지 않을까 한다.


Nodejs는 javascript라는 것이 특징이 아니다. javascript가 클라이언트에서 사용되다가 비로소 서버에서도 사용되는 것에 열광할 일이 아니라는 것이다. 마이크로소프트의 ASP가 VB만이 아닌 Javascript로도 제공됐었다는 사실을 아시려나 모르겠다. npm 마저도 특징이 아니다. 요샌 다 패키지 매니저는 기본이지 않은가. Nodejs의 매력은 "비동기적인 설계를 강제"한 것에 있다. 만약, python이든, java든 php든 심지어 C++이라할지라도 비동기적인 함수로만 패키지의 생태계가 만들어진다면, 아마 열광할 요소가 있을 것이다. 그러나 전통강자가 있으니 아마 쉽지는 않을 것이다.



저작자 표시 동일 조건 변경 허락
크리에이티브 커먼즈 라이선스
Creative Commons License

+ Recent posts