πŸ“šμŠ€ν„°λ”” λͺ…

λͺ¨λ˜ν•  수 μžˆλŠ”κ±° λ§žλŠ”κ±°λ‹ˆ?

πŸ“† ν•™μŠ΅ λ‚ μ§œ

2024/01/25(λͺ©) 5:00PM

πŸ“– 10μ£Όμ°¨ ν•™μŠ΅ λ²”μœ„

13μž₯ μŠ€μ½”ν”„(189.page ~ 199.page)

πŸŽ―μŠ€μ½”ν”„λž€ 무엇인가?

λͺ¨λ“  μ‹λ³„μž(λ³€μˆ˜ 이름, ν•¨μˆ˜ 이름, 클래슀 이름 λ“±)λŠ” μžμ‹ μ΄ μ„ μ–Έλœ μœ„μΉ˜μ— μ˜ν•΄ λ‹€λ₯Έ μ½”λ“œκ°€ μ‹λ³„μž μžμ‹ μ„ μ°Έμ‘°ν•  수 μžˆλŠ” 유효 λ²”μœ„κ°€ κ²°μ •λœλ‹€. 즉, μŠ€μ½”ν”„λŠ” μ‹λ³„μžκ°€ μœ νš¨ν•œ λ²”μœ„λ₯Ό λ§ν•œλ‹€.

πŸ“ŒμŠ€μ½”ν”„μ˜ μ’…λ₯˜

μ½”λ“œλŠ” μ „μ—­κ³Ό μ§€μ—­μœΌλ‘œ ꡬ뢄할 수 μžˆλ‹€.

ꡬ뢄섀λͺ…μŠ€μ½”ν”„λ³€μˆ˜
μ „μ—­μ½”λ“œμ˜ κ°€μž₯ λ°”κΉ₯ μ˜μ—­μ „μ—­ μŠ€μ½”ν”„μ „μ—­ λ³€μˆ˜
μ§€μ—­ν•¨μˆ˜ λͺΈμ²΄ λ‚΄λΆ€μ§€μ—­ μŠ€μ½”ν”„μ§€μ—­ λ³€μˆ˜

λ³€μˆ˜λŠ” μžμ‹ μ΄ μ„ μ–Έλœ μœ„μΉ˜(μ „μ—­ λ˜λŠ” μ§€μ—­)에 μ˜ν•΄ μžμ‹ μ΄ μœ νš¨ν•œ λ²”μœ„μΈ μŠ€μ½”ν”„κ°€ κ²°μ •λœλ‹€κ³ ν•œλ‹€.
μ „μ—­μ—μ„œ μ„ μ–Έλœ λ³€μˆ˜λŠ” μ „μ—­μŠ€μ½”ν”„λ₯Ό κ°–λŠ” λ³€μˆ˜,
μ§€μ—­μ—μ„œ μ„ μ–Έλœ λ³€μˆ˜λŠ” μ§€μ—­μŠ€μ½”ν”„λ₯Ό κ°–λŠ” λ³€μˆ˜λΌκ³ ν•œλ‹€.

πŸ“Œμ „μ—­κ³Ό μ „μ—­ μŠ€μ½”ν”„

전역에 λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜λ©΄ μ „μ—­ μŠ€μ½”ν”„λ₯Ό κ°–λŠ” μ „μ—­ λ³€μˆ˜κ°€ λœλ‹€κ³ ν•œλ‹€.
μ „μ—­ λ³€μˆ˜λŠ” μ–΄λ””μ„œλ“ μ§€ μ°Έμ‘°ν•  수 μžˆλ‹€.
μœ„ μ˜ˆμ œμ—μ„œ μ½”λ“œ κ°€μž₯ λ°”κΉ₯ μ˜μ—­μΈ μ „μ—­μ—μ„œ μ„ μ–Έλœ x λ³€μˆ˜μ™€ y λ³€μˆ˜λŠ” μ „μ—­ λ³€μˆ˜λ‹€.
μ „μ—­ λ³€μˆ˜λŠ” μ–΄λ””μ„œλ“  μ°Έμ‘°ν•  수 μžˆμœΌλ―€λ‘œ ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œλ„ μ°Έμ‘°ν•  수 μžˆλ‹€.

πŸ“Œμ§€μ—­κ³Ό μ§€μ—­ μŠ€μ½”ν”„

