πŸ‘Š μ½”μ–΄ μžλ°”μŠ€ν¬λ¦½νŠΈ - 1μž₯. 데이터 νƒ€μž…(1)

MJΒ·2023λ…„ 1μ›” 10일
0
post-thumbnail

μ›Ή ν”„λ‘ νŠΈμ—”λ“œ 개발자둜 μ„±μž₯ν•˜κΈ° μœ„ν•΄ μš°ν…Œμ½”μ—μ„œ μΆ”μ²œλ°›μ€ 책을 읽고

❓ μΆ”μ²œλ°›μ€ 이유

ES2015+λΆ€ν„° ν•™μŠ΅ν•˜λŠ” μ‹œλŒ€μ— 이전 μŠ€νŽ™μ˜ ν•„μš”μ„±μ„ 느끼기 μ–΄λ €μšΈ 수 μžˆλ‹€. ν•˜μ§€λ§Œ 이전 μŠ€νŽ™μ˜ 핡심 κ°œλ…λ“€μ€ μ—¬μ „νžˆ μœ νš¨ν•˜λ©° 이λ₯Ό λ¬΄μ‹œν•  수 μ—†λ‹€.
이 μ±…μ—μ„œλŠ” JavaScript의 핡심 κ°œλ…λ“€ 쀑 ν˜„μ‹œλŒ€μ—λ„ μœ νš¨ν•œ 것듀 μœ„μ£Όλ‘œ μ μ ˆν•˜κ²Œ κ°„μΆ”λ €μ Έ μžˆλ‹€.
λ˜ν•œ 원리와 이해λ₯Ό λͺ©μ μœΌλ‘œ 두고 μžˆμ–΄ JavaScript μ–Έμ–΄λ‘  기반 지식을 μŒ“λŠ”λ° 맀우 μœ μš©ν•˜λ‹€.

❗ 책을 읽고

이 책은 ν•œκ°€μ§€μ˜ 주제λ₯Ό 닀룬닀.

핡심 κ°œλ…κ³Ό λ™μž‘μ›λ¦¬λ‘œ μ΄ν•΄ν•˜λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ ν”„λ‘œκ·Έλž˜λ°

μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ 핡심 κ°œλ…λ“€μ„ μ •ν™•νžˆ μ΄ν•΄ν•˜κ³ , λ‹€μ–‘ν•œ 싀무 ν™˜κ²½ μ†μ—μ„œ μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ μ „λ°˜μ μΈ ꡬ동 원리λ₯Ό νŒŒμ•…ν•΄μ„œ μ•žμœΌλ‘œ λ‚˜μ•„κ°ˆ 수 μžˆλŠ” κΈ°λ°˜μ„ λ§Œλ“€μ–΄ 보자.

βœ”οΈ 데이터 νƒ€μž…

1. κΈ°λ³Έν˜•(primitive type)

값이 λ‹΄κΈ΄ μ£Όμ†Ÿκ°’μ„ λ°”λ‘œ λ³΅μ œν•œλ‹€.

  • 숫자
  • λ¬Έμžμ—΄
  • λΆˆλ¦¬μ–Έ(boolean)
  • null
  • undefined
  • Symbol(ES6μ—μ„œ μΆ”κ°€)

2. μ°Έμ‘°ν˜•(reference type)

값이 λ‹΄κΈ΄ μ£Όμ†Ÿκ°’λ“€λ‘œ 이루어진 λ¬ΆμŒμ„ κ°€λ¦¬ν‚€λŠ” μ£Όμ†Ÿκ°’μ„ λ³΅μ œν•œλ‹€.

  • 객체
  • λ°°μ—΄
  • ν•¨μˆ˜
  • λ‚ μ§œ
  • μ •κ·œν‘œν˜„μ‹
    (μ•„λž˜λ‘œ ES6μ—μ„œ μΆ”κ°€)
  • Map
  • WeakMap
  • Set
  • Weak Set
    ...

βœ”οΈ λ©”λͺ¨λ¦¬μ™€ 데이터

