[FE - ConnecTo] DAY24 TILπŸ‘©πŸ»β€πŸ’»

JUNYΒ·2022λ…„ 8μ›” 11일
0

πŸ“šZeroBase ConnecTo Front-End

λͺ©λ‘ 보기
13/53
post-thumbnail

22.08.11 슀슀둜 κ³΅λΆ€ν•œ 것 및 μˆ˜μ—… 쀑 λŸ¬λ²„λ• ν•˜λ©° κ³΅λΆ€ν•œ λ‚΄μš©λ“€μ„ μ •λ¦¬ν•˜μ˜€μŠ΅λ‹ˆλ‹€ 😊
ν”Όλ“œλ°±μ€ μ–Έμ œλ‚˜ ν™˜μ˜μž…λ‹ˆλ‹€! 🍊

콜백 ν•¨μˆ˜

ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ˜ κ°€μž₯ κΈ°λ³Έ κ°œλ…μœΌλ‘œ, 콜백 ν•¨μˆ˜ μ—­μ‹œ κ°’μœΌλ‘œ 평가될 수 있기 λ•Œλ¬Έμ— λ§€κ°œλ³€μˆ˜μ— 담을 수 μžˆλŠ” κ²ƒμž„.

ν•¨μˆ˜ λ¦¬ν„°λŸ΄μ΄ 평가될 λ•Œ ν•¨μˆ˜ 객체가 λ§Œλ“€μ–΄μ§€κ³ , κ·Έ 객체의 μ°Έμ‘° 값이 λ³€μˆ˜μ— μ €μž₯λ˜λŠ”λ°, μ—¬κΈ°μ„œμ˜ 참쑰값을 μΈμˆ˜λ‘œμ„œ λ§€κ°œλ³€μˆ˜μ— μ „λ‹¬ν•˜λŠ” 것이 μ½œλ°±ν•¨μˆ˜μž„.


콜백 ν•¨μˆ˜, λ³€μˆ˜, ν•¨μˆ˜μ˜ μ‚¬μš© 이유?

β†’ μž¬μ‚¬μš©ν•˜κΈ° μœ„ν•΄!

πŸ’‘ μž¬μ‚¬μš©μ΄ μ™œ μ€‘μš”ν•œκ°€?
생산성을 ν–₯μƒμ‹œν‚€κΈ° μœ„ν•΄μ„œ β†’ μœ μ§€ 보수의 μš©μ΄μ„±


μœ μ§€λ³΄μˆ˜ν•˜κΈ° μ‰¬μš΄, 고치기 μ‰¬μš΄ μ½”λ“œλž€ λ¬΄μ—‡μΌκΉŒ?

  • 가독성이 μ’‹μ•„μ•Ό 함, νš¨μœ¨λ³΄λ‹€ 가독성
  • μ‰½κ²Œ 읽힐 수 μžˆλŠ” μ½”λ“œκ°€ μœ μ§€λ³΄μˆ˜ν•˜κΈ° μ‰¬μš΄ μ½”λ“œ

var ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄, μž¬μ„ μ–Έμ΄ μ•„λ‹ˆλΌ μž¬ν• λ‹Ήμ΄ 일어남


μ‹λ³„μžλž€?

λ³€μˆ˜ 이름이라고도 ν•˜λ©°, 값을 μ‹λ³„ν•˜κΈ° μœ„ν•œ κ³ μœ ν•œ μ΄λ¦„μž„. 값이 μ•„λ‹ˆλΌ λ©”λͺ¨λ¦¬ μ£Όμ†Œλ₯Ό κΈ°μ–΅ν•˜κ³  있음

λ³€μˆ˜ 이름, ν•¨μˆ˜ 이름, 클래슀 λ“± 값을 κ°€μ Έμ˜¬ 수 μžˆλŠ” 것듀은 λ‹€ μ‹λ³„μžμž„.

URL도 μ‹λ³„μžλΌκ³  ν•  수 있음(ν•˜λ‚˜μ˜ μ›Ή μ‚¬μ΄νŠΈλ₯Ό νŠΉμ •ν•  수 있기 λ•Œλ¬Έ)

κ²½λ‘œμ™€ 파일λͺ…도 μ‹λ³„μžλΌκ³  ν•  수 있음(νŒŒμΌμ„ 가지고 올 수 있음)

μ‹λ³„μžλŠ” 사싀 ν”„λ‘œνΌν‹°μΈλ°, 이 뢀뢄에 κ΄€ν•œ λ‚΄μš©μ€ μŠ€μ½”ν”„ 곡뢀할 λ•Œ 배울 수 있음


