๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“š Kotlin

[๊ฐ์ƒ๋ฌธ] Kotlin In Action์„ ์ฝ๊ณ 

by GroovyArea 2023. 1. 17.

ํ˜„์žฌ ์ž…์‚ฌํ•œ ํšŒ์‚ฌ์—์„œ ๋ฐฑ์—”๋“œ ์–ธ์–ด๋Š” ์ฝ”ํ‹€๋ฆฐ ๊ธฐ๋ฐ˜์ด๋‹ค.

์ฝ”ํ‹€๋ฆฐ์— ๋น ๋ฅด๊ฒŒ ์ ์‘ํ•ด์•ผ ํ–ˆ๊ธฐ์—, ์ž…์‚ฌ ์ „ ๋ถ€ํ„ฐ ํ‹ˆํ‹ˆํžˆ ๊ฐœ๋…์„ ๊ณต๋ถ€ํ–ˆ์—ˆ๋‹ค.
ํ•˜์ง€๋งŒ ๊ตฌ๊ธ€๊ณผ ์œ ํŠœ๋ธŒ๋Š” ์ •๋ณด์˜ ๋‚œ์žกํ•จ๊ณผ ํ•œ๊ณ„, ๊ทธ๋ฆฌ๊ณ  ์‹ ๋ขฐ์„ฑ์ด ๋–จ์–ด์ง„๋‹ค.
ํ™•์‹คํžˆ ์–ธ์–ด ๋ฐ ๋ฐฑ์—”๋“œ ๊ณต๋ถ€๋Š” ์ฑ…์ด ์ง„๋ฆฌ๋ผ๋Š” ๊ฒƒ์ด ๋‚ด ์ •๋ก ์ด๋‹ค..ใ…Žใ…Ž

์ž…์‚ฌ ์ฒซ ๋‚  ์‚ฌ์ˆ˜ ๋ถ„๊ป˜ ์ฝ”ํ‹€๋ฆฐ ๊ด€๋ จ ์„œ์ ์ด ์žˆ๋Š”์ง€ ์—ฌ์ญค๋ดค๊ณ , ๊ฐ์‚ฌํ•˜๊ฒŒ๋„ ํ”์พŒํžˆ [์ฝ”ํ‹€๋ฆฐ ์ธ ์•ก์…˜] ์ฑ…์„ ๋นŒ๋ ค์ฃผ์…จ๋‹ค.

์ฑ…์„ ๋“ค๊ณ  ํ‡ด๊ทผํ–ˆ๊ณ , ๊ทธ ๋‚  ๋ฐค๋ถ€ํ„ฐ ๋ฐ”๋กœ ์ฝ๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.
์ผ์ด ๋งŽ์€ ๋‚ , ๋„ˆ๋ฌด ํ”ผ๊ณคํ•œ ๋‚ ๊ณผ ์ผ์ •์ด ์žˆ๋Š” ๋‚ ์„ ์ œ์™ธํ•œ ๋ฐค 11์‹œ์—๋Š” 1์‹œ๊ฐ„ ๊ผญ ๋…์„œ๋ฅผ ํ•˜๊ณ  ์ž์ž๋Š” ๋‹ค์ง๊ณผ ํ•จ๊ป˜.