λΉ„νŠΈ: 0λ˜λŠ” 1만 ν‘œν˜„ν•  수 μžˆλŠ” ν•˜λ‚˜μ˜ λ©”λͺ¨λ¦¬ 쑰각

  • κ³ μœ ν•œ μ‹λ³„μžλ₯Ό 톡해 μœ„μΉ˜λ₯Ό 확인할 수 μžˆλ‹€.
  • λΉ„νŠΈ λ‹¨μœ„λ‘œ μœ„μΉ˜λ₯Ό ν™•μΈν•˜λŠ” 것은 맀우 λΉ„νš¨μœ¨μ μΈ μž‘μ—…μ΄λ‹€.
  • 이λ₯Ό λ³΄μ™„ν•˜κΈ° μœ„ν•΄ λͺ‡ κ°œμ”© λ¬Άμ–΄ ν•˜λ‚˜μ˜ λ‹¨μœ„λ‘œ 여겨 ν‘œν˜„ν•  수 μžˆλŠ” 값을 λŠ˜λ¦¬λ©΄μ„œ, 검색 μ‹œκ°„μ„ λ‹¨μΆ•ν•˜κΈ° μœ„ν•΄ λ§Œλ“€μ–΄ 진것이 λ°”μ΄νŠΈλ‹€.

λ°”μ΄νŠΈ: 8개의 λΉ„νŠΈλ‘œ κ΅¬μ„±λœ λ‹¨μœ„

  • 1λ°”μ΄νŠΈλŠ” 256(2^8)개의 값을 ν‘œν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • C, C++, JAVA와 같은 정적 μ–Έμ–΄λŠ” κ³Όκ±° λ©”λͺ¨λ¦¬ λΆ€μ‘±μœΌλ‘œ λ‚­λΉ„λ₯Ό μ΅œμ†Œν™” ν•˜κΈ°μœ„ν•΄ 데이터 νƒ€μž…λ³„λ‘œ ν• λ‹Ήν•  λ©”λͺ¨λ¦¬ μ˜μ—­μ„ 2λ°”μ΄νŠΈ, 4λ°”μ΄νŠΈλ‘œ λ‚˜λˆ  μ •ν•΄λ†“μ•˜μŠ΅λ‹ˆλ‹€.
  • μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” μƒλŒ€μ μœΌλ‘œ λ©”λͺ¨λ¦¬ 관리에 λŒ€ν•œ μ••λ°•μ—μ„œ μžμœ λ‘œμ›Œμ Έ λ©”λͺ¨λ¦¬ 곡강을 λ„‰λ„‰ν•˜κ²Œ ν™•λ³΄ν•©λ‹ˆλ‹€.
  • λͺ¨λ“  λ°μ΄ν„°λŠ” λ°”μ΄νŠΈ λ‹¨μœ„μ˜ μ‹λ³„μž, 더 μ •ν™•ν•˜κ²Œ λ©”λͺ¨λ¦¬ μ£Όμ†Ÿκ°’μ„ 톡해 μ„œλ‘œ κ΅¬λΆ„ν•˜κ³  연결이 κ°€λŠ₯ν•©λ‹ˆλ‹€.

βœ”οΈ μ‹λ³„μžμ™€ λ³€μˆ˜

λ³€μˆ˜: '데이터', λ³€ν•  수 μžˆλŠ” 무언가
μ‹λ³„μž: 'λ³€μˆ˜λͺ…', 데이터λ₯Ό μ‹λ³„ν•˜λŠ”λ° μ‚¬μš©ν•˜λŠ” 이름


βœ”οΈ λ³€μˆ˜ μ„ μ–Έκ³Ό 데이터 ν• λ‹Ή

λ³€μˆ˜ μ„ μ–Έ

