Kotlin in Action

2023. 3. 3. 06:35ยทBook
๋ชฉ์ฐจ
  1. 1์žฅ: ์ฝ”ํ‹€๋ฆฐ ์†Œ๊ฐœ
  2. Chapter 2: Kotlin๋กœ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  3. Chapter 3: Kotlin๋กœ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  4. Chapter 4: Kotlin ๊ฐœ๋ฐœ ๋„๊ตฌ๋กœ ์‹œ์ž‘ํ•˜๊ธฐ
  5. Chapter 5: Kotlin์—์„œ ๊ธฐ๋ณธ ์œ ํ˜• ๋ฐ ์ œ์–ด ํ๋ฆ„ ์ž‘์—…ํ•˜๊ธฐ
  6. Chapter 7: ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฐ ๋กœ๊น…์œผ๋กœ ๊ฒฌ๊ณ ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“ค๊ธฐ
  7. Chapter 9: Kotlin์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ก์„ธ์Šค
  8. Chapter 10: Kotlin์—์„œ RESTful ์›น ์„œ๋น„์Šค ์ž‘์„ฑ
  9. Chapter 11: Kotlin์—์„œ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ ๋ฐ ๋””๋ฒ„๊น…
  10. Chapter 12: Kotlin์—์„œ ๋žŒ๋‹ค ๋ฐ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  11. Chapter 13: Kotlin์—์„œ ์•ˆ๋“œ๋กœ์ด๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ
  12. Chapter 14: Kotlin์—์„œ ์ฝ”๋ฃจํ‹ด๊ณผ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  13. Chapter 15: Kotlin์—์„œ ๋จธ์‹  ๋Ÿฌ๋‹ ๋ฐ ์ธ๊ณต ์ง€๋Šฅ
  14. ๊ฒฐ๋ก 

์žฅ ์ œ๋ชฉ:

  1. ์ฝ”ํ‹€๋ฆฐ ์†Œ๊ฐœ
  2. Kotlin์„ ์‚ฌ์šฉํ•œ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  3. Kotlin์„ ์‚ฌ์šฉํ•œ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  4. Kotlin ๊ฐœ๋ฐœ ๋„๊ตฌ ์‹œ์ž‘ํ•˜๊ธฐ
  5. Kotlin์—์„œ ๊ธฐ๋ณธ ์œ ํ˜• ๋ฐ ์ œ์–ด ํ๋ฆ„ ์ž‘์—…
  6. Kotlin ์ปฌ๋ ‰์…˜ ๋ฐ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ
  7. ์˜ˆ์™ธ์™€ ๋กœ๊น…์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ตฌ์ถ•
  8. Kotlin์„ ์‚ฌ์šฉํ•œ ๋™์‹œ์„ฑ ๋ฐ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ
  9. ์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์ฝ”ํ‹€๋ฆฐ
  10. ์ฝ”ํ‹€๋ฆฐ์„ ์‚ฌ์šฉํ•œ ์›น ๊ฐœ๋ฐœ
  11. Kotlin ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ…Œ์ŠคํŠธ ๋ฐ ๋””๋ฒ„๊น…
  12. ๊ณ ๊ธ‰ ์ฝ”ํ‹€๋ฆฐ ๊ธฐ๋Šฅ
  13. Kotlin ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๊ถŒ์žฅ์‚ฌํ•ญ
  14. Kotlin ๋ฐ Java์™€์˜ ์ƒํ˜ธ ์šด์šฉ์„ฑ
  15. ์ฝ”ํ‹€๋ฆฐ ๊ฐœ๋ฐœ์˜ ๋ฏธ๋ž˜

์ฑ… ์†Œ๊ฐœ :

Kotlin์€ Java ๊ฐ€์ƒ ๋จธ์‹ (JVM)์—์„œ ์‹คํ–‰๋˜๋Š” ํ˜„๋Œ€์ ์ด๊ณ  ๊ฐ„๊ฒฐํ•˜๋ฉฐ ๋‹ค์žฌ๋‹ค๋Šฅํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋ฉฐ Android ์•ฑ ๊ฐœ๋ฐœ์—์„œ ์›น ๊ฐœ๋ฐœ ๋ฐ ์„œ๋ฒ„ ์ธก ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ๋‹ค์–‘ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Kotlin์€ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„๊ณผ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. Kotlin in Action์€ ์–ธ์–ด์˜ ๋ชจ๋“  ์ธก๋ฉด๊ณผ ์‹ค์ œ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ์˜ ์‚ฌ์šฉ์„ ๋‹ค๋ฃจ๋Š” Kotlin ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋Œ€ํ•œ ํฌ๊ด„์ ์ธ ๊ฐ€์ด๋“œ์ž…๋‹ˆ๋‹ค.

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

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

