β†Β λ’€λ‘œκ°€κΈ°

챕터 1-2: κΈ°λ³Έν˜• 데이터와 μ°Έμ‘°ν˜• 데이터

2023/01/24

κΈ°λ³Έν˜• 데이터(λΆˆλ³€κ°’)

λ³€κ²½ κ°€λŠ₯μ„±μ˜ 차이가 μžˆλ‹€.
λ³€μˆ˜λŠ” λ³€ν•  수 μžˆμ–΄μ„œ λ³€μˆ˜μ΄λ‹€. 반면, μƒμˆ˜λŠ” λΆˆλ³€μ΄λ‹€. 그런데, μ–΄λ–€κ²Œ λ³€ν•  수 μžˆλ‹€λŠ” κ²ƒμΌκΉŒ?

λ³€μˆ˜μ˜ 값을 λ³€κ²½ν•˜λŠ” κ³Όμ •

a = a + 'def';

  • μ•žμž₯μ—μ„œ μ–ΈκΈ‰ν–ˆλ“―, a + 'def'λ₯Ό ν•˜κ²Œ 되면, κΈ°μ‘΄ 데이터λ₯Ό μˆ˜μ •ν•˜μ§€ μ•Šκ³ , μƒˆλ‘œμš΄ 데이터인 'abcdef'λ₯Ό μƒμ„±ν•œ λ‹€μŒ, 이 λ°μ΄ν„°μ˜ μ£Όμ†Œλ₯Ό λ³€μˆ˜μ˜ κ°’μœΌλ‘œ μ‚¬μš©ν•œλ‹€.

b = 7

  • b, c의 경우, 데이터 μ˜μ—­μ— 5λ₯Ό μƒμ„±ν•˜κ³ , c에 ν• λ‹Ήν•  λ•Œ μž¬ν™œμš©ν•œλ‹€. 이후, b = 7을 ν•  λ•Œ, 데이터 5λ₯Ό μˆ˜μ •ν•˜λŠ”κ²Œ μ•„λ‹ˆλΌ, μƒˆλ‘œμš΄ 데이터 곡간을 ν• λ‹Ήν•˜κ³ , 7을 μ €μž₯ν•œ λ‹€μŒ, κ·Έ μ£Όμ†Œλ₯Ό λ³€μˆ˜μ˜ κ°’μœΌλ‘œ μ‚¬μš©ν•œλ‹€.

ν•œλ²ˆ λ§Œλ“  값은 λ‹€λ₯Έ κ°’μœΌλ‘œ λ³€κ²½ν•  수 μ—†λ‹€

  • 변경은 였직 μƒˆλ‘œ λ§Œλ“œλŠ” λ™μž‘μ„ ν†΅ν•΄μ„œλ§Œ 이루어진닀.
  • λ°μ΄ν„°λŠ” 더 이상 μ°Έμ‘°ν•˜λŠ” λ³€μˆ˜κ°€ μ—†μ–΄μ„œ κ°€λΉ„μ§€ μ»¬λ ‰νŒ… λ‹Ήν•΄μ„œ μ‚¬λΌμ§ˆ μ§€μ–Έμ •, λ³€κ²½λ˜μ§€λŠ” μ•ŠλŠ”λ‹€.
  • λ°”λ€ŒλŠ” 것은 였직 λ³€μˆ˜μ— ν• λ‹Ήλœ μ£Όμ†Œκ°’λ§Œ 바뀐닀.

μ°Έμ‘°ν˜• 데이터(κ°€λ³€κ°’)

κΈ°λ³Έν˜• λ°μ΄ν„°λŠ” λ³€μˆ˜ 값을 μ°Έμ‘°ν•˜λ©΄ λ°”λ‘œ 데이터 μ˜μ—­μœΌλ‘œ μ ‘κ·Όν•˜μ§€λ§Œ,
μ°Έμ‘°ν˜• λ°μ΄ν„°λŠ” λ³€μˆ˜κ°’μ„ μ°Έμ‘°ν•˜λ©΄ 객체가 λ‚˜μ˜€κ³ , ν”„λ‘œνΌν‹° λ³€μˆ˜λ₯Ό ν•œλ²ˆ 더 μ°Έμ‘°ν•΄μ•Ό 데이터 μ˜μ—­μœΌλ‘œ μ ‘κ·Όν•  수 μžˆλ‹€.

μœ„μ˜ μ½”λ“œλŠ” 객체 데이터λ₯Ό λ³€μˆ˜ obj1에 μ €μž₯ν•œλ‹€. μ‹€ν–‰ν•˜λ©΄ μ•„λž˜μ™€ 같은 일이 μΌμ–΄λ‚œλ‹€

  1. λ³€μˆ˜μ˜μ—­μ˜ 빈 곡간을 ν™•λ³΄ν•˜κ³ , 이 μ£Όμ†Œμ˜ 이름을 obj1둜 μ§€μ •ν•œλ‹€.
  2. μž„μ˜μ˜ 데이터 μ €μž₯ 곡간에 객체 데이터λ₯Ό μ €μž₯ν•˜λ €κ³  μ‹œλ„ν•œλ‹€.
    μ΄λ•Œ, μ €μž₯ν•˜λ €λŠ” λ°μ΄ν„°λŠ” μ—¬λŸ¬ 개의 ν”„λ‘œνΌν‹°λ‘œ μ΄λ£¨μ–΄μ Έμžˆλ‹€. λ³„λ„μ˜ λ³€μˆ˜ μ˜μ—­μ„ λ§ˆλ ¨ν•˜κ³ , κ·Έ μ˜μ—­μ˜ μ£Όμ†Œλ₯Ό ν•΄λ‹Ή 데이터 곡간에 μ €μž₯ν•œλ‹€.
    μ΄λ•Œ, 객체의 ν”„λ‘œνΌν‹°λ₯Ό μœ„ν•œ λ³€μˆ˜ 곡간은 λ™μ μœΌλ‘œ ν• λ‹Ήν•œλ‹€.
  3. 객체λ₯Ό μœ„ν•΄ ν™•λ³΄ν•œ λ³€μˆ˜μ— a, bλΌλŠ” ν”„λ‘œνΌλ―Έ 이름을 μ§€μ •ν•œλ‹€
  4. 데이터 μ˜μ—­μ—μ„œ 1을 검색, μ—†μœΌλ‹ˆ μž„μ˜μ˜ 곡간에 μ €μž₯ν•˜κ³  이λ₯Ό a에 μ €μž₯ν•œλ‹€.
    λ§ˆμ°¬κ°€μ§€λ‘œ 'bbb'도 μ—†μœΌλ‹ˆ μž„μ˜μ˜ 곡간에 μ €μž₯ν•˜κ³  이λ₯Ό b에 μ €μž₯ν•œλ‹€.

