[Go] init ν•¨μˆ˜

init은 Goμ—μ„œ μ œκ³΅ν•˜λŠ” 또 ν•˜λ‚˜μ˜ magic ν•¨μˆ˜λ‹€.

goλŠ” initμ΄λΌλŠ” μ „μ—­ν•¨μˆ˜κ°€ 있으면 κ·Έκ±Έ λͺ°λž˜ μ‹œμž‘μ‹œμ μ— μ‹€ν–‰μ‹œμΌœλ²„λ¦°λ‹€.
이게 μ—¬λŸ¬κ°œ μžˆμ„λ•Œλ‚˜ μ „μ—­λ³€μˆ˜ μˆ˜μ€€ 둜직이 μžˆμ„λ•ŒλŠ” μˆœμ„œκ°€ 꼬일 수 μžˆμ–΄μ„œ μ–΄λŠμ •λ„ 이해λ₯Ό κ°–κ³  μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.

근데 이쯀되면 λŒ€λ†“κ³  μ „μ—­λ³€μˆ˜ 쓰라고 μž₯λ €ν•˜λŠ”κ±΄λ°, μ œμ •μ‹ μΈκ±ΈκΉŒ?




κΈ°λ³Έ μ‚¬μš©λ²•

κ·Έλƒ₯ initμ΄λž€ ν•¨μˆ˜λ₯Ό 두고 μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λ©΄

λ¨Όμ € μ‹€ν–‰λœλ‹€.




μ „μ—­λ³€μˆ˜κ°€ μžˆμ„λ•Œ

근데 init이 또 항상 λ¨Όμ € μ‹€ν–‰λ˜λŠ” 것도 μ•„λ‹ˆλ‹€. μ „μ—­λ³€μˆ˜ 평가식이 μ‘΄μž¬ν•  λ–„λŠ” 말이 달라진닀.

μ΄λŸ°μ‹μœΌλ‘œ μ „μ—­λ³€μˆ˜ μ»¨ν…μŠ€νŠΈμ—μ„œ μ‹€ν–‰λ˜λŠ” 둜직이 있으면 그게 λ¨Όμ € μ‹€ν–‰λ˜κ³ , init은 λ‚˜μ€‘μ— μ‹€ν–‰λœλ‹€.


μ΄λ ‡κ²Œ





μƒμœ„μ™€ ν•˜μœ„ νŒ¨ν‚€μ§€μ— λ‘˜λ‹€ init이 μžˆμ„λ•Œ

이제 슬슬 μ§œμ¦λ‚˜κΈ° μ‹œμž‘ν•œλ‹€.
λ§Œμ•½ main νŒ¨ν‚€μ§€κ°€ a νŒ¨ν‚€μ§€λ₯Ό importν•˜κ³ , λ‘˜λ‹€ init이 μžˆλ‹€λ©΄ a νŒ¨ν‚€μ§€μ˜ init이 λ¨Όμ € μ‹€ν–‰λœλ‹€.




ν•œ νŒŒμΌμ— init이 μ—¬λŸ¬κ°œ μžˆμ„λ•Œ

λ†€λžκ²Œλ„ init은 λ¬΄ν•œλŒ€λ‘œ μ€‘λ³΅μ •μ˜κ°€ λœλ‹€. μ™œμ§€?

μ €λŸ΄λ•ŒλŠ” κ·Έλƒ₯ μ •μ˜ν•œ μˆœμ„œλŒ€λ‘œ μ‹€ν–‰λœλ‹€.




같은 νŒ¨ν‚€μ§€μ— μ—¬λŸ¬κ°œμ˜ init이 μžˆμ„λ•Œ

이건 더 κ±°μŠ¬λ¦°λ‹€.
같은 νŒ¨ν‚€μ§€μ˜ λ‹€λ₯Έ μ†ŒμŠ€νŒŒμΌμ— init이 μ—¬λŸ¬κ°œ 곡쑴할 μˆ˜λ„ μžˆλ‹€.

μ΄λŸ΄λ•ŒλŠ” λ†€λžκ²Œλ„ "파일λͺ…"의 μ‚¬μ „μˆœλŒ€λ‘œ init이 μ‹€ν–‰λœλ‹€.


λ©‹μ§€μ§€ μ•Šμ€κ°€?