์ž˜ ์ฝํžˆ์ง€ ์•Š์„ ๊ฒƒ์„ ์—ผ๋ คํ–ˆ์ง€๋งŒ, ๋‹คํ–‰ํžˆ ์ด ์ฑ…์ด ์ง€ํ–ฅํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฐ”๋Š” ๊ธฐ์กด ์ž๋ฐ” ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ดˆ์ ์ด ๋งž์ถฐ์ ธ ์žˆ๋Š” ๊ฒƒ์ด ์ฐธ ์ธ์ƒ ๊นŠ์—ˆ๋‹ค.
์ฑ…์€ ๊ธฐ์กด ์ž๋ฐ” ์ฝ”๋“œ์™€ ๋น„๊ตํ•˜๋ฉฐ, ์ฝ”ํ‹€๋ฆฐ์—์„œ๋Š” ์ด๋ฅผ ์–ด๋–ค์‹์œผ๋กœ ๋ฐ”๊ฟ” ์ž‘์„ฑํ•˜๋Š”์ง€ ์ž์„ธํžˆ ์ง‘ํ•„ํ•ด ๋†“์•˜๋‹ค.
์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ๋จผ์ € ์„ค๋ช…ํ•˜๊ณ  ์ฝ”ํ‹€๋ฆฐ์—์„œ๋Š” ์ž๋ฐ”์˜ ๋‹จ์ ์„ ์ฝ”ํ‹€๋ฆฐ์ด ์–ด๋–ป๊ฒŒ ๊ฐœ์„ ํ–ˆ๋Š”์ง€๋ฅผ ํ‘œํ˜„ํ•˜๋‹ˆ ํ›จ์”ฌ ์ดํ•ดํ•˜๊ธฐ ์ˆ˜์›”ํ–ˆ๋‹ค.

์ฝ”ํ‹€๋ฆฐ์ด ์ง€ํ–ฅํ•˜๊ณ ์ž ํ•˜๋Š” ํ‘œํ˜„ ์ค‘์—์„œ [๊ด€๋ก€] ๋ผ๋Š” ํ‘œํ˜„์ด ์žˆ๋Š”๋ฐ,
์ด๋ฅผ ํ…Œ๋ฉด Map ์ด๋‚˜ List ์—์„œ ํ‚ค๋‚˜ ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ["~~" ] ์„ ํ†ตํ•ด ๊ฐ€์ ธ ์˜ค๋Š” ๊ฒƒ์ด๋ผ๋˜์ง€, for ๋ฃจํ”„์—์„œ์˜ ์ธ๊ฐ„์ด ์ฝ๊ธฐ์— ๊ฐ€๋…์„ฑ์  ์ธก๋ฉด์—์„œ ํ–ฅ์ƒ์„ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋Š” ํ‘œํ˜„๋“ค์ด ์ฐธ ์ธ์ƒ ๊นŠ์—ˆ๋‹ค.

๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋“ค์ด ๊ฐ€์žฅ ์‹ซ์–ดํ•˜๋Š” "์ค‘๋ณต".
์ด๊ฒƒ์€ ์ฝ”ํ‹€๋ฆฐ์„ ๊ฐœ๋ฐœํ•œ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋„˜๊ฒผ์„ ๋ฆฌ ์—†๋‹ค.
์ด๋ฅผ ์กฐ๊ธˆ์ด๋ผ๋„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•œ ๋ฒ”์œ„ ์ง€์ • ํ•จ์ˆ˜์™€ ์ˆ˜์‹  ๊ฐ์ฒด. ์ฐธ ์ธ์ƒ ๊นŠ์—ˆ๋‹ค.
์ž๋ฐ”์™€ ๋น„๊ตํ–ˆ์„ ๋•Œ, ์ฝ”๋“œ๊ฐ€ ํ™• ์ค„์–ด๊ฐ€๋Š” ๊ฒƒ์„ ๋Š๊ผˆ๋‹ค.

