자바와 자바스크립트는 개발자가 아닌 사람들에게도 굉장히 익숙한 개발 언어입니다. 자바? 자바스크립트? 이름만 들으면 두 개발 언어가 어느 정도 관계가 있을 거라 생각되는데요. 하지만 이 두 언어의 차이점을 잘 아는 사람들은 햄과 햄버거 그리고 카(Car)와 카펫(Carpet)의 관계라고 농담 섞어 말합니다. 과연 그 이유는 무엇일까요? <strong>결론적으로 말하자면 두 언어는 완전히 다른 언어로, 이름이 비슷하기 때문에 서로 연관 있을 것이라 혼동되는 것일 뿐입니다.</strong> 5년 전만 해도 자바는 일반적인 프로그래밍 언어였습니다. 자바 스크립트는 웹에서의 상호작용과 애니메이션을 만들기 위해서 사용되고 있었죠. 하지만 그 이후로 자바스크립트는 더욱더 발전했고, 이제는 자바와 자바스크립트를 비교하는 게 훨씬 더 어려워졌습니다. 이번 시간에는 많은 분들이 궁금해하실 그 질문! 자바와 자바스크립트가 어떻게 다른지에 대해 알려드겠습니다. <br/> <h3>자바 VS 자바스크립트 이름의 유래</h3><img class="size-full wp-image-15233 aligncenter" src="https://www.wishket.com/media/newscenter/356/01.png" alt="" width="580" height="400" /> <h5><strong>자바 (Java)</strong></h5>자바라는 프로그래밍 언어는 굉장히 우연한 기회에 만들어지게 되었습니다. 선 마이크로시스템스의 연구소에서는 셋톱박스를 만들기 위해 C++ 언어를 정리하는 작업을 했는데요. 이때, 오크라는 새로운 프로그래밍 언어가 만들어집니다. 당시 선 마이크로시스템스 연구소의 마케팅팀은 오크라는 이름으로 이 프로그래밍 언어를 등록하려고 했으나, 이미 다른 회사에서 같은 이름을 등록해놓았기 때문에 그 이름을 '자바'로 바꾸었습니다. <strong>자바는 프로그래밍 언어들 중에서는 두 번째로 많이 사용되고 있으며, 특히 웹 개발자들 사이에서 매우 많이 쓰이고 있지요.</strong> 자바에는 다른 언어들과는 다르게 포인터(pointer)라는 개념이 없습니다. 자바 언어에 포인터가 추가되면 오히려 보안성과 견고함이 저하되고, 언어 자체도 더욱 복잡해집니다. <strong></strong> <h5><strong>자바스크립트 (JavaScript)</strong></h5>아직 인터넷이 초창기이던 1990년에 사람들이 가장 많이 쓰던 웹 브라우저는 인터넷 익스플로러와 넷스케이프 네이게이터였습니다. 당시에 넷스케이프 사에는 브렌던 아이크라는 개발자가 있었습니다. 그는 사용자의 입력을 받아서 컴퓨터에게 상호작용하는 명령을 내릴 수 있는 프로그래밍 언어를 하나 만들어냈습니다. 겨우 10일 만에 말입니다. 그는 이 언어에 '라이브 스크립트'라는 이름을 붙였고, 곧바로 네비게이터에 통합시켰습니다. 즉, 넷스케이프 네이게이터라는 브라우저는 사용자의 명령을 직접 해석했다는 뜻인데요. <strong>다른 언어들처럼 컴파일을 할 필요도 없었고, 플러그인을 설치할 필요도 없었습니다.</strong> 비슷한 시기에 자바가 등장해서 인기를 얻어 가고 있었습니다. 다만, 자바를 실행하기 위해서는 별도의 플러그인이 필요했죠. 넷스케이프에서는 자바에서 가능성을 발견했고, 자신들이 만든 언어를 '자바 스크립트'라는 이름으로 바꾸게 됩니다. </br> <h3>자바 VS 자바스크립트 비슷한 점</h3><img class="size-full wp-image-15234 aligncenter" src="https://www.wishket.com/media/newscenter/356/03.jpg" alt="" width="580" height="386" /> 서로 별개의 언어이긴 하지만, 아주 기초적인 수준에서는 비슷한 부분들이 있습니다. 특히나 웹 애플리케이션을 개발하는 데 있어서 자바와 자바스크립트를 비교할 때는 눈여겨볼 만한 부분들이 여러 개 있지요. <strong>객체지향 프로그래밍(OOP):</strong> 두 언어 모두 객체를 만들고, 객체들이 문맥 안에서 서로 관계를 갖도록 코딩을 해야 합니다. 더 나아가서, 두 언어는 모두 상속(inheritance), 캡슐화(encapsulation), 폴리모피즘(polymorphism)이라는 기법을 사용하고 있습니다. <strong>프런트 엔드 개발:</strong> 두 언어 모두 프런트 엔드 개발에서 주로 사용됩니다. 자바스크립트는 HTML 안에 직접 포함시킬 수 있습니다. HTML에서는 자바스크립트가 프레임워크나 라이브러리 형태로 구현됩니다. 그리고 자바는 자바 애플릿 형태로 사용됩니다. <strong>백 엔드 개발:</strong> 두 언어 모두 서버 쪽에서도 사용될 수 있습니다. 아파치(Apache), 제이보스(JBoss), 웹스피어(WebSphere)와 같은 강력한 백 엔드 기술에서는 오랫동안 자바를 사용해 왔습니다. 그리고 노드(Node.js)가 등장하면서, 서버 쪽에서도 자바스크립트를 사용할 수 있게 되었습니다. <br/> <h3>자바 VS 자바스크립트 차이점</h3><img class="size-full wp-image-15235 aligncenter" src="https://www.wishket.com/media/newscenter/356/04.jpg" alt="" width="580" height="400" /> 자바는 1995년에 사용되기 시작한 객체지향 프로그래밍 언어입니다. 자바는 선 마이크로시스템스 사에서 개발했고, 이후에 오라클이 인수했습니다. <strong>자바 언어를 사용해서 개발된 프로그램이나 애플리케이션은 JVM(자바 가상 기계) 위에서 실행됩니다. 기기도 다르고 운영체제가 다르더라도 JVM만 있으면 동일한 프로그램을 실행할 수 있습니다.</strong> <strong>자바스크립트는 동적인 HTML 페이지를 만들 수 있는 객체지향 스크립트 언어입니다. 하나의 웹페이지 안에서 상호작용하는 효과를 만들 수 있지요.</strong> 구글의 크롬 자바스크립트 엔진에 '노드'(Node.js)가 포함되기 전까지 자바스크립트는 주로 브라우저에서만 사용되었습니다. 자바스크립트와 자바는 구성과 코딩, 실행되는 방식이 서로 다릅니다. 그리고 어떤 기능들을 수행할 수 있는지를 살펴보면, 그 차이가 더 분명하게 드러납니다. <strong>자바는 신용카드 프로그램, 안드로이드 애플리케이션, 데스크톱 응용프로그램, 기업용 애플리케이션에 이르기까지 많은 분야에서 사용되고 있습니다. 반면에 자바스크립트는 주로 상호작용하는 웹페이지를 만드는 데 사용됩니다.</strong> 자바스크립트는 플래시를 대신해서 사용될 수도 있습니다. 또한, HTML 안에서 애니메이션 효과를 내는 것과 같은 단순한 작업에도 사용될 수 있습니다. <img class="size-full wp-image-15238 aligncenter" src="https://www.wishket.com/media/newscenter/356/자바_VS_자바스크립트_차이점.png" alt="" width="639" height="608" /> 각각의 프로그래밍 언어들이 어떻게 사용되는지를 간단하게 말하자면 이렇습니다. 자바는 서버 쪽의 개발에서 주로 이용되며, 자바스크립트는 인증이나 상호작용과 같은 클라이언트 쪽의 개발에 주로 사용됩니다. 자바스크립트로 작성된 코드는 바로 실행될 수 있지만 자바로 작성된 코드는 컴파일이 되어야 합니다. 자바와 자바스크립트를 실행하는데 필요한 플러그인도 서로 다릅니다. 자바스크립트로 작성된 코드는 브라우저에서만 실행됩니다. 반면에 자바를 이용해서 만든 애플리케이션은 브라우저에서도 실행될 수 있고, 가상 기계(JVM)에서도 실행될 수 있습니다. <strong>자바는 객체지향 프로그래밍(OOP) 언어이고, 반면에 자바스크립트는 객체지향 스크립트 언어입니다.</strong> 프로그래밍을 새로 배우는 학생이라면, 자바스크립트와 자바 모두 배워 놓으면 유용한 언어라는 사실을 알게 될 것입니다. 그리고 사실, 이 두 개의 언어를 빨리 배워 놓는 것이 좋다고 많은 프로그래머들이 말하고 있습니다. 프로그래머가 자바스크립트와 자바를 모두 구사할 수 있다면, 앞으로 일자리를 얻을 수 있는 기회와 돈을 벌 수 있는 기회가 더 많아진다는 것은 분명한 사실입니다. <h3>내 프로젝트에 어울리는 언어는 자바 VS 자바스크립트?</h3><img class="size-full wp-image-15239 aligncenter" src="https://www.wishket.com/media/newscenter/356/05.jpg" alt="" width="580" height="478" /> 다음과 같은 프로젝트는 <strong>자바</strong>를 고려해보세요! ▷ 안드로이드 앱 ▷ 기업용 소프트웨어 ▷ 과학 연구를 위한 컴퓨터 작업 ▷ 빅데이터 분석 ▷ 일반적인 하드웨어 프로그래밍 ▷아파치(Apache), 제이보스(JBoss), 제로니모(Geronimo), 글래스피시(GlassFish) 등의 서버 측 기술 다음과 같은 프로젝트는 <strong>자바스크립트</strong>를 고려해보세요! ▷ 동적인 싱글 페이지 애플리케이션(SPA) ▷ 제이쿼리(jQuery), 앵귤러JS(AngularJS), 백본(Backbone.js), 엠버(Ember.js), 리액트(React.js) 등 ▷ 노드(Node.js), 몽고디비(MongoDB), 익스프레스(Express.js) 등 ▷ 리액트 네이티브(React Native)나 폰갭(PhoneGap) 등을 이용한 모바일 앱 개발 <br/> 지금까지, 자바 VS 자바스크립트 차이점에 대해 알아보았습니다. 이 글을 통해서 자바스크립트와 자바가 어떻게 다른지에 대해 잘 알아볼 수 있는 시간이 되었으면 좋겠습니다. 다음에도 유익한 개발 팁들로 찾아뵙겠습니다. </br> <li>이 글은 '<a href="https://towardsdatascience.com/java-vs-javascript-which-is-the-best-choice-for-2019-a41ee2d3f78d">Java vs JavaScript: Which Is The Best Choice For 2019?</a>'를 각색하여 제작되었습니다.</li> <li>관련 글 - '<a href="https://www.wishket.com/news-center/detail/327/">웹개발자들은 어떤 언어를 쓰는 걸까? 개발언어 파헤치기</a>'</li>