πŸ’‘ μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ λ³€μˆ˜ μ΄ˆκΈ°ν™” μ‹œ ν• λ‹Ήλ˜λŠ” undefinedλŠ” λͺ‡ λ°”μ΄νŠΈμΈκ°€?

λͺ¨λ¦„, μ •ν™•ν•œ ECMAScript μ‚¬μ–‘μ„œμ— λ‚˜μ™€μžˆμ§€ μ•Šκ³  λΈŒλΌμš°μ € μ—”μ§„λ§ˆλ‹€ 닀름

πŸ’‘ λ©”λͺ¨λ¦¬ μ…€μ˜ ν¬κΈ°λŠ” μ™œ 1λ°”μ΄νŠΈ(8λΉ„νŠΈ)인가?

μœ μ˜λ―Έν•œ μ΅œμ†Œ λ‹¨μœ„κ°€ 1λ°”μ΄νŠΈμ΄κΈ° λ•Œλ¬Έμ— 약속


μ›μ‹œ κ°’

β†’ λΆˆλ³€ν•œ κ°’, κΈ°λ³Έ 값이며, κ·Έ μ’…λ₯˜μ—λŠ” 숫자, λ¬Έμžμ—΄, λΆˆλ¦¬μ–Έ, null, undefined, BigInt(큰 μ •μˆ˜), 심볼 등이 있음.

πŸ’‘ μˆ˜ν•™μ—μ„œμ˜ μ‹€μˆ˜μ™€ ν”„λ‘œκ·Έλž˜λ°μ—μ„œμ˜ μ‹€μˆ˜λŠ” 닀름

ν”„λ‘œκ·Έλž˜λ°μ—μ„œμ˜ μ‹€μˆ˜λŠ” float(뢀동 μ†Œμˆ˜μ )
μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œμ˜ NumberλŠ” μ •μˆ˜μ²˜λŸΌ 보여도 μ‹€μˆ˜

πŸ€” μ™œ μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” μ •μˆ˜κ°€ μ•„λ‹ˆλΌ μ‹€μˆ˜λ₯Ό Number νƒ€μž…μœΌλ‘œ κ°€μ§€λŠ”κ°€?


μ΄ˆκΈ°ν™”λž€?

λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜κ³  처음으둜 값을 ν• λ‹Ήν•˜λŠ” κ²ƒμž„.

λ³€μˆ˜μ— undefinedλ₯Ό ν• λ‹Ήν•˜λŠ” ν–‰μœ„λŠ” 암묡적인 것인데, 일반적으둜 μ„€λͺ…ν•  λ•Œ 할당은 μ—„λ°€νžˆ λ§ν•˜λ©΄ μž¬ν• λ‹Ήμ΄μ§€λ§Œ(λ¨Όμ € undefinedκ°€ ν• λ‹Ήλ˜μ—ˆμœΌλ―€λ‘œ) μ΄ˆκΈ°ν™”λΌκ³  이야기함.


μ›μ‹œ 값은 μ™œ λ³€ν•˜μ§€ μ•ŠλŠ”κ°€?

μ›λž˜ 있던 값을 μ§€μš°κ³  μƒˆλ‘œ μ“°λŠ” 것보닀, μƒˆλ‘œ ν• λ‹Ήν•œ 값에 λ©”λͺ¨λ¦¬ μ£Όμ†Œλ§Œ λ°”κΏ”μ£ΌλŠ” 것이 더 효율적이기 λ•Œλ¬Έμž„.

κ°μ²΄λŠ” μ™œ λ³€ν•˜λŠ”κ°€?

객체가 μ›μ‹œ κ°’μ²˜λŸΌ λ™μž‘ν•˜λ©΄ 객체 λ‚΄μš©μ„ λ°”κΎΈλŠ” μˆœκ°„ μƒˆλ‘œμš΄ 객체가 μƒμ„±λ˜μ–΄μ•Ό 함, κ·Έ 객체의 생성 λΉ„μš©μ΄ μ›μ‹œ κ°’ 생성 λΉ„μš©λ³΄λ‹€ 훨씬 큼

