39P by neo 8달전 | ★ favorite | 댓글 10개
  • 올해 자바스크립트 30주년을 맞아서 Deno가 그동안의 역사를 간략히 요약
  • 자바스크립트는 10일 만에 개발된 스크립트 언어에서 시작해, 현재 세계에서 가장 인기 있는 언어로 자리잡음
  • JavaScript가 어떻게 발전해 왔고 앞으로 어디로 향하는지 보여주는 몇 가지 주요 역사적 순간을 소개

A brief history of JavaScript (1994-2025)

[1994]

  • Netscape Navigator 1.0 출시

    • 1994년 12월, Netscape Navigator 1.0 출시
    • 이전 브라우저들보다 빠르고, GUI를 갖춘 점이 인기 요인
    • HTML 2.0 지원과 함께, 이후 자바스크립트가 이 브라우저에서 실행될 기반이 마련됨

[1995]

  • JavaScript의 탄생

    • 1995년 5월, Brendan Eich10일 만에 자바스크립트 초안 개발
    • 당시 인기 있던 Java와 유사한 문법을 갖춘 스크립트 언어 요청에 따라 개발됨
    • 이름은 마케팅 목적상 JavaScript로 결정
  • Netscape와 Sun의 공식 발표

    • 1995년 12월, 자바스크립트를 “웹을 위한 경량 객체지향 스크립팅 언어” 로 발표
    • 28개 기술 기업들의 지지를 받아 발표되며, 엔터프라이즈 환경까지 고려한 언어로 포지셔닝됨

[1996]

  • Microsoft의 대응

    • 1996년 3월, Microsoft가 Internet Explorer 3에 JScript 탑재
    • JScript는 ActiveX와 연동되어 Excel 같은 응용프로그램을 제어할 수 있었음
  • JavaScript 1.0 탑재된 Navigator 2.0 출시

    • 같은 해 3월, Netscape Navigator 2.0에서 JavaScript 1.0 정식 데뷔
    • DOM(Document Object Model) 개념이 이 시점에서 시작됨

[1997]

  • ECMA에 표준화 제안

    • 1997년 6월, Netscape가 자바스크립트를 ECMA International에 표준화 제안
    • Microsoft의 JScript와의 호환 문제 해결 목적
    • ECMA-262라는 명세가 만들어지고, 명칭은 ECMAScript로 지정
    • TC39 위원회 구성되어 언어 발전 관리 시작

[1998]

  • Mozilla 프로젝트 출범

    • 1998년 1월, Microsoft의 브라우저 시장 독점에 대응해 Netscape가 소스코드 오픈
    • 프로젝트 명칭은 “Mozilla”로, 이후 Firefox, Rust 등 다양한 오픈소스 성과로 이어짐
  • ECMAScript 2 발표

    • 1998년 9월, ECMAScript 2 정식 발표
    • 새로운 기능은 없었으나, 명세의 일관성 및 정제된 문서화가 주요 목표였음

[1999]

  • IE5와 XMLHttpRequest 도입

    • 1999년 3월, IE5에서 XMLHttpRequest 도입
    • 이는 이후 AJAX 기술의 기반이 됨
  • JSDoc 등장

    • 1999년 4월, JavaScript 문서화를 위한 JSDoc 도입
    • 자바 기반 Javadoc의 영향을 받았으며, 현재도 문서 생성 도구로 사용 중
  • ECMAScript 3 발표

    • 1999년 12월, ECMAScript 3 정식 발표
    • do-while, 정규표현식, 문자열 메서드 추가, 예외처리 등으로 언어의 본격적인 성장 기반 마련
    • 이후 10년 이상 웹 표준 자바스크립트의 사실상 기준으로 사용됨

[2001]

  • JSON의 첫 등장

    • 최초의 JSON 메시지가 전송됨
    • 웹 페이지 내 스크립트에서 { to, do, text } 형태의 객체 구조 사용
    • 자바스크립트 기반의 경량 메시지 포맷으로, 이후 웹 API 통신의 표준이 됨

