자바스크립트는 기본적으로 웹 브라우저에서만 동작하는 인터프리터 방식 언어라 과거에는 자바스크립트를 프론트엔드 개발에만 사용했습니다.
NOTE 인터프리터 방식과 컴파일 방식
컴퓨터는 기계어로 작성한 명령만 이해합니다. 따라서 개발자가 작성한 소스 코드를 실행하려면 컴퓨터가 이해할 수 있는 기계어로 변환해야 합니다. 이렇게 소스 코드를 기계어로 변환해 실행하는 방식에는 인터프리터(interpreter) 방식과 컴파일(compile) 방식이 있습니다. 이 두 방식은 소스 코드를 기계어로 변환하는 방법과 시점에 다음과 같은 차이가 있습니다.
• 인터프리터 방식: 소스 코드를 한 줄씩 읽고 그 즉시 기계어로 변환해 실행합니다. 모든 코드가 실행될 때까지 코드를 읽고 실행하는 작업을 반복합니다.
• 컴파일 방식: 전체 소스 코드를 읽고 분석한 후 한꺼번에 기계어로 변환(컴파일)하며, 그 결과물인 실행 파일을 저장해 실행합니다. 만약 소스 코드를 수정하면 전체 소스 코드를 다시 컴파일한 후 실행합니다.
Node.js가 등장하면서 자바스크립트는 프론트엔드 개발뿐만 아니라 백엔드 개발에도 사용할 수 있게 됐습니다. Node.js는 자바스크립트 코드를 런타임 환경(runtime environment)에서 실행할 수 있게 해주는 기술입니다. 프로그램이 실행되는 동안 필요한 소프트웨어와 하드웨어 자원을 제공하는 공간인 런타임 환경만 있으면 자신이 작성한 코드를 외부 환경과 상관없이 어디서든 독립적으로 실행할 수 있습니다.