μ§€μ—­μ΄λž€ ν•¨μˆ˜ λͺΈμ²΄ λ‚΄λΆ€λ₯Ό λ§ν•œλ‹€. 지역은 μ§€μ—­ μŠ€μ½”ν”„λ₯Ό λ§Œλ“ λ‹€.지역에 λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜λ©΄ μ§€μ—­ μŠ€μ½”ν”„λ₯Ό κ°–λŠ” μ§€μ—­ λ³€μˆ˜κ°€ λœλ‹€.
즉, {} 블둝 λ‚΄λΆ€μ—μ„œ λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜λ©΄ μ§€μ—­ μŠ€μ½”ν”„λ₯Ό κ°–λŠ” μ§€μ—­ λ³€μˆ˜κ°€ λœλ‹€κ³ ν•œλ‹€.
μœ„ 예제 μ½”λ“œλ₯Ό μ‚΄νŽ΄λ³΄μž.
var zλŠ” μ§€μ—­λ³€μˆ˜λ‹€. μ§€μ—­λ³€μˆ˜λŠ” μžμ‹ μ˜ μ§€μ—­ μŠ€μ½”ν”„μ™€ ν•˜μœ„ μ§€μ—­ μŠ€μ½”ν”„μ—μ„œ μœ νš¨ν•˜λ‹€.
κ·ΈλŸ¬λ―€λ‘œ z λ³€μˆ˜λŠ” inner ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ μ°Έμ‘°ν•  수 μžˆλ‹€.
ν•˜μ§€λ§Œ μ§€μ—­λ³€μˆ˜ zλ₯Ό μ „μ—­μ—μ„œ μ°Έμ‘°ν•˜λ©΄ μ°Έμ‘° μ—λŸ¬κ°€ λ°œμƒν•œλ‹€.
inner ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ μ„ μ–Έλœ x λ³€μˆ˜λ„ μ§€μ—­ λ³€μˆ˜λ‹€. μ§€μ—­ λ³€μˆ˜ xλŠ” μžμ‹ μ˜ μ§€μ—­ μŠ€μ½”ν”„μΈ ν•¨μˆ˜ inner λ‚΄λΆ€μ—μ„œλ§Œ μ°Έμ‘°ν•  수 μžˆλ‹€. ν•˜μ§€λ§Œ μ§€μ—­ λ³€μˆ˜ xλ₯Ό μ „μ—­ λ˜λŠ” innerν•¨μˆ˜ λ‚΄λΆ€ μ΄μ™Έμ˜ μ§€μ—­μ—μ„œ μ°Έμ‘°ν•˜λ©΄ μ°Έμ‘° μ—λŸ¬κ°€ λ°œμƒν•œλ‹€.

그런데 inner ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ μ„ μ–Έλœ x λ³€μˆ˜ 이외에 이름이 같은 μ „μ—­ λ³€μˆ˜ xκ°€ μ‘΄μž¬ν•œλ‹€. μ΄λ•Œ innerν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ x λ³€μˆ˜λ₯Ό μ°Έμ‘°ν•˜λ©΄ μ „μ—­ λ³€μˆ˜ xλ₯Ό μ°Έμ‘°ν•˜λŠ” 것이 μ•„λ‹ˆλΌ inner ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ μ„ μ–Έλœ x λ³€μˆ˜λ₯Ό μ°Έμ‘°ν•œλ‹€.
μ™œ? λ°”λ‘œ μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진이 μŠ€μ½”ν”„ 체인을 톡해 μ°Έμ‘°ν•  λ³€μˆ˜λ₯Ό κ²€μƒ‰ν–ˆκΈ° λ•Œλ¬Έμ΄λ‹€.

πŸ“Œ μŠ€μ½”ν”„ μ²΄μΈμ΄λž€?

ν•¨μˆ˜λŠ” μ „μ—­μ—μ„œ μ •μ˜ν•  μˆ˜λ„ 있고 ν•¨μˆ˜ λͺΈμ²΄ λ‚΄λΆ€μ—μ„œ μ •μ˜ν•  수 도 μžˆλ‹€.
ν•¨μˆ˜ λͺΈμ²΄ λ‚΄λΆ€μ—μ„œ ν•¨μˆ˜κ°€ μ •μ˜λœ 것을 ν•¨μˆ˜μ˜ 쀑첩이라 ν•œλ‹€.