[2002]

  • JSLint 도입

    • Douglas Crockford가 정적 문법 검사 도구 JSLint를 발표
    • 자바스크립트 코드 품질을 높이고, 이후 그의 저서 “JavaScript: The Good Parts” 로 이어짐
  • Firefox의 전신 Phoenix 0.1 출시

    • Mozilla 커뮤니티가 기존 제품군의 무거움에 반발해 경량 브라우저 Phoenix를 개발
    • 탭 브라우징, 팝업 차단 등 혁신적 기능 제공 → 후에 Firefox로 발전

[2003]

  • Apple의 Safari와 WebKit 발표

    • Safari 브라우저와 WebKit 엔진 도입으로, Mac의 Microsoft 종속성 탈피
    • 이후 iPhone에서 Mobile Safari의 기반이 됨

[2004]

  • Gmail과 AJAX

    • Gmail의 AJAX 기반 인터페이스로, 새 시대의 웹앱 UX 기준 제시
    • 페이지 전체 리로드 없이 서버와 데이터 교환 → Web 2.0 시대 개막

[2005]

  • AJAX 용어의 정립

    • Jesse James Garrett가 “AJAX”라는 개념 명문화
    • JavaScript + XML 조합을 통해 비동기 서버 통신 구조 정립
  • Mozilla DevMo 출범 → MDN으로 발전

    • 표준 기반 자바스크립트 문서화 허브 MDN 시작
    • 파편화된 브라우저 지원 문서의 통합된 기준 제공

[2006]

  • jQuery 등장

    • John Resig가 jQuery 프로젝트 시작
    • DOM 조작, 이벤트 처리, AJAX 등 크로스브라우저 이슈 해결에 큰 기여
    • 간결한 API로 폭발적 확산

[2007]

  • 아이폰 출시와 Flash 미지원

    • Apple iPhone 발표, Safari는 Flash 미지원
    • 이는 모바일 환경에서 HTML+JavaScript 기반 콘텐츠로의 전환을 가속화

[2008]

  • Netscape Navigator 공식 종료

    • AOL이 Netscape 개발 종료, 1차 브라우저 전쟁 종료
    • MS의 IE 독점 → 반독점 소송으로 이어짐
  • JavaScript: The Good Parts 출간

    • Crockford의 저서가 자바스크립트를 전문 개발 언어로 재평가하는 계기 제공
  • Google Chrome과 V8 엔진 발표

    • Chrome 출시와 함께 V8 JavaScript 엔진 공개
    • JIT 컴파일, 가비지 컬렉션 최적화성능 대폭 향상
    • 이후 Node.js 등 서버 사이드 확장 기반 마련

[2009]

  • CommonJS 등장

    • 브라우저 외 환경(서버 등)에서 모듈화된 JS 코드 사용 표준화 시도
    • 이는 이후 Node.js 생태계의 모듈 구조 기반이 됨
  • Node.js 프로젝트 시작

    • Ryan Dahl이 Node.js 개발 착수
    • JavaScript를 서버 환경에서 실행할 수 있게 하며, 풀스택 언어로 확장
  • Oracle의 Sun Microsystems 인수

    • Java와 함께 JavaScript 상표권도 Oracle로 이관
    • JavaScript 명칭에 대한 상표 이슈 발생
  • Express.js 등장

    • Express.js 첫 커밋, Node.js 기반의 웹 프레임워크
    • REST API 구축 중심의 미들웨어 구조 제안
  • ECMAScript 5 발표

    • 엄격 모드(strict mode), JSON 지원, Array 메서드 추가 등 현대 JS 기능 기반 정비
  • CoffeeScript 등장

    • 간결한 문법, 화살표 함수, 구조 분해 등 ES6 이전의 문법 개선 실험
    • 이후 JavaScript 문법 발전에 간접적 영향 끼침

[2010]

  • npm 1.0 출시

    • 자바스크립트용 패키지 매니저 npm이 정식 출시되어 코드 공유와 재사용의 표준화 시작
    • 현재 3백만 개가 넘는 패키지를 보유한 세계 최대 오픈소스 레지스트리로 성장
  • WebStorm 1.0 출시

    • JetBrains에서 최초의 전용 자바스크립트 IDE 출시
    • 정적 분석, 오류 탐지, 자동완성, 디버깅 기능을 통합 제공
  • AngularJS & Backbone.js 등장

    • SPA 프레임워크 붐의 시작
    • Angular는 선언형/의존성 주입 중심, Backbone은 절차형/간결성 중심
    • 이 시기부터 프레임워크의 빈번한 등장과 소멸 현상이 나타남 ("Framework churn")