๋˜, ๊ฐ€์žฅ ์ธ์ƒ ๊นŠ์—ˆ๋˜ ๋ถ€๋ถ„์€ ์•„๋ฌด๋ž˜๋„ ๋žŒ๋‹ค์ด๋‹ค.
ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ๋“ฑ์žฅํ•˜๋ฉด์„œ ๊ธฐ์กด ๋ช…๋ น, ์„ ์–ธํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋ฒ—์–ด๋‚˜ ์ผ๊ธ‰ ๊ฐ์ฒด, ์ผ๊ธ‰ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ํ•˜๋‚˜์˜ ์ŠคํŠธ๋ฆผ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ์‹์ด ๊ฐœ๋ฐœ๊ณ„์— ํฐ ํŒŒ์žฅ์„ ์ผ์œผ์ผฐ๋‹ค.
์ด์œ ์ธ ์ฆ‰์Šจ, ์ฝ”๋“œ ์ž‘์„ฑ์ด ๊ฐ„ํŽธํ•ด์ง€๊ณ  ๋ˆˆ์— ๋„๋ฉฐ, ์‚ฌ์ด๋“œ ์ดํŽ™ํŠธ๊ฐ€ ์—†๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•˜๊ธฐ์— ์œ ์ง€ ๋ณด์ˆ˜์— ํ›จ์”ฌ ๋„์›€์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
ํ•จ์ˆ˜ ํƒ€์ž… ์ฑ•ํ„ฐ๋ฅผ ์ฝ์œผ๋ฉฐ, ๊ณ ์ฐจ ํ•จ์ˆ˜๋ผ๋Š” ๊ฐœ๋…์„ ์ˆ˜ํ•™ ์‹œ๊ฐ„ ํ•จ์ˆ˜๋ฅผ ๊ณต๋ถ€ํ•œ ๊ฒƒ์„ ์ƒ๊ฐํ•˜๋ฉฐ ์ฝ์œผ๋‹ˆ ์ฐธ ๋งค๋ ฅ์ ์ธ ์–ธ์–ด๋ผ๋Š” ๊ฒƒ์„ ์‹ค๊ฐํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.
๊ฐ„๋‹จํ•œ ํ•จ์ˆ˜์  ํ‘œํ˜„์„ ์ฝ”ํ‹€๋ฆฐ์ด ๋žŒ๋‹ค๋กœ ํ’€์–ด๋ƒˆ๊ณ , ๋žŒ๋‹ค ๋งˆ์ € ์ž๋ฐ”์—์„œ ๋” ๊ฐœ์„ ๋œ ๊ฐ€๋…์„ฑ ๋†’์€ ๋ฌธ๋ฒ•์„ ์ง€ํ–ฅํ•˜๋ฉฐ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์„ ๊ธฐ์กด์— ์ž๋ฐ”๋ฅผ ๊ณต๋ถ€ํ–ˆ๋˜ ๋‚˜์—๊ฒŒ๋Š” ์‹ ์„ ํ•œ ์ถฉ๊ฒฉ์ด์—ˆ๋‹ค.


๋‚˜๋Š” ์›น ๋ฐฑ์—”๋“œ ๊ณต๋ถ€๋ฅผ ํ•˜๋Š” ์‚ฌ๋žŒ ์ค‘ ๊ฐ์ฒด ์ง€ํ–ฅ์„ ์ œ๋Œ€๋กœ ๊ณต๋ถ€ํ•ด์™”๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.
์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์— ๋Œ€ํ•œ ๊ณต๋ถ€, ์›น ๊ฐœ๋ฐœ ๊ณผ์ • ์ค‘ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๊ณ ๋ ค ์‚ฌํ•ญ, ๊ฐ์ฒด ์ง€ํ–ฅ ์  ์ฝ”๋“œ ์ž‘์„ฑ ๋ฐฉ์‹๊ณผ ๋‚˜์•„๊ฐ€์„œ ์•„ํ‚คํ…์ฒ˜์  ์„ค๊ณ„ ๊ณ ๋ฏผ ๋“ฑ์„ ์—ฌ๋Ÿฌ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•„๊ฐ€๋ฉฐ ๊ฐœ์„ ํ•˜๋ฉฐ ์ฒดํ™”ํ–ˆ์—ˆ๋‹ค.

"์ถ”์ƒํ™”๋œ ํ”„๋กœ๊ทธ๋žจ ์„ธ๊ณ„์—์„œ ๊ฐ์ฒด ๊ฐ„์˜ ์œ ๊ธฐ์ ์ธ ์ƒํ˜ธ์ž‘์šฉ. ๊ฐ์ฒด๋ฅผ ์‚ด์•„ ์žˆ๋Š” ์กด์žฌ๋กœ ๋ณด์ž. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ฐ์ฒด๊ฐ€ ๋งก์€ ์ง„์ •ํ•œ ์ฑ…์ž„์„ ๋…ธ๋ ค๋ณด์ž."