ν•¨μˆ˜ λͺΈμ²΄ λ‚΄λΆ€μ—μ„œ μ •μ˜ν•œ ν•¨μˆ˜λ₯Ό 쀑첩 ν•¨μˆ˜ 쀑첩 ν•¨μˆ˜λ₯Ό ν¬ν•¨ν•˜λŠ” ν•¨μˆ˜λ₯Ό μ™ΈλΆ€ ν•¨μˆ˜ λΌκ³ ν•œλ‹€.

즉, μœ„ 예제 μ½”λ“œμ—μ„œ outerν•¨μˆ˜λŠ” μ™ΈλΆ€ν•¨μˆ˜ inner ν•¨μˆ˜λŠ” 쀑첩 ν•¨μˆ˜ 라고 ν•œλ‹€.

ν•¨μˆ˜λŠ” 쀑첩 될수 μžˆμœΌλ―€λ‘œ ν•¨μˆ˜μ˜ μ§€μ—­ μŠ€μ½”ν”„λ„ 쀑첩될 수 μžˆλ‹€.
쀑첩 ν•¨μˆ˜μ˜ μ§€μ—­ μŠ€μ½”ν”„λŠ” 쀑첩 ν•¨μˆ˜λ₯Ό ν¬ν•¨ν•˜λŠ” μ™ΈλΆ€ ν•¨μˆ˜μ˜ μ§€μ—­ μŠ€μ½”ν”„μ™€ 계측적 ꡬ쑰λ₯Ό κ°–λŠ”λ‹€.
μ΄λ•Œ μ™ΈλΆ€ ν•¨μˆ˜μ˜ μ§€μ—­ μŠ€μ½”ν”„λ₯Ό 쀑첩 ν•¨μˆ˜μ˜ μƒμœ„ μŠ€μ½”ν”„λΌ ν•œλ‹€.

즉, μœ„ 예제 μ½”λ“œμ—μ„œ outer ν•¨μˆ˜κ°€ λ§Œλ“  μ§€μ—­ μŠ€μ½”ν”„λŠ” innerν•¨μˆ˜κ°€ λ§Œλ“  μ§€μ—­μŠ€μ½”ν”„μ˜ μƒμœ„ μŠ€μ½”ν”„λ‹€.

μœ„ 예제 μ½”λ“œλ₯Ό 계측 ꡬ쑰둜 그림으둜 λ‚˜νƒ€λ‚΄λ©΄ λ‹€μŒκ³Ό κ°™λ‹€.

μ΄λ ‡κ²Œ μŠ€μ½”ν”„κ°€ κ³„μΈ΅μ μœΌλ‘œ μ—°κ²° 된 것을 μŠ€μ½”ν”„ 체인이라 ν•œλ‹€.

λ³€μˆ˜λ₯Ό μ°Έμ‘°ν•  λ•Œ μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진은 μŠ€μ½”ν”„ 체인을 톡해 λ³€μˆ˜λ₯Ό μ°Έμ‘°ν•˜λŠ” μ½”λ“œμ˜ μŠ€μ½”ν”„μ—μ„œ μ‹œμž‘ν•˜μ—¬ μƒμœ„ μŠ€μ½”ν”„ λ°©ν–₯으둜 μ΄λ™ν•˜λ©° μ„ μ–Έλœ λ³€μˆ˜λ₯Ό κ²€μƒ‰ν•œλ‹€.

inner μ§€μ—­μŠ€μ½”ν”„μ— x λ³€μˆ˜κ°€ μ„ μ–Έλ˜μ–΄μžˆκΈ° λ•Œλ¬Έμ— inner ν•¨μˆ˜ λ‚΄λΆ€μ˜ x λ³€μˆ˜λ₯Ό μ°Έμ‘°ν•œ 것이닀.
λ§Œμ•½ inner ν•¨μˆ˜ λ‚΄λΆ€μ˜ x λ³€μˆ˜κ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄ μ „μ—­ λ³€μˆ˜ xλ₯Ό μ°Έμ‘°ν•  것이닀.

πŸ₯„ μ†Œκ° ν•œμŠ€ν‘Ό..

μŠ€μ½”ν”„λŠ” ν•„μˆ˜ κ°œλ…μΈκ²ƒ κ°™λ‹€.

πŸ‘πŸ»Reference

λͺ¨λ˜ μžλ°”μŠ€ν¬λ¦½νŠΈ - 이웅λͺ¨ μ§€μŒ

profile
β˜„οΈ

0개의 λŒ“κΈ€