Search
πŸ—‚οΈ

Javascript Data Type

Javascript Data Type을 μ•Œμ•„μ•Ό ν•˜λŠ” 이유

ν”„λ‘ νŠΈμ—”λ“œμ—μ„œ λΆˆλ³€μ„±μ΄λΌλŠ” 말이 λ‚˜μ˜¬ λ•Œ ν—·κ°ˆλ¦°λ‹€λ©΄? λ³΅μ‚¬ν•œ 객체의 속성을 λ³€κ²½ν–ˆλŠ”λ° 원본 객체도 λ³€κ²½λœκ±Έ 본적이 μžˆλ‹€λ©΄?

이 λ¬Έμ„œλ₯Ό 보고 λ‚˜λ©΄

μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ 데이터 νƒ€μž…μ΄ ν•„μš”ν•œ 이유λ₯Ό μ•Œ 수 μžˆλ‹€.
κΈ°λ³Έν˜• νƒ€μž…κ³Ό μ°Έμ‘°ν˜• νƒ€μž…μ΄ μ„œλ‘œ λ‹€λ₯΄κ²Œ λ™μž‘ν•˜λŠ” 이유λ₯Ό 이해할 수 μžˆλ‹€.
객체의 λΆˆλ³€μ„±μ„ 보μž₯ν•˜λ©΄μ„œ 변경을 κ°€ν•˜κ±°λ‚˜ 볡사할 수 μžˆλ‹€.

Javascript Data Type

μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ λͺ¨λ“  값은 데이터 νƒ€μž…μ„ κ°–μŠ΅λ‹ˆλ‹€. 크게 2κ°€μ§€λ‘œ κΈ°λ³Έν˜•(Primitive Type)κ³Ό μ°Έμ‘°ν˜•(Reference Type)이 μžˆμŠ΅λ‹ˆλ‹€.
μœ„μ²˜λŸΌ κΈ°λ³Έν˜•κ³Ό μ°Έμ‘°ν˜•μœΌλ‘œ κ΅¬λΆ„ν•˜λŠ” μ΄μœ λŠ” λ¬΄μ—‡μΌκΉŒμš”? κ΅¬λΆ„ν•œλ‹€λŠ” 것은 근본적으둜 λ‹€λ₯Έμ μ΄ 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€.

Primitive Type(μ›μ‹œ κ°’)

