36. Date
2026λ 4μ 14μΌ
ποΈ 1. Date κ°μ²΄ μμ±νκΈ°
λ μ§λ₯Ό λ§λλ λ°©λ²μ ν¬κ² λ€ κ°μ§μ λλ€.
new Date(): νΈμΆ μ§νμ νμ¬ μκ°μ λ΄μ κ°μ²΄λ₯Ό μμ±ν©λλ€.new Date(milliseconds): 1970λ 1μ 1μΌ(UTC+0) κΈ°μ€, μΈμλ‘ λ°μ λ°λ¦¬μ΄λ§νΌ νλ₯Έ μμ μ μμ±ν©λλ€. μ΄λμ μ«μλ₯Ό νμμ€ν¬νλΌκ³ ν©λλ€.new Date(dateString): νΉμ νμμ λ¬Έμμ΄μ μ½μ΄ λ μ§λ₯Ό λ§λλλ€. (λ΄λΆμ μΌλ‘Date.parseμ¬μ©)new Date(year, month, date, ...): κ° κ΅¬μ± μμλ₯Ό μ«μλ‘ λ£μ΄ μμ±ν©λλ€.- μ£Όμ:
monthλ 0(1μ)λΆν° μμν©λλ€! 2μμ λ§λ€λ €λ©΄1μ λ£μ΄μΌ νμ£ .
- μ£Όμ:
π 2. λ μ§ κ΅¬μ±μμ μ»κΈ° λ° μ€μ νκΈ°
κ°μ²΄μ μ μ₯λ νΉμ μ 보λ₯Ό κ°μ Έμ€κ±°λ μμ ν λ μ¬μ©ν©λλ€.
μ£Όμ Getter (κ° μ»κΈ°)
getFullYear(): 4μ리 μ°λ (98μ΄ μλ 2026)getMonth(): μ (0~11)getDate(): μΌ (1~31)getDay(): μμΌ (0: μΌμμΌ ~ 6: ν μμΌ)getTime(): νμμ€ν¬ν (λ°λ¦¬μ΄ λ¨μ μ«μ)
π‘ UTC κΈ°μ€: λͺ¨λ λ©μλλͺ μ€κ°μ
UTCλ₯Ό λ£μΌλ©΄(μ:getUTCHours()) νμ§ μκ°λκ° μλ νμ€μ(UTC+0) κΈ°μ€μ κ°μ μ»μ μ μμ΅λλ€.
μ£Όμ Setter (κ° μμ )
setFullYear(year, [month], [date])setMonth(month, [date])setDate(date)
πͺ 3. μλ°μ€ν¬λ¦½νΈμ λ§λ²: μλ κ³ μΉ¨ (Autocorrection)
Date κ°μ²΄λ λ²μλ₯Ό λ²μ΄λλ κ°μ΄ μ
λ ₯λλ©΄ μμμ λ€μ λ μ§λ‘ λ겨주λ λλν κΈ°λ₯μ κ°μ§κ³ μμ΅λλ€.
- μμ:
new Date(2026, 0, 32)$\rightarrow$ 1μ 32μΌμ μμΌλ―λ‘ μλμΌλ‘ 2026λ 2μ 1μΌμ΄ λ©λλ€. - νμ©: "μ€λλΆν° 100μΌ ν"λ₯Ό ꡬνκ³ μΆλ€λ©΄ λ¨μν
date.setDate(date.getDate() + 100)λ§ νλ©΄ λ©λλ€. μμ΄ λμ΄κ°λ κ³μ°μ μμ§μ΄ μ²λ¦¬ν©λλ€.
β±οΈ 4. μκ° μ°¨μ΄ μΈ‘μ κ³Ό μ±λ₯
λ μ§ μ°μ°
Date κ°μ²΄λΌλ¦¬ λΉΌκΈ° μ°μ°(-)μ νλ©΄ κ²°κ³Όλ λ°λ¦¬μ΄(ms) λ¨μμ μ«μλ‘ λ°νλ©λλ€.
Date.now()
νμ¬ μκ°μ νμμ€ν¬νλ§ νμνλ€λ©΄ new Date().getTime()λ³΄λ€ **Date.now()**κ° λ μ’μ΅λλ€. μ€κ°μ κ°μ²΄λ₯Ό μμ±νλ κ³Όμ μ μλ΅νκΈ° λλ¬Έμ λ λΉ λ₯΄κ³ λ©λͺ¨λ¦¬ ν¨μ¨μ μ
λλ€.
λ²€μΉλ§νΉ μ£Όμμ¬ν
μ±λ₯μ μΈ‘μ ν λλ μλ°μ€ν¬λ¦½νΈ μμ§μ μ΅μ ν(Hot Code) μκ°μ κ³ λ €ν΄μΌ ν©λλ€. μ νν μΈ‘μ μ μν΄ **μ¬λ¬ λ² λ°λ³΅ μ€ν(Heat-up)**ν λ€ νκ· κ°μ ꡬνλ κ²μ΄ μ μμ λλ€.
ποΈ κΈ°μ λ©΄μ λλΉ (Interview Questions)
Q1. μλ°μ€ν¬λ¦½νΈ Date κ°μ²΄μμ 1μκ³Ό μΌμμΌμ κ°κ° μ΄λ€ μ«μλ‘ ννλλμ? (κΈ°μ΄)
λ΅λ³: **1μμ μ«μ
0**μΌλ‘ ννλ©λλ€(getMonth()). λ°λ©΄ **μΌμμΌμ μμΌ λ©μλ(getDay())μμ μ«μ0**μΌλ‘ ννλ©λλ€. μμ 0λΆν° μμνμ§λ§, μΌ(Date)μ 1λΆν° μμνλ€λ μ°¨μ΄μ μ λͺ νν μΈμ§ν΄μΌ ν©λλ€.
Q2. new Date().getTime()κ³Ό Date.now()μ μ°¨μ΄μ μ 무μμΈκ°μ? (μ€κΈ)
λ΅λ³: λ λ©μλ λͺ¨λ 1970λ 1μ 1μΌ μ΄νμ λ°λ¦¬μ΄λ₯Ό λ°ννλ€λ μ μ κ°μ§λ§,
Date.now()λ λ³λμDateκ°μ²΄λ₯Ό μΈμ€ν΄μ€ννμ§ μκ³ μ μκ°μ μ§μ λ°νν©λλ€. λ°λΌμ κ°λΉμ§ 컬λ μ μ λΆλ΄μ μ€μ¬μ£Όλ©° μ±λ₯ λ©΄μμ λ μ 리ν©λλ€.
Q3. "2026λ 2μμ λ§μ§λ§ λ "μ ꡬνλ κ°μ₯ κ°λ¨ν λ‘μ§μ 무μμΈκ°μ? (μ¬ν)
λ΅λ³:
new Date(2026, 2, 0).getDate()λ₯Ό νΈμΆνλ©΄ λ©λλ€. 3μ(month: 2)μ 0μΌ(date: 0)μ μμ±νλλ‘ νλ©΄, μλ°μ€ν¬λ¦½νΈμ μλ κ³ μΉ¨ κΈ°λ₯μ μν΄ μ΄μ λ¬(2μ)μ λ§μ§λ§ λ λ‘ μ€μ λ©λλ€.
π‘ Tech Leadμ ν μ€ μΈμ¬μ΄νΈ
μΉ μ±μμ μλ²μ ν΅μ ν λ λ μ§λ λ³΄ν΅ **ISO 8601 νμ(YYYY-MM-DDTHH:mm:ssZ)**μ΄λ νμμ€ν¬νλ‘ μ£Όκ³ λ°λ κ²μ΄ κ°μ₯ μμ ν©λλ€. ν΄λΌμ΄μΈνΈμμ new Date()λ‘ μΆλ ₯ν λλ νμ μ¬μ©μμ λ‘컬 νκ²½(timezone)μ΄ λ°μλλ€λ μ μ μμ§ λ§μΈμ!