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

πŸ’» ν”„λ‘ νŠΈμ—”λ“œ19

νžˆμ–΄μ‹œν‹° EJS -> React λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ κ³Όμ •(~ing) ν”„λ‘œμ νŠΈ μ†Œκ°œ https://here-city.com μ—”μ‹œν‹° 찐팬인 친ꡬ의 기획으둜 μ‹œμž‘ν•œ μ‹œμ¦ˆλ‹ˆλ₯Ό μœ„ν•œ μ›ΉνŽ˜μ΄μ§€μž…λ‹ˆλ‹€. λ ˆμ½”λ“œμƒ΅ : ν‚€μ›Œλ“œ 맞좀 ν”Œλ ˆμ΄λ¦¬μŠ€νŠΈ μ—”μŠλž­ κ°€μ΄λ“œ : μ—”μ‹œν‹° νŒ¬λ“€μ˜ 맛집 νƒœκ·Έλ₯Ό ν†΅ν•©ν•΄μ„œ μ§€μ—­λ³„λ‘œ νŠΈμœ„ν„° 글듀을 λͺ¨μ•„μ£ΌλŠ” μ„œλΉ„μŠ€ μ—”κ°€λ„€ 초이슀 : 식사 메뉴 랜덀 μΆ”μ²œ μ‹œν‹°λ³΄λ“œ : μ—”μ‹œν‹° ν…μŠ€νŠΈ λŒ€μΉ˜ λͺ¨μŒ λ„€μ˜€μŠ€ν…Œμ΄μ…˜ : μ—”μ‹œν‹° μΆ€λ™μž‘μœΌλ‘œ λ…Έλž˜λ₯Ό λ§žμΆ”λŠ” κ²Œμž„ μ‹œμ¦ˆλ‹ˆκ³ μ‚¬ : μ—”μ‹œν‹° 자컨 λͺ¨μ˜κ³ μ‚¬ NBIT: μ—”μ‹œν‹° νŒ¬λ“€μ„ μœ„ν•œ MBTI ν…ŒμŠ€νŠΈ κ·Έλ™μ•ˆ 톡계λ₯Ό λ°”νƒ•μœΌλ‘œ 핡심 κΈ°λŠ₯을 μΆ”λ €μ„œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ„ μ§„ν–‰ν•˜λ €κ³  ν•©λ‹ˆλ‹€ λ ˆμ½”λ“œμƒ΅ μ—”μŠλž­ κ°€μ΄λ“œ -> νŠΈμœ„ν„° API μœ λ£Œν™”λ‘œ κ³ λ―Ό 쀑,, μ‹œν‹°λ³΄λ“œ NBIT λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ ν•˜λŠ” 이유 사싀 νŒ€μ›λ“€μ˜ 개인 μ‚¬μ •μœΌλ‘œ μ½˜ν…μΈ  μ—…λ°μ΄νŠΈλ₯Ό 멈좘 상황이기에 μ„œλΉ„.. 2023. 12. 29.
[μžλ°”μŠ€ν¬λ¦½νŠΈ] 비동기 μ²˜λ¦¬μ™€ μ΄λ²€νŠΈλ£¨ν”„ 비동기 ν”„λ‘œκ·Έλž˜λ° vs 동기 ν”„λ‘œκ·Έλž˜λ° 무슨 차이일까? 동기 처리 : ν˜„μž¬ μ‹€ν–‰ 쀑인 νƒœμŠ€ν¬κ°€ μ’…λ£Œν•  λ•ŒκΉŒμ§€ λ‹€μŒ νƒœμŠ€ν¬κ°€ λŒ€κΈ°ν•˜λŠ” 방식 -> μ‹€ν–‰ μˆœμ„œκ°€ 보μž₯λ˜μ§€λ§Œ μ‹€ν–‰ 쀑인 νƒœμŠ€ν¬κ°€ μ’…λ£Œλ  λ•ŒκΉŒμ§€ 이후 νƒœμŠ€ν¬λ“€μ€ λΈ”λ‘œν‚Ή λ©λ‹ˆλ‹€. 비동기 처리 : ν˜„μž¬ μ‹€ν–‰ 쀑인 νƒœμŠ€ν¬κ°€ μ’…λ£Œλ˜μ§€ μ•Šλ”λΌλ„ λ‹€μŒ νƒœμŠ€ν¬λ₯Ό μ‹€ν–‰ν•˜λŠ” 방식 -> λΈ”λ‘œν‚Ήμ΄ λ°œμƒν•˜μ§€ μ•Šμ§€λ§Œ μ‹€ν–‰ μˆœμ„œλŠ” 보μž₯λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μžλ°”μŠ€ν¬λ¦½νŠΈ 비동기 μ½”λ“œ μ˜ˆμ‹œ function a(){ console.log('a'); } function b(){ setTimeout(a, 300); console.log('b'); } b(); //μ‹€ν–‰κ²°κ³Ό //'b' //'a' μžλ°”μŠ€ν¬λ¦½νŠΈκ°€ 비동기 처리λ₯Ό μ§€μ›ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄ aν•¨μˆ˜κ°€ μ‹€ν–‰λœ 후에 bν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€. 이.. 2023. 12. 27.
[μžλ°”μŠ€ν¬λ¦½νŠΈ] ν΄λ‘œμ € ν΄λ‘œμ €λ₯Ό μ΄ν•΄ν•˜κΈ° μœ„ν•œ κ°œλ… λ ‰μ‹œμ»¬ ν™˜κ²½ ν•΄λ‹Ή κ°œλ…μ„ λͺ¨λ₯΄μ‹ λ‹€λ©΄ μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ ν¬μŠ€νŒ…μ„ λ¨Όμ € μ½λŠ” 것을 μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€! ν΄λ‘œμ € μ™ΈλΆ€ ν•¨μˆ˜λ³΄λ‹€ 였래 μœ μ§€λ˜μ–΄ 생λͺ… μ£ΌκΈ°κ°€ λλ‚œ μ™ΈλΆ€ ν•¨μˆ˜μ˜ λ³€μˆ˜λ₯Ό μ°Έμ‘°ν•˜κ³  μžˆλŠ” 쀑첩 ν•¨μˆ˜ 예제 function coffeeMachine() { let coffeeBeans = 10; const makeCoffee = () => { if (coffeeBeans { console.log(`ν˜„μž¬ 남아 μžˆλŠ” μ›λ‘λŠ” ${coffeeBeans}g μž…λ‹ˆλ‹€.`); }; .. 2023. 12. 27.
[μžλ°”μŠ€ν¬λ¦½νŠΈ] μ‹€ν–‰μ»¨ν…μŠ€νŠΈ πŸ“Œ μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ(Execution Context) μ‹λ³„μžμ™€ μŠ€μ½”ν”„, μ½”λ“œ μ‹€ν–‰ μˆœμ„œλ₯Ό κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ κ΅¬ν˜„ν•œ λ‚΄λΆ€ λ©”μ»€λ‹ˆμ¦˜ μ‹λ³„μžμ™€ μŠ€μ½”ν”„λŠ” μ‹€ν–‰ μ»¨ν…μŠ€νŠΈμ˜ λ ‰μ‹œμ»¬ ν™˜κ²½μœΌλ‘œ κ΄€λ¦¬ν•˜κ³ , μ½”λ“œ μ‹€ν–‰ μˆœμ„œλŠ” μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ μŠ€νƒμœΌλ‘œ κ΄€λ¦¬ν•©λ‹ˆλ‹€. μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ μŠ€νƒ μ‹€ν–‰ μ»¨ν…μŠ€νŠΈλŠ” μŠ€νƒ 자료ꡬ쑰둜 κ΄€λ¦¬λ©λ‹ˆλ‹€. μ½”λ“œκ°€ μ‹€ν–‰λ˜λ©΄ ν•΄λ‹Ή μ½”λ“œμ˜ μ‹€ν–‰ μ»¨ν…μŠ€νŠΈκ°€ μƒμ„±λ˜μ–΄ μŠ€νƒμ— push되고, 싀행이 μ’…λ£Œλ˜λ©΄ pop λ©λ‹ˆλ‹€. λ ‰μ‹œμ»¬ ν™˜κ²½ μ‹λ³„μžμ™€ μŠ€μ½”ν”„λ₯Ό κ΄€λ¦¬ν•˜λŠ” μžλ£Œκ΅¬μ‘°μž…λ‹ˆλ‹€. ν™˜κ²½λ ˆμ½”λ“œμ™€ μ™ΈλΆ€ λ ‰μ‹œμ»¬ ν™˜κ²½μ— λŒ€ν•œ 참쑰둜 κ΅¬μ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. ν™˜κ²½λ ˆμ½”λ“œ μŠ€μ½”ν”„μ— λŒ€ν•œ μ‹λ³„μžμ™€ λ°”μΈλ”©λœ 값을 κ΄€λ¦¬ν•©λ‹ˆλ‹€. μ™ΈλΆ€ λ ‰μ‹œμ»¬ ν™˜κ²½μ— λŒ€ν•œ μ°Έμ‘° μƒμœ„ μŠ€μ½”ν”„λ₯Ό κ°€λ¦¬ν‚΅λ‹ˆλ‹€ μŠ€μ½”ν”„ 체인 = μ™ΈλΆ€ λ ‰μ‹œμ»¬ ν™˜κ²½μ— λŒ€ν•œ μ°Έμ‘°λ₯Ό 톡해 단방ν–₯ λ§ν¬λ“œ.. 2023. 12. 27.
[μžλ°”μŠ€ν¬λ¦½νŠΈ] μŠ€μ½”ν”„ πŸ“Œ μŠ€μ½”ν”„(Scope) : λ³€μˆ˜μ— μ ‘κ·Όν•  수 μžˆλŠ” λ²”μœ„ = (μ‹λ³„μžλ₯Ό μ°Ύμ•„λ‚΄κΈ° μœ„ν•œ κ·œμΉ™) μŠ€μ½”ν”„λŠ” μ „μ—­ μŠ€μ½”ν”„μ™€ 지역 μŠ€μ½”ν”„λ‘œ λ‚˜λˆŒ 수 μžˆμŠ΅λ‹ˆλ‹€. λ³€μˆ˜λŠ” μ„ μ–Έ μœ„μΉ˜μ— μ˜ν•΄ μŠ€μ½”ν”„λ₯Ό κ°–κ²Œ λ©λ‹ˆλ‹€. μ „μ—­ μŠ€μ½”ν”„λ₯Ό κ°–λŠ” μ „μ—­ λ³€μˆ˜λŠ” μ „μ—­μ—μ„œ μ°Έμ‘° κ°€λŠ₯ν•˜κ³ , 지역 μŠ€μ½”ν”„λ₯Ό κ°–λŠ” 지역 λ³€μˆ˜λŠ” μ„ μ–Έλœ 지역과 ν•˜λΆ€ μ§€μ—­μ—μ„œλ§Œ μ°Έμ‘°ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ³€μˆ˜λ₯Ό μ°Έμ‘°ν•  λ•Œ, μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진은 μŠ€μ½”ν”„ 체인을 톡해 λ³€μˆ˜λ₯Ό μ°Έμ‘°ν•˜λŠ” μ½”λ“œμ˜ μŠ€μ½”ν”„μ—μ„œ μ‹œμž‘ν•΄μ„œ μƒμœ„ μŠ€μ½”ν”„ λ°©ν–₯으둜 μ΄λ™ν•˜λ©° μ„ μ–Έλœ λ³€μˆ˜λ₯Ό κ²€μƒ‰ν•©λ‹ˆλ‹€. μŠ€μ½”ν”„ 체인 μ „μ—­ 객체와 μ€‘μ²©λœ ν•¨μˆ˜μ˜ μŠ€μ½”ν”„ 레퍼런슀λ₯Ό μ°¨λ‘€λ‘œ μ €μž₯ν•˜κ³ , μŠ€μ½”ν”„κ°€ μ–΄λ–»κ²Œ μ—°κ²° 되고 μžˆλŠ”μ§€ λ³΄μ—¬μ£ΌλŠ” 것을 λ§ν•©λ‹ˆλ‹€. μ‹λ³„μžμ™€ μŠ€μ½”ν”„λŠ” μ‹€ν–‰ μ»¨ν…μŠ€νŠΈμ˜ λ ‰μ‹œμ»¬ ν™˜κ²½μœΌλ‘œ κ΄€λ¦¬ν•©λ‹ˆλ‹€. λ ‰μ‹œμ»¬ ν™˜κ²½μ€ 식별.. 2023. 12. 27.
[μžλ°”μŠ€ν¬λ¦½νŠΈ] This πŸ“Œ This μžμ‹ μ΄ μ†ν•œ 객체 λ˜λŠ” μžμ‹ μ΄ 생성할 μΈμŠ€ν„΄μŠ€λ₯Ό κ°€λ¦¬ν‚€λŠ” 자기 μ°Έμ‘° λ³€μˆ˜ thisλ₯Ό 톡해 μžμ‹ μ΄ μ†ν•œ 객체 λ˜λŠ” μžμ‹ μ΄ 생성할 μΈμŠ€ν„΄μŠ€μ˜ ν”„λ‘œνΌν‹°λ‚˜ λ©”μ„œλ“œλ₯Ό μ°Έμ‘°ν•  수 μžˆμŠ΅λ‹ˆλ‹€. this 바인딩은 ν•¨μˆ˜ 호좜 방식에 μ˜ν•΄ λ™μ μœΌλ‘œ κ²°μ •λ©λ‹ˆλ‹€. ν•¨μˆ˜ 호좜 방식 1. 일반 ν•¨μˆ˜ 2. λ©”μ„œλ“œ 호좜 3. μƒμ„±μž ν•¨μˆ˜ 호좜 4. Function.prototype.apply/call/bind λ©”μ„œλ“œμ— μ˜ν•œ κ°„μ ‘ 호좜 5. ES6, ν™”μ‚΄ν‘œ ν•¨μˆ˜ 호좜 1. 일반 ν•¨μˆ˜ μΌλ°˜ν•¨μˆ˜ 호좜 thisλŠ” μ „μ—­ 객체인 windowλ₯Ό κ°€λ¦¬ν‚΅λ‹ˆλ‹€. -> 객체λ₯Ό μƒμ„±ν•˜μ§€ μ•ŠλŠ” 일반 ν•¨μˆ˜μ—μ„œλŠ” this의 μ‚¬μš©μ€ μ˜λ―Έκ°€ μ—†μŠ΅λ‹ˆλ‹€ function normal(){ console.log(this); //Window } normal().. 2023. 12. 27.