μ›μ‹œ 값은 λ³€κ²½ λΆˆκ°€λŠ₯ν•œ κ°’μž…λ‹ˆλ‹€. 즉, ν•œλ²ˆ μƒμ„±λœ μ›μ‹œ 값은 읽기 μ „μš©μΈ κ°’μœΌλ‘œμ¨ λ³€κ²½ν•  수 μ—†μŠ΅λ‹ˆλ‹€. κ·Έλž˜μ„œ μ›μ‹œκ°’μ€ λΆˆλ³€μ„±(immutability)λ₯Ό κ°€μ§‘λ‹ˆλ‹€. 사싀 이 뢀뢄이 μ΄ν•΄ν•˜κΈ° μ–΄λ €μšΈ 수 μžˆλŠ”λ°μš”. 예λ₯Ό λ“€μ–΄ μ•„λž˜μ™€ 같이 λ³€μˆ˜μ— μƒˆλ‘œμš΄ 값을 ν• λ‹Ήν•˜λ©΄ ageλŠ” μ •μƒμ μœΌλ‘œ 20으둜 값이 잘 변경이 λ©λ‹ˆλ‹€. κ·Έλ ‡λ‹€λ©΄ 무엇이 λΆˆλ³€μ„±(immutability)λ₯Ό κ°€μ§„λ‹€λŠ” κ²ƒμΌκΉŒμš”?
var age = 30 age = 20
JavaScript
볡사
λ¨Όμ € λ³€μˆ˜μ™€ 값을 κ΅¬λΆ„ν•΄μ„œ μƒκ°ν•΄μ•Όν•˜λŠ”λ°μš”. λ³€μˆ˜λŠ” ν•˜λ‚˜μ˜ 값을 μ €μž₯ν•˜κΈ° μœ„ν•΄ ν™•λ³΄λœΒ λ©”λͺ¨λ¦¬ 곡간 μžμ²΄Β λ˜λŠ”Β λ©”λͺ¨λ¦¬ 곡간을 μ‹λ³„ν•˜κΈ° μœ„ν•΄ 뢙인 이름이고, 값은 λ³€μˆ˜μ— μ €μž₯된 λ°μ΄ν„°μž…λ‹ˆλ‹€. κ·Έλž˜μ„œ μ›μ‹œ 값은 λΆˆλ³€μ„±μ„ κ°€μ§„λ‹€λΌλŠ” 말은 μ›μ‹œ κ°’ 자체λ₯Ό λ³€κ²½ν•  수 μ—†λ‹€λŠ” 것이지, λ³€μˆ˜ 값을 λ³€κ²½ν•  수 μ—†λ‹€λŠ” 것이 μ•„λ‹™λ‹ˆλ‹€. λ³€μˆ˜λŠ” μ–Έμ œλ“ μ§€ μž¬ν• λ‹Ήμ„ 톡해 λ³€μˆ˜ 값을 λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ·Έλž˜μ„œΒ λ³€(ν• μˆ˜ μžˆλŠ”)수인 κ²ƒμž…λ‹ˆλ‹€.
κ·Έλž˜μ„œ λ³€μˆ˜μ— μƒˆλ‘œμš΄ 값을 ν• λ‹Ήν•˜λ©΄, μ›μ‹œκ°’μ€ λ³€κ²½ λΆˆκ°€λŠ₯ ν•˜κΈ° λ•Œλ¬Έμ— λ³€μˆ˜κ°€ μ°Έμ‘°ν•˜λŠ” λ©”λͺ¨λ¦¬ κ³΅κ°„μ˜ μ£Όμ†Œκ°€ λ³€κ²½λ©λ‹ˆλ‹€. μ΄λŸ¬ν•œ νŠΉμ„±μ„Β λΆˆλ³€μ„±(immutability) 라고 ν•©λ‹ˆλ‹€. λΆˆλ³€μ„±μ„ κ°–λŠ” μ›μ‹œ 값을 ν• λ‹Ήν•œ λ³€μˆ˜λŠ” μž¬ν• λ‹Ή μ΄μ™Έμ—λŠ” λ³€μˆ˜ 값을 λ³€κ²½ν•  수 μžˆλŠ” 방법이 μ—†μŠ΅λ‹ˆλ‹€. λ§Œμ•½ μž¬ν• λ‹Ήμ„ ν•˜μ§€ μ•Šκ³  λ³€μˆ˜ 값을 λ³€κ²½ν•  수 μžˆλ‹€λ©΄ κ°’μ˜ λ³€κ²½, 즉 μƒνƒœ 변경을 μΆ”μ ν•˜κΈ° μ–΄λ ΅κ²Œ λ§Œλ“­λ‹ˆλ‹€.
μƒνƒœ 변경을 μΆ”μ ν•˜λŠ” 것은 μ™œ ν•„μš”ν• κΉŒμš”? μ•„λž˜μ˜ κ°„λ‹¨ν•œ 예제λ₯Ό μ‚΄νŽ΄λ΄…μ‹œλ‹€.
var age = 30 var copy = age console.log(age) // 30 console.log(copy) // 30 age = 20 console.log(age) // 20 console.log(copy) // ?
JavaScript
볡사
age λ³€μˆ˜μ— κ°’ 30을 ν• λ‹Ήν•˜κ³ , copy λ³€μˆ˜μ— copy λ³€μˆ˜λ₯Ό ν• λ‹Ήν–ˆμŠ΅λ‹ˆλ‹€.κ·Έ ν›„ age λ³€μˆ˜μ— μƒˆλ‘œμš΄ 숫자 κ°’ 20을 μž¬ν• λ‹Ήν•˜λ©΄ copy λ³€μˆ˜μ˜ 값은 μ–΄λ–»κ²Œ λ κΉŒμš”? 이 질문의 핡심은 λ³€μˆ˜μ— λ³€μˆ˜λ₯Ό ν• λ‹Ήν–ˆμ„ λ•Œ 무엇이 μ–΄λ–»κ²Œ μ „λ‹¬λ˜λŠ”κ°€? μž…λ‹ˆλ‹€. λ³€μˆ˜μ— μ›μ‹œ 값을 κ°–λŠ” λ³€μˆ˜λ₯Ό ν• λ‹Ήν•˜λ©΄ ν• λ‹Ήλ°›λŠ” λ³€μˆ˜(copy)μ—λŠ” ν• λ‹Ήλ˜λŠ” λ³€μˆ˜(age)의 μ›μ‹œ 값이 λ³΅μ‚¬λ˜μ–΄ μ „λ‹¬λ©λ‹ˆλ‹€.
이λ₯ΌΒ κ°’에 μ˜ν•œ 전달 이라고 ν•©λ‹ˆλ‹€. 이 λ•Œ age λ³€μˆ˜μ™€ copy λ³€μˆ˜λŠ” 숫자 κ°’ 30을 κ°–λŠ”λ‹€λŠ” μ μ—μ„œλŠ” λ™μΌν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ age λ³€μˆ˜μ™€ copy λ³€μˆ˜μ˜ κ°’ 30은 μ„œλ‘œ λ‹€λ₯Έ λ©”λͺ¨λ¦¬ 곡간에 μ €μž₯된 λ³„κ°œμ˜ κ°’μž…λ‹ˆλ‹€.
κ²°κ΅­ 두 λ³€μˆ˜μ˜ μ›μ‹œ 값은 μ„œλ‘œ λ‹€λ₯Έ λ©”λͺ¨λ¦¬ 곡간에 μ €μž₯된 λ³„κ°œμ˜ 값이 λ˜μ–΄ μ–΄λŠ ν•œμͺ½μ—μ„œ μž¬ν• λ‹Ήμ„ 톡해 값을 λ³€κ²½ν•˜λ”λΌλ„ μ„œλ‘œ κ°„μ„­ν•  수 μ—†μŠ΅λ‹ˆλ‹€. 이λ₯Ό λΆˆλ³€μ„±(immutable)ν•œ μƒνƒœλ₯Ό 가진닀고 ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

