자바스크립트는 1995년에 Netscape Communications의 Brendan Eich에 의해 개발되었습니다. 원래는 Mocha라는 이름으로 개발되었으나, 그 후 LiveScript로 이름이 바뀌었고, 마침내 JavaScript로 정착하게 되었습니다.
그 당시 웹 브라우저 Netscape Navigator에서 동적인 웹 페이지를 제공하기 위한 목적으로 만들어졌습니다. 이는 웹 페이지에 동적인 요소를 추가하여 사용자 인터페이스를 개선하는 데 중점을 두었습니다.
JavaScript는 이름은 Java와 비슷하지만, Java와는 다른 언어입니다. 당시 Java가 인기를 끌고 있어서, 마케팅 전략의 일환으로 JavaScript라는 이름이 선택되었습니다.
JavaScript는 처음에는 클라이언트 측 스크립팅 언어로 시작했지만, 이후 Node.js와 같은 기술의 출현으로 서버 측 스크립팅에도 널리 사용되게 되었습니다. 또한 JSON (JavaScript Object Notation)이라는 데이터 형식도 JavaScript에서 파생되었으며, 현재는 데이터 전송 형식으로 널리 사용되고 있습니다.
JavaScript는 웹 개발의 주요 구성 요소 중 하나로, HTML과 CSS와 함께 웹의 세 가지 기본 기술 중 하나로 인정받고 있습니다. 이는 현대의 인터넷 환경에서 웹 애플리케이션을 만드는 데 필수적인 도구입니다.
💡 자바스크립트와 크로스 브라우징은 밀접하게 연관되어 있습니다.
"크로스 브라우징"이란 여러 종류의 웹 브라우저에서 웹 페이지나 웹 애플리케이션이 제대로 동작하도록 만드는 것을 말합니다. 이는 다양한 웹 브라우저들이 HTML, CSS, 자바스크립트 등을 약간씩 다르게 해석하고 처리하기 때문에 필요한 개념입니다.
자바스크립트는 웹 페이지에 동적인 요소를 추가하기 위한 주요 언어입니다. 그러나 각기 다른 웹 브라우저는 자바스크립트 코드를 조금씩 다르게 해석하거나 실행할 수 있습니다. 또한, 브라우저마다 지원하는 자바스크립트의 기능이나 API가 다를 수도 있습니다.
따라서 웹 개발자들은 자바스크립트 코드가 모든 주요 브라우저에서 제대로 동작하도록 "크로스 브라우징"을 고려해야 합니다. 이를 위해 자바스크립트 기능 감지, CSS 접두사 추가, 폴리필(polyfill) 사용 등 다양한 기법을 사용하게 됩니다.
ECMAScript는 자바스크립트 언어를 기술하는 표준입니다. 이 표준은 국제 표준화 기구인 ECMA International에 의해 관리되고 있습니다.
ECMAScript 표준은 자바스크립트의 문법, 타입, 객체, 함수 등과 같은 핵심 기능을 정의합니다. 이 표준을 따르면, 다양한 소프트웨어 시스템이나 엔진이 자바스크립트 코드를 일관되게 처리하고 해석할 수 있습니다.
ECMAScript는 자바스크립트의 발전과 혁신을 위한 중요한 역할을 합니다. 주기적으로 새로운 버전이 출시되며, 각 버전은 새로운 기능이나 개선사항을 도입합니다. 예를 들어, ECMAScript 2015 (ES6라고도 불림)는 클래스, 모듈, 화살표 함수, 프로미스 등 많은 중요한 기능을 자바스크립트에 도입했습니다.
V8은 자바스크립트 코드를 실행하기 위한 도구로, 자바스크립트 코드를 기계 코드로 직접 컴파일하고 실행합니다. 이는 웹 브라우저에서 자바스크립트 코드가 빠르게 실행될 수 있게 해주는 역할을 합니다.
또한, V8은 Node.js에서 사용되는 핵심 구성 요소입니다. Node.js는 서버 환경에서 동작하는 자바스크립트 런타임인데, 이는 V8 엔진을 기반으로 구축되어 있습니다. 이를 통해 자바스크립트를 사용하여 서버 측 애플리케이션을 개발하고 실행할 수 있게 되었습니다.
따라서 V8 엔진은 자바스크립트 언어의 성능을 향상시키고, 그 사용 범위를 넓히는 데 중요한 역할을 하는 도구입니다.
SPA는 "Single Page Application"의 약자로, 단일 페이지 웹 애플리케이션을 의미합니다. 전통적인 웹 애플리케이션에서는 사용자가 페이지를 이동할 때마다 새로운 HTML을 서버에서 받아와서 페이지 전체를 새로 로드합니다. 그러나 SPA에서는 한 번 페이지를 로드한 이후에는 필요한 데이터만을 서버에서 불러와서 페이지를 동적으로 업데이트합니다.
SPA 개발을 돕기 위한 다양한 프레임워크들이 있습니다. 대표적인 예로는 AngularJS, React, Vue.js 등이 있습니다.
AngularJS: 구글이 개발한 SPA 프레임워크로, HTML을 확장하여 웹 애플리케이션 개발에 적합한 환경을 제공합니다. 또한, Angular는 MVC (Model-View-Controller) 패턴을 사용하여 코드 구조를 관리합니다.
React: 페이스북이 개발한 자바스크립트 라이브러리로, 유저 인터페이스를 구축하는데 사용됩니다. 가상 DOM (Virtual DOM)을 활용하여 빠른 렌더링 성능을 제공하며, 컴포넌트 기반의 개발 방식을 채택하고 있습니다.
Vue.js: 사용자 친화적이며 학습 곡선이 낮은 SPA 프레임워크로 알려져 있습니다. React와 비슷하게 가상 DOM을 사용하며, Angular와 비슷하게 디렉티브를 통한 HTML 확장을 제공합니다.
각 SPA 프레임워크는 자체적인 장단점과 특성을 가지고 있으며, 프로젝트의 요구 사항에 따라 적합한 것을 선택하게 됩니다.