๊ทธ๋ž˜์„œ ๋‚ด ์ˆ˜์ค€ ๋‚ด์—์„œ ํ˜ผ์„ ์Ÿ์€ ๋ฉ”์ธ ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ์— ์ ์šฉ ์‹œ์ผœ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์˜€๋‹ค. ์ด์ œ๋Š” ์ฝ”ํ‹€๋ฆฐ ์ฐจ๋ก€๋‹ค.

์ฝ”ํ‹€๋ฆฐ๋„ ๋‹น์—ฐํžˆ ๊ฐ์ฒด ์ง€ํ–ฅ์„ ๊ธฐ๋ณธ ๋ฒ ์ด์Šค๋กœ ๊น”๊ณ  ๊ฐ€๋ฏ€๋กœ ๋‚ด๊ฐ€ ๋ชธ์†Œ ์ตํ˜€ ์™”๋˜ ์ฝ”๋“œ ์ž‘์„ฑ ๋ฐฉ์‹์„ ๊ฐ€์ ธ ๊ฐ€๋˜ ์ด์ œ๋Š” ์ฝ”ํ‹€๋ฆฐ์ด ์ œ๊ณตํ•˜๋Š” ํ•จ์ˆ˜์  ์ฝ”๋“œ ์ž‘์„ฑ ๋ฐฉ๋ฒ•๋„ ์ต์ˆ™ํ•ด์ ธ์•ผ ํ•œ๋‹ค๊ณ  ๋Š๋‚€๋‹ค.

์˜ค๋Š˜๊นŒ์ง€ ์ฝ์€ [์ฝ”ํ‹€๋ฆฐ ์ธ ์•ก์…˜] ์ด๋ผ๋Š” ์ฑ…์€ ๊ธฐ์กด์— ์ž๋ฐ” ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ฝ”ํ‹€๋ฆฐ์˜ ์„ธ๊ณ„๋ฅผ ์ฒดํ—˜์‹œ์ผœ์ค€ ๊ฐ์ƒ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒ ๋‹ค.
๋‚˜์•„๊ฐ€ ์ฝ”ํ‹€๋ฆฐ์ด ์ง„์‹ฌ์œผ๋กœ ์ง€ํ–ฅํ•˜๊ณ ์ž ํ•˜๋Š” ์ฝ”๋“œ ์ž‘์„ฑ ๋ฐฉ์‹์„ ์ฒดํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ธฐ์กด ์ž๋ฐ” ๊ฐœ๋ฐœ์ž๋“ค์˜ ํ•„๋… ๋„์„œ [์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ”]์™€ ๋น„์Šทํ•œ ๊ฒฐ์ธ [์ดํŽ™ํ‹ฐ๋ธŒ ์ฝ”ํ‹€๋ฆฐ]์„ ์ฝ์–ด ๋ณผ ์ƒ๊ฐ์ด๋‹ค.

์˜ค๋Š˜ ๊นŒ์ง€ ์ฝ์—ˆ๋˜ ์ฝ”์ธ์•ก์„ ํ†ตํ•ด ์–ป์€ ์ง€์‹์œผ๋กœ ์ง„ํ–‰ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์— ๊ธฐํšŒ๊ฐ€ ๋œ๋‹ค๋ฉด ์ ์šฉ์‹œ์ผœ๋ณด๊ณ  ์‹ถ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ดํŽ™ํ‹ฐ๋ธŒ ์ฝ”ํ‹€๋ฆฐ์„ ์ฝ์–ด๊ฐ€๋ฉฐ ์ฝ”ํ‹€๋ฆฐ์  ์ฝ”๋“œ๋กœ ๊ฐœ์„ ํ•ด๋ณด๊ณ  ์‹ถ๋‹ค.

์ฝ”ํ‹€๋ฆฐ์„ ์ž…๋ฌธํ•˜๋Š” ์ž๋ฐ” ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ์ฝ”์ธ์•ก์„ ์ ๊ทน ์ถ”์ฒœํ•˜๋ฉฐ ์ด๋งŒ ๋งˆ๋ฌด๋ฆฌ ํ•ด๋ณธ๋‹ค.



๋ฐ˜์‘ํ˜•