Reference Type

κ°μ²΄λŠ” ν”„λ‘œνΌν‹°μ˜ κ°œμˆ˜κ°€ μ •ν•΄μ Έ μžˆμ§€ μ•ŠμœΌλ©°, λ™μ μœΌλ‘œ μΆ”κ°€λ˜κ³  μ‚­μ œλ  수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ ν”„λ‘œνΌν‹°μ˜ 값에도 μ œμ•½μ΄ μ—†μŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ κ°μ²΄λŠ” μ›μ‹œ κ°’κ³Ό 같이 확보해야할 λ©”λͺ¨λ¦¬ κ³΅κ°„μ˜ 크기λ₯Ό 사전에 μ •ν•  μˆ˜κ°€ μ—†λŠ”λ°μš”. κ°μ²΄λŠ” 볡합적인 μžλ£Œκ΅¬μ‘°μ΄λ―€λ‘œ 객체λ₯Ό κ΄€λ¦¬ν•˜λŠ” 방식이 μ›μ‹œ κ°’κ³Ό λΉ„κ΅ν•΄μ„œ 보닀 λ³΅μž‘ν•©λ‹ˆλ‹€. κ·Έλž˜μ„œ κ΅¬ν˜„ 방식도 λΈŒλΌμš°μ €λ§ˆλ‹€ λ‹€λ₯Έ κ²½μš°λ„ μžˆμŠ΅λ‹ˆλ‹€. μ›μ‹œ 값은 μƒλŒ€μ μœΌλ‘œ 적은 λ©”λͺ¨λ¦¬λ₯Ό μ†ŒλΉ„ν•˜μ§€λ§Œ κ°μ²΄λŠ” κ²½μš°μ— 따라 크기가 맀우 클 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. κ·Έλž˜μ„œ 객체λ₯Ό μƒμ„±ν•˜κ³  ν”„λ‘œνΌν‹°μ— μ ‘κ·Όν•˜λŠ” 것도 μ›μ‹œ κ°’κ³Ό 비ꡐ할 λ•Œ λΉ„μš©μ΄ 많이 λ“œλŠ” μΌμž…λ‹ˆλ‹€. κ·Έλž˜μ„œ κ°μ²΄λŠ” μ›μ‹œ κ°’κ³Ό λ‹€λ₯Έ λ°©μ‹μœΌλ‘œ λ™μž‘ν•©λ‹ˆλ‹€
객체(μ°Έμ‘°) νƒ€μž…μ€ μ›μ‹œκ°’κ³Ό λ‹€λ₯΄κ²ŒΒ λ³€κ²½ κ°€λŠ₯ν•œ κ°’(mutable value)Β μž…λ‹ˆλ‹€. λ¨Όμ € λ³€μˆ˜μ— 객체λ₯Ό ν• λ‹Ήν•˜λ©΄ μ–΄λ–€ 일이 λ°œμƒν• κΉŒμš”?
var user = { name: 'Jun' }
JavaScript
볡사
μœ„μ™€ 같이 μ„ μ–Έν–ˆμ„ λ•Œ μ›μ‹œ 값을 ν• λ‹Ήν•œ λ³€μˆ˜λŠ” μ›μ‹œ κ°’ 자체λ₯Ό κ°’μœΌλ‘œ κ°–μŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ 객체λ₯Ό ν• λ‹Ήν•œ λ³€μˆ˜λŠ” λ™μ μœΌλ‘œ λ³€ν•  수 μžˆλŠ” λ©”λͺ¨λ¦¬ 곡간에 μžˆλŠ” λ°μ΄ν„°μ˜ μ£Όμ†Œλ₯Ό κ°€λ¦¬ν‚€λŠ” 참쑰값을 κ°–μŠ΅λ‹ˆλ‹€. μ—¬κΈ°μ„œ μ°Έμ‘° 값은 μƒμ„±λœ 객체가 μ €μž₯된 λ©”λͺ¨λ¦¬ κ³΅κ°„μ˜ μ£Όμ†Œ, κ·Έ μžμ²΄μž…λ‹ˆλ‹€. κ·Έλž˜μ„œ 객체λ₯Ό ν• λ‹Ήν•œ λ³€μˆ˜λ₯Ό μ°Έμ‘°ν•˜λ©΄ λ©”λͺ¨λ¦¬μ— μ €μž₯λ˜μ–΄ μžˆλŠ” μ°Έμ‘° 값을 톡해 μ‹€μ œ 객체에 μ ‘κ·Όν•©λ‹ˆλ‹€.
μ΄λŸ¬ν•œ 점 λ•Œλ¬Έμ— μˆ˜μ •μ— μžˆμ–΄μ„œλ„ μ›μ‹œκ°’κ³ΌλŠ” λ‹€λ₯Έ νŠΉμ§•μ„ κ°–λŠ”λ°μš”. μ›μ‹œ 값은 λ³€κ²½ λΆˆκ°€λŠ₯ν•œ κ°’μ΄λ―€λ‘œ μ›μ‹œ 값을 κ°–λŠ” λ³€μˆ˜μ˜ 값을 λ³€κ²½ν•˜λ €λ©΄ μž¬ν• λ‹Ήμ„ 톡해 λ©”λͺ¨λ¦¬μ— μ›μ‹œ 값을 μƒˆλ‘­κ²Œ 생성해야 ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ κ°μ²΄λŠ” λ³€κ²½ κ°€λŠ₯ν•œ κ°’μ΄λ―€λ‘œ λ©”λͺ¨λ¦¬μ— μ €μž₯된 객체λ₯Ό 직접 μˆ˜μ • ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λ•Œ 객체λ₯Ό ν• λ‹Ήν•œ λ³€μˆ˜μ— μž¬ν• λ‹Ήμ„ ν•˜μ§€ μ•Šμ•˜μœΌλ―€λ‘œ 객체λ₯Ό ν• λ‹Ήν•œ λ³€μˆ˜μ˜ μ°Έμ‘° 값은 λ³€κ²½λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
κ°μ²΄λŠ” μ›μ‹œκ°’μ— λΉ„ν•΄ μƒμ„±ν•˜κ³  κ΄€λ¦¬ν•˜λŠ” 방식이 λ³΅μž‘ν•˜κ³  λΉ„μš©μ΄ 많이 λ“­λ‹ˆλ‹€. μ›μ‹œ κ°’μ²˜λŸΌ 크기가 μΌμ •ν•˜μ§€λ„ μ•Šκ³ , ν”„λ‘œνΌν‹° 값이 κ°μ²΄μΌμˆ˜λ„ μžˆμ–΄μ„œ λ³΅μ‚¬ν•΄μ„œ μƒμ„±ν•˜λŠ” λΉ„μš©μ΄ λ§Žμ΄λ“­λ‹ˆλ‹€. 즉 λ©”λͺ¨λ¦¬μ˜ 효율적 μ‚¬μš©μ΄ μ–΄λ ΅κ³  μ„±λŠ₯이 λ‚˜λΉ μ§ˆμˆ˜κ°€ μžˆλŠ”λ°μš”. λ”°λΌμ„œ λ©”λͺ¨λ¦¬μ˜ 효율적 μ‚¬μš©μ„ μœ„ν•΄ 객체λ₯Ό 볡사해 μƒμ„±ν•˜λŠ” λΉ„μš©μ„ μ ˆμ•½ν•˜κ³ , μ„±λŠ₯을 ν–₯μƒμ‹œν‚€κΈ° μœ„ν•΄ κ°μ²΄λŠ” λ³€κ²½ κ°€λŠ₯ν•œ κ°’μœΌλ‘œ μ„€κ³„λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. λ©”λͺ¨λ¦¬ μ‚¬μš©μ˜ νš¨μœ¨μ„±κ³Ό μ„±λŠ₯을 μœ„ν•΄ μ–΄λŠ μ •λ„μ˜ ꡬ쑰적인 단점을 κ°μ•ˆν•œ 섀계인 것이죠.
μ΄λŸ¬ν•œ ꡬ쑰둜 인해 ν•œκ°€μ§€ 단점이 μžˆμ„ 수 μžˆλŠ”λ°μš”. 그것은 μ›μ‹œ κ°’κ³ΌλŠ” λ‹€λ₯΄κ²Œ μ—¬λŸ¬ 개의 μ‹λ³„μžκ°€ ν•˜λ‚˜μ˜ 객체λ₯Ό κ³΅μœ ν•  수 μžˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.
var user = { name: 'Jun' } var copy = person
JavaScript
볡사
객체λ₯Ό κ°€λ¦¬ν‚€λŠ” λ³€μˆ˜(원본, user)λ₯Ό λ‹€λ₯Έ λ³€μˆ˜(사본, copy)에 ν• λ‹Ήν•˜λ©΄ μ›λ³Έμ˜ μ°Έμ‘° 값이 λ³΅μ‚¬λ˜μ–΄ μ „λ‹¬λ©λ‹ˆλ‹€. 이λ₯ΌΒ μ°Έμ‘°μ— μ˜ν•œ 전달이라고 ν•©λ‹ˆλ‹€. 두 개의 μ‹λ³„μžλŠ” ν•˜λ‚˜μ˜ 객체λ₯Ό κ³΅μœ ν•©λ‹ˆλ‹€. λ”°λΌμ„œ 원본 λ˜λŠ” 사본 쀑 μ–΄λŠ ν•œμͺ½μ—μ„œ 객체λ₯Ό λ³€κ²½ν•˜λ©΄ μ„œλ‘œ 영ν–₯을 μ£Όκ³  λ°›κ²Œ λ©λ‹ˆλ‹€.
κ²°κ΅­ 값에 μ˜ν•œ 전달과 참쑰에 μ˜ν•œ 전달은 μ‹λ³„μžκ°€ κΈ°μ–΅ν•˜λŠ” λ©”λͺ¨λ¦¬ 곡간에 μ €μž₯λ˜μ–΄ μžˆλŠ” 값을 λ³΅μ‚¬ν•΄μ„œ μ „λ‹¬ν•œλ‹€λŠ” λ©΄μ—μ„œ λ™μΌν•©λ‹ˆλ‹€. λ‹€λ§Œ μ‹λ³„μžκ°€ κΈ°μ–΅ν•˜λŠ” λ©”λͺ¨λ¦¬ 곡간, 즉 λ³€μˆ˜μ— μ €μž₯λ˜μ–΄ μžˆλŠ” 값이 μ›μ‹œ 값이냐 μ°Έμ‘° κ°’μ΄λƒμ˜ 차이만 μžˆμ„ λΏμž…λ‹ˆλ‹€.

