Java와 JavaScript

sookyoung.k·2024년 6월 5일
0

☕Java

목록 보기
3/11
post-thumbnail

자바와 자바스크립트는 모두 C 언어로부터 영향을 받았기 때문에 비슷한 문법을 가지고 있다. 하지만 프로그래밍 언어의 범주로 분류하면 굉장히 다른 언어이다.

컴파일 언어와 인터프리터 언어

프로그래밍 언어는 크게 컴파일 언어인터프리터 언어로 나눌 수 있다.

컴파일 언어인터프리터 언어
프로그래밍 언어로 작성된 소스코드를 컴파일하는 과정이 있다
* 컴파일러 - 고급 언어로 작성된 소스 코드를 저급 언어로 번역하는 프로그램
컴파일이라는 과정이 없다
컴파일 된 결과물(실행 파일)이 있다
실행 파일은 기계에 의해 실행될 수 있는 상태 파일이다
실행파일이 없다
대신 소스코드가 그대로 사용자에게 전달된다
C, C++, C#, JavaPython, JavaScript, Ruby

따라서 컴파일 언어는 컴파일 과정에서 문법적인 에러를 체크한다.
하지만 인터프리터 언어는 실행 시점이 되어서야 체크한다. → 이를 보완하기 위해 타입스크립트 등장! 혹은 테스트 코드를 통해 검증할 수 있음

바로바로 코드가 실행되는 인터프리터가 더 빠르지 않은가 생각할 수 있지만 일반적으로 컴파일 언어가 더 빠른 속도를 가지고 있다고 평가 받는다.

왜냐하면 컴파일은 단 한 번만 수행하며, 컴파일 단계와 실행 단계가 분리되어 있다. 실행 시에는 컴파일 과정을 거치지 않고 실행만 하면 되기 때문에 컴파일러 언어가 빠른 편이다.
반면 인터프리터 언어는 실행 파일을 별도로 생성하지 않기 때문에 실행 시마다 인터프리트 과정이 반복적으로 필요하기 때문에 실행 속도가 느리다.

자바스크립트의 표준

자바스크립트 언어는 ECMAScript라는 표준에 나와 있는 대로 구현해야 한다. 때문에 버전 표시가 좀 길어짐... ECMAScript 2022 이런 식으로 표현해야 한다. 자바의 경우 Java 17 이런 식으로 표현함.

자바스크립트는 웹 브라우저에서 실행되기도 하고 자바처럼 따로 실행이 될 수도 있다. 따로 실행 가능한 자바스크립트가 바로?! Node.js !!!!!!!!! 그리운 녀석... 실행되는 환경(Runtime)에 따라서 코드의 작성 방식이 달라지기 때문에 검색 시 유의해야 한다.

자바스크립트의 문법

변수와 상수 선언

자바스크립트에서는 let이라는 키워드로 변수를 선언한다. 자바와 다른 점은 변수에 타입이 없다는 점이다. typeof 키워드를 통해서 타입을 확인할 수 있다.

또한 const 키워드를 사용해 상수를 선언한다. 자바에서는 final이라는 키워드를 사용한다. 마찬가지로 자바스크립트에서는 타입을 선언하지 않는다.

console.log(), alert()

자바에서는 System.out.println()으로 콘솔에 메시지를 출력한다. 자바스크립트에서는 console.log()로 메시지를 출력하며 간단한 디버깅에 사용할 수 있다.

console.log()는 자바에서 타입이 void로 정의된 함수처럼 자체적으로는 반환하는 값이 없다. 때문에 출력 후 undefined가 나오게 된다.

alert()함수 역시 자바스크립트에서 웹 브라우저로 창을 띄우며 인자로 넣어준 값을 출력할 수 있다.

논리 연산자와 if

if문은 자바와 자바스크립트 모두 동일하게 사용하는데! 그 안에 들어가는 논리연산자에 조금 차이가 있다.

JavaJavaScript
=====
!=!==

* JS
같은 자료를 비교할 때 ==를 사용하면 타입이 다른 경우에도 동일한 값으로 처리하여 true라는 값을 얻을 수 있다.

하지만 ===를 사용하면 타입이 다름을 체크한다.

배열과 for

자바에서의 배열은 배열에 저장될 요소들의 타입이 존재하며, 길이가 최초 생성한 크기로 고정된다.

하지만 자바스크립트에서는 변수와 마찬가지로 타입이 존재하지 않고, 생성 후에도 크기를 자유롭게 변경하는 것이 가능하다.

하지만 배열의 시작 번호가 자바와 마찬가지로 0이며, for문의 사용 방법 또한 완전히 동일하다. 배열을 조작할 필요가 있다면 자바스크립트의 배열 메서드를 참고하는 것이 좋다. (언젠간 꼭 정리한다...)

함수 선언과 호출

자바와 자바스크립트는 함수를 선언하는 방법도 비슷하다. 하지만 자바스크립트는 클래스 내부에 선언할 필요가 없으며 반환값, 매개변수의 타입이 없다.

함수를 호출하는 방법 역시 자바와 완전히 동일하다.

자바에서 함수를 람다 표현식으로 작성했던 것처럼 자바스크립트에서도 function 키워드 없이 함수를 사용할 수 있다. 하지만! 자바는 화살표 모양이 -> 이건데, 자바스크립트는 =>를 사용한다.

자바스크립트에서 함수는 일급시민

함수를 상수에 집어넣는 것은 자바에서는 지원하지 않는 문법이다.

이것이 바로.. 함수형 프로그래밍 언어!
함수를 일급 시민으로 취급한다는 표현을 사용한다.

일급시민이 무슨 말이냐!

  • 함수에 매개변수로 넘기거나 변수에 대입하는 것이 가능한 존재
  • 함수를 변수처럼 다룰 수 있고, 함수의 반환값으로 함수를 넘기는 것도 가능한 것!

HTTP 전송 데이터의 형식 JSON

JSON = JavaScript Object Notation, 자바스크립트에서 객체를 표기하는 방법

JSON vs. XML

XML 역시 데이터를 전송하기 위한 데이터 형식이다. HTML과 비슷해 보이지만 SGML이라는 마크업 언어에서 파생된 데이터 형식이다.

데이터의 크기 면에서 JSON이 XML보다 작기 때문에 전송 시 발생하는 시간이나 비용이 절약된다.

profile
영차영차 😎

0개의 댓글