IT

🏠 ECMAScript 3 ν˜Έν™˜μ„± μ™„μ „ 정리 κ°€μ΄λ“œ

λͺ©μ°¨

Toggle

❌ ECMAScript 3(E3)λž€ λ¬΄μ—‡μΌκΉŒ

ECMAScript 3λŠ” 1999년에 κ³΅μ‹ν™”λœ μžλ°”μŠ€ν¬λ¦½νŠΈ ν‘œμ€€μ΄λ‹€. μ§€κΈˆ 보면 였래된 기술 κ°™μ§€λ§Œ, 2025년에도 μ—¬μ „νžˆ μ€‘μš”ν•œ μ΄μœ κ°€ μžˆλ‹€.
μ›Ήμ˜ 핡심 μ›λ¦¬λŠ” 늘 λ’€μͺ½ λ²„μ „κ³Όμ˜ ν˜Έν™˜μ„±μ„ μ „μ œλ‘œ 움직이기 λ•Œλ¬Έμ—, 였래된 μ½”λ“œκ°€ μ—¬μ „νžˆ μ‹€ν–‰λ˜λŠ” 배경을 μ΄ν•΄ν•˜λŠ” 것이 μ€‘μš”ν•˜λ‹€.


πŸ–₯ ECMAScript 3κ°€ 2025년에도 μ‚΄μ•„ μžˆλŠ” 이유

였래된 λΈŒλΌμš°μ €μ™€ μ‹œμŠ€ν…œ

곡곡기관, 였래된 μ€ν–‰κΆŒ, νŠΉμ • κΈ°μ—… λ‚΄λΆ€ μ‹œμŠ€ν…œμ—μ„œλŠ” IE 기반 μ„€λΉ„κ°€ 아직 μ™„μ „νžˆ μ œκ±°λ˜μ§€ μ•Šμ€ κ²½μš°κ°€ μžˆλ‹€.
이런 ν™˜κ²½μ—μ„œλŠ” ECMAScript 3 문법이 κΈ°λ³Έ ν˜Έν™˜ λ²”μœ„λ‹€.

κ΅¬ν˜• κΈ°κΈ° 및 μž„λ² λ””λ“œ μ›Ή λ·°μ–΄

슀마트 TV 초기 μ„ΈλŒ€, 였래된 ν‚€μ˜€μŠ€ν¬, 낑은 μ „μš© λΈŒλΌμš°μ €λ₯Ό νƒ‘μž¬ν•œ 기기듀은 μ΅œμ‹  JS 엔진을 νƒ‘μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€.
이듀은 ECMAScript 3만 μ™„μ „ μ§€μ›ν•˜λŠ” κ²½μš°κ°€ λ§Žμ•„, ν˜„μ‹€μ μœΌλ‘œ κ°œμ„ μ΄ μ–΄λ ΅λ‹€.

λ ˆκ±°μ‹œ μ½”λ“œ μœ μ§€λ³΄μˆ˜

2000λ…„λŒ€ ν›„λ°˜~2010λ…„λŒ€ μ΄ˆλ°˜μ— κ΅¬μΆ•λœ μ›Ή μ‹œμŠ€ν…œμ˜ 기반 문법이 λŒ€λΆ€λΆ„ E3 κΈ°λ°˜μ΄λ‹€.
이 μ½”λ“œλ₯Ό μ™„μ „νžˆ λ°”κΎΈλŠ” λ°λŠ” μ˜ˆμ‚°κ³Ό μ‹œκ°„μ΄ λ„ˆλ¬΄ 크기 λ•Œλ¬Έμ— μœ μ§€λ³΄μˆ˜κ°€ 더 ν˜„μ‹€μ μΈ 선택이닀.


❄ ECMAScript 3μ—μ„œ μ‚¬μš© κ°€λŠ₯ν•œ μ£Όμš” κΈ°λŠ₯ 정리

λ³€μˆ˜ μ„ μ–Έ

var ν‚€μ›Œλ“œλ§Œ μ‚¬μš© κ°€λŠ₯ν•˜λ‹€.
let, constλŠ” λ‹Ήμ—°νžˆ μ—†λ‹€.

ν•¨μˆ˜ μž‘μ„±

