1. ์™œ ์ฝ”ํ‹€๋ฆฐ์„ ๊ณต๋ถ€ ํ•ด์•ผ ํ• ๊นŒ?
  2. ์ฝ”ํ‹€๋ฆฐ์€ ๋ฌด์—‡์ด๊ณ  ๋ฌด์—‡์ด ์ข‹์€๊ฐ€?!
  3. ๋งˆ๋ฌด์œผ๋ฆฌ ๐Ÿ˜Ž

์—ญ์‹œ ์‚ฌ๋žŒ์€ ์‰ฝ๊ฒŒ ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋ธ”๋กœ๊ทธ์— ๋ถ€์ง€๋Ÿฐํžˆ ๊ธ€์„ ์“ฐ๊ฒ ๋…ธ๋ผ ๋‹ค์งํ•œ ์ง€ ํ•œ๋‹ฌ์ด ๋„˜๊ฒŒ ์ง€๋‚˜์„œ์•ผ ๊ธ€์„ ์“ด๋‹ค. (1๋…„์—์„œ ํ•œ๋‹ฌ๋กœ ๋งŽ์ด ์ค„์ด๊ธด ํ–ˆ๋‹ค. ์ •์‹ ์Šน๋ฆฌ๐Ÿ˜Ž)

์ด๋ฒˆ ๊ธ€์€ kotlin in action ์„ ์ฐธ๊ณ ํ•˜์—ฌ ๊ณต๋ถ€ํ•œ ์ฝ”ํ‹€๋ฆฐ์— ๋Œ€ํ•ด์„œ ์“ฐ๋ ค๊ณ  ํ•œ๋‹ค. ์•ž์œผ๋กœ ์ฝ”ํ‹€๋ฆฐ์„ ๊ณต๊ณต๋ถ€ํ•˜๋Š” ๊ณผ์ •์— ๋Œ€ํ•œ ๊ธ€์„ ์“ธ ๊ฒƒ์ด๋‹ค.

0.โ“์™œ ์ฝ”ํ‹€๋ฆฐ์„ ๊ณต๋ถ€ ํ•ด์•ผ ํ• ๊นŒ?

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

์ฝ”ํ‹€๋ฆฐ์€ Google I/O 2017์—์„œ ์•ˆ๋“œ๋กœ์ด๋“œ์˜ ๊ณต์‹ ๊ฐœ๋ฐœ ์–ธ์–ด๋กœ ์ฑ„ํƒ๋˜์—ˆ๋‹ค. ๊ณต์‹ ๊ฐœ๋ฐœ ์–ธ์–ด๋กœ ์ฑ„ํƒ๋œ ์ด์ƒ ๋”๋Š” ๊ณต๋ถ€๋ฅผ ๋ฏธ๋ฃฐ ์ˆ˜ ์—†๊ฒŒ ๋˜์—ˆ๋‹ค. ๋˜ํ•œ ์ตœ๊ทผ Google I/O 2019์—์„œ ์ฝ”ํ‹€๋ฆฐ์„ ์ตœ์šฐ์„ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค๋Š” โญ๏ธkotlin firstโญ๏ธ ๋ฅผ ์–ธ๊ธ‰ํ•จ์œผ๋กœ ๋ฉ”์ธ ์–ธ์–ด๋กœ์„œ ๋ชป ๋ฐ•์•˜๋‹ค.

๐Ÿค– Google I/O 2017 ์ฝ”ํ‹€๋ฆฐ ์†Œ๊ฐœ

๐Ÿš€ Google I/O 2019 kotlin first

1.๐Ÿ‘ป ์ฝ”ํ‹€๋ฆฐ์€ ๋ฌด์—‡์ด๊ณ  ๋ฌด์—‡์ด ์ข‹์€๊ฐ€?!

๐Ÿคท๐Ÿปโ€โ™€๏ธ ์ฝ”ํ‹€๋ฆฐ์€ ๋ฌด์—‡์ธ๊ฐ€??