๋˜ํ•œ ์ด ์ฑ…์—์„œ๋Š” ํ…Œ์ŠคํŠธ ๋ฐ ๋””๋ฒ„๊น…, ๋™์‹œ์„ฑ ๋ฐ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ, ์˜ˆ์™ธ ๋ฐ ๋กœ๊น…์ด ํฌํ•จ๋œ ๊ฐ•๋ ฅํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋นŒ๋“œ ๋“ฑ Kotlin ๊ฐœ๋ฐœ์˜ ๊ถŒ์žฅ์‚ฌํ•ญ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋˜ํ•œ Kotlin์„ ์‚ฌ์šฉํ•œ Android ์•ฑ ๊ฐœ๋ฐœ์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์„ ๋‹ค๋ฃจ๋Š” Android ๊ฐœ๋ฐœ์„ ์œ„ํ•œ Kotlin ์ฑ•ํ„ฐ๋„ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ์ด ์ฑ…์—์„œ๋Š” Kotlin ํ”„๋กœ์ ํŠธ์—์„œ ์ž๋ฐ” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์ž๋ฐ”์—์„œ Kotlin ์ฝ”๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํฌํ•จํ•˜์—ฌ Kotlin๊ณผ Java์˜ ์ƒํ˜ธ ์šด์šฉ์„ฑ์„ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค. ์ด ์ฑ…์€ ๋˜ํ•œ Kotlin/Native์™€ Kotlin for JavaScript๋ฅผ ํฌํ•จํ•œ Kotlin ๊ฐœ๋ฐœ์˜ ๋ฏธ๋ž˜์— ๋Œ€ํ•ด์„œ๋„ ๋…ผ์˜ํ•ฉ๋‹ˆ๋‹ค.

 

1์žฅ: ์ฝ”ํ‹€๋ฆฐ ์†Œ๊ฐœ

1์žฅ์—์„œ๋Š” Kotlin ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ๊ทธ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๊ฐœ์š”๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Kotlin์˜ ์—ญ์‚ฌ์™€ ๊ฐœ๋ฐœ, Java์™€์˜ ๊ด€๊ณ„, ์ฃผ์š” ๊ธฐ๋Šฅ ๋ฐ ์ด์ ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์ด ์žฅ์—์„œ๋Š” Kotlin ์ƒํƒœ๊ณ„์™€ Kotlin ์ปดํŒŒ์ผ๋Ÿฌ, Kotlin ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, IntelliJ ์•„์ด๋””์–ด IDE๋ฅผ ๋น„๋กฏํ•œ Kotlin ๊ฐœ๋ฐœ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์— ๋Œ€ํ•ด์„œ๋„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ Kotlin ์ปดํŒŒ์ผ๋Ÿฌ, IntelliJ IDEA IDE ๋ฐ IntelliJ IDEA์šฉ Kotlin ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜๋ฅผ ํฌํ•จํ•˜์—ฌ Kotlin ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๋Š” ๋‹จ๊ณ„๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด ์žฅ์—์„œ๋Š” IntelliJ IDEA์—์„œ ์ƒˆ๋กœ์šด Kotlin ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ๊ฐ„๋‹จํ•œ Kotlin ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

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

 

Chapter 2: Kotlin๋กœ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