ν•¨μˆ˜ 선언식과 ν•¨μˆ˜ ν‘œν˜„μ‹λ§Œ μ‘΄μž¬ν•œλ‹€.
ν™”μ‚΄ν‘œ ν•¨μˆ˜λŠ” μ‚¬μš©ν•  수 μ—†λ‹€.

객체 ꡬ쑰

JSON μŠ€νƒ€μΌ κ°μ²΄λŠ” κ°€λŠ₯ν•˜μ§€λ§Œ, getter와 setterλŠ” μ—†λ‹€.

λ¬Έμžμ—΄ 처리

λŒ€λΆ€λΆ„μ˜ λ¬Έμžμ—΄ λ©”μ„œλ“œλŠ” μžˆμ§€λ§Œ ν…œν”Œλ¦Ώ λ¦¬ν„°λŸ΄μ€ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€.

반볡문

for, for in, while만 μ‘΄μž¬ν•œλ‹€.
for of, λ°°μ—΄ λ‚΄μž₯ 반볡 λ©”μ„œλ“œλŠ” μ§€μ›λ˜μ§€ μ•ŠλŠ”λ‹€.

μ˜ˆμ™Έ 처리

try, catch, finallyλŠ” λͺ¨λ‘ μ§€μ›λœλ‹€.


πŸŽ„ ECMAScript 3μ—μ„œ μ§€μ›λ˜μ§€ μ•ŠλŠ” κΈ°λŠ₯

이 뢀뢄은 특히 ν˜„λŒ€ κ°œλ°œμžκ°€ E3 기반 μ½”λ“œλ₯Ό λ§Œλ‚¬μ„ λ•Œ κ°€μž₯ 많이 λ‹Ήν™©ν•˜λŠ” μ˜μ—­μ΄λ‹€.

λͺ¨λ˜ λ³€μˆ˜ μ„ μ–Έ

let
const

λͺ¨λ˜ ν•¨μˆ˜

ν™”μ‚΄ν‘œ ν•¨μˆ˜
async, await

μ΅œμ‹  문법

ν…œν”Œλ¦Ώ λ¬Έμžμ—΄
μŠ€ν”„λ ˆλ“œ 문법
ꡬ쑰 λΆ„ν•΄ ν• λ‹Ή
클래슀
λͺ¨λ“ˆ μ‹œμŠ€ν…œ(import, export)

λ°°μ—΄ λ©”μ„œλ“œ

map
filter
reduce
find
some
every

β€» 이런 λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•˜λŠ” 경우 직접 κ΅¬ν˜„ν•˜κ±°λ‚˜ 폴리필을 포함해야 ν•œλ‹€.


🏠 ECMAScript 3 μ½”λ“œ μ˜ˆμ‹œ

이 μ‹œμ ˆμ˜ μžλ°”μŠ€ν¬λ¦½νŠΈ μŠ€νƒ€μΌμ„ λ³΄μ—¬μ£ΌλŠ” λŒ€ν‘œμ μΈ μ˜ˆμ‹œλ‹€.

var name = "홍길동";

function greet(msg) {
    return msg + " " + name;
}

var result = greet("μ•ˆλ…•ν•˜μ„Έμš”");
alert(result);

μ§€κΈˆ 보면 λ‹¨μˆœν•˜κ³  μ œν•œμ μ΄μ§€λ§Œ, 2025년에도 이 μ½”λ“œλ₯Ό μ™„μ „νžˆ 이해해야 ν•˜λŠ” μ΄μœ κ°€ μžˆλ‹€.


πŸ–₯ ECMAScript 3 ν˜Έν™˜μ„± 체크 κΈ°μ€€

2025년에도 μ›Ή κ°œλ°œμžκ°€ 확인해야 ν•˜λŠ” 핡심 지점은 λ‹€μŒκ³Ό κ°™λ‹€.

λΈŒλΌμš°μ € μ—”μ§„

IE8~IE7 기반 엔진은 E3만 μ™„μ „ 지원
λ‚΄μž₯ν˜• WebView(였래된 μ•ˆλ“œλ‘œμ΄λ“œ κΈ°κΈ° λ“±)λŠ” ES5μ‘°μ°¨ 미지원일 수 μžˆλ‹€

λŸ°νƒ€μž„ ν™˜κ²½