var a; // λ³€ν•  수 μžˆλŠ” 데이터λ₯Ό λ§Œλ“ λ‹€. 이 λ°μ΄ν„°μ˜ μ‹λ³„μžλŠ” a둜 ν•œλ‹€.
❗ λ³€μˆ˜λž€ λ³€κ²½ κ°€λŠ₯ν•œ 데이터가 λ‹΄κΈΈμˆ˜ μžˆλŠ” 곡간 λ˜λŠ” 그릇

데이터 ν• λ‹Ή

var a; // λ³€μˆ˜ a μ„ μ–Έ
a = 'abc'; // λ³€μˆ˜ a에 데이터 ν• λ‹Ή

var b = 'bcd'; // λ³€μˆ˜ aλ₯Ό μ„ μ–Έν•˜λ©΄μ„œ 데이터λ₯Ό ν• λ‹Ή

βœ”οΈ μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ 데이터 ꡬ쑰 이해

  1. λ©”λͺ¨λ¦¬μ—μ„œ λΉ„μ–΄μžˆλŠ” 곡간을 확보
  2. μž„μ˜μ˜ μ£Όμ†Œμ— λ°μ΄ν„°μ˜ 이름과 값을 ν• λ‹Ή

β“λ¬Έμžμ—΄ 'abc'λŠ” 직접 μ €μž₯λ˜μ§€ μ•ŠλŠ”λ‹€?

데이터λ₯Ό μ €μž₯ν•˜κΈ° μœ„ν•œ λ³„λ„μ˜ λ©”λͺ¨λ¦¬ 곡간을 ν™•λ³΄ν•΄μ„œ λ¬Έμžμ—΄(데이터)을 μ €μž₯ν•˜κ³ , κ·Έ μ£Όμ†Œλ₯Ό λ³€μˆ˜ μ˜μ—­μ— μ €μž₯

β—μ΄μœ :

1. 데이터λ₯Ό 자유둭게 λ³€ν™˜ κ°€λŠ₯ν•˜κ²Œ 함
2. λ©”λͺ¨λ¦¬λ₯Ό λ”μš± 효율적으둜 κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄
3. λ³€μˆ˜ μ˜μ—­κ³Ό 데이터 μ˜μ—­μ„ λΆ„λ¦¬ν•˜λ©΄ μ€‘λ³΅λœ 데이터에 λŒ€ν•œ 처리 효율이 높아진닀.

❗결둠❗

λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜κ³  데이터λ₯Ό ν• λ‹Ήν•˜κΈ° μœ„ν•΄μ„œ
μ•„λž˜μ™€ 같은 과정을 μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” μ‹œν–‰ν•œλ‹€.

  1. λ³€μˆ˜ μ˜μ—­μ—μ„œ 빈 곡간을 ν™•λ³΄ν•œλ‹€.
  2. ν™•λ³΄ν•œ κ³΅κ°„μ˜ μ‹λ³„μžλ₯Ό μ§€μ •ν•œλ‹€.
  3. 데이터 μ˜μ—­μ˜ 빈 곡간에 λ¬Έμžμ—΄(데이터)을 μ €μž₯ν•œλ‹€.
  4. λ³€μˆ˜ μ˜μ—­μ—μ„œ ν•΄λ‹Ήν•˜λŠ” μ‹λ³„μžλ₯Ό κ²€μƒ‰ν•œλ‹€.
  5. μ•žμ„œ μ €μž₯ν•œ λ¬Έμžμ—΄(데이터)의 μ£Όμ†Œλ₯Ό λ³€μˆ˜ μ˜μ—­μ—μ„œ μ±„μš΄ 곡간에 λŒ€μž…ν•œλ‹€.
  • ❗❗ λ¬Έμžμ—΄μ€ κΈ°μ‘΄ λ¬Έμžμ—΄μ— μ–΄λ–€ λ³€ν™”λ₯Ό κ°€ν•˜λ“  상관 없이 무쑰건 μƒˆλ‘œ λ§Œλ“€μ–΄ λ³„λ„μ˜ 곡간에 μ €μž₯ν•œλ‹€.
profile
A fancy web like a rose

0개의 λŒ“κΈ€