
์ฝํ๋ฆฐ์ด๋ ๋ฌด์์ธ๊ฐ?
Kotlin์ ์ค๋ซ๋์ ํฐ ์ธ๊ธฐ๋ฅผ ๋์์ต๋๋ค. ์ด๋ ํนํ Java์ ๋ํ ๋ณด๋ค ๊ฐ๊ฒฐํ๊ณ ํจ์จ์ ์ธ ๋์์ ์ฐพ๋ ๊ฐ๋ฐ์๋ค ์ฌ์ด์์ ์ต๊ทผ ๋ช ๋ ๋์ ๋๋ผ์ด ์ธ๊ธฐ๋ฅผ ์ป์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋๋ค. ํ์ง๋ง ๊ทธ ๋ค์๋ ๋ฌด์์ด ์์๊น์? Kotlin์ 10์ฌ๋ ์ JetBrains ํ์ฌ์์ ๊ฐ๋ฐํ์ฌ 2016๋ ์ ์ถ์๋ ํฌ๋ก์ค ํ๋ซํผ, ์ ์ ์ธ ์ ํ์ ์ธ์ด์ ๋๋ค. 2017๋ Google์ด Kotlin์ Android ๊ฐ๋ฐ์ ์ํด ๊ณต์์ ์ผ๋ก ์ง์๋๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๋ง๋ค๋ฉด์ ์ธ๊ธฐ๊ฐ ๊ธ์ํ ๋์์ก์ต๋๋ค. . ๋ฐ๋ผ์ ํ์ฌ Play ์คํ ์ด์ ์๋ ์ฑ ์ค 20% ์ด์์ด Kotlin์ ์ฌ์ฉํ๊ณ ์๋ค๋ ๊ฒ์ ๋๋ผ์ด ์ผ์ด ์๋๋๋ค. ์ฆ, Kotlin์ Android ์ฑ์๋ง ์ฌ์ฉ๋๋ ๊ฒ์ด ์๋๋ผ ํ๋ฐํธ์๋ ๋ฐ ๋ฐฑ์๋ ์น ๊ฐ๋ฐ, ๋ฐ์ดํฐ ๊ณผํ, ํฌ๋ก์ค ํ๋ซํผ ๋ชจ๋ฐ์ผ ๊ฐ๋ฐ์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.Kotlin์ด ๋๋ณด์ด๋ ์ด์
Kotlin์ ๊ทธํ ๋ก ๋งค๋ ฅ์ ์ผ๋ก ๋ง๋๋ ๊ฐ์ฅ ์ค์ํ ์ ์ Java๋ณด๋ค ๋ ํ๋์ ์ด๊ณ ์ฌ์ฉ์ ์นํ์ ์ผ๋ก ์ค๊ณ๋์์ผ๋ฉฐ, ์ฝ๋ ์์ฑ์ ๋ ์ฝ๊ฒ ๋ง๋ค๊ณ ์ค๋ฅ๋ฅผ ์ค์ด๋ฉฐ ์์ฐ์ฑ์ ๋์ผ ์ ์๋ ๋ง์ ๊ธฐ๋ฅ์ ์๋ํ๋ค๋ ๊ฒ์ ๋๋ค. Java๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ์ ํ๋์ด ์์ง๋ง Kotlin์ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฅ๋ ์ ๊ณตํฉ๋๋ค.Kotlin์ ์ฃผ์ ์ด์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
-
๋ฐ์ด๋ ๊ฐ๋ ์ฑ . Kotlin์ Java๋ณด๋ค ๋ ๊ฐ๊ฒฐํ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ฏ๋ก ์ฝ๋๋ฅผ ๋ ์ฝ๊ฒ ์ฝ๊ณ ์์ฑํ ์ ์์ต๋๋ค. ์ธ๋ฏธ์ฝ๋ก ๋ฐ ์ค๊ดํธ์ ๊ฐ์ ์์ฉ๊ตฌ ์ฝ๋๋ฅผ ์ค์ด๊ณ ์ ํ ์ ์ถ๋ฅผ ์ฌ์ฉํ์ฌ ๋ช ์์ ์ธ ์ ํ ์ ์ธ์ ํ์์ฑ์ ์ค์ ๋๋ค.
๊ทธ๊ฑด ๊ทธ๋ ๊ณ , ์ฝ๊ฐ์ ํ์ต ๊ณก์ ์ ๊ฑฐ์น ํ์ Java ๊ฐ๋ฐ์๋ Kotlin์ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋งค์ฐ ๋น ๋ฅด๊ฒ ์ฝ๊ฒ ์ดํดํ ์ ์์ต๋๋ค.
-
์์ ์ด ๋ณด์ฅ๋์ง ์์ต๋๋ค . Kotlin์๋ ๋ ํฌ์ธํฐ ์์ธ๋ฅผ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋๋ ๋ ์์ ๊ธฐ๋ฅ์ด ๋ด์ฅ๋์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฏธ ๋ค์ด๋ณด์ จ์ ์๋ ์๊ฒ ์ง๋ง, "10์ต ๋ฌ๋ฌ ๊ท๋ชจ์ ์ค์"๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ Null ํฌ์ธํฐ ์์ธ๋ Java๋ฅผ ์ฌ์ฉํ ๋ ์ฑ ์ถฉ๋์ ์ผ์ผํค๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ค๋ฅ ์ค ํ๋์ ๋๋ค.
Kotlin์ ๋ณ์์ null ๊ฐ์ ํ ๋นํ๋ ๊ฒ์ ํ์ฉํ์ง ์์ผ๋ฏ๋ก ๊ธฐ๋ณธ์ ์ผ๋ก null๋ก๋ถํฐ ์์ ํฉ๋๋ค.
-
ํ์ฅ ๊ธฐ๋ฅ . Kotlin์ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์๋ ์๋ณธ ์์ค ์ฝ๋๋ฅผ ์์ ํ์ง ์๊ณ ๋ ๊ธฐ์กด ํด๋์ค์ ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์ด๋ ์๋ ํด๋์ค์ ์ผ๋ถ์ธ ๊ฒ์ฒ๋ผ ๋์ผํ ๋ฐฉ์์ผ๋ก ํธ์ถํ ์ ์๋ ํ์ฅ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ํ๋ฉ๋๋ค.
-
์ฝ๋ฃจํด . ๊ธฐ๋ณธ์ ์ผ๋ก Kotlin์๋ ์ค๋ ๋๋ณด๋ค ๋ ๋งค๋ ฅ์ ์ธ ๋์์ธ ์ฝ๋ฃจํด ์ง์ ๊ธฐ๋ฅ์ด ๋ด์ฅ๋์ด ์์ต๋๋ค. ์ฝ๋ฃจํด์ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์๋ ๊ธฐ์กด ์ฝ๋ฐฑ ๊ธฐ๋ฐ ์ฝ๋๋ณด๋ค ๋ ์ฝ๊ธฐ ์ฝ๊ณ ์ ์ง ๊ด๋ฆฌํ๊ธฐ ์ฌ์ด ๋น๋๊ธฐ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
-
๊ฒํฐ์ ์ธํฐ . Java์์ ๊ฐ๋ฐ์๋ ์ผ๋ฐ์ ์ผ๋ก ๋ชจ๋ฌ ํด๋์ค์ ๋ณ์์์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ธฐ ์ํด getter ๋ฐ setter ํจ์๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๋ฐ๋ฉด Kotlin์์๋ getter ๋ฐ setter ํจ์๊ฐ ํ์ํ์ง ์์ต๋๋ค. ๊ฐ๋ฐ์๋ ๋ณ์ ์ด๋ฆ ์์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ๋ฐ์ดํฐ์ ๊ฐ๋จํ ์ก์ธ์คํ ์ ์์ต๋๋ค.
์๋ฐ๋ ๋ฌด์์ธ๊ฐ? ์ฃผ์ ์ด์
์์ ์ธ๊ธํ ๋ชจ๋ ์ฅ์ ์๋ ๋ถ๊ตฌํ๊ณ Kotlin์ ์ฌ์ ํ โโJava๋ณด๋ค ๋ ์ธ๊ธฐ๊ฐ ์์ต๋๋ค. ์? Java ๋ 1995๋ ์ ์ถ์๋ ์ ์ ๋ฆฝ๋ ๊ณ ๊ธ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ Java์ ๊ฐ์ฅ ์ค์ํ ์ฅ์ ์ Java Virtual Machine์ ์ง์ํ๋ ๋ชจ๋ ์ปดํจํฐ์์ ์คํ๋ ์ ์๋ ํ๋ซํผ ๋ ๋ฆฝ์ ์ธ ์ธ์ด๋ผ๋ ๊ฒ์ ๋๋ค . . Java๋ ์ฑ ๊ฐ๋ฐ, ๊ธฐ์ ๊ฐ๋ฐ, ๊ฒ์ ๊ฐ๋ฐ, ๋น ๋ฐ์ดํฐ ์ํํธ์จ์ด ๊ฐ๋ฐ, ๋ฐ์คํฌํฑ/์น/IoT ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ์ผ๋ก ์ธํด Kotlin์ ๋น๋กฏํ ๋ค๋ฅธ ์ธ์ด ๊ฐ๋ฐ์๋ ์ํฅ์ ๋ฏธ์ณค์ต๋๋ค. ๋ฌผ๋ก Java๋ ์๋ง์ ๊ธฐํ์ ์ถ๊ฐ ๊ธฐ๋ฅ์ ํ์ฉํ๋ ๊ธฐ๋ณธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋๋ค. ๋ฐ๋ผ์ 2015๋ ๋ถํฐ 2020๋ ๊น์ง Java๊ฐ ์ฌ์ฉ ์ค์ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ค ํ์คํ 1์์์ผ๋ฉฐ ์ฌ์ ํ ์์ 3์ ์์ ๋๋ ๊ฒ์ ๋๋ผ์ด ์ผ์ด ์๋๋๋ค . Java์ ์ฃผ์ ์ด์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.-
์ด์์ฑ . ๋ฐฉ๊ธ ์ธ๊ธํ๋ฏ์ด Java๋ ํ๋ซํผ ๋ ๋ฆฝ์ ์ธ ์ธ์ด์ ๋๋ค. ์ฆ, ์ฝ๋๋ฅผ ํ ๋ฒ๋ง ์์ฑํ๋ฉด JVM์ ์ง์ํ๋ ๋ชจ๋ ํ๋ซํผ์์ ์คํํ ์ ์์ต๋๋ค.
-
ํ์ฅ์ฑ . Java๋ ํ์ฅ์ฑ์ด ๋งค์ฐ ๋ฐ์ด๋ฉ๋๋ค. ์๋ง์ ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฌธ์ ์์ด ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. Java๋ ๋ค์ํ ์ฐ์ ๋ถ์ผ์์ ์ฌ์ฉ๋๋ฉฐ ์๊ท๋ชจ ๋ฐ์คํฌํฑ ์ฑ๋ถํฐ ๋๊ท๋ชจ ์ํฐํ๋ผ์ด์ฆ ํ๋ซํผ๊น์ง ๋ชจ๋ ๊ฒ์ ๊ตฌ์ถํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
-
์ฐ๋ ๊ธฐ ์๊ฑฐ . ์ฃผ์ ์ฅ์ ์ค ํ๋๋ Java์ ๊ฐ๋น์ง ์์ง ๊ธฐ๋ฅ์ ํตํด ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ด ์๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ ๊ฐ๋ฐ์๊ฐ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฐ ํ ๋น ํด์ ๋ฅผ ์๋์ผ๋ก ๊ด๋ฆฌํ ํ์๊ฐ ์์์ ์๋ฏธํฉ๋๋ค. ๋ฐ๋ผ์ ๋ฉ๋ชจ๋ฆฌ ๋์ ๋ฐ ๊ธฐํ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ จ ์ค๋ฅ๊ฐ ์ค์ด๋ญ๋๋ค.
-
๋๊ท๋ชจ ์ปค๋ฎค๋ํฐ . Java๋ ์๋ง๋ ๊ฐ์ฅ ํฐ ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ๋ฅผ ์๋ํ ๊ฒ์ ๋๋ค. ์ด๋ ํ์ฌ๊ฐ ๊น๋ค๋ก์ด ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ฑ ์ ์ฐพ๊ณ ๋ค๋ฅธ ๊ฐ๋ฐ์๋ก๋ถํฐ ๋ฐฐ์ฐ๋ ๋ฐ ๋์์ด ๋๋ ๊ฐ์ฅ ์ฌ์ด ์ธ์ด์ ๋๋ค.
-
๋ณด์ . Java์๋ ์ ๋ขฐํ ์ ์๋ ์ฝ๋๋ฅผ ์์คํ ์ ๋๋จธ์ง ๋ถ๋ถ๊ณผ ๊ฒฉ๋ฆฌํ๋ ์๋๋ฐ์ค ํ๊ฒฝ๊ณผ ๊ฐ์ ๋งค์ฐ ์ฐ์ํ ๋ณด์ ๊ธฐ๋ฅ์ด ๋ด์ฅ๋์ด ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ ์ฑ ์ฝ๋๊ฐ ์์คํ ์ ํด๋ฅผ ๋ผ์น๊ฑฐ๋ ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ๋์ฉํ๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
์ฃผ์ ์ฐจ์ด์ : Kotlin๊ณผ Java
Java์ Kotlin์ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์ฌ์ฉ๋๋ ๋ ๊ฐ์ง ์ธ๊ธฐ ์๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ผ๋ ์ฌ์ค์ ๋ถ์ธํ ์ ์์ต๋๋ค. Kotlin์ ๊ฐ๊ฒฐํ ๊ตฌ๋ฌธ, ๊ฐ์ฒด ์งํฅ ๋ฐ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์ง์ ๋ฑ์ ์ฅ์ ์ ์๋ํ์ง๋ง Java์๋ ์ฌ์ ํ ์๋นํ ์ด์ ์ด ์์ต๋๋ค. ์ฐ์ , Java๋ 20๋ ๋๊ฒ ์กด์ฌํด ์์ผ๋ฉฐ ๊ด๋ฒ์ํ ์ฌ์ฉ์ ๊ธฐ๋ฐ์ ๋ณด์ ํ๊ณ ์์ต๋๋ค. ์ฆ, ๋ ๋ง์ ๋ฆฌ์์ค, ์ง์ ๋ฐ ๋ฌธ์๋ฅผ ์ฌ์ฉํ ์ ์์ด ๋ฐฐ์ฐ๊ธฐ๊ฐ ๋ ์ฝ์ต๋๋ค. ๋ํ Java๋ก ์์ฑ๋ ์๋ง์ ์ฝ๋๋ฒ ์ด์ค๊ฐ ์์ต๋๋ค. ์ด ๋ชจ๋ ๊ฒ์์ ๋๋ถ๋ถ์ ํ์ฌ๊ฐ Java ์ฝ๋๋ฅผ ๊ฐ๋ฐ, ํ ์คํธ, ์ ์ง ๊ด๋ฆฌํ๋ ๋ฐ ์๋นํ ๋ฆฌ์์ค๋ฅผ ํฌ์ํ๊ธฐ ๋๋ฌธ์ Kotlin์ผ๋ก ์ ํํ๋ ๊ฒ์ ์ ๋นํํ๊ธฐ ์ด๋ ต๋ค๋ ๊ฒฐ๋ก ์ ๋ด๋ฆฌ๊ธฐ ์ฝ์ต๋๋ค. ๊ฒ๋ค๊ฐ Java์๋ ์์ง Kotlin์์ ์ฌ์ฉํ ์ ์๋ ํ๋ถํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ๊ฐ ์์ผ๋ฏ๋ก ๊ฐ๋ฐ์๊ฐ Kotlin์ผ๋ก ๊ต์ฒดํ๋ ๊ฒ์ด ์๋นํ ์ด๋ ต์ต๋๋ค. Kotlin์ Java๋ณด๋ค ์ฌ์ฉ์ ์นํ์ ์ด์ง๋ง Java ๋ฐ ๊ธฐํ ์ ์ฌํ ์ธ์ด์ ๊ฐ๋จํ ๊ตฌ๋ฌธ๊ณผ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์ ์ต์ํ ๊ฐ๋ฐ์์๊ฒ๋ ์ด๋ ค์ธ ์ ์๋ ํ์ต ๊ณก์ ์ด ์ฌ์ ํ ๊น๋ค๋กญ์ต๋๋ค.๋งค๊ฐ๋ณ์ | ์ฝํ๋ฆฐ | ์๋ฐ |
---|---|---|
์ปดํ์ผ ์๊ฐ | ๋๋ฆฐ | ๊ฝค ๋น ๋ฅธ |
์์ ์ด ๋ฌดํจํ๋จ | ์ | ์๋์ |
๊ฐ๋ฐ ์๋ | ๋น ๋ฅธ | ์ฝํ๋ฆฐ๋ณด๋ค ๋น ๋ฅด๋ค |
๋๋ค์ | ์ | ์๋์ |
์ปค๋ฎค๋ํฐ ์ง์ | ์ ํ๋ | ๋งค์ฐ ํฐ |
GO TO FULL VERSION