[2011]

  • Node.js의 Windows 포팅

    • Joyent와 Microsoft의 협업으로 Node.js가 Windows에서도 동작하게 됨
    • libuv 라이브러리 개발 → 비동기 I/O 통합 플랫폼 제공
    • 이후 TypeScript, VSCode, Azure 전략 등으로 이어지는 MS의 오픈소스 행보의 시작

[2012]

  • Webpack 등장

    • 웹 자산 번들링 도구로서 모듈 시스템을 클라이언트로 확장
    • 이후 React, Angular, Vue 등의 핵심 빌드 시스템으로 채택
  • TypeScript 0.8 공개

    • Microsoft에서 정적 타입 기반 자바스크립트 슈퍼셋 발표
    • 대규모 프로젝트에 적합한 구조 제공, 이후 ES 표준에 영향

[2013]

  • Electron의 전신 Atom Shell 시작

    • HTML/CSS/JS로 데스크탑 앱 개발 가능
    • Slack, Visual Studio Code 등에서 채택되며 데스크탑 개발 방식 변화
  • asm.js 공개

    • C/C++ 코드를 JS로 변환하여 브라우저 내 고성능 계산 가능
    • 이후 WebAssembly로 발전
  • MEAN 스택 정의

    • MongoDB + Express + Angular + Node.js 조합 명명
    • JavaScript 기반 풀스택 개발 방식 확산
  • React 공개

    • Facebook에서 내부 사용 후 오픈소스로 공개
    • 컴포넌트 기반 UI 개발 패러다임 정착
  • ESLint 개발 시작

    • Nicholas C. Zakas에 의해 시작된 확장 가능한 린팅 도구
    • 기존 린터들보다 커스터마이징 가능성이 높아 빠르게 확산
  • Gulp 출시

    • 구성 중심의 Grunt와 달리 코드 기반 스트리밍 빌드 도구
    • 자바스크립트로 빌드 작업을 자동화하는 흐름 형성

[2014]

  • Vue.js 출시

    • Evan You가 발표한 점진적 UI 프레임워크
    • React의 선언형 UI와 Angular의 템플릿 기능을 절충
  • Express.js 인수

    • StrongLoop가 Express.js 인수 → 이후 IBM에 인수됨
    • 커뮤니티 독립성 문제 제기로 Koa 등 후속 프레임워크 등장
  • Babel.js 시작 (구 6to5)

    • 최신 JS 문법을 구형 브라우저에서도 실행 가능하게 해줌
    • 모든 프레임워크의 표준 트랜스파일러로 정착
  • Meteor 1.0 출시

    • 실시간, 단일 스택 웹앱 개발 도구로 주목
    • 이후 GraphQL, Firebase 등 실시간 기술에 영향을 줌
  • Facebook의 Flow 공개

    • 정적 타입 검사 도구로 JS 오류를 사전에 탐지
    • 이후 TypeScript의 성장으로 사용률은 감소
  • AWS Lambda 발표

    • JavaScript(Node.js) 기반 서버리스 컴퓨팅 도입
    • 이벤트 기반 함수 실행을 통해 인프라 관리 없이 백엔드 구현 가능
  • io.js 포크

    • Joyent의 느린 Node.js 릴리스에 반발해 커뮤니티에서 io.js 분기
    • 이후 2015년 Node.js로 재병합됨

[2015]

  • Jamstack 용어 등장

    • JavaScript + API + Markup 조합 강조
    • SSR과 SSG 방식이 각광받으며 정적 사이트 생성기 부상
  • Node.js Foundation 설립

    • io.js와의 통합을 포함해 커뮤니티 거버넌스 정비
    • IBM, Microsoft 등 주요 기업 참여
  • GraphQL 런칭

    • 페이스북에서 개발한 API 쿼리 언어
    • 선언형 방식, 강타입 설계, 서버 요청 최소화를 특징
  • Redux 출시

    • React의 상태관리를 위한 예측 가능한 상태 컨테이너
    • 이후 Vue, Angular 등에서도 채택
  • WebAssembly 발표

    • 브라우저에서 C/C++ 등의 고성능 코드 실행 가능
    • asm.js의 후속으로 웹의 범용 실행 환경으로 자리매김
  • Atom 1.0 출시

    • GitHub에서 만든 Electron 기반 해커블 텍스트 에디터
    • VSCode에 직접적 영향을 미침
  • ECMAScript 6 (ES2015) 정식 발표

    • import/export, let/const, Promise, fetch대규모 문법 개선
    • 현대 자바스크립트의 기반이 되는 버전
  • Node.js와 io.js 통합

    • Node.js v4.0 발표로 두 프로젝트가 하나로 재통합
    • 장기 지원(LTS), 의미있는 버전 정책 확립

