자바스크립트: 배경과 주요특징

hyeon·2024년 10월 7일

1. JS의 역사

자바스크립트의 탄생(1995년)

JavaScript는 Brendan Eich가 넷스케이프 커뮤니케이션에서 근무하는 동안 불과 10일 만에 만들어졌다. 처음에는 모카(Mocha)로 불렸고 이후에는 라이브스크립트(LiveScript)로 불렸지만 Java의 인기에 편승하기 위한 마케팅 활동으로 빠르게 자바스크립트(JavaScript)로 이름이 바뀌었다.

  • Mocha → LiveScript → Javascript

표준화(1997년)

JavaScript의 인기가 높아짐에 따라 다양한 브라우저가 자체 버전을 구현하기 시작하여 호환성 문제가 발생했다. 이를 해결하기 위해 1997년에 JavaScript 표준화 프로세스가 시작되었다. 표준화는 1999년에 ECMA-262라는 이름으로 완료되었으며, 이는 해당 언어를 ECMAScript로 공식화했다.

Ajax 등장(2005년)

Ajax는 비동기 웹 애플리케이션 개발을 지원하여 웹 개발에 혁명을 일으켰다.
즉, 웹페이지는 전체 페이지를 새로 고칠 필요 없이 백그라운드에서 데이터를 로드할 수 있다는 의미이다. Gmail 및 Google 지도와 같은 서비스로 인기를 얻은 Ajax는 보다 원활하고 응답성이 뛰어난 사용자 경험을 제공하여 폭발적인 UX 향상을 이루었다.

V8 엔진 출시(2008년)

Google은 JavaScript 성능의 판도를 바꾼 V8 JavaScript 엔진을 개발했다. V8은 기존 해석 방법을 우회하고 JavaScript를 기계어 코드로 직접 컴파일하여 코드 실행 속도를 크게 향상시켰다. 또한 성능과 리소스 사용을 최적화하는 고급 컴파일러와 효율적인 메모리 관리 시스템도 포함되어 있다.

Node.js의 등장(2009년)

Node.js는 개발자가 서버 측에서 JavaScript를 사용할 수 있도록 하여 서버 개발에 혁명을 일으켰다. 이는 PHP, Ruby, Python, Java와 같은 기존 서버 측 언어에서 상당한 변화를 가져왔다. Node.js를 사용하면 개발자는 FrontEnd, BackEnd, DB(ex: MongoDB)까지 모두 구축할 수 있다.

ES6 버전 출시(2015년)

ES6는 JavaScript 언어의 주요 업데이트로, 코딩을 더 쉽고 효율적으로 만드는 새로운 구문과 기능을 도입했다. let 및 const, 화살표 함수, 클래스, 약속 및 모듈과 같은 주요 기능은 JavaScript의 기능과 유연성을 향상시켰다.

프론트엔드 프레임워크(React, Vue, Angular)의 대중화

2010년대 중반부터 프론트엔드 JavaScript 프레임워크가 주목을 받아 개발자가 복잡한 웹 애플리케이션을 보다 효과적으로 처리할 수 있게 되었다. 2013년 Facebook이 개발한 React는 동적 사용자 인터페이스를 구축하기 위한 구성 요소 기반 아키텍처를 도입했다. 2010년에 Google이 만든 Angular는 대규모 애플리케이션을 위한 강력한 프레임워크를 제공했다. 2014년 Evan You가 출시한 Vue는 더 간단하면서도 강력한 대안을 제시했다. 이러한 프레임워크는 현대 웹 개발에 필수적인 도구가 되었다.

2. JS 언어의 특징

(1) 객체 지향 프로그래밍 지원

자바스크립트는 객체 지향 프로그래밍이 가능한 언어로서, 객체를 생성하고 관리하는 데에 강점이 있다. 이를 통해 복잡한 기능을 구현할 수 있다.

객체지향 vs 절차지향

절차지향 프로그래밍은 순서대로 실행되는 일련의 과정을 단계적으로 기술하여 프로그램을 만드는 것이고, 객체지향 프로그래밍은 데이터와 함수를 객체라는 그룹으로 묶어서 처리하는 방법이다.

(2) 동적 타이핑

JavaScript는 동적으로 유형이 지정된다. 즉, 변수 유형은 컴파일 타임이 아닌 런타임에 결정된다. 이를 통해 개발자는 변수 유형을 명시적으로 선언할 필요가 없으므로 유연하고 간결한 코드를 작성할 수 있다.

(3) 함수형 프로그래밍 지원

JavaScript는 함수를 변수에 할당하고, 인수로 전달하고, 다른 함수에서 반환할 수 있다. 고차 함수, 클로저와 같은 기능은 코드의 재사용성과 가독성을 높일 수 있다.

(4) 비동기 처리

JavaScript는 특히 callback, promise, async/await 구문과 같은 메커니즘을 통해 비동기 처리를 처리하는 데 탁월하다. 비동기 처리를 통해, JavaScript는 나머지 코드 실행을 중단하지 않고 작업을 수행할 수 있다. 이는 서버에서 데이터를 가져오거나 파일을 로드하는 등 시간이 걸리는 작업에 특히 유용하다.

(5) 클라이언트 및 서버

JavaScript는 클라이언트 측뿐만 아니라 Node.js를 통해 서버 측에서도 활용되어 전체 웹 개발 프로세스에 대한 통합 언어를 가능하게 한다

profile
당근🥕

1개의 댓글

comment-user-thumbnail
2024년 10월 7일

잘 보고있습니다 ㅎㅎ

답글 달기