웹 개발자인 Jeremy Keith는 2009년에 "햄스터가 햄스터인 것처럼 자바는 JavaScript에 있습니다."라고 말했습니다. 그 비유의 정확한 정확성은 논쟁의 여지가 있지만 그 이면의 정신은 확고합니다. Java와 JavaScript는 공통 언어적 뿌리를 공유함에도 불구하고 두 개의 매우 다른 프로그래밍 언어입니다. 수년에 걸쳐 그것들은 좀 더 겹치게 되었지만 JavaScript는 웹사이트를 대화형으로 만드는 지배적인 프론트 엔드 언어로 남아 있는 반면 Java는 서버 측 및 응용 프로그램 프로그래밍에 계속 인기가 있습니다. 개발자를 고용하거나 코딩하는 방법을 배우거나 사이트/애플리케이션을 구축하려는 경우 Java와 Javascript의 차이점을 아는 것이 중요합니다.
다양한 기록
TLDR:자바가 먼저 나왔습니다. Java와 유사하지만 기술적으로 Java와 관련이 없는 JavaScript는 다른 요구 사항을 충족하기 위해 나타났습니다.
Java는 1991년에 시작하여 1995년에 출시된 Sun Microsystems의 James Gosling과 연구원 팀에 의해 4년에 걸쳐 개발되었습니다. 그들은 여러 운영 체제에서 실행할 수 있는 객체 지향 언어를 개발했습니다. 그 이후로 휴대폰에서 NASA 로버에 이르기까지 다양한 장치에서 사용되었으며 Java가 공식적으로 지원을 중단한 2016년까지 Java Applets를 통한 멀티미디어 웹 기술(Flash와 JavaScript는 여전히 그렇습니다)이었습니다.
JavaScript도 1995년에 출시되었지만 브라우저에서 웹 페이지를 로드한 후 대화형 웹 페이지를 만드는 방법으로 Netscape에서 Brendan Eich에 의해 10일 이상 만들어졌습니다. 1995년 5월 처음에는 Mocha라고 불렸지만 9월에 LiveScript로 Netscape Navigator와 함께 제공되었고 1995년 12월에 JavaScript로 변경되었습니다. 언어가 경량 스크립팅 대응물로서 Java와 유사하도록 만들어졌다는 점을 감안할 때 이름은 실제로 의미 – 그리고 그것은 꽤 좋은 마케팅 플레이이기도 했습니다. 그 이후로 HTML, CSS와 함께 현대 인터넷의 3대 구성 요소 중 하나로 성장했습니다.
기술적 차이점
Java와 JavaScript는 모두 객체 지향 프로그래밍 언어입니다. 즉, 프로그래머는 정보 덩어리를 만들고 이를 다른 정보 덩어리에 연결하여 작업을 수행할 수 있습니다. 예를 들어 "고양이" 개체에는 고양이의 이름, 피부색, 나이에 대한 정보와 야옹, 먹기, 잠자기와 같이 고양이가 할 수 있는 일 목록이 포함될 수 있습니다. 그런 다음 해당 개체의 정보를 프로그래머가 사용할 수 있으며, 프로그래머는 고양이에 대한 정보를 인쇄하거나 고양이가 무언가를 하도록 할 수 있습니다.
가장 큰 유사점입니다. 그러나 차이점은 거기에서 쌓입니다.
1. Java가 컴파일되고 JavaScript가 해석됩니다.
Java에는 "한 번 작성하고 어디서나 실행" 시스템이 있습니다. 다음과 같이 작동합니다.
- Java로 코드를 작성하세요.
- 컴퓨터가 읽을 수 있는 바이트코드로 코드를 컴파일합니다.
- 기기에서 자바 바이트코드를 실행하는 가상 컴퓨터인 자바 가상 머신에서 코드를 실행하세요.
즉, 프로그램을 변경할 때마다 Java 코드를 변경하고 전체 프로그램을 다시 바이트코드로 변환해야 합니다.
그러나 JavaScript는 작성된 그대로 웹 브라우저에서 읽을 수 있습니다. 브라우저는 각 줄을 확인하고 실행합니다. 이렇게 하면 컴퓨터가 읽을 수 있는 언어로 직접 실행되지 않기 때문에 컴파일된 코드보다 성능이 뒤처지지만 보다 유연하고 쉽게 변경할 수 있습니다.
2. 정적 타이핑(Java) 대 동적 타이핑(JavaScript)
프로그래밍 언어의 큰 부분은 변수에 값을 저장하는 것입니다. Java는 정적으로 유형이 지정됩니다. 즉, 모든 변수에 어떤 종류의 값이 포함되는지 말해야 고정됩니다. 예:
int a_number = 42; char a_letter = ‘z’;
"int"는 숫자여야 하고 "char"는 문자여야 합니다.
그러나 JavaScript는 동적으로 유형이 지정되므로 모든 변수는 모든 데이터 유형을 보유할 수 있으며 문제 없이 변경할 수 있습니다. 아래 코드는 잘 실행됩니다.
let number = 42; let a_letter = “z”;
Java는 여기에서 속도와 디버깅 이점이 있습니다. 변수 유형을 선언하면 문제를 더 빨리 찾고 코드를 더 빨리 실행할 수 있습니다. 그러나 JavaScript는 대부분의 개발자가 작업하기에 더 빠릅니다.
3. 동시성
Java는 동시에 여러 스레드를 실행할 수 있으므로 한 번에 여러 작업을 수행할 수 있습니다.
JavaScript는 이벤트 루프를 대신 사용하여 본질적으로 끝에 도달할 때까지 해야 할 일의 스택을 통해 작업합니다. 여기서도 Java는 성능상의 이점이 있습니다.
4. 자바에는 클래스가 있고 자바스크립트에는 프로토타입이 있습니다
Java와 JavaScript는 객체를 사용하여 정보를 저장한다는 것을 기억하십시오. 또한 둘 다 객체가 다른 곳에서 속성을 가져올 수 있도록 하는 "상속"을 사용합니다. Java에서는 클래스에서 속성을 가져옵니다. 클래스는 기본적으로 객체를 빌드하는 방법에 대한 지침이 포함된 청사진입니다. JavaScript에서 새 객체는 프로토타입 또는 복사하여 새 객체를 생성할 수 있는 객체를 사용하여 만들어집니다.
기본적으로 JavaScript의 모든 객체는 프로토타입이 될 수 있지만 Java는 객체를 만들 수 있는 클래스를 생성해야 합니다. 이전 예를 참조하기 위해 Java는 고양이를 만드는 방법에 대한 지침을 제공하는 반면 JavaScript는 고양이를 복제합니다.
어떤 것이 필요합니까?
기술적 세부 사항으로 인해 눈이 번쩍 뜨였다면 지금 다시 관심을 가질 수 있습니다! 자바와 자바스크립트 중 무엇을 선택해야 할지 고민이시라면 정말 어렵지 않습니다.
일반적으로 다음을 위한 JavaScript가 필요합니다.
- 웹사이트, 웹 앱 및 기타 프런트 엔드 인터페이스
- 간단한 웹 서버/백엔드 작업(Node.js 사용)
- 브라우저 기반 게임 및 애니메이션 제작
- Electron 또는 다른 플랫폼 간 프레임워크를 기반으로 구축된 앱/게임/프로그램
그러나 다음과 같은 용도로 Java를 사용하고 싶을 것입니다.
- Android 앱
- 데스크톱 애플리케이션
- 서버측 애플리케이션
- 전화, IoT 기기 및 기타 하드웨어용 코드 작성
배울 언어를 선택하려는 경우 목표에 따라 다릅니다. 프로그래밍 경력을 쌓고 프로그래밍 기초에 대한 확실한 이해를 원하거나 웹이 아닌 응용 프로그램에서 작업하려는 경우 Java는 기술적으로 더 엄격한 언어로 간주됩니다. 또한 세계에서 가장 널리 사용됩니다.
그러나 웹 개발에 들어가고 싶거나 대부분 웹 사이트 및 웹 앱에서 작업할 계획이라면 JavaScript는 아마도 "필수" 기술일 것입니다. 장기적으로 보면 둘 다 당신을 더 나은(그리고 더 시장성 있는!) 프로그래머로 만들 수 있는 개념을 포함하기 때문에 둘 다 배우는 것이 나쁠 것은 없습니다.
게임 개발에 관심이 있다면 이 프로그래밍 언어가 더 적합할 것입니다.