์ฝ”ํ‹€๋ฆฐ์€ ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค ๊ฐœ๋ฐœ์‚ฌ์ธ Jet Brains์—์„œ 2011๋…„์— ๊ณต๊ฐœํ•œ ์–ธ์–ด์ด๋‹ค. ์ฝ”ํ‹€๋ฆฐ์€ JVM์—์„œ ๊ตฌ๋™๋˜๋Š” ์–ธ์–ด๋กœ ์ž๋ฐ”์™€ ์ƒํ˜ธ์šด์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์กŒ๋‹ค. ์ž๋ฐ”๋ฅผ ์™„์ „ํžˆ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด ์ฝ”ํ‹€๋ฆฐ์˜ ์ฃผ๋ชฉ์ ์ด๋‹ค. ์ฝ”ํ‹€๋ฆฐ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํŠน์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • ์ •์  ํƒ€์ž… ์ง€์ • ์–ธ์–ด
  • ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  • ๋ฌด๋ฃŒ ์˜คํ”ˆ ์†Œ์Šค
  • ์ฝ”ํ‹€๋ฆฐ์˜ ์‘์šฉ๋ถ„์•ผ

์ •์  ํƒ€์ž… ์ง€์ • ์–ธ์–ด

์ฝ”ํ‹€๋ฆฐ์€ ์ž๋ฐ”์™€ ๊ฐ™์ด ์ •์  ํƒ€์ž… ์ง€์ • ์–ธ์–ด์ด๋‹ค. ํ•˜์ง€๋งŒ ์ž๋ฐ”์™€์˜ ์ฐจ์ด์ ์€ ์ฝ”ํ‹€๋ฆฐ์—์„œ ๋ณ€์ˆ˜ ์„ ์–ธ ์‹œ ๋ชจ๋“  ๋ณ€์ˆ˜์˜ ํƒ€์ž…์„ ๋ช…์‹œํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋Š” ์ฝ”ํ‹€๋ฆฐ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋ฌธ๋งฅ์œผ๋กœ ํƒ€์ž…์„ ์ž๋™ ์œ ์ถ”ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

val number = 10 // -> == val number:Int = 10

ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

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

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

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

๋ฌด๋ฃŒ ์˜คํ”ˆ ์†Œ์Šค

ใ…‡ใ…‡
แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2019-09-29 แ„‹แ…ฉแ„’แ…ฎ 10.51.03.png

์ฝ”ํ‹€๋ฆฐ์˜ ์‘์šฉ๋ถ„์•ผ

์ฝ”ํ‹€๋ฆฐ์€ ์•ˆ๋“œ๋กœ์ด๋“œ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์„œ๋ฒ„์—์„œ๋„ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.!!

๐Ÿ‘‰๐Ÿป ์นด์นด์˜คํ†ก์˜ ์„œ๋ฒ„์‚ฌ์ด๋“œ ์ฝ”ํ‹€๋ฆฐ

๐Ÿ™‹๐Ÿปโ€โ™€๏ธ ์ฝ”ํ‹€๋ฆฐ์€ ๋ฌด์—‡์ด ์ข‹์€๊ฐ€??

์ฝ”ํ‹€๋ฆฐ ํ™ˆํŽ˜์ด์ง€์˜ ๋ฉ”์ธ์—์„œ๋Š” <why kotlin?> ์„น์…˜์—์„œ ์•„๋ž˜ 4๊ฐ€์ง€๋ฅผ ์†Œ๊ฐœํ•˜๊ณ  ์žˆ๋‹ค.

  • ๊ฐ„๊ฒฐ์„ฑ
  • ์•ˆ์ „์„ฑ
  • ์ƒํ˜ธ์šด์šฉ
  • ๋„๊ตฌ ์นœํ™”์ (์‹ค์šฉ์„ฑ)

๊ฐ„๊ฒฐ์„ฑ

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

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