μ°Έμ‘°ν˜• λ°μ΄ν„°λŠ” 객체의 λ³€μˆ˜(ν”„λ‘œνΌν‹°) μ˜μ—­μ΄ λ³„λ„λ‘œ μ‘΄μž¬ν•œλ‹€

  • 객체가 λ³„λ„λ‘œ ν• λ‹Ήν•œ λ³€μˆ˜ μ˜μ—­μ„ κ°€μ§€κ³  μžˆλ‹€.
  • μ‹€μ œ 데이터 μ˜μ—­μ€, κΈ°λ³Έν˜•κ³Ό 같은 λ©”λͺ¨λ¦¬ 곡간을 ν™œμš©ν•œλ‹€.
  • 데이터 μ˜μ—­μ— μ €μž₯된 값은 λΆˆλ³€μ΄λ‚˜, λ³€μˆ˜ μ˜μ—­μ— μ €μž₯된 값은 λ‹€λ₯Έ κ°’μœΌλ‘œ λŒ€μž…ν•˜λŠ”κ²Œ κ°€λŠ₯ν•˜λ‹€.
  • μ΄λŸ¬ν•œ μ„±μ§ˆλ•Œλ¬Έμ— 객체, 즉 μ°Έμ‘°ν˜•μ˜ λ°μ΄ν„°λŠ” 가변적이닀 라고 ν‘œν˜„ν•œλ‹€. ν•˜μ§€λ§Œ μ΄λŠ” ν”„λ‘œνΌν‹°κ°€ λ³€μˆ˜μ΄κΈ° λ•Œλ¬Έμ— 그런 것이닀.

쀑첩 객체

  • μ°Έμ‘°ν˜• 데이터(객체)의 ν”„λ‘œνΌν‹°μ— μ°Έμ‘°ν˜• 데이터(객체)λ₯Ό 넣은 것을 λ§ν•œλ‹€.
  • 이 κ²½μš°λ„ λ§ˆμ°¬κ°€μ§€λ‘œ, 객체의 λ³€μˆ˜κ³΅κ°„μ— ν”„λ‘œνΌν‹°λ₯Ό μœ„ν•œ 곡간이 ν• λ‹Ήλœλ‹€. λ°μ΄ν„°λŠ” 데이터 μ˜μ—­μ— ν• λ‹Ήλœλ‹€. λ‹€λ§Œ, 데이터가 μ°Έμ‘°ν˜• 데이터이닀 λ³΄λ‹ˆ, ν•΄λ‹Ή 객체λ₯Ό μœ„ν•œ λ³€μˆ˜ 곡간을 ν™•λ³΄ν•œλ‹€. 그리고 μ–˜μ˜ 데이터도 데이터 μ˜μ—­μ— ν• λ‹Ήλœλ‹€.

κΈ°λ³Έν˜• 데이터와 μ°Έμ‘°ν˜• 데이터 μš”μ•½

  • λ³€μˆ˜μ˜μ—­μ€ λ³€κ²½ κ°€λŠ₯ν•˜λ‹€. μƒˆλ‘œμš΄ μ£Όμ†Œκ°’μ„ λŒ€μž…ν•˜λ©΄ λœλ‹€.
  • 반면, 데이터 μ˜μ—­μ€ λ³€κ²½ν•  수 μ—†λ‹€. 였직 μƒˆλ‘œμš΄ 데이터λ₯Ό λ§Œλ“œλŠ” 것 만이 κ°€λŠ₯ν•˜λ‹€.
    더 이상 μ°Έμ‘°λ˜μ§€ μ•ŠλŠ” λ°μ΄ν„°λŠ” κ°€λΉ„μ§€ 컬렉터에 μ˜ν•΄ μ†Œλ©Έν•œλ‹€
  • μ°Έμ‘°ν˜• 데이터인 κ°μ²΄λŠ” ν”„λ‘œνΌν‹°λ₯Ό κ°€μ§€λŠ”λ°, 이λ₯Ό μœ„ν•΄ λ³€μˆ˜ 곡간이 ν• λ‹Ήλœλ‹€.
    이 λ³€μˆ˜ 곡간은 λ™μ μœΌλ‘œ ν• λ‹Ήλ˜λ©°, λ³€μˆ˜μ΄κΈ°μ— μƒˆλ‘œμš΄ 값을 λŒ€μž…ν•˜λŠ”κ²ƒμ΄ κ°€λŠ₯ν•˜λ‹€.
    μ΄λŸ¬ν•œ 점 λ•Œλ¬Έμ— μ°Έμ‘°ν˜•μ˜ λ°μ΄ν„°λŠ” 가변적이라고 ν‘œν˜„ν•œλ‹€.