κΈ°μ—… λ‚΄λΆ€ ActiveX 기반 μ‹œμŠ€ν…œ
낑은 Kiosk 의 μ›ΉλΈŒλΌμš°μ €
κ΅¬ν˜• SmartTV μ›Ή μ—”μ§„

폴리필 제곡 μ—¬λΆ€

ES5 Shim
Custom Prototype ν™•μž₯
babel-polyfill(단 E3 λΈŒλΌμš°μ €μ—μ„œλŠ” ν•œκ³„κ°€ 쑴재)


❄ ECMAScript 3 ν™˜κ²½μ—μ„œ κ°œλ°œν•  λ•Œ μ£Όμ˜ν•  점

μ „μ—­ λ„€μž„μŠ€νŽ˜μ΄μŠ€ 좩돌 μœ„ν—˜

λ³€μˆ˜ μ„ μ–Έ 방식이 var뿐이기 λ•Œλ¬Έμ— μ˜€μ—Όλ˜κΈ° 맀우 쉽닀.

ν˜Έμ΄μŠ€νŒ… κ·œμΉ™

ν•¨μˆ˜ 및 λ³€μˆ˜ ν˜Έμ΄μŠ€νŒ…μ΄ λ¬Έμ œκ°€ λ˜λŠ” κ²½μš°κ°€ 많기 λ•Œλ¬Έμ— μ„ μ–Έ μˆœμ„œλ₯Ό 잘 μ§€μΌœμ•Ό ν•œλ‹€.

μŠ€μ½”ν”„ ꡬ쑰

블둝 μŠ€μ½”ν”„κ°€ μ—†κ³  ν•¨μˆ˜ μŠ€μ½”ν”„λ§Œ μ‘΄μž¬ν•œλ‹€.
쑰건문 λ‚΄λΆ€μ—μ„œ var μ„ μ–Έν•œ λ³€μˆ˜λŠ” ν•¨μˆ˜ 전체에 영ν–₯을 λ―ΈμΉœλ‹€.


πŸŽ„ ECMAScript 3μ—μ„œ ν˜„λŒ€ 문법을 μ‚¬μš©ν•΄μ•Ό ν•œλ‹€λ©΄?

2025년에도 μ‹€μ œλ‘œ 많이 μ“°λŠ” 방식은 λ‹€μŒκ³Ό κ°™λ‹€.

1. Babel을 μ‚¬μš©ν•΄ ES3 νƒ€κΉƒμœΌλ‘œ 컴파일

μ½”λ“œλŠ” μ΅œμ‹  문법을 μ“°κ³ , 결과물은 E3 μˆ˜μ€€μœΌλ‘œ λ³€ν™˜ν•œλ‹€.

2. 폴리필을 적극적으둜 포함

λ°°μ—΄ λ©”μ„œλ“œ, Object κ΄€λ ¨ κΈ°λŠ₯ 등은 직접 κ΅¬ν˜„ν•˜κ±°λ‚˜ 폴리필 μ‚¬μš©μ΄ ν•„μš”ν•˜λ‹€.

3. λ ˆκ±°μ‹œ ν™˜κ²½ 감지

userAgent 기반 탐지
κΈ°λŠ₯ 기반 탐지(feature detection)

4. μ•ˆμ „ν•œ λ„€μž„μŠ€νŽ˜μ΄μŠ€ μ „λž΅

μ¦‰μ‹œ μ‹€ν–‰ ν•¨μˆ˜λ‘œ μŠ€μ½”ν”„ 뢄리
μ „μ—­ λ³€μˆ˜ μ΅œμ†Œν™” μ „λž΅


🏠 결둠

ECMAScript 3λŠ” 맀우 였래된 ν‘œμ€€μ΄μ§€λ§Œ, 2025λ…„ 12μ›” κΈ°μ€€ μ—¬μ „νžˆ μ‹€λ¬΄μ—μ„œ ν•„μš”ν•œ λŠ₯λ ₯이닀.
특히 λ ˆκ±°μ‹œ μ‹œμŠ€ν…œ μœ μ§€λ³΄μˆ˜, κ΅¬ν˜• κΈ°κΈ° λŒ€μ‘, κΈ°μ—… λ‚΄λΆ€ μ‹œμŠ€ν…œ ν™˜κ²½μ—μ„œλŠ” ECMAScript 3 ν˜Έν™˜μ„± 이해가 ν•„μˆ˜λ‹€.