[2016]

  • Microsoft, Chakra 엔진 오픈소스화

    • Edge 브라우저의 JS 엔진인 Chakra 오픈소스화
    • 개발자 커뮤니티 관심 받았으나, 이후 V8 우세에 밀려 중단
  • Leftpad 사건 발생

    • left-pad 모듈 삭제로 인해 대규모 패키지 의존성 붕괴 사태 발생
    • npm 정책 변화 계기
  • VSCode 1.0 출시

    • Electron과 TypeScript 기반 경량 IDE
    • 빠른 속도, 확장성, 우수한 JS/TS 지원으로 빠르게 인기
  • ECMAScript 2016 발표

    • ** 연산자와 array.includes() 등 소규모 업데이트
  • Angular2 발표

    • AngularJS와는 완전히 다른 TypeScript 기반 컴포넌트 아키텍처
    • AOT 컴파일 및 보안 강화로 엔터프라이즈 선택지로 부상
  • Next.js 1.0 출시

    • React 기반 서버사이드 렌더링 프레임워크
    • SEO와 퍼포먼스를 고려한 풀스택 React 개발 표준화 추진

[2017]

  • Temporal 제안 초기 커밋

    • Date 객체의 문제점 해결을 위한 Temporal API 제안
    • 2021년에 ECMAScript 표준에 포함 승인, 현재 일부 환경에서만 지원
  • Prettier 1.0 출시

    • 일관된 코드 스타일을 자동 적용하는 포매터
    • Python의 Black, Rust의 포매터 등장에도 영향
  • ECMAScript 2017 공개

    • async/await, Object.entries(), Object.values() 등 현대 JS 기능 도입
    • fetch() 사용의 일반화
  • Yarn 출시

    • npm의 느림과 충돌을 해결하기 위한 패키지 매니저
    • yarn.lock, 병렬 설치, 캐시 등 혁신적 기능 도입
  • Cloudflare Workers 출시

    • 엣지 컴퓨팅 시대 개막
    • 서버리스 코드가 전세계에 분산 실행 가능

[2018]

  • Puppeteer 1.0 출시

    • 헤드리스 Chrome 기반 브라우저 자동화 도구
    • Node.js 친화적인 API로 Selenium 대비 간결함 제공
  • TensorFlow.js 출시

    • 브라우저에서 머신러닝 실행 가능
    • WebGL/WebGPU 기반 실시간 AI 앱 구현
  • Smooshgate

    • Array.flatten 명칭 충돌로 인해 flat()으로 변경
    • MooTools와의 호환성 문제에서 비롯됨
  • Ryan Dahl의 Deno 발표

    • Node의 문제점 회고와 함께 Deno 런타임 초기 공개
  • ECMAScript 2018 공개

    • promise.finally(), async iteration, 객체 rest/spread 도입

[2019]

  • OpenJS Foundation 출범

    • Node.js Foundation과 JavaScript Foundation 통합
    • 서버/클라이언트 프로젝트 거버넌스 통합
  • Node.js v12: ESM 실험적 지원 시작

    • .mjs, type: module 등을 통해 ES 모듈 실험 도입
  • ECMAScript 2019 공개

    • Object.fromEntries(), String.prototype.trimStart() 등 추가
  • Node.js v13.2: ESM 정식 안정화

[2020]

  • SpaceX Dragon, JS로 우주 진출

    • 크롬 기반 터치스크린 인터페이스에 자바스크립트 사용
  • Deno 1.0 출시

    • TypeScript 기본 지원, 퍼미션 모델, HTTP import 등 혁신적 접근
  • Adobe Flash 공식 종료

    • JS 중심의 웹 멀티미디어 환경 정착