Kotlin์€ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์ฃผ์š” ์›์น™์„ ๋”ฐ๋ฅด๋ฉฐ Java์™€ ๋งค์šฐ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Kotlin์€ Java๋ณด๋‹ค ์ฝ”๋“œ๋ฅผ ๋” ๊ฐ„๊ฒฐํ•˜๊ณ  ์ ์€ ์–‘์˜ ์ฝ”๋“œ๋กœ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ํด๋ž˜์Šค, ๊ฐ์ฒด, ์ƒ์†, ๋‹คํ˜•์„ฑ, ์ถ”์ƒ ํด๋ž˜์Šค ๋ฐ ์ธํ„ฐํŽ˜์ด์Šค ๋“ฑ์˜ ์ฃผ์š” ๊ฐœ๋…์— ๋Œ€ํ•ด ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฐ์ดํ„ฐ ํด๋ž˜์Šค์™€ sealed ํด๋ž˜์Šค ๊ฐ™์€ Kotlin์—์„œ ํŠน๋ณ„ํ•˜๊ฒŒ ์ง€์›ํ•˜๋Š” ํŠน์ˆ˜ํ•œ ํด๋ž˜์Šค ์œ ํ˜•๋„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์˜ ํด๋ž˜์Šค ๋ฐ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋Šฅ์„ ์„ค๋ช…ํ•˜๊ณ  ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์‹ค์ œ ์ƒํ™ฉ์—์„œ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋‹คํ˜•์„ฑ์„ ์ด์šฉํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ Kotlin์—์„œ ์ƒ์†์˜ ๊ฐœ๋…์„ ์–ด๋–ป๊ฒŒ ์ ์šฉํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์˜ˆ์ œ๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ด ์žฅ์˜ ๋‚ด์šฉ์„ ์ดํ•ดํ•˜๋ฉด ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐœ๋…์„ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜๊ณ  Kotlin์œผ๋กœ ํด๋ž˜์Šค ๋ฐ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Chapter 3: Kotlin๋กœ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ

Kotlin์€ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์„ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋žŒ๋‹ค, ๊ณ ์ฐจ ํ•จ์ˆ˜ ๋ฐ ํ•จ์ˆ˜ํ˜• ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์žฅ์ ์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

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

์ด ์žฅ์—์„œ๋Š” ๋˜ํ•œ Kotlin์—์„œ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์žฅ์ ๊ณผ ์ด๋Ÿฌํ•œ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ๋” ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Kotlin์œผ๋กœ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ฐฐ์šฐ๋ฉด ์ฝ”๋“œ๋ฅผ ๋” ๊ฐ„๊ฒฐํ•˜๊ณ  ์ฝ๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋†’์€ ์ˆ˜์ค€์˜ ์ถ”์ƒํ™”์™€ ์žฌ์‚ฌ์šฉ์„ฑ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Chapter 4: Kotlin ๊ฐœ๋ฐœ ๋„๊ตฌ๋กœ ์‹œ์ž‘ํ•˜๊ธฐ

