본문 바로가기

DevOps.

'JavaScript' vs 'Java', Write Once, Run Anywhere

728x90

 

자바스크립트가 ‘한 번만 작성하면, 어디서든 실행된다’(Write Once, Run Anywhere, WORA)라는 슬로건을 지닌 자바를 밀어낼 수 있을지에 대한 논쟁이 격렬하다.

자바스크립트가 자바를 제치고 새로운 ‘WORA’ (Write Once, Run Anywhere) 프로그래밍 언어로 등극했다고 말할 수 있을까? 관점에 따라 대답이 달라진다. 그리고 웹 어셈블리와 같은 기술이 등장함에 따라 자바가 다시 약진할 가능성도 배제할 수 없다. ‘한 번만 작성하면, 어디서나 컴파일한다’(Write Once, Compile Anywhere)라는 새로운 패러다임을 내세울 수도 있는 것이다.

​​자바는 JVM이 작동하는 모든 곳에서 실행되어 모바일 및 임베디드 장치를 포함한 여러 운영체제와 하드웨어 플랫폼에 앞으로도 이식성을 제공하게 될 것이다. 하지만 브라우저 내 애플리케이션에서 중추적 역할을 하는 자바스크립트는 이제 일렉트론 프레임워크 같은 기술로 개발된 데스크톱 애플리케이션, 리액트 네이티브 같은 프레임워크로 개발된 모바일 애플리케이션, 노드.js와 데노로 개발된 웹 백엔드에도 적합하다.

심지어 자바스크립트는 노드MCU 같은 툴을 이용해 사물인터넷과 로봇공학 기술을 개발하는 데도 적합하다. 요즘은 자바를 이용해 할 수 있는 작업을 자바스크립트를 통해서도 할 수 있다.

자바스크립트 : 웹 브라우저에서 서버 그리고 디바이스로
데스크톱 애플리케이션, 웹 서버, 웹 클라이언트, 모바일 애플리케이션, 스마트 TV 애플리케이션 등 자바가 빛나는 역할을 했던 모든 곳에서 이제 자바스크립트가 그 역할을 더 잘해내고 있다.

특히 자바스크립트는 자바 애플릿이 거점을 확보하지 못했던 웹 브라우저도 장악하고 있다. 심지어 안드로이드 모바일 앱에서도 자바는 아이오닉, 리액트 네이티브, 네이티브스크립트와 같은 크로스 플랫폼 자바스크립트 프레임워크에 자리를 내주고 있다.

그러나 자바 표준 에디션 개발을 총괄하는 오라클에서는 자바스크립트에 대한 선호로 인해 자바의 쇠퇴가 점쳐진다는 의견에 회의적이다. 자바가 한물갔다는 소식을 15년간 들어왔지만 여전히 매우 중요한 플랫폼으로서 남아있다.

자바스크립트는 브라우저 내에 있고 실행을 원하는 모든 플랫폼에서 실행 가능하기 때문에 완전한 크로스 플랫폼인 것은 사실이지만, 자바는 서버의 성능면에서 여전히 큰 이점을 갖고 있다.

웹 어셈블리 : 자바에 새 생명을?
웹 어셈블리와 스프링 네이티브 같은 기술은 WORA 개념을 살짝 비틀었다. 다양한 프로그래밍 언어가 휴대용 혹은 네이티브.exe 파일로 컴파일되도록 허용함으로써, 언어를 런타임 플랫폼으로부터 근본적으로 분리한다. (덕분에) 개발자는 JVM 없이도 자바를 사용할 수 있다.

웹 어셈블리 바이너리 명령 형식은 브라우저 내 프로그래밍의 메커니즘 역할을 한다. 여기서 웹 어셈블리는 다른 언어들을 웹에서 실행하기 위한 컴파일 타깃이다. 개발 단계의 J웹 어셈블리 컴파일러 프로젝트는 웹 어셈블리를 통해 브라우저에서 자바를 실행하는 것이 목표다. 또한 웹 어셈블리는 서버에도 배포될 수 있다. 와즈머(Wasmer) 런타임을 통해서다. 이 밖에 웹 어셈블리를 이용하면 자바스크립트로 실행할 수 있는 것을 자바로도 실행할 수 있다.

그럼에도 불구하고, 자바스크립트의 사용 편의성과 동적인 특징은 무시할 수 없다. 웹 어셈블리를 통해 자바스크립트 없이도 자바로 웹 개발을 할 수 있다는 주장이 제기될 수도 있지만, 개발자들은 여전히 자바스크립트를 사용하고 있다.

 

 

출처

자바스크립트vs자바··· 진정한 'WORA' 승자는?

728x90
반응형
LIST