[2022]

  • Deno, TC39 가입

    • 자바스크립트 표준화 참여 선언
  • IE11 지원 종료

    • 표준 기반 웹 생태계로의 이행 마무리
  • ECMAScript 2022 발표

    • top-level await, 클래스 정적 블록 등 추가

[2023]

  • Bun 1.0 출시

    • Zig로 구현된 초고속 Node.js 대체 런타임
    • npm 호환, 빌드 도구 통합

[2024]

  • Node.js 마스코트 Rocket Turtle 선정

    • 커뮤니티 공모전 통해 최종 캐릭터 확정
  • ECMAScript 2024 공개

    • toWellFormed() 등 Unicode 처리 강화
  • JSR 레지스트리 출시

    • Deno 팀의 모던 ECMAScript 모듈 전용 레지스트리
    • TypeScript, Deno, Bun, Cloudflare Workers와 호환
  • FreeJavaScript 운동 시작

    • Oracle의 JavaScript 상표 반환 촉구 캠페인
    • Brendan Eich 등 주요 인물 서명
  • Deno 2 출시

    • Node 호환성 개선, 광고까지 집행하며 런타임 전쟁 본격화

[2025]

  • TypeScript의 Go 포팅 발표

    • 10배 이상 빠른 성능을 목표로 tsgo 프로젝트 진행 중
    • TypeScript 7.0부터 공식 채택 예정
  • Copilot Chat 오픈소스화 선언

    • VSCode를 오픈소스 AI 개발 IDE로 전환하는 Microsoft의 전략 발표

[마무리]

  • 자바스크립트는 단순한 스크립트 언어에서 시작해, 웹 프론트엔드·백엔드·머신러닝·우주항공·AI 개발 IDE까지 아우르는 범용 개발 언어로 발전했음
  • 오픈소스 커뮤니티, 지속적인 문법 발전, 그리고 런타임 혁신이 그 성장을 이끌었으며, 앞으로도 더 빠르고, 더 똑똑한 도구들과 함께 웹을 넘어 더 넓은 영역으로 확장될 예정임

좋은 자료 감사합니다.

익스 3 버전은 거진 쓰레기였고. 네비게이터 3이 당시 거의 표준이었는데 익스 4가 나오면서 상황이 뒤집혔죠. 더군다나 익스 4는 윈도우에 기본 설치되어 있었구요.

네비게이터 4가 나오긴 했는 데 상황을 뒤집을 만큼 좋지가 않았었습니다. 그래서 계속 익스의 점유율이 높아 졌구요.

네비게이터가 오픈소스로 전환하면서 모질라 프로젝트 생기고 피닉스 베타 버전이 나왔는 데 그 때 확 뭔가 달라졌다는 걸 사용자들이 느끼기 시작했을 겁니다. 저를 포함해서요. 트레이드 마크 문제 때문에 파이어폭스로 이름을 바꾸고 이 때 부터 파폭이 익스의 제대로 됀 경쟁자로 자리잡게 됩니다.

이름이 피닉스 -> 파이어버드 -> 파이어폭스 이렇게 바뀌었을 겁니다. 파이어버드라는 데이터베이스가 이미 있어서 그랬을 겁니다.

뭔가 쭉 읽는데 중간부터 울컥하네요
엄청 최근 같은데, 엄청 또 옛날 같아서...

원문을 엄청 잘 정리해뒀네요. 스크린샷과 추억의 코드들까지...! Deno도 더욱 잘 되었으면 합니다. ㅎㅎ

자바스크립트의 발전은 Node.js 출시 전과 후로 나뉘는 것 같네요.

Java와 함께 JavaScript 상표권도 Oracle로 이관. 이 부분은 처음 알았네요

애시당초 JS의 상표권을 썬이 가지고 있었는데 썬이 먹히면서 JS 상표권(과 MySQL 등)도 오라클에 이관되었죠.

원글에는 이미지랑 각종 코드도 많으니 같이 보시면 좋습니다

이제는 언어가 아닌 구현체 표준이 되어버린... 좋든 싫든 레거시까지 가져가야하는 문법이 되지 않았나 싶습니다.