์ด ์žฅ์—์„œ๋Š” Kotlin ๊ฐœ๋ฐœ์„ ์ด ์žฅ์—์„œ๋Š” Kotlin ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๋„๊ตฌ๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. Kotlin์€ IntelliJ IDEA, Android Studio ๋ฐ Eclipse์™€ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ํ†ตํ•ฉ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๋จผ์ € IntelliJ IDEA IDE์—์„œ Kotlin ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด ์žฅ์—์„œ๋Š” IntelliJ IDEA์—์„œ Kotlin ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ๋นŒ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ž์„ธํžˆ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ Gradle ๋ฐ Maven๊ณผ ๊ฐ™์€ ๋นŒ๋“œ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Kotlin ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin ๊ฐœ๋ฐœ ๋„๊ตฌ ์ค‘ ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” ๋„๊ตฌ ์ค‘ ํ•˜๋‚˜์ธ IntelliJ IDEA์—์„œ Kotlin ์ฝ”๋“œ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋˜ํ•œ Kotlin ๊ฐœ๋ฐœ์— ์œ ์šฉํ•œ IntelliJ IDEA ํ”Œ๋Ÿฌ๊ทธ์ธ๋„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ, ์ด ์žฅ์—์„œ๋Š” Kotlin ๊ฐœ๋ฐœ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ„์†Œํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์†Œ์Šค ์ฝ”๋“œ ๊ด€๋ฆฌ ๋„๊ตฌ ๋ฐ ์ง€์†์ ์ธ ํ†ตํ•ฉ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Kotlin ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž๋™ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Kotlin ๊ฐœ๋ฐœ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Kotlin ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๋นŒ๋“œํ•˜๊ณ  ๋””๋ฒ„๊ทธํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ„์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์žฅ์—์„œ๋Š” Kotlin ๊ฐœ๋ฐœ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Kotlin ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Chapter 5: Kotlin์—์„œ ๊ธฐ๋ณธ ์œ ํ˜• ๋ฐ ์ œ์–ด ํ๋ฆ„ ์ž‘์—…ํ•˜๊ธฐ

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ์œ ํ˜•๊ณผ ์ œ์–ด ํ๋ฆ„ ์ž‘์—…์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋ณ€์ˆ˜, ์ƒ์ˆ˜ ๋ฐ ๋ฐ์ดํ„ฐ ์œ ํ˜•์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ๋ฐฐ์šฐ๊ณ  Kotlin์—์„œ ์ง€์›ํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์œ ํ˜•, ์˜ˆ๋ฅผ ๋“ค์–ด ์ˆซ์ž, ๋ฌธ์ž์—ด ๋ฐ ๋…ผ๋ฆฌ ๊ฐ’ ๋“ฑ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ์—ฐ์‚ฐ์ž์™€ ์ œ์–ด ํ๋ฆ„ ๋ฌธ์žฅ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด ์žฅ์—์„œ๋Š” if/else ๋ฌธ, when ์‹, while ๋ฐ for ๋ฃจํ”„์™€ ๊ฐ™์€ ๋ฌธ์žฅ์„ ๋‹ค๋ฃจ๋ฉฐ, Kotlin์—์„œ ๋ฐ˜๋ณต์ ์ธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ null ๊ฐ’๊ณผ ์•ˆ์ „ํ•œ ํ˜ธ์ถœ ์—ฐ์‚ฐ์ž์— ๋Œ€ํ•œ ๋‚ด์šฉ๋„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. Kotlin์—์„œ null ๊ฐ’ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ๋ฐฐ์šฐ๊ณ  ์•ˆ์ „ํ•œ ํ˜ธ์ถœ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ null ๊ฐ’์— ๋Œ€ํ•œ ์˜ˆ์™ธ๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์œ ํ˜•๊ณผ ์ œ์–ด ํ๋ฆ„ ๊ตฌ๋ฌธ์— ๋Œ€ํ•ด ๋ฐฐ์šฐ๊ณ  ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์‹ค์ œ ์ƒํ™ฉ์—์„œ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ด ์žฅ์„ ๋งˆ์น˜๋ฉด Kotlin์—์„œ ๊ธฐ๋ณธ ์œ ํ˜•๊ณผ ์ œ์–ด ํ๋ฆ„ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Chapter 6: Kotlin ์ปฌ๋ ‰์…˜ ๋ฐ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ์ปฌ๋ ‰์…˜ ๋ฐ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค. Kotlin์—์„œ ์ปฌ๋ ‰์…˜์€ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์œ ํ˜•์˜ ๋ชจ์Œ์ž…๋‹ˆ๋‹ค. Kotlin์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์œ ํ˜•์˜ ์ปฌ๋ ‰์…˜์„ ์ œ๊ณตํ•˜๋ฉฐ, ์ด๋Ÿฌํ•œ ์ปฌ๋ ‰์…˜์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฆฌ์ŠคํŠธ, ์„ธํŠธ, ๋งต ๋ฐ ๋ฐฐ์—ด๊ณผ ๊ฐ™์€ ์ปฌ๋ ‰์…˜ ์œ ํ˜•์— ๋Œ€ํ•ด ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ปฌ๋ ‰์…˜ ์œ ํ˜•์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ๋ฐฐ์šฐ๊ณ  ์ปฌ๋ ‰์…˜์„ ๋งŒ๋“ค๊ณ  ์ˆ˜์ •ํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ์ปฌ๋ ‰์…˜ ๊ธฐ๋Šฅ, ์˜ˆ๋ฅผ ๋“ค์–ด ํ•„ํ„ฐ๋ง, ๋ณ€ํ™˜, ๊ทธ๋ฃนํ™” ๋ฐ ์ •๋ ฌ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ๋„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปฌ๋ ‰์…˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ, ์˜ˆ๋ฅผ ๋“ค์–ด ์Šคํƒ, ํ, ํŠธ๋ฆฌ ๋ฐ ๊ทธ๋ž˜ํ”„์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์— ๋Œ€ํ•ด์„œ๋„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

Kotlin์—์„œ ์ปฌ๋ ‰์…˜๊ณผ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ์ปฌ๋ ‰์…˜ ์œ ํ˜•๊ณผ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋ฐฐ์šฐ๊ณ  ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์‹ค์ œ ์ƒํ™ฉ์—์„œ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