객체의 크기가 μ›μ‹œ κ°’μ˜ 크기보닀 훨씬 큼, μ§€κΈˆμ²˜λŸΌ 컴퓨터 사양이 λ°œμ „ν•œ κ²½μš°μ—λŠ” λ¬΄μ˜λ―Έν•˜μ§€λ§Œ μ˜ˆμ „μ— λ©”λͺ¨λ¦¬ μžμ²΄κ°€ κ·€ν•˜λ˜ μ‹œμ ˆμ—λŠ” κ·Έ λΉ„μš©μ„ ꡉμž₯히 μ€‘μš”ν•˜κ²Œ μƒκ°ν–ˆμŒ


얕은 볡사와 κΉŠμ€ 볡사

μ˜ˆμ „μ—λŠ” slice μ‚¬μš©ν•˜μ—¬ λ³΅μ‚¬ν–ˆμŒ

β†’ slice μ‚¬μš©ν•˜μ—¬ λ‚΄λΆ€ κ°’κ²Œ λ³΅μ‚¬ν•˜λ”λΌλ„ μ°Έμ‘°ν•˜λŠ” λ©”λͺ¨λ¦¬ μ£Όμ†ŒλŠ” λ‹€λ₯΄κΈ° λ•Œλ¬Έμ—
=== μ—°μ‚°μž μ‚¬μš©ν•˜μ—¬ 비ꡐ해보면 falseκ°€ λ‚˜μ˜¨λ‹€. μ™œλƒν•˜λ©΄, μ°Έμ‘° 값을 λΉ„κ΅ν•˜κΈ° λ•Œλ¬Έμž„.

μ§€κΈˆμ€ μŠ€ν”„λ ˆλ“œ μ—°μ‚°μž μ‚¬μš©

<λŒ€λΆ€λΆ„μ˜ copy 방법이 얕은 볡사λ₯Ό ν•˜λŠ” 이유>
κΉŠμ€ λ³΅μ‚¬λŠ” λͺ‡ depthκ°€ μžˆλŠ”μ§€ λͺ¨λ₯΄κΈ° λ•Œλ¬Έμ— λ©”λͺ¨λ¦¬λ₯Ό ꡉμž₯히 낭비함

κΉŠμ€ 볡사 방법

(1) stringify

객체λ₯Ό copy ν•  λ•Œ λ©”μ„œλ“œ λ³΅μ‚¬λŠ” λΆˆκ°€λŠ₯ν•˜λ‹€λŠ” 문제점이 있음

πŸ’‘ ν•¨μˆ˜μ˜ λ³΅μ‚¬λŠ” μ–΄λ–»κ²Œ μ΄λ£¨μ–΄μ§€λŠ”κ°€?

객체의 μˆ¨κ²¨μ§„ ν”„λ‘œνΌν‹°λ“€λ„ λ‹€ 볡사해야 ν•˜λŠ”λ°, κ·Έκ²ƒκΉŒμ§€ 볡사할 수 μžˆλŠ” 방법이 μ—†μŒ
β†’ 결ꡭ은 ν•¨μˆ˜μ˜ κΉŠμ€ 볡사가 거의 λΆˆκ°€λŠ₯에 κ°€κΉŒμ›€

(2) 라이브러리 μ‚¬μš©

ꢌμž₯λ˜λŠ” 방법이며, 객체λ₯Ό 볡사할 λ•Œ ν”„λ‘œνΌν‹° ν‚€λ₯Ό κ°€μ Έμ™€μ„œ 객체인지 μ•„λ‹Œμ§€ νŒŒμ•…ν•œ ν›„, 객체면 κΉŠμ€ 볡사 ν•œ 번 더 ν•˜κ³ , μ›μ‹œ 값이면 ν• λ‹Ήλ§Œ ν•˜λ©΄ 됨

πŸ’‘ κΉŠμ€ 볡사에 κ΄€λ ¨λœ ν•¨μˆ˜λŠ” μ™œ μΆ”κ°€λ˜μ§€ μ•ŠλŠ”κ°€?

λ‚¨λ°œν•  κ°€λŠ₯성이 있기 λ•Œλ¬Έμž„.
μ—„μ²­ μ»€λ‹€λž€ 객체λ₯Ό 계속 λ³΅μ‚¬ν•˜λŠ” 경우 λ©”λͺ¨λ¦¬κ°€ 가득 μ°¨λŠ” μ‹¬κ°ν•œ λ¬Έμ œκ°€ 생길 수 있음
β†’ κΉŠμ€ λ³΅μ‚¬λŠ” λ‹€λ₯Έ μ–Έμ–΄μ—μ„œλ„ 라이브러리둜 제곡됨


πŸ“šΒ ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ 객체λ₯Ό μ°Έμ‘°ν•˜λŠ” 경우 λ°”λžŒμ§ν•œ 방법

