흔히들 이렇게말한다


JavaScript는 클라이언트언어고


node.JS는 서버언어다...


무슨말인지 정확히 짚어주겠다.


아시다시피 자바스크립트는 자바창시자 제임스고슬링 여동생 제임스고시라가 만든 언어다.


흔히들 외국개발자는 자바스크립트를 자바의 덜떨어진동생이라고 부른다.


말그대로 자바에서 쉬운문법만 가져다와 HTML에서 파생된 DOM(Document Object Model)만 가져다가 붙인게 자바스크립트다.


고로 자바와 자바스크립트 문법체제는 매우 비슷할뿐만아니라 패러다임또한 쌍둥이처럼같다.


덜떨어진 동생답게 덜떨어진 개발자들도 매우쉽게 자바스크립트를 익힐수있었다.


그러나 이 덜떨어진 개발자들이 주제도모르고 서버를 만들고싶어했따..


그것도 자기들이쓰는 덜떨어진문법체제로..


그래서 자바의 서버 즉 jsp를 같다붙인게 node.JS다.


크롬에서 만든 괴상한 jvm (일명 v8) 을 억지로 뜯어곧혀 자바화시켜 만든거라할수있겠다.


억지로만든만큼 문제또한많아 엔터프라이즈급 서버개발에는 자주쓰이지않는게현실이다.


자바스크립트의 클래스는 자바의클래스를 배꼈다고 무방하다.


근데 덜떨어졌기때문에 인스턴스화(일명 복사)되지않고 그 한계를 넘지못해 배껴쓰는식으로 설계가되었다.


이런것을 어디서 주서다가 프로토타입, 프로토체인을통한 클래스디자인이라고 우기는데


참으로 문제가많다.


더이상한건 지역변수가 없다는것이다.


지역변수를 흔히말하는 stack 영역(c및 기타 유명언어)에 할당하기에는 그 태생적한계를 넘지못하여


함수의 스코프만을 stack에 할당함으로써 지역변수처럼 쓸려고 노려하는모습이 보기 민망할정도이다.


고로 자바스크립트는 쓰레기다.