Chapter 7: ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฐ ๋กœ๊น…์œผ๋กœ ๊ฒฌ๊ณ ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“ค๊ธฐ

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฐ ๋กœ๊น…์— ๋Œ€ํ•ด ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์˜ˆ์™ธ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ์ค‘์— ์˜ˆ๊ธฐ์น˜ ์•Š์€ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด Kotlin์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฌธ์žฅ์— ๋Œ€ํ•ด ๋‹ค๋ฃน๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ๋กœ๊น…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋กœ๊น…์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ์ค‘์— ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ๋ฅผ ๊ธฐ๋กํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋กœ๊น…์„ ์‚ฌ์šฉํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ƒํƒœ๋ฅผ ์ถ”์ ํ•˜๊ณ  ๋””๋ฒ„๊ทธํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋กœ๊น… ํ”„๋ ˆ์ž„์›Œํฌ, ์˜ˆ๋ฅผ ๋“ค์–ด Log4j์™€ Kotlin-Logging์— ๋Œ€ํ•ด ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์™€ ๋กœ๊น…์„ ๊ฒฐํ•ฉํ•˜์—ฌ ๊ฒฌ๊ณ ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•๋„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์™€ ๋กœ๊น…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๊ณ  ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์‹ค์ œ ์ƒํ™ฉ์—์„œ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ด ์žฅ์„ ๋งˆ์น˜๋ฉด Kotlin์—์„œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฐ ๋กœ๊น…์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฌ๊ณ ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Chapter 8: Kotlin์—์„œ ๋™์‹œ์„ฑ ๋ฐ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ๋™์‹œ์„ฑ๊ณผ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋™์‹œ์„ฑ์€ ๋‘ ๊ฐœ ์ด์ƒ์˜ ์ž‘์—…์ด ๋™์‹œ์— ์‹คํ–‰๋˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. Kotlin์—์„œ๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ๋™์‹œ์„ฑ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋™์‹œ์„ฑ ๋ฐ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ ๊ธฐ๋Šฅ, ์˜ˆ๋ฅผ ๋“ค์–ด ์ฝ”๋ฃจํ‹ด, ๋ฎคํ…์Šค, ์–ดํ† ๋ฏน ๋ฐ ์Šค๋ ˆ๋“œ์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋™์‹œ์„ฑ ์ž‘์—…์„ ๊ด€๋ฆฌํ•˜๊ณ  ๋‹ค์–‘ํ•œ ๋™์‹œ์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ ์ž‘์—…์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์Šค๋ ˆ๋“œ ํ’€๊ณผ ์Šค๋ ˆ๋“œ ํ’€์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด๋„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๊ณ  ๋™์‹œ์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ์ œ๊ณตํ•˜๋Š” ๋™์‹œ์„ฑ๊ณผ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์„ ํ™œ์šฉํ•˜์—ฌ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ๋™์‹œ์„ฑ ๋ฐ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์„ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๊ณ  ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์‹ค์ œ ์ƒํ™ฉ์—์„œ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ด ์žฅ์„ ๋งˆ์น˜๋ฉด Kotlin์—์„œ ๋™์‹œ์„ฑ ๋ฐ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์„ ํ™œ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Chapter 9: Kotlin์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ก์„ธ์Šค

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ก์„ธ์Šค๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ถ€๋ถ„ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. Kotlin์—์„œ๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ก์„ธ์Šค๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์˜ˆ๋ฅผ ๋“ค์–ด Exposed์™€ Anko SQLite ๋ฐ Room๊ณผ ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•ด์„œ๋„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ก์„ธ์Šค ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์กฐ์ž‘ํ•˜๊ณ  ์ฟผ๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ, ์ˆ˜์ • ๋ฐ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ก์„ธ์Šค๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๊ณ  ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์‹ค์ œ ์ƒํ™ฉ์—์„œ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ด ์žฅ์„ ๋งˆ์น˜๋ฉด Kotlin์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ก์„ธ์Šค๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Chapter 10: Kotlin์—์„œ RESTful ์›น ์„œ๋น„์Šค ์ž‘์„ฑ

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ RESTful ์›น ์„œ๋น„์Šค๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค๋ฃน๋‹ˆ๋‹ค. RESTful ์›น ์„œ๋น„์Šค๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋‹ค์–‘ํ•œ ํด๋ผ์ด์–ธํŠธ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” API๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ RESTful ์›น ์„œ๋น„์Šค๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ Kotlin์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ์›น ํ”„๋ ˆ์ž„์›Œํฌ, ์˜ˆ๋ฅผ ๋“ค์–ด Ktor, Spring ๋ฐ Javalin๊ณผ ๊ฐ™์€ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ RESTful ์›น ์„œ๋น„์Šค๋ฅผ ๋น ๋ฅด๊ณ  ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ RESTful ์›น ์„œ๋น„์Šค๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ RESTful ์›น ์„œ๋น„์Šค์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋‹ค์–‘ํ•œ HTTP ๋ฉ”์„œ๋“œ, ์˜ˆ๋ฅผ ๋“ค์–ด GET, POST, PUT ๋ฐ DELETE ๋“ฑ์— ๋Œ€ํ•ด์„œ๋„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ์›น ์„œ๋น„์Šค ๊ธฐ๋Šฅ, ์˜ˆ๋ฅผ ๋“ค์–ด ์ธ์ฆ, ๋ณด์•ˆ ๋ฐ ๋กœ๊น…๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ RESTful ์›น ์„œ๋น„์Šค๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๊ณ  ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์‹ค์ œ ์ƒํ™ฉ์—์„œ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ด ์žฅ์„ ๋งˆ์น˜๋ฉด Kotlin์—์„œ RESTful ์›น ์„œ๋น„์Šค๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Chapter 11: Kotlin์—์„œ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ ๋ฐ ๋””๋ฒ„๊น…

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค๋ฃน๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ’ˆ์งˆ์„ ๋ณด์žฅํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. Kotlin์—์„œ๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ, ์˜ˆ๋ฅผ ๋“ค์–ด JUnit์™€ KotlinTest์— ๋Œ€ํ•ด ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ Kotlin์—์„œ ์ œ๊ณตํ•˜๋Š” ๋””๋ฒ„๊น… ๊ธฐ๋Šฅ, ์˜ˆ๋ฅผ ๋“ค์–ด ๋””๋ฒ„๊น… ๋ชจ๋“œ์™€ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ๋””๋ฒ„๊น… ๋ชจ๋“œ์— ๋Œ€ํ•ด์„œ๋„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๊ณ  ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์‹ค์ œ ์ƒํ™ฉ์—์„œ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ด ์žฅ์„ ๋งˆ์น˜๋ฉด Kotlin์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Chapter 12: Kotlin์—์„œ ๋žŒ๋‹ค ๋ฐ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ๋žŒ๋‹ค์™€ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋žŒ๋‹ค๋Š” ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ค‘์š”ํ•œ ๊ฐœ๋… ์ค‘ ํ•˜๋‚˜์ด๋ฉฐ, Kotlin์—์„œ ์ง€์›ํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ๋žŒ๋‹ค๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ Kotlin์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋Šฅ, ์˜ˆ๋ฅผ ๋“ค์–ด ๊ณ ์ฐจ ํ•จ์ˆ˜์™€ ์ปค๋ง ๋“ฑ์— ๋Œ€ํ•ด์„œ๋„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

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

