Javascript 예찬론자가 되어버린 올드 원.
제목의 어그로가 아주 과한듯 하지만..
필자가 07년부터 개발을 해왔고, 점점 코딩력이 좋아진다고 생각되니 너그러이 그렇다고 해주자.
우선 C++ 아니면 Java를 메인 언어로 배워온 입장에서 Javascript는 항상 프론트 웹 개발에 인터렉션을 넣는 잔기술(?) 정도로 생각해왔고, 자바의 인기에 탑승하기 위한 매명가의 얄팍한 언어로 생각해왔다.
이러한 생각은 스마트워치의 등장과 IoT 인터넷부터 생각이 바뀌기 시작했는데, 애초 자바가 지향했던게 냉장고, 전자레인지, 리모콘 등 여러 가전제품에 내장되어 구동되는Platform independent 언어 였다면, v8 엔진에서 돌아가는 초경량 Node와 js가 결국 해낸게 아닌가!? 싶었고.
그럼에도 여전히 대규모 인터넷 웹 서비스에 Node와 js 따위를 쓴다는 것은 용납이 어려웠는데. 그 이유는 서버-사이드 기술에 필요한 I/O, File, Memory, Network 다 분야의 지식과 정교한 설계/구현이 필요하다고 생각하는데다, 단일 스레드로 동작하는 경량 서버라는 것, 그리고 프론트에 사용되던 스크립트 랭귀지가 감히 서버 구현에? 라는 생각 때문이었다.
하지만 왠걸(?) 실제 production-level에 Node와 js를 사용해보니, Apache HTTPD, PM2 등 주변 몇 가지의 오픈소스 조합으로 Scalability, Fault-tolerance, Productivity, Sustainability 모두 얻을 수 있는 초 강력한 앱 서버, 언어가 아닌가!?
Java 생태계에 굵직한 대형 라이브러리 프로젝트가 많다면, Js는 자잘한데 개발에 필요한건 찾으면 왠만하면 다 있는(?) 말그대로 레고 상자같은 느낌을 줬고, 컴파일없이 바로 돌아가는 스크립트 특유의 초간단 생산성과 수면 타이핑 이렇게 적으면 돌아야지(?) 하는 문법적 허용성의 마법.
Micro 경량 앱이지만 결국 Scale out 구조와 Event-driven architecture에도 적합해서, 싱글톤 패턴이고 나발이고 복잡다단한 Java는 단숨에 잊게 만들어 버렸다. 프로그래밍 패러다임도 이미 함수형으로 넘어온 이상, 아주 빠른 속도로 Java는 입지가 좁아질거라는 예상!
앞으로는 아마 Spring boot으로 가자! 대신, Nodejs로 간다!라고 외칠 것 같다.