JavaScript 역사와 개념
1995년 넷스케이프에서 탄생한 JavaScript의 여정
1995 탄생
브라우저 전쟁
ECMAScript 표준화
DOM / BOM
모던 JavaScript
CHAPTER 01
JavaScript의 탄생 (1995년)
브렌던 아이크(Brendan Eich)가 넷스케이프와 썬 마이크로시스템즈와 함께 개발한 JavaScript. 웹 브라우저에서 동적인 기능을 제공하기 위해 탄생했어요.
1995년, 무슨 일이 일어났을까?
TIMELINE
🎯 JavaScript 1.0 출시
브렌던 아이크가 10일만에 만들어낸 언어. 초기에는 "Mocha", 후에 "LiveScript"라고 불렸어요.
🌐 당시 브라우저 시장
넷스케이프 네비게이터가 시장을 주도. 마이크로소프트는 IE로 추격 중.
✅ 초기 용도
폼 검증, 간단한 인터랙션 정도만 가능. 지금처럼 복잡한 앱 개발에는 사용 안 함.
핵심 인물
BIOGRAPHY
| 이름 | 역할 | 소속 |
|---|---|---|
| 브렌던 아이크 | JavaScript 창시자 | 넷스케이프 |
| 네비게이터팀 | 브라우저 개발 | 넷스케이프 |
| 마이크로소프트 | IE로 대응 | Microsoft |
💡 재미있는 사실: JavaScript는 Java와 무관해요. 마케팅상 Java의 인기를 타기 위해 "Java"라는 이름을 붙였을 뿐이에요!
CHAPTER 02
브라우저 전쟁과 표준화 (1996~1998)
각 브라우저마다 JavaScript를 다르게 구현하면서 개발자들이 혼란에 빠졌어요. 표준화가 절실했던 시대입니다.
문제: 비표준 구현
DOM 접근 방식 비교
넷스케이프 방식
document.layers['element']
IE 방식
document.all['element']
⚠️ 문제: 결과는 같지만 코드는 완전히 달라요. 개발자들은 각 브라우저마다 다른 코드를 짜야 했어요.
해결책: ECMAScript 표준화
표준화 과정
1998년 — W3C 주도
주요 브라우저 회사들이 협력하여 표준 수립
DOM Level 1 표준 발표
모든 브라우저가 따를 수 있는 공통 인터페이스 정의
✅ 결과: 호환성 개선
표준을 따르면 여러 브라우저에서 같은 코드가 동작
최종 승자: 마이크로소프트 IE
IE의 압도적 점유율
Windows 번들 전략
Windows 설치 시 IE가 기본으로 포함 → 자동으로 점유율 증가
Windows 설치 시 IE가 기본으로 포함 → 자동으로 점유율 증가
한국의 상황
2000년대 초: IE 점유율 거의 90%
2000년대 초: IE 점유율 거의 90%
개발자 불만
IE 비표준 때문에 IE에만 맞춘 사이트 개발 강요 😞
IE 비표준 때문에 IE에만 맞춘 사이트 개발 강요 😞
오픈소스의 반발: Firefox 탄생
넷스케이프의 부활
- 1998년 — 넷스케이프 개발 중단
- 2004년 — Firefox 1.0 출시 (오픈소스 기반)
- 의의 — 웹 표준 준수, 개발자 도구 강화
현재: 다양한 브라우저 공존
주요 브라우저들
Chrome
Google (2008~)
Safari
Apple (2003~)
Firefox
Mozilla (2004~)
Edge
Microsoft (2015~)
⚠️ IE의 유산: 2000년대 초 테이블 레이아웃, 독자적 DOM 구현 때문에 많은 개발자들이 고생했어요. 이것이 CSS와 웹 표준의 중요성을 깨닫게 한 계기였어요.
CHAPTER 03
DOM과 BOM
JavaScript가 웹페이지와 브라우저와 상호작용하는 방식을 정의하는 두 가지 객체 모델이에요.
DOM (Document Object Model)
정의
HTML 문서를 프로그래밍적으로 접근하고 수정할 수 있게 해주는 인터페이스
DOM으로 할 수 있는 작업
- HTML 요소 추가/삭제
- 속성 수정
- CSS 스타일 변경
- 이벤트 처리
- 텍스트 내용 수정
BOM (Browser Object Model)
정의
웹 브라우저 자체와 관련된 객체 모델. 브라우저의 기능에 접근해요.
BOM으로 할 수 있는 작업
- 브라우저 창 크기 조절
- 브라우저 기록(history) 접근
- 현재 URL 확인
- 쿠키/로컬스토리지 접근
- 스크린 정보 확인
DOM vs BOM
비교
DOM
대상
HTML 문서의 요소
역할
페이지 콘텐츠 조작
예시
HTML 문서의 요소
역할
페이지 콘텐츠 조작
예시
getElementById()
BOM
대상
브라우저 자체
역할
브라우저 기능 제어
예시
브라우저 자체
역할
브라우저 기능 제어
예시
window.open()
💡 우리가 배울 부분: 이 강의에서는 주로 DOM
CHAPTER 04
모던 JavaScript의 활용
JavaScript는 더 이상 브라우저 전용 언어가 아니에요. 다양한 환경에서 사용되고 있어요.
학습 장점
왜 JavaScript를 배워야 할까?
📚 배우기 쉬움
문법이 비교적 단순하고 진입장벽이 낮아요
문법이 비교적 단순하고 진입장벽이 낮아요
⚡ 즉각적 피드백
브라우저 콘솔에서 바로 실행하고 결과를 확인할 수 있어요
브라우저 콘솔에서 바로 실행하고 결과를 확인할 수 있어요
📖 풍부한 자료
웹 개발 분야에서 가장 많은 학습 자료와 커뮤니티가 있어요
웹 개발 분야에서 가장 많은 학습 자료와 커뮤니티가 있어요
JavaScript의 진화
시간으로 보는 JavaScript
| 시기 | 특징 | 사용처 |
|---|---|---|
| 1995년 | 탄생 | 브라우저 폼 검증 |
| 2000~2010 | 웹 2.0 시대 | AJAX, 동적 웹페이지 |
| 2015 (ES6) | 대혁신 | 화살표 함수, 클래스, 모듈 |
| 현재 | 풀스택 언어 | 프론트+백엔드+데스크톱+모바일 |
JavaScript의 활용 범위
현재 JavaScript가 사용되는 곳
🌐 Web Browser
인터랙티브 웹사이트
인터랙티브 웹사이트
🔧 Server (Node.js)
백엔드 서버 개발
백엔드 서버 개발
🖥️ Desktop (Electron)
데스크톱 앱 개발
데스크톱 앱 개발
📱 Mobile (React Native)
모바일 앱 개발
모바일 앱 개발
JavaScript의 구성
JavaScript = ECMAScript + Web API
ECMAScript (핵심 언어)
변수, 함수, 조건문, 반복문 등 언어 자체의 스펙
변수, 함수, 조건문, 반복문 등 언어 자체의 스펙
Web API (브라우저 기능)
DOM, BOM, Fetch, LocalStorage 등 브라우저가 제공하는 기능
DOM, BOM, Fetch, LocalStorage 등 브라우저가 제공하는 기능
현재 표준: ES6+ (2015년 이후)
현대 JavaScript의 특징
- const/let — 안전한 변수 선언
- 화살표 함수 — 간결한 함수 표현
- 클래스 — 객체지향 프로그래밍
- 모듈 — import/export로 코드 관리
- 비동기 처리 — async/await로 더 쉬운 처리
💡 모던 JavaScript의 핵심: 문법이 많이 개선되었어요. 이 강의에서는 현대적 문법(const/let, 화살표 함수 등)을 기준으로 배웁니다!