Chapter 13: Kotlin์—์„œ ์•ˆ๋“œ๋กœ์ด๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ

์ด ์žฅ์—์„œ๋Š” Kotlin์„ ์‚ฌ์šฉํ•˜์—ฌ ์•ˆ๋“œ๋กœ์ด๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค๋ฃน๋‹ˆ๋‹ค. Kotlin์€ ์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐœ๋ฐœ์—์„œ๋„ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์œผ๋ฉฐ, ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์„ ์‚ฌ์šฉํ•˜์—ฌ ์•ˆ๋“œ๋กœ์ด๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ Kotlin์—์„œ ์•ˆ๋“œ๋กœ์ด๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋นŒ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋‹ค์–‘ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ”„๋ ˆ์ž„์›Œํฌ, ์˜ˆ๋ฅผ ๋“ค์–ด Android KTX, Retrofit ๋ฐ Room๊ณผ ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•ด์„œ๋„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์„ ์‚ฌ์šฉํ•˜์—ฌ ์•ˆ๋“œ๋กœ์ด๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๊ณ  ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์‹ค์ œ ์ƒํ™ฉ์—์„œ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ด ์žฅ์„ ๋งˆ์น˜๋ฉด Kotlin์„ ์‚ฌ์šฉํ•˜์—ฌ ์•ˆ๋“œ๋กœ์ด๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Chapter 14: Kotlin์—์„œ ์ฝ”๋ฃจํ‹ด๊ณผ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ์ฝ”๋ฃจํ‹ด๊ณผ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์ฝ”๋ฃจํ‹ด์€ Kotlin์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ์ฝ”๋ฃจํ‹ด์„ ์ž‘์„ฑํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋Šฅ, ์˜ˆ๋ฅผ ๋“ค์–ด async, launch ๋ฐ withContext์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

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

Chapter 15: Kotlin์—์„œ ๋จธ์‹  ๋Ÿฌ๋‹ ๋ฐ ์ธ๊ณต ์ง€๋Šฅ

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ๋จธ์‹  ๋Ÿฌ๋‹๊ณผ ์ธ๊ณต ์ง€๋Šฅ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋จธ์‹  ๋Ÿฌ๋‹๊ณผ ์ธ๊ณต ์ง€๋Šฅ์€ ํ˜„์žฌ IT ๋ถ„์•ผ์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ถ„์•ผ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ๋จธ์‹  ๋Ÿฌ๋‹๊ณผ ์ธ๊ณต ์ง€๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค๋ฃน๋‹ˆ๋‹ค. Kotlin์—์„œ๋Š” TensorFlow์™€ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ๋จธ์‹  ๋Ÿฌ๋‹ ๋ฐ ์ธ๊ณต ์ง€๋Šฅ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ์ œ๊ณตํ•˜๋Š” ๋จธ์‹  ๋Ÿฌ๋‹ ๋ฐ ์ธ๊ณต ์ง€๋Šฅ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ธ์„ ํ›ˆ๋ จํ•˜๊ณ  ์˜ˆ์ธกํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ์žฅ์—์„œ๋Š” Kotlin์—์„œ ๋จธ์‹  ๋Ÿฌ๋‹๊ณผ ์ธ๊ณต ์ง€๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์˜ˆ์ œ๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ด ์žฅ์„ ๋งˆ์น˜๋ฉด Kotlin์—์„œ ๋จธ์‹  ๋Ÿฌ๋‹๊ณผ ์ธ๊ณต ์ง€๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

Kotlin์€ ํ˜„์žฌ IT ๋ถ„์•ผ์—์„œ ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” ์–ธ์–ด ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. Kotlin์€ ๊ฐ„๊ฒฐํ•˜๊ณ  ์•ˆ์ •์ ์ธ ์–ธ์–ด๋กœ์„œ ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์—์„œ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Kotlin์€ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ๋ณด๋‹ค ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ด ์ฑ…์—์„œ๋Š” Kotlin์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๊ณผ ๊ธฐ์ˆ ์— ๋Œ€ํ•ด ๋‹ค๋ฃจ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ฑ…์„ ํ†ตํ•ด Kotlin์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๊ณ , ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ฑ…์„ ํ†ตํ•ด Kotlin์—์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๊ณ , Kotlin์„ ํ™œ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

728x90
  1. 1์žฅ: ์ฝ”ํ‹€๋ฆฐ ์†Œ๊ฐœ
  2. Chapter 2: Kotlin๋กœ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  3. Chapter 3: Kotlin๋กœ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  4. Chapter 4: Kotlin ๊ฐœ๋ฐœ ๋„๊ตฌ๋กœ ์‹œ์ž‘ํ•˜๊ธฐ
  5. Chapter 5: Kotlin์—์„œ ๊ธฐ๋ณธ ์œ ํ˜• ๋ฐ ์ œ์–ด ํ๋ฆ„ ์ž‘์—…ํ•˜๊ธฐ
  6. Chapter 7: ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฐ ๋กœ๊น…์œผ๋กœ ๊ฒฌ๊ณ ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“ค๊ธฐ
  7. Chapter 9: Kotlin์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ก์„ธ์Šค
  8. Chapter 10: Kotlin์—์„œ RESTful ์›น ์„œ๋น„์Šค ์ž‘์„ฑ
  9. Chapter 11: Kotlin์—์„œ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ ๋ฐ ๋””๋ฒ„๊น…
  10. Chapter 12: Kotlin์—์„œ ๋žŒ๋‹ค ๋ฐ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  11. Chapter 13: Kotlin์—์„œ ์•ˆ๋“œ๋กœ์ด๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ
  12. Chapter 14: Kotlin์—์„œ ์ฝ”๋ฃจํ‹ด๊ณผ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  13. Chapter 15: Kotlin์—์„œ ๋จธ์‹  ๋Ÿฌ๋‹ ๋ฐ ์ธ๊ณต ์ง€๋Šฅ
  14. ๊ฒฐ๋ก 
'Book' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [ํŠธ๋ Œ๋“œ ์ฝ”๋ฆฌ์•„ 2024] ํ˜ธ๋ชจ ํ”„๋กฌํ”„ํŠธ(Rise of โ€˜Homo Promptusโ€™ )
  • ํŠธ๋ Œ๋“œ ์ฝ”๋ฆฌ์•„ 2024 ๋ชฉ์ฐจ
  • [ํŠธ๋ Œ๋“œ ์ฝ”๋ฆฌ์•„ 2024] ๋ถ„์ดˆ์‚ฌํšŒ(Don't Waste a Single Second:Time-Efficient Society) ์š”์•ฝ
  • ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์˜คํ•ด์™€ ์ง„์‹ค (The Misunderstanding and Truth of Object-Oriented Programming)
์ง€๋‹ˆ๐Ÿงžโ€โ™‚๏ธ๐Ÿฅญ
์ง€๋‹ˆ๐Ÿงžโ€โ™‚๏ธ๐Ÿฅญ
์ผ์ƒ, ๊ฒŒ์ž„, ๋ง›์ง‘, ์—ฌํ–‰, ๊ฐœ๋ฐœ, IT ๋ธ”๋กœ๊ทธ๐Ÿงž
  • ์ง€๋‹ˆ๐Ÿงžโ€โ™‚๏ธ๐Ÿฅญ
    ์š”์ˆ  ๋žจํ”„๐Ÿซ–
    ์ง€๋‹ˆ๐Ÿงžโ€โ™‚๏ธ๐Ÿฅญ
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • All (549)
      • Languages (57)
        • JAVA (13)
        • JSP (1)
        • C_C++ (4)
        • Html (3)
        • CSS (1)
        • JavaScript (18)
        • Python (3)
        • Kotlin (13)
        • TypeScript (1)
      • Framework (14)
        • spring (11)
        • jstl (1)
        • angular (2)
      • Tool (28)
        • Eclipse (5)
        • vsCode (3)
        • scrcpy (2)
        • Git (1)
        • IntelliJ (6)
        • Visual-studio (1)
        • UML (1)
        • Gradle (8)
      • DB (6)
        • Oracle (1)
        • MySql (3)
        • Mongo (2)
      • OS (14)
        • Linux (2)
        • Windows (12)
      • Server (8)
        • Tomcat (1)
        • Apache (1)
        • Node.js (6)
      • Programmings (25)
        • Design Pattern (2)
        • Funny (20)
        • Algorithms (3)
      • Cloud (8)
        • Docker (1)
        • Kubernetes (4)
        • Istio (1)
        • ArgoCD (2)
      • IT (5)
        • gRPC (3)
        • RESTful (3)
        • Web UI (5)
        • AI (4)
      • Book (6)
      • TIP (187)
      • Life (53)
      • Game (83)
      • Storage (22)
      • ์‹๋‹น (15)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
    • ์‚ฌ์ดํŠธ๋งต
    • RSS
    • ๊ธฐํƒ€ ์†Œ๋“
  • ๋งํฌ

    • ๊ตฌ๊ธ€
    • ๋„ค์ด๋ฒ„
    • ์ •๋ถ€24
    • Spring Framework ๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ
    • Kotlin ๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ
    • ์นด์นด์˜ค ์• ๋“œํ•
    • ๋ธ”๋กœ๊ทธ ์‚ฌ์ดํŠธ๋งต
    • ๋ธ”๋กœ๊ทธ RSS
  • ๊ณต์ง€์‚ฌํ•ญ

    • ์•ˆ๋…•ํ•˜์„ธ์š”
  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๋‰ด์Šค ๋ธŒ๋ฆฌํ•‘
    ์˜ค๋Š˜์˜๋‰ด์Šค
    ๋ชฌ์Šคํ„ฐํ—Œํ„ฐ๋‚˜์šฐ
    ํ•œ๋ˆˆ์— ๋ณด๋Š” ์˜ค๋Š˜์˜ ๋‰ด์Šค
    ํƒœ๊ตญ
    ๋‰ด์Šค
    ๋ชฌ์Šคํ„ฐํ—Œํ„ฐ์™€์ผ์ฆˆ
    ํ€˜์ŠคํŠธ
    ๋ฐ์ผ๋ฆฌ ๋‰ด์Šค
    ๋ธŒ๋ฆฌํ•‘
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์ง€๋‹ˆ๐Ÿงžโ€โ™‚๏ธ๐Ÿฅญ
Kotlin in Action

๊ฐœ์ธ์ •๋ณด

  • ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ
  • ํฌ๋Ÿผ
  • ๋กœ๊ทธ์ธ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.