infodori1234

Recent Posts

πŸ–₯ NetBIOS over TCP IP NBT μ™„μ „ κ°€μ΄λ“œ

둜컬 λ„€νŠΈμ›Œν¬ ν™˜κ²½μ„ μ‘°κΈˆμ΄λΌλ„ 닀뀄본 μ‚¬λžŒμ΄λΌλ©΄ ν•œ λ²ˆμ―€μ€ λ§ˆμ£ΌμΉ˜λŠ” μ΅μˆ™ν•œ 단어가 μžˆμŠ΅λ‹ˆλ‹€. λ°”λ‘œ NetBIOS와 NBTμž…λ‹ˆλ‹€.…

2κ°œμ›” ago

🏠 JSON Schema: 데이터 μœ νš¨μ„± κ²€μ¦μ˜ ν‘œμ€€ 섀계도 πŸ–₯

μ•ˆλ…•ν•˜μ„Έμš”! ν˜„λŒ€ μ›Ή κ°œλ°œμ—μ„œ 데이터 κ΅ν™˜μ˜ 핡심인 JSON(JavaScript Object Notation)을 λ”μš± κ°•λ ₯ν•˜κ³  μ•ˆμ •μ μœΌλ‘œ λ§Œλ“€μ–΄μ£ΌλŠ” 도ꡬ,…

2κ°œμ›” ago

πŸ–₯ CoffeeScript μ™„μ „ κ°€μ΄λ“œ

CoffeeScriptλŠ” ν•œλ•Œ ν”„λ‘ νŠΈμ—”λ“œ 개발 μƒνƒœκ³„μ—μ„œ 맀우 인기 μžˆμ—ˆλ˜ μ–Έμ–΄μ˜€κ³ , μ§€κΈˆλ„ νŠΉμ • ν”„λ‘œμ νŠΈλ‚˜ λ ˆκ±°μ‹œ μ‹œμŠ€ν…œ, κ°„κ²°ν•œ…

2κ°œμ›” ago

🏠 λ©”λͺ¨λ¦¬ λˆ„μˆ˜(Memory Leak) μ‰½κ²Œ μ΄ν•΄ν•˜κΈ°: πŸ–₯ λ‚­λΉ„λ˜λŠ” μ»΄ν“¨ν„°μ˜ κΈ°μ–΅λ ₯ ❌

ν˜„λŒ€μ μΈ ν”„λ‘œκ·Έλž˜λ° ν™˜κ²½μ—μ„œ λ©”λͺ¨λ¦¬ λˆ„μˆ˜(Memory Leak)λŠ” μ—¬μ „νžˆ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ„±λŠ₯ μ €ν•˜μ™€ μΆ©λŒμ„ μΌμœΌν‚€λŠ” μ£Όμš” 원인 쀑…

2κ°œμ›” ago

πŸ–₯️ λΈŒλΌμš°μ € λ Œλ”λ§ κ³Όμ • (CRP) : μ›ΉνŽ˜μ΄μ§€κ°€ λˆˆμ•žμ— λ‚˜νƒ€λ‚˜κΈ°κΉŒμ§€μ˜ λ§ˆλ²•

(Critical Rendering Path, 핡심 λ Œλ”λ§ 경둜 μ™„λ²½ 이해) μ›Ή λΈŒλΌμš°μ €μ— μ£Όμ†Œλ₯Ό μž…λ ₯ν•˜κ³  μ—”ν„°λ₯Ό λˆ„λ₯΄λŠ” μˆœκ°„,…

2κ°œμ›” ago

πŸ›‘ CORS 였λ₯˜ 원리 μ™„λ²½ ν•΄μ„€: λΈŒλΌμš°μ € λ³΄μ•ˆμ˜ ν•„μˆ˜ κ΄€λ¬Έ! πŸ›‘οΈ

μ›Ή κ°œλ°œμ„ ν•˜λ‹€ 보면 λˆ„κ΅¬λ‚˜ ν•œ 번쯀 뢉은색 κΈ€μ”¨μ˜ CORS 였λ₯˜(Cross-Origin Resource Sharing Error)λ₯Ό λ§Œλ‚˜κ²Œ…

3κ°œμ›” ago