λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

μžλ°”μŠ€ν¬λ¦½νŠΈ

(9)
[ JavaScript / Promise ] μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ Promise에 λŒ€ν•˜μ—¬ μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” μ‹±κΈ€ μŠ€λ ˆλ“œ λ°©μ‹μœΌλ‘œ λ™μž‘ν•˜λŠ” 언어이기 λ•Œλ¬Έμ— 동기 λ°©μ‹μœΌλ‘œ νƒœμŠ€ν¬λ₯Ό μ²˜λ¦¬ν•œλ‹€. κ·Έλž˜μ„œ 비동기 λ°©μ‹μœΌλ‘œ 처리λ₯Ό ν•˜λ €λ©΄ κ³Όκ±°μ—λŠ” 주둜 콜백 νŒ¨ν„΄μ„ μ‚¬μš©ν–ˆλŠ”λ°, 콜백 νŒ¨ν„΄μ€ 콜백 ν—¬λ‘œ 인해 가독성이 쒋지 μ•Šκ³  μ—λŸ¬ 처리 및 μ—¬λŸ¬ 개의 비동기 처리λ₯Ό ν•œλ²ˆμ— ν•˜κΈ°λ„ νž˜λ“€λ‹€λŠ” 단점이 있기 λ•Œλ¬Έμ— ES6μ—μ„œ λ„μž…λœ Promiseλ₯Ό μ΄μš©ν•˜λ©΄ μ΄λŸ¬ν•œ 단점듀을 λ³΄μ™„ν•˜λ©° 비동기 처리λ₯Ό κ°€λŠ₯ν•˜κ²Œ ν•œλ‹€. 비동기 ν•¨μˆ˜λž€? μž‘μ—…μ΄ μ™„λ£Œλ  λ•ŒκΉŒμ§€ 기닀리지 μ•Šκ³  잠재적으둜 였래 μ‹€ν–‰λ˜λŠ” μž‘μ—…μ„ μ‹œμž‘ν•˜μ—¬ ν•΄λ‹Ή μž‘μ—…μ΄ μ‹€ν–‰λ˜λŠ” λ™μ•ˆμ—λ„ λ‹€λ₯Έ μ΄λ²€νŠΈμ— 응닡할 수 있게 ν•˜λŠ” 기술둜 μž‘μ—…μ΄ μ™„λ£Œλ˜λ©΄ ν”„λ‘œκ·Έλž¨μ΄ κ²°κ³Όλ₯Ό μ œκ³΅ν•œλ‹€. 이 λ•Œλ¬Έμ— 비동기 ν•¨μˆ˜ λ‚΄λΆ€μ˜ λΉ„λ™κΈ°λ‘œ λ™μž‘ν•˜λŠ” μ½”λ“œμ—μ„œ 처리 κ²°κ΄΄λ₯Ό μ™ΈλΆ€λ‘œ λ°˜ν™˜ν•˜κ±°λ‚˜ μƒμœ„ μŠ€μ½”ν”„μ˜..
[ JavaScript ] undefined와 null의 차이에 λŒ€ν•΄ μ•Œμ•„λ³΄κΈ°. μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ '빈'값을 μ˜λ―Έν•˜λŠ” λΉ„μŠ·ν•œ μ›μ‹œ 값이 μ‘΄μž¬ν•˜λŠ”λ° λ°”λ‘œ nullκ³Ό undefined 이닀. 1. undefined ES6κΈ°μ€€ 7개의 데이터 νƒ€μž…μ€‘ ν•˜λ‚˜μΈ undefinedλŠ” var ν‚€μ›Œλ“œλ₯Ό 톡해 선언을 ν•˜λ©΄ μ„ μ–Έκ³Ό λ™μ‹œμ— μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진에 μ˜ν•΄ undefined둜 μ΄ˆκΈ°ν™” 되기 λ•Œλ¬Έμ—, ν• λ‹Ήλ¬Έ 이전에 λ³€μˆ˜λ₯Ό μ°Έμ‘°ν•˜λ €κ³  ν•˜λ©΄ undefinedκ°€ λ°˜ν™˜λœλ‹€. ( let ν‚€μ›Œλ“œμ™€ const ν‚€μ›Œλ“œλŠ” undefined둜 μ΄ˆκΈ°ν™”λ˜μ§€ μ•ŠμŒ. ) var user; console.log(user); // undefined undefined의 값은 undefinedκ°€ μœ μΌν•˜λ©° κ°œλ°œμžκ°€ μ˜λ„μ μœΌλ‘œ μ€€ 빈 값이 μ•„λ‹ˆλΌ, μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진에 μ˜ν•΄ undefined둜 μ΄ˆκΈ°ν™”λœ 값이닀. console둜 μ°μ—ˆμ„ λ•Œ u..
[ JavaScript ] var, let, const νŒŒν—€μΉ˜κΈ°. μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ λ³€μˆ˜λ₯Ό μ„ μ–Έν•  λ•Œ μ‚¬μš©ν•˜λŠ” ν‚€μ›Œλ“œλŠ” var, let, const μ΄λ ‡κ²Œ 총 3가지가 μ‘΄μž¬ν•œλ‹€. 1. var var ν‚€μ›Œλ“œλŠ” ES6 이전( let, constκ°€ λ‚˜μ˜€κΈ° 이전 )에 λ³€μˆ˜λ₯Ό μ„ μ–Έν•  λ•Œ μ‚¬μš©ν•˜λ˜ ν‚€μ›Œλ“œμ˜€λ‹€. var ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜λ©΄ λŸ°νƒ€μž„ 이전에 μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진에 μ˜ν•΄ μ•”λ¬΅μ μœΌλ‘œ "μ„ μ–Έ"단계와 "μ΄ˆκΈ°ν™”"단계λ₯Ό 거치게 λœλ‹€. μ„ μ–Έ λ‹¨κ³„μ—μ„œλŠ” μŠ€μ½”ν”„μ— λ³€μˆ˜ μ‹λ³„μžλ₯Ό 등둝해 μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진에 λ³€μˆ˜μ˜ 쑴재λ₯Ό μ•Œλ¦¬κ³  κ·Έ μ¦‰μ‹œ μ΄ˆκΈ°ν™” λ‹¨κ³„μ—μ„œ undefined둜 λ³€μˆ˜λ₯Ό μ΄ˆκΈ°ν™”ν•œλ‹€. var ν‚€μ›Œλ“œλŠ” λ³€μˆ˜ 블둝을 κ³ λ €ν•˜μ§€ μ•Šκ³ , ν˜„μž¬ ν•¨μˆ˜(var ν‚€μ›Œλ“œλ₯Ό μ„ μ–Έν•œ ν•¨μˆ˜)λ˜λŠ” μ „μ—­ μŠ€μ½”ν”„ μ–΄λ””μ—μ„œλ‚˜ μ ‘κ·Όν•  수 μžˆλŠ” λ³€μˆ˜λ₯Ό μ„ μ–Έν•œλ‹€. // λ³€μˆ˜ a에 λŒ€ν•΄ μ„ μ–Έ. var a; 이렇..
[ JavaScript / Error ] μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ Error 객체 μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ λŸ°νƒ€μž„ 였λ₯˜κ°€ λ°œμƒν•˜λ©΄ Error 객체λ₯Ό 던져주고 κ°œλ°œμžλ“€μ€ 이λ₯Ό 톡해 μ—λŸ¬ 처리λ₯Ό ν•΄μ£Όκ³  디버깅을 ν•  수 μžˆλ‹€. Errorμƒμ„±μž ν•¨μˆ˜λ₯Ό 톡해 μ—λŸ¬ 객체λ₯Ό 생성할 수 μžˆλ‹€. Error μƒμ„±μž ν•¨μˆ˜λ₯Ό 톡해 μƒμ„±λœ μ—λŸ¬ κ°μ²΄λŠ” message ν”„λ‘œνΌν‹°(Error μƒμ„±μž ν•¨μˆ˜μ— 인수둜 μ „λ‹¬λœ μ—λŸ¬ 메세지)와 stack ν”„λ‘œνΌν‹°(μ—λŸ¬λ₯Ό λ°œμƒμ‹œν‚¨ μ½œμŠ€νƒμ˜ 호좜 정보λ₯Ό λ‚˜νƒ€λ‚΄λŠ” λ¬Έμžμ—΄)λ₯Ό κ°–λŠ”λ‹€. μ•„λž˜μ˜ ν‘œλ₯Ό 톡해 μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ ν‘œμ€€ λ‚΄μž₯ 였λ₯˜ μœ ν˜•μ— λŒ€ν•΄ μ•Œμ•„λ³΄μž. μœ ν˜•(μƒμ„±μž ν•¨μˆ˜) μΈμŠ€ν„΄μŠ€ EvalError μ „μ—­ ν•¨μˆ˜ eval()μ—μ„œ λ°œμƒν•˜λŠ” μ—λŸ¬ 객체 RangeError 숫자 λ³€μˆ˜λ‚˜ λ§€κ°œλ³€μˆ˜κ°€ 유효 λ²”μœ„λ₯Ό 벗어났을 λ•Œ λ°œμƒν•˜λŠ” μ—λŸ¬ 객체 ReferenceError 잘λͺ»λœ 참쑰에 λŒ€ν•΄ λ°œμƒν•˜λŠ” ..
[ JavaScript / μ •κ·œν‘œν˜„μ‹ ] μžλ°”μŠ€ν¬λ¦½νŠΈ μ •κ·œν‘œν˜„μ‹ 정리 <2> 1편 μ°Έκ³  [ JavaScript / μ •κ·œν‘œν˜„μ‹ ] μžλ°”μŠ€ν¬λ¦½νŠΈ μ •κ·œν‘œν˜„μ‹ 정리 좜처: MDN Web Docs μ •κ·œν‘œν˜„μ‹ (μ •κ·œμ‹) - Regular expression μ •κ·œ ν‘œν˜„μ‹μ€ λ¬Έμžμ—΄μ— λ‚˜νƒ€λ‚˜λŠ” νŠΉμ • 문자 μ‘°ν•©κ³Ό λŒ€μ‘μ‹œν‚€κΈ° μœ„ν•΄ μ‚¬μš©λ˜λŠ” νŒ¨ν„΄μœΌλ‘œ, μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ μ •κ·œ ν‘œν˜„μ‹ λ˜ν•œ 객체이닀. 이 d-dual.tistory.com μ •κ·œν‘œν˜„μ‹ 1νŽΈμ—μ„œλŠ” MDNμ—μ„œ μ„€λͺ…ν•˜λŠ” μ •κ·œν‘œν˜„μ‹μ— λŒ€ν•΄ μ•Œμ•„λ³΄μ•˜λ‹€. 2νŽΈμ—μ„œλŠ” μ‹€μ œ μ‚¬μš© 방법 및 ν™œμš©λ²•μ— λŒ€ν•΄ 정리해 보렀고 ν•œλ‹€. μ •κ·œν‘œν˜„μ‹μ€ μΌμ •ν•œ νŒ¨ν„΄μ„ 가진 λ¬Έμžμ—΄μ˜ 집합을 ν‘œν˜„ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” ν˜•μ‹ μ–Έμ–΄λ‘œ μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ 고유 문법이 μ•„λ‹ˆλ©°, λŒ€λΆ€λΆ„μ˜ ν”„λ‘œκ·Έλž˜λ° 언어와 μ½”λ“œ 에디터에 λ‚΄μž₯λ˜μ–΄ μžˆλ‹€. * μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” νŽ„(Perl)의 μ •κ·œ ν‘œν˜„μ‹ 문법을 ES3..
[ Javascript ] μ›μ‹œ κ°’κ³Ό 객체의 차이에 λŒ€ν•΄ μ•Œμ•„λ³΄κΈ°. μ›μ‹œ κ°’ (Primitive) MDN - μ›μ‹œ κ°’ μ„€λͺ… μ›μ‹œ κ°’ - μš©μ–΄ 사전 | MDN JavaScriptμ—μ„œ μ›μ‹œ κ°’(primitive, λ˜λŠ” μ›μ‹œ μžλ£Œν˜•)μ΄λž€ 객체가 μ•„λ‹ˆλ©΄μ„œ λ©”μ„œλ“œλ„ 가지지 μ•ŠλŠ” λ°μ΄ν„°μž…λ‹ˆλ‹€. μ›μ‹œ κ°’μ—λŠ” 7μ’…λ₯˜, string, number (en-US), bigint (en-US), boolean, undefined, symbol, 그리고 null이 developer.mozilla.org μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ μ›μ‹œ 값은 객체가 μ•„λ‹ˆκ³ , λ©”μ„œλ“œλ₯Ό 가지지 μ•ŠλŠ” λ°μ΄ν„°λ‘œ μ•„λž˜μ™€ 같이 총 7κ°€μ§€μ˜ μ’…λ₯˜κ°€ μ‘΄μž¬ν•œλ‹€. - string - number - bigint - boolean - undefined - symbol - null μ›μ‹œ νƒ€μž…μ˜ 값은 λ³€κ²½ λΆˆκ°€λŠ₯ν•œ κ°’μœΌλ‘œ, λ³€μˆ˜μ— μ›μ‹œ 값을 μž¬ν• ..
[ JavaScript / μ—°μ‚°μž ] μ—°μ‚°μžλ₯Ό μ΄μš©ν•˜μ—¬ null λ˜λŠ” undefined 처리 방법. μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ λ°μ΄ν„°μ˜ 값이 μœ νš¨ν•œμ§€ 여뢀에 따라 ν”„λ‘œνΌν‹°λ₯Ό μ°Έμ‘° ν•  경우 μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜μ—¬ μ²˜λ¦¬ν•˜λŠ” 방법에 λŒ€ν•΄ μ •λ¦¬ν•˜λŠ” κΈ€-! πŸ‘‰ μš°μ„  falsy값에 λŒ€ν•΄ μ•Œμ•„λ³΄μž-! μ•„λž˜μ™€ 같은 아이듀이 falsyκ°’μœΌλ‘œ λΆ„λ₯˜λœλ‹€. - false; - null; - NaN; - 0; - empty string ("" or '' or ``); - undefined. 1. 데이터가 null λ˜λŠ” undefined 만 해당될 λ•Œ null 병합 μ—°μ‚°μž(??) μ‚¬μš© let data = { name: null, age: 20 }; const userName = data.name ?? '이름을 μž…λ ₯ν•΄ μ£Όμ„Έμš”.'; console.log(userName); // 이름을 μž…λ ₯ν•΄ μ£Όμ„Έμš”. E11μ—μ„œ λ„μž…λœ null 병합 μ—°μ‚°μž(??)..
[ JavaScript / μ •κ·œν‘œν˜„μ‹ ] μžλ°”μŠ€ν¬λ¦½νŠΈ μ •κ·œν‘œν˜„μ‹ 정리 <1> 좜처: MDN Web Docs μ •κ·œν‘œν˜„μ‹ (μ •κ·œμ‹) - Regular expression μ •κ·œ ν‘œν˜„μ‹μ€ λ¬Έμžμ—΄μ— λ‚˜νƒ€λ‚˜λŠ” νŠΉμ • 문자 μ‘°ν•©κ³Ό λŒ€μ‘μ‹œν‚€κΈ° μœ„ν•΄ μ‚¬μš©λ˜λŠ” νŒ¨ν„΄μœΌλ‘œ, μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ μ •κ·œ ν‘œν˜„μ‹ λ˜ν•œ 객체이닀. 이 νŒ¨ν„΄λ“€μ€ RegExp의 exec, test λ©”μ†Œλ“œμ™€ String의 match, replace, search, split λ©”μ†Œλ“œμ™€ ν•¨κ»˜ 쓰인닀. μ •κ·œ ν‘œν˜„μ‹μ„ λ§Œλ“œλŠ” 방법 1. μ •κ·œμ‹ λ¦¬ν„°λŸ΄μ„ μ‚¬μš©ν•˜λŠ” 방법 ( μ •κ·œμ‹μ΄ κ°’(=νŒ¨ν„΄)이 λ³€ν•˜μ§€ μ•ŠλŠ” μƒμˆ˜μΌ λ•Œ μ‚¬μš©ν•˜λŠ” 것을 μΆ”μ²œ ) μŠ¬λž˜μ‹œ( / )둜 κ°μ‹ΈλŠ” νŒ¨ν„΄μ„ μ‚¬μš©ν•˜μ—¬ λ§Œλ“œλŠ” 방법이닀. μ •κ·œμ‹ λ¦¬ν„°λŸ΄μ„ μ‚¬μš©ν•˜κ²Œ 되면 μŠ€ν¬λ¦½νŠΈκ°€ λΆˆλŸ¬μ™€μ§ˆ λ•Œ 컴파일 λœλ‹€. var re = /ab+c/; 2. RegExp 객체의 μƒμ„±μž ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λŠ” 방법..