ν•¨μˆ˜ν˜•μ—μ„œ μ™ΈλΆ€ μƒνƒœλ₯Ό μ°Έμ‘°, λ³€κ²½ν•˜μ§€ μ•ŠκΈ° μœ„ν•΄μ„œ μƒˆλ‘œμš΄ λ°°μ—΄, 객체λ₯Ό λ°˜ν™˜ν•΄μ•Ό 함

μŠ€ν”„λ ˆλ“œ 문법 μ‚¬μš©ν•˜μ—¬ 얕은 λ³΅μ‚¬λ‘œ μƒˆλ‘œμš΄ 객체 λ°˜ν™˜

κ²°κ΅­ 이 λͺ¨λ“  것은 μ‹€μˆ˜λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•œ κ²ƒλ“€μž„

μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진은 λ™μΌν•œ ν•¨μˆ˜ λ¦¬ν„°λŸ΄μ„ μ„ μ–Έλ¬ΈμœΌλ‘œ, ν‘œν˜„μ‹μœΌλ‘œ κ΅¬λΆ„ν•˜μ—¬ ν• λ‹Ή

이 두 κ°œλŠ” λ¬Έλ§₯에 따라 λ‹€λ₯΄κ²Œ ν‰κ°€ν•˜λŠ”λ°,

μ€‘κ΄„ν˜Έ { } μ—­μ‹œ κ°’μœΌλ‘œ 평가될 수 μžˆλŠ”μ§€ μ•„λ‹Œμ§€ λ¬Έλ§₯에 따라 λ‹€λ₯΄κ²Œ 평가함

κ·Έλ ‡λ‹€λ©΄, ν•¨μˆ˜ ν‘œν˜„μ‹κ³Ό μ„ μ–Έλ¬Έ 쀑 μ–΄λ–€ 것을 μ‚¬μš©ν•΄μ•Ό ν•˜λŠ”κ°€?

무엇을 써도 상관은 μ—†μ§€λ§Œ, μ½”λ“œ μ „μ²΄μ˜ 일관성을 κ³ λ €ν•˜μ—¬ λ‘˜ 쀑 ν•˜λ‚˜λ§Œ κ³¨λΌμ„œ μ‚¬μš©ν•  것


String, Number λ“± μƒμ„±μž ν•¨μˆ˜λ‘œ νƒ€μž… λ³€ν™˜μ„ ν•˜λŠ” 것은 쒋지 μ•ŠμŒ

ν•¨μˆ˜μ˜ λͺ©μ μ— 맞게 μ‚¬μš©ν•˜λŠ” 것이 μ€‘μš”ν•¨

β†’ μƒμ„±μž ν•¨μˆ˜λŠ” μ›λž˜ String 객체λ₯Ό μƒμ„±ν•˜λŠ” κ²ƒμ΄λ―€λ‘œ λ¬Έμžμ—΄λ‘œ νƒ€μž… λ³€ν™˜ν•  λ•Œ μ‚¬μš©ν•˜λŠ” 것은 ν•¨μˆ˜μ˜ λͺ©μ μ— λ§žμ§€ μ•ŠμŒ


switch λ¬Έ

λ„ˆλ¬΄ λ³΅μž‘ν•˜κΈ° λ•Œλ¬Έμ— μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 것이 λ°”λžŒμ§ν•¨


μ¦‰μ‹œ μ‹€ν–‰ ν•¨μˆ˜λŠ” μ™œ μ‚¬μš©ν•˜λŠ”κ°€?

μ˜ˆμ „μ—λŠ” μ „μ—­ λ³€μˆ˜λ₯Ό μ˜€μ—Όμ‹œν‚€μ§€ μ•ŠκΈ° μœ„ν•΄ μ‚¬μš©ν–ˆλŠ”λ°, μš”μ¦˜μ—λŠ” λͺ¨λ“ˆμ΄ λ“±μž₯ν•΄μ„œ ꡳ이 ν•„μš” μ—†μŒ

ν•œ 번만 μ‚¬μš©ν•˜κ³  버리고 싢을 λ•Œ μ‚¬μš©ν•˜λ©°, μš”μ¦˜μ—λŠ” ν΄λ‘œμ €λ₯Ό λ§Œλ“€κΈ° μœ„ν•΄μ„œ μ‚¬μš©ν•¨.

profile
μ„±μž₯ν•˜λŠ” 개발자🌼

0개의 λŒ“κΈ€