정리

β€’
μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ λͺ¨λ“  값은 μ•„λž˜ 이유둜 인해 데이터 νƒ€μž…μ΄ ν•„μš”ν•˜λ‹€
β—¦
값을 μ €μž₯ν•  λ•Œ 확보해야 ν•˜λŠ”Β λ©”λͺ¨λ¦¬ κ³΅κ°„μ˜ 크기λ₯Ό κ²°μ •ν•˜κΈ° μœ„ν•΄
β—¦
값을 μ°Έμ‘°ν•  λ•Œ ν•œ λ²ˆμ— 읽어 λ“€μ—¬μ•Ό ν• Β λ©”λͺ¨λ¦¬ κ³΅κ°„μ˜ 크기λ₯Ό κ²°μ •ν•˜κΈ° μœ„ν•΄
β—¦
λ©”λͺ¨λ¦¬μ—μ„œ 읽어 듀인 2μ§„μˆ˜λ₯Ό μ–΄λ–»κ²Œ 해석할지 κ²°μ •ν•˜κΈ° μœ„ν•΄
β€’
μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ λ³€μˆ˜λŠ” 선언이 μ•„λ‹Œ 할당에 μ˜ν•΄ νƒ€μž…μ΄ κ²°μ •λœλ‹€. 그리고 μž¬ν• λ‹Ήμ— μ˜ν•΄ λ³€μˆ˜μ˜ νƒ€μž…μ€ μ–Έμ œλ“ μ§€ λ™μ μœΌλ‘œ λ³€ν•  수 μžˆλ‹€.
β€’
μ›μ‹œκ°’μ€ λ³€κ²½ λΆˆκ°€λŠ₯ν•œ κ°’(immutable value)이닀. 반면 객체(μ°Έμ‘°ν˜•)의 값은 λ³€κ²½ κ°€λŠ₯ν•œ κ°’(mutable)μž…λ‹ˆλ‹€.
β€’
μ›μ‹œ 값을 λ³€μˆ˜μ— ν• λ‹Ήν•˜λ©΄ λ³€μˆ˜(ν™•λ³΄λœ λ©”λͺ¨λ¦¬ 곡간)μ—λŠ” μ‹€μ œ 값이 μ €μž₯λœλ‹€. 이에 λΉ„ν•΄ 객체λ₯Ό ν• λ‹Ήν•˜λ©΄ λ³€μˆ˜(ν™•λ³΄λœ λ©”λͺ¨λ¦¬ 곡간)μ—λŠ” μ°Έμ‘° 값이 μ €μž₯λœλ‹€.
β€’
μ›μ‹œ 값을 κ°–λŠ” λ³€μˆ˜λ₯Ό λ‹€λ₯Έ λ³€μˆ˜μ— ν• λ‹Ήν•˜λ©΄ μ›λ³Έμ˜ μ›μ‹œ 값이 λ³΅μ‚¬λ˜μ–΄ μ „λ‹¬λœλ‹€. 이λ₯Ό 값에 μ˜ν•œ 전달(pass by value)라고 ν•œλ‹€. 이에 λΉ„ν•΄ 객체λ₯Ό κ°€λ¦¬ν‚€λŠ” λ³€μˆ˜λ₯Ό λ‹€λ₯Έ λ³€μˆ˜μ— ν• λ‹Ήν•˜λ©΄ μ›λ³Έμ˜ μ°Έμ‘° 값이 λ³΅μ‚¬λ˜μ–΄ μ „λ‹¬λœλ‹€. 이λ₯Ό 참쑰에 μ˜ν•œ 전달(pass by refrence)라고 ν•©λ‹ˆλ‹€.

참고 링크