์•ˆ์ „์„ฑ

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

  • NullPointerException : ์–ด๋–ค ๋ณ€์ˆ˜๊ฐ€ null๊ฐ’์ด ๋  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์—ฌ๋ถ€๋ฅผ ํ‘œ์‹œํ•œ๋‹ค.

    val number:Int? = 10 //null๊ฐ’ ํ—ˆ์šฉ
    val number:Int = 10 //null๊ฐ’ ๋น„ํ—ˆ์šฉ
  • ClassCaseException : ํƒ€์ž… ๊ฒ€์‚ฌ์™€ ์บ์ŠคํŠธ๋ฅผ ํ•œ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

    if(value is String) print(value.toUpperCase())

    is๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€์ˆ˜์˜ ํƒ€์ž… ๊ฒ€์‚ฌ ํ›„ ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ํ•ด๋‹น ํƒ€์ž…์ด๋ฉด ๋ณ„๋„์˜ ์บ์ŠคํŠธ ์—†์ด ํƒ€์ž… ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜, ๋ฉ”์†Œ๋“œ์˜ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์ƒํ˜ธ์šด์šฉ

์œ„์„œ ์–ธ๊ธ‰ํ•˜์˜€๋“ฏ์ด ์ฝ”ํ‹€๋ฆฐ์€ ์ž๋ฐ”๋ฅผ ๋Œ€์ฒดํ•˜๋Š” ๊ฒƒ์„ ๋ชฉ์ ์œผ๋กœ ํ•˜๋Š” ์–ธ์–ด์ด๋‹ค. ์ฝ”ํ‹€๋ฆฐ์€ ํ˜„์žฌ ์ž๋ฐ” ์ฝ”๋“œ์™€ 100% ์ƒํ˜ธ์šด์˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋•Œ๋ฌธ์— ๊ธฐ์กด์— ์žˆ๋˜ ์ž๋ฐ” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. ์ฝ”ํ‹€๋ฆฐ์—์„œ๋Š” ๊ธฐ์กด์˜ ์ž๋ฐ” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”ํ‹€๋ฆฐ์—์„œ ์ž๋ฐ”API ํ˜ธ์ถœ์‹œ ๋ณ„๋„์˜ ๋ณ€ํ™˜ ์ž‘์—…์ด ํ•„์š”์—†๋‹ค.

แ„แ…ฉแ„แ…ณแ†ฏแ„…แ…ตแ†ซ-แ„‡แ…ตแ†ฏแ„ƒแ…ณ-แ„€แ…ชแ„Œแ…ฅแ†ผ.jpg

๋„๊ตฌ ์นœํ™”์ (์‹ค์šฉ์ )

"A language needs tooling and at JetBrains, it's what we do best!"
kotlinํ™ˆ๋ฉ”์ด์ง€์˜ tool-friendly์— ์žˆ๋Š” ๋ง์ด๋‹ค.

2.๐Ÿ˜Ž ๋งˆ๋ฌด์œผ๋ฆฌ

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ์‚ฌ์ดํŠธ์—์„œ ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ์ฝ”ํ‹€๋ฆฐ์„ ์‹ค์ œ๋กœ ์ ์šฉํ•˜๋ฉด์„œ ์ฝ”ํ‹€๋ฆฐ์— ๋Œ€ํ•œ ํฅ๋ฏธ๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ณ  ์žˆ๋‹ค. ์›๋ž˜๋Š” ๊ธฐ๋ณธ์ ์ธ ์ฝ”ํ‹€๋ฆฐ ๋ฌธ๋ฒ•์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ธ€์„ ์“ฐ๊ณ  ํฌ์ŠคํŒ…์„ ๋งˆ๋ฌด๋ฆฌ ํ•˜๋ ค๊ณ  ํ•˜์˜€์œผ๋‚˜ ๋ถ„๋Ÿ‰์ด ๋„ˆ๋ฌด ๊ธธ์–ด ์ง€๋Š” ๊ฒƒ ๊ฐ™์•„ ๋‹ค์Œ ๊ธ€๋กœ ๋‚˜๋ˆ„์–ด ํฌ์ŠคํŒ… ํ•˜๋ ค๊ณ  ํ•œ๋‹ค.๐Ÿ™Œ๐Ÿป๋ถ€์ง€๋Ÿฐํžˆ ๊ธ€์“ฐ์ž.๐Ÿ™Œ๐Ÿป๊ธ€ ์ข€ ์ž˜ ์“ฐ๊ณ  ์‹ถ๋‹ค.