ν°μ€ν 리 λ·°
νμ€ λΉνΈμΈ κ°μ²΄μΈ Dateλ λ μ§μ μκ°(μ°, μ, μΌ, μ, λΆ, μ΄, λ°λ¦¬μ΄)μ μν λ©μλλ₯Ό μ 곡νλ λΉνΈμΈ κ°μ²΄μ΄λ©΄μ μμ±μ ν¨μμ λλ€. νμ¬ λ μ§μ μκ°μ μλ°μ€ν¬λ¦½νΈ μ½λκ° μ€νλ μμ€ν μ μκ³μ μν΄ κ²°μ λ©λλ€.
- UTC(νμ μΈκ³μ) : κ΅μ νμ€μλ‘ GMT(그리λμΉ νκ· μ)λ‘ λΆλ¦¬κΈ°λ ν¨
- KST(νκ΅ νμ€μ) : UTCμ 9μκ°μ λν μκ°μΌλ‘ KSTλ UTCλ³΄λ€ 9μκ°μ΄ λΉ λ¦
Data μμ±μ ν¨μ
Date μμ±μ ν¨μλ‘ μμ±ν Data κ°μ²΄λ λ΄λΆμ μΌλ‘ λ μ§μ μκ°μ λνλ΄λ μ μκ°μ κ°μ§λλ€. μ΄ κ°μ 1970λ 1μ 1μΌ 00:00:00(UTC)μ κΈ°μ μΌλ‘ Date κ°μ²΄κ° λνλ΄λ λ μ§μ μκ°κΉμ§μ λ°λ¦¬μ΄λ₯Ό λνλ λλ€.
- 1970λ 1μ 1μΌ 0μλ₯Ό λνλ΄λ Data κ°μ²΄λ λ΄λΆμ μΌλ‘ μ μκ° 0μ κ°μ§
- 1970λ 1μ 2μΌ 0μλ₯Ό λνλ΄λ Data κ°μ²΄λ λ΄λΆμ κΈλ‘ μ μκ° 86,400,000(24h * 60m * 60s * 1000ms)μ κ°μ§
λ§μ½ νμ¬ λ μ§μ μκ°μ΄ μλ λ€λ₯Έ λ μ§μ μκ°μ λ€λ£¨κ³ μΆμ κ²½μ° Date μμ±μ ν¨μμ λͺ μμ μΌλ‘ ν΄λΉ λ μ§μ μκ° μ 보λ₯Ό μΈμλ‘ μ§μ ν©λλ€.
Date μμ±μ ν¨μλ‘ κ°μ²΄λ₯Ό μμ±νλ λ°©λ²μ λ€μκ³Ό κ°μ΄ 4κ°μ§κ° μμ΅λλ€.
new Date()
Date μμ±μ ν¨μλ₯Ό μΈμ μμ΄ new μ°μ°μμ ν¨κ» νΈμΆνλ©΄ νμ¬ λ μ§μ μκ°μ κ°μ§λ Date κ°μ²΄λ₯Ό λ°νν©λλ€.
// new μ°μ°μμ νΈμΆ
new Date(); // -> Tue Aug 02 2022 21:45:02 GMT+0900 (νκ΅ νμ€μ)
// new μ°μ°μ μμ΄ νΈμΆνλ©΄ Date κ°μ²΄λ₯Ό λ°νX
Date(); // -> "Tue Aug 02 2022 21:45:13 GMT+0900 (νκ΅ νμ€μ)"
- Date κ°μ²΄λ λ΄λΆμ μΌλ‘ λ μ§μ μκ°μ λνλ΄λ μ μκ°μ κ°μ§λ§ Date κ°μ²΄λ₯Ό μ½μμ μΆλ ₯νλ©΄ κΈ°λ³Έμ μΌλ‘ λ μ§μ μκ° μ 보λ₯Ό μΆλ ₯
- new μ°μ°μ μμ΄ νΈμΆνλ©΄ Date κ°μ²΄λ₯Ό λ°ννμ§ μκ³ λ μ§μ μκ° μ λ³΄λ§ λνλ΄λ λ¬Έμμ΄μ λ°ν
new Data(milliseconds)
Date μμ±μ ν¨μμ μ«μ νμ μ λ°λ¦¬μ΄λ₯Ό μΈμλ‘ μ λ¬νλ©΄ 1970λ 1μ 1μΌ 00:00:00(UTC)μ κΈ°μ μΌλ‘ μΈμλ‘ μ λ¬λ λ°λ¦¬μ΄λ§νΌ κ²½κ³Όν λ μ§μ μκ°μ λνλ΄λ Date κ°μ²΄λ₯Ό λ°νν©λλ€.
// νκ΅ νμ€μ KSTλ νμ μΈκ³μ UTCμ 9μκ°μ λν μκ°μ΄λ€.
new Date(0); // -> Thu Jan 01 1970 09:00:00 GMT+0900 (λνλ―Όκ΅ νμ€μ)
/*
86400000msλ 1dayλ₯Ό μλ―Ένλ€.
1s = 1,000ms
1m = 60s * 1,000ms = 60,000ms
1h = 60m * 60,000ms = 3,600,000ms
1d = 24h * 3,600,000ms = 86,400,000ms
*/
new Date(86400000); // -> Fri Jan 02 1970 09:00:00 GMT+0900 (λνλ―Όκ΅ νμ€μ)
new Date(dateString)
Date μμ±μ ν¨μμ λ μ§μ μκ°μ λνλ΄λ λ¬Έμμ΄μ μΈμλ‘ μ λ¬νλ©΄ μ§μ λ λ μ§μ μκ°μ λνλ΄λ Date κ°μ²΄λ₯Ό λ°νν©λλ€. μ΄λ μΈμλ‘ μ λ¬ν λ¬Έμμ΄μ Date.parse λ©μλμ μν΄ ν΄μ κ°λ₯ν νμμ΄μ΄μΌ ν©λλ€.
new Date('May 26, 2020 10:00:00');
// -> Tue May 26 2020 10:00:00 GMT+0900 (λνλ―Όκ΅ νμ€μ)
new Date('2020/03/26/10:00:00');
// -> Thu Mar 26 2020 10:00:00 GMT+0900 (λνλ―Όκ΅ νμ€μ)
new Date(year, month[,day,hour,minute,second,millisecond])
Date μμ±μ ν¨μμ μ°, μ, μΌ, μ, λΆ, μ΄, λ°λ¦¬μ΄λ₯Ό μλ―Ένλ μ«μλ₯Ό μΈμλ‘ μ λ¬νλ©΄ μ§μ λ λ μ§μ μκ°μ λνλ΄λ Date κ°μ²΄λ₯Ό λ°νν©λλ€. μ΄λ μ°, μμ λ°λμ μ§μ ν΄μΌ νκ³ μ§μ νμ§ μμ μ΅μ μ 보λ 0λλ 1λ‘ μ΄κΈ°νλ©λλ€.
*μ°, μμ μ§μ νμ§ μλ κ²½μ° 1970λ 1μ 1μΌ 00:00:00(UTC)μ λνλ΄λ Date κ°μ²΄λ₯Ό λ°ν
μΈμ | λ΄μ© |
year | μ°μ λνλ΄λ 1900λ μ΄νμ μ μ. 0~99λ 1900~1999λ‘ μ²λ¦¬λ¨ |
month | μμ νλλ΄λ 0~11κΉμ§μ μ μ (0λΆν° μμν΄μ 0μ΄ 1μμ) |
day | μΌμ λνλ΄λ 1~31κΉμ§μ μ μ |
hour | μλ₯Ό λνλ΄λ 0~23κΉμ§μ μ μ |
minute | λΆμ λνλ΄λ 0~59κΉμ§μ μ μ |
second | μ΄λ₯Ό λνλ΄λ 0~59κΉμ§μ μ μ |
millisecond | λ°λ¦¬μ΄λ₯Ό λνλ΄λ 0~999κΉμ§μ μ μ |
// μμ λνλ΄λ 2λ 3μμ μλ―Ένλ€. 2020/3/1/00:00:00:00
new Date(2020, 2);
// -> Sun Mar 01 2020 00:00:00 GMT+0900 (λνλ―Όκ΅ νμ€μ)
// μμ λνλ΄λ 2λ 3μμ μλ―Ένλ€. 2020/3/26/10:00:00:00
new Date(2020, 2, 26, 10, 00, 00, 0);
// -> Thu Mar 26 2020 10:00:00 GMT+0900 (λνλ―Όκ΅ νμ€μ)
// λ€μμ²λΌ νννλ©΄ κ°λ
μ±μ΄ ν¨μ¬ μ’λ€.
new Date('2020/3/26/10:00:00:00');
// -> Thu Mar 26 2020 10:00:00 GMT+0900 (λνλ―Όκ΅ νμ€μ)
Date λ©μλ
Date.now
1970λ 1μ 1μΌ 00:00:00(UTC)μ κΈ°μ μΌλ‘ νμ¬ μκ°κΉμ§ κ²½κ³Όν λ°λ¦¬μ΄λ₯Ό μ«μλ‘ λ°νν©λλ€.
const now = Date.now(); // -> 1659445468304
// Date μμ±μ ν¨μμ μ«μ νμ
μ λ°λ¦¬μ΄λ₯Ό μΈμλ‘ μ λ¬νλ©΄ 1970λ
1μ 1μΌ 00:00:00(UTC)μ
// κΈ°μ μΌλ‘ μΈμλ‘ μ λ¬λ λ°λ¦¬μ΄λ§νΌ κ²½κ³Όν λ μ§μ μκ°μ λνλ΄λ Date κ°μ²΄λ₯Ό λ°ννλ€.
new Date(now); // -> Tue Aug 02 2022 22:04:28 GMT+0900 (νκ΅ νμ€μ)
Date.parse
1970λ 1μ 1μΌ 00:00:00(UTC)μ κΈ°μ μΌλ‘ μΈμλ‘ μ λ¬λ μ§μ μκ°(new Date(dateString)μ μΈμμ λμΌν νμ)κΉμ§μ λ°λ¦¬μ΄λ₯Ό μ«μλ‘ λ°νν©λλ€.
// UTC
Date.parse('Jan 2, 1970 00:00:00 UTC'); // -> 86400000
// KST
Date.parse('Jan 2, 1970 09:00:00'); // -> 86400000
// KST
Date.parse('1970/01/02/09:00:00'); // -> 86400000
Date.UTC
1970λ 1μ 1μΌ 00:00:00(UTC)μ κΈ°μ μΌλ‘ μΈμλ‘ μ λ¬λ μ§μ μκ°κΉμ§μ λ°λ¦¬μ΄λ₯Ό μ«μλ‘ λ°νν©λλ€. Date.UTC λ©μλλ new Date(year, month[,day,hour,minute,second,millisecond]) μ κ°μ νμμ μΈμλ₯Ό μ¬μ©ν΄μΌ ν©λλ€.
Date.UTC(1970, 0, 2); // -> 86400000
Date.UTC('1970/1/2'); // -> NaN
- Date.UTC λ©μλμ μΈμλ λ‘μ½ νμμ΄ μλ UTCλ‘ μΈμλ¨
- monthλ μμ μλ―Ένλ 0~11κΉμ§μ μ μλ‘ 0λΆν° μμνλ κ²μ μ£Όμν΄μΌ ν¨
Date.prototype.getFullYear
Date κ°μ²΄μ μ°λλ₯Ό λνλ΄λ μ μλ₯Ό λ°νν©λλ€.
new Date('2020/07/24').getFullYear(); // -> 2020
Date.prototype.setFullYear
Date κ°μ²΄μ μ°λλ₯Ό λνλ΄λ μ μλ₯Ό μ€μ ν©λλ€. μ°λ μ΄μΈμ μ΅μ μΌλ‘ μ, μΌλ μ€μ ν μ μμ΅λλ€.
const today = new Date();
// λ
λ μ§μ
today.setFullYear(2000);
today.getFullYear(); // -> 2000
// λ
λ/μ/μΌ μ§μ
today.setFullYear(1900, 0, 1);
today.getFullYear(); // -> 1900
Date.prototype.getFullMonth
Date κ°μ²΄μ μμ λνλ΄λ 0~11μ μ μ(1μμ 0, 12μμ 11)λ₯Ό λ°νν©λλ€.
new Date('2020/07/24').getMonth(); // -> 6
Date.prototype.setFullMonth
Date κ°μ²΄μ μμ λνλ΄λ 0~11μ μ μ(1μμ 0, 12μμ 11)λ₯Ό μ€μ ν©λλ€. μ μ΄μΈμ μ΅μ μΌλ‘ μΌλ μ€μ ν μ μμ΅λλ€.
const today = new Date();
// μ μ§μ
today.setMonth(0); // 1μ
today.getMonth(); // -> 0
// μ/μΌ μ§μ
today.setMonth(11, 1); // 12μ 1μΌ
today.getMonth(); // -> 11
Date.prototype.getDate
Date κ°μ²΄μ λ μ§(1~31)λ₯Ό λνλ΄λ μ μλ₯Ό λ°νν©λλ€.
new Date('2020/07/24').getDate(); // -> 24
Date.prototype.setDate
Date κ°μ²΄μ λ μ§(1~31)λ₯Ό λνλ΄λ μ μλ₯Ό μ€μ ν©λλ€.
const today = new Date();
// λ μ§ μ§μ
today.setDate(1);
today.getDate(); // -> 1
Date.prototype.getDay
Date κ°μ²΄μ μμΌ(0~6)μ λνλ΄λ μ μλ₯Ό λ°νν©λλ€.
μμΌ | λ°νκ° |
μΌμμΌ | 0 |
μμμΌ | 1 |
νμμΌ | 2 |
μμμΌ | 3 |
λͺ©μμΌ | 4 |
κΈμμΌ | 5 |
ν μμΌ | 6 |
new Date('2020/07/24').getDay(); // -> 5
Date.prototype.getHours
Date κ°μ²΄μ μκ°(0~23)μ λνλ΄λ μ μλ₯Ό λ°νν©λλ€.
new Date('2020/07/24/12:00').getHours(); // -> 12
Date.prototype.setHours
Date κ°μ²΄μ μκ°(0~23)μ λνλ΄λ μ μλ₯Ό μ€μ ν©λλ€.
const today = new Date();
// μκ° μ§μ
today.setHours(7);
today.getHours(); // -> 7
// μκ°/λΆ/μ΄/λ°λ¦¬μ΄ μ§μ
today.setHours(0, 0, 0, 0); // 00:00:00:00
today.getHours(); // -> 0
Date.prototype.getMinutes
Date κ°μ²΄μ λΆ(0~59)λ₯Ό λνλ΄λ μ μλ₯Ό λ°νν©λλ€.
new Date('2020/07/24/12:30').getMinutes(); // -> 30
Date.prototype.setMinutes
Date κ°μ²΄μ λΆ(0~59)λ₯Ό λνλ΄λ μ μλ₯Ό μ€μ ν©λλ€. λΆ μ΄μΈμ μ΅μ μΌλ‘ μ΄, λ°λ¦¬μ΄λ μ€μ ν μ μμ΅λλ€.
const today = new Date();
// λΆ μ§μ
today.setMinutes(50);
today.getMinutes(); // -> 50
// λΆ/μ΄/λ°λ¦¬μ΄ μ§μ
today.setMinutes(5, 10, 999); // HH:05:10:999
today.getMinutes(); // -> 5
Date.prototype.getSeconds
Date κ°μ²΄μ μ΄(0~59)λ₯Ό λνλ΄λ μ μλ₯Ό λ°νν©λλ€.
new Date('2020/07/24/12:30:10').getSeconds(); // -> 10
Date.prototype.setSeconds
Date κ°μ²΄μ μ΄(0~59)λ₯Ό λνλ΄λ μ μλ₯Ό μ€μ ν©λλ€. μ΄ μ΄μΈμ μ΅μ μΌλ‘ λ°λ¦¬μ΄λ μ€μ ν μ μμ΅λλ€.
const today = new Date();
// μ΄ μ§μ
today.setSeconds(30);
today.getSeconds(); // -> 30
// μ΄/λ°λ¦¬μ΄ μ§μ
today.setSeconds(10, 0); // HH:MM:10:000
today.getSeconds(); // -> 10
Date.prototype.getMilliseconds
Date κ°μ²΄μ λ°λ¦¬μ΄(0~999)λ₯Ό λνλ΄λ μ μλ₯Ό λ°νν©λλ€.
new Date('2020/07/24/12:30:10:150').getMilliseconds(); // -> 150
Date.prototype.setMilliseconds
Date κ°μ²΄μ λ°λ¦¬μ΄(0~999)λ₯Ό λνλ΄λ μ μλ₯Ό μ€μ ν©λλ€.
const today = new Date();
// λ°λ¦¬μ΄ μ§μ
today.setMilliseconds(123);
today.getMilliseconds(); // -> 123
Date.prototype.getTime
1970λ 1μ 1μΌ 00:00:00(UTC)μ κΈ°μ μΌλ‘ Date κ°μ²΄μ μκ°κΉμ§ κ²½κ³Όλ λ°λ¦¬μ΄λ₯Ό λ°νν©λλ€.
new Date('2020/07/24/12:30').getTime(); // -> 1595561400000
Date.prototype.setTime
Date κ°μ²΄μ 1970λ 1μ 1μΌ 00:00:00(UTC)μ κΈ°μ μΌλ‘ κ²½κ³Όλ λ°λ¦¬μ΄λ₯Ό μ€μ ν©λλ€.
const today = new Date();
// 1970λ
1μ 1μΌ 00:00:00(UTC)λ₯Ό κΈ°μ μΌλ‘ κ²½κ³Όλ λ°λ¦¬μ΄ μ€μ
today.setTime(86400000); // 86400000λ 1dayλ₯Ό λνλΈλ€.
console.log(today); // -> Fri Jan 02 1970 09:00:00 GMT+0900 (νκ΅ νμ€μ)
Date.prototype.getTimezoneOffset
UTCμ Date κ°μ²΄μ μ§μ λ λ‘μΊ(locale) μκ°κ³Όμ μ°¨μ΄λ₯Ό λΆ λ¨μλ‘ λ°νν©λλ€. KSTλ UTCμ 9μκ°μ λν μκ°μμΌλ‘ UTC = KST - 9hμ λλ€.
const today = new Date(); // todayμ μ§μ λ‘μΊμ KSTλ€.
//UTCμ todayμ μ§μ λ‘μΊ KSTμμ μ°¨μ΄λ -9μκ°μ΄λ€.
today.getTimezoneOffset() / 60; // -9
Date.prototype.toDateString
μ¬λμ΄ μ½μ μ μλ νμμ λ¬Έμμ΄λ‘ Date κ°μ²΄μ λ μ§λ₯Ό λ°νν©λλ€.
const today = new Date('2020/7/24/12:30');
today.toString(); // -> Fri Jul 24 2020 12:30:00 GMT+0900 (λνλ―Όκ΅ νμ€μ)
today.toDateString(); // -> Fri Jul 24 2020
Date.prototype.toTimeString
μ¬λμ΄ μ½μ μ μλ νμμΌλ‘ Date κ°μ²΄μ μκ°μ ννν λ¬Έμμ΄μ λ°νν©λλ€.
const today = new Date('2020/7/24/12:30');
today.toString(); // -> Fri Jul 24 2020 12:30:00 GMT+0900 (λνλ―Όκ΅ νμ€μ)
today.toTimeString(); // -> 12:30:00 GMT+0900 (λνλ―Όκ΅ νμ€μ)
Date.prototype.toISOString
ISO 8601 νμμΌλ‘ Date κ°μ²΄μ λ μ§μ μκ°μ ννν λ¬Έμμ΄μ λ°νν©λλ€.
const today = new Date('2020/7/24/12:30');
today.toString(); // -> Fri Jul 24 2020 12:30:00 GMT+0900 (λνλ―Όκ΅ νμ€μ)
today.toISOString(); // -> 2020-07-24T03:30:00.000Z
today.toISOString().slice(0, 10); // -> 2020-07-24
today.toISOString().slice(0, 10).replace(/-/g, ''); // -> 20200724
Date.prototype.toLocaleString
μΈμλ‘ μ λ¬ν λ‘μΊμ κΈ°μ€μΌλ‘ Date κ°μ²΄μ λ μ§μ μκ°μ ννν λ¬Έμμ΄μ λ°νν©λλ€. μΈμλ₯Ό μλ΅ν κ²½μ° λΈλΌμ°μ κ° λμ μ€μΈ μμ€ν μ λ‘μΊμ μ μ©ν©λλ€.
const today = new Date('2020/7/24/12:30');
today.toString(); // -> Fri Jul 24 2020 12:30:00 GMT+0900 (λνλ―Όκ΅ νμ€μ)
today.toLocaleString(); // -> 2020. 7. 24. μ€ν 12:30:00
today.toLocaleString('ko-KR'); // -> 2020. 7. 24. μ€ν 12:30:00
today.toLocaleString('en-US'); // -> 7/24/2020, 12:30:00 PM
today.toLocaleString('ja-JP'); // -> 2020/7/24 12:30:00
Date.prototype.toLocaleTimeString
μΈμλ‘ μ λ¬ν λ‘μΊμ κΈ°μ€μΌλ‘ Date κ°μ²΄μ μκ°μ ννν λ¬Έμμ΄μ λ°νν©λλ€. μΈμλ₯Ό μλ΅ν κ²½μ° λΈλΌμ°μ κ° λμ μ€μΈ μμ€ν μ λ‘μΊμ μ μ©ν©λλ€.
const today = new Date('2020/7/24/12:30');
today.toString(); // -> Fri Jul 24 2020 12:30:00 GMT+0900 (λνλ―Όκ΅ νμ€μ)
today.toLocaleTimeString(); // -> μ€ν 12:30:00
today.toLocaleTimeString('ko-KR'); // -> μ€ν 12:30:00
today.toLocaleTimeString('en-US'); // -> 12:30:00 PM
today.toLocaleTimeString('ja-JP'); // -> 12:30:00
Dateλ₯Ό νμ©ν μκ³ μμ
λ€μ μμ λ νμ¬ λ μ§μ μκ°μ μ΄ λ¨μλ‘ λ°λ³΅ μΆλ ₯ν©λλ€.
(function printNow() {
const today = new Date();
const dayNames = [
'(μΌμμΌ)',
'(μμμΌ)',
'(νμμΌ)',
'(μμμΌ)',
'(λͺ©μμΌ)',
'(κΈμμΌ)',
'(ν μμΌ)'
];
// getDay λ©μλλ ν΄λΉ μμΌ(0 ~ 6)μ λνλ΄λ μ μλ₯Ό λ°ννλ€.
const day = dayNames[today.getDay()];
const year = today.getFullYear();
const month = today.getMonth() + 1;
const date = today.getDate();
let hour = today.getHours();
let minute = today.getMinutes();
let second = today.getSeconds();
const ampm = hour >= 12 ? 'PM' : 'AM';
// 12μκ°μ λ‘ λ³κ²½
hour %= 12;
hour = hour || 12; // hourκ° 0μ΄λ©΄ 12λ₯Ό μ¬ν λΉ
// 10λ―Έλ§μΈ λΆκ³Ό μ΄λ₯Ό 2μλ¦¬λ‘ λ³κ²½
minute = minute < 10 ? '0' + minute : minute;
second = second < 10 ? '0' + second : second;
const now = `${year}λ
${month}μ ${date}μΌ ${day} ${hour}:${minute}:${second} ${ampm}`;
console.log(now);
// 1μ΄λ§λ€ printNow ν¨μλ₯Ό μ¬κ· νΈμΆνλ€. 41.2.1μ "setTimeout / clearTimeout" μ°Έκ³
setTimeout(printNow, 1000);
}());
[μΆμ²] λͺ¨λ μλ°μ€ν¬λ¦½νΈ Deep Dive
'JavaScript > λͺ¨λ μλ°μ€ν¬λ¦½νΈ Deep Dive' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JavaScript] String (0) | 2022.08.03 |
---|---|
[JavaScript] RegExp (0) | 2022.08.03 |
[JavaScript] Math (0) | 2022.08.02 |
[JavaScript] Number (0) | 2022.08.02 |
[JavaScript] μλ°μ€ν¬λ¦½νΈμ λ°°μ΄ λ©μλμ κ³ μ°¨ ν¨μ (0) | 2022.08.01 |
- Total
- Today
- Yesterday
- git
- λ°±μ€ javascript
- μΉ΄μΉ΄μ€ μΈν΄
- μλ°μ€ν¬λ¦½νΈ
- Baekjoon
- μ΄μ체μ
- λ μ컬 νκ²½
- μκ³ λ¦¬μ¦
- νλ‘κ·Έλλ¨Έμ€
- μ΄λΆνμ
- JavaScript
- ν¬ν¬μΈν°
- νλ‘ν μ½
- λ€μ΄λλ―Ή νλ‘κ·Έλλ°
- μ μ λ³μ
- http
- map
- νλ‘νΌν°
- μλ°
- ν¨μν νλ‘κ·Έλλ°
- λ€νΈμν¬
- fp
- μ½λ©ν μ€νΈ
- 2019 μΉ΄μΉ΄μ€ κ°λ°μ κ²¨μΈ μΈν΄
- λ°±μ€
- λͺ¨λ μλ°μ€ν¬λ¦½νΈ deep dive
- TDD
- λμμΈ ν¨ν΄
- λ°±μ€ node.js
- κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°
μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |