λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

Language/Kotlin

[μ½”ν‹€λ¦° μ‹œμž‘ν•˜κΈ°] 01-1. μ½”ν‹€λ¦°μ˜ 탄생배경

πŸ’‘ μ½”ν‹€λ¦°μ΄λž€?

μ½”ν‹€λ¦°(Kotlin)은 젯브레인즈(JetBrains)κ°€ κ°œλ°œν•œ μ–Έμ–΄λ‘œ λ‹€μŒμ˜ ν”„λ‘œκ·Έλž˜λ° κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” λ©€ν‹°ν”Œλž«νΌ 언어이닀.

코틀린은 JVM, JS, Native μƒμ—μ„œ 싀행될 수 μžˆλ‹€.

βœ” Kotlin/JVM : μžλ°” 가상 λ¨Έμ‹ μ—μ„œ λ™μž‘ν•˜λŠ” μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ§Œλ“€ 수 μžˆλ‹€.

βœ” Kotlin/JS : μžλ°”μŠ€ν¬λ¦½νŠΈλ‘œ μ›Ή λΈŒλΌμš°μ €μ—μ„œ λ™μž‘ν•˜λŠ” μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ§Œλ“€ 수 μžˆλ‹€.

βœ” Kotlin/Native : LLVM 컴파일러λ₯Ό μ΄μš©ν•˜μ—¬ μ—¬λŸ¬ ν”Œλž«νΌμ„ νƒ€κΉƒμœΌλ‘œ ν•˜λŠ” μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ§Œλ“€ 수 μžˆλ‹€.


  • 코틀린은 λ©€ν‹°ν”Œλž«νΌ μ–Έμ–΄λ‘œ JVM, JS, Nativeμƒμ—μ„œ 싀행될 수 μžˆλ‹€.
  • JS(Javascript) 기반의 코틀린은 DBλΆ€ν„° μ„œλ²„, ν΄λΌμ΄μ–ΈνŠΈκΉŒμ§€ λ‹€λ£¨λŠ” ν’€μŠ€νƒ(Full-Stack) μ›Ήκ°œλ°œμ΄ κ°€λŠ₯ν•˜λ‹€.
    κ·Έ 외에도 μž„λ² λ””λ“œ, IoT(Internet of Things) 등을 νƒ€κΉƒμœΌλ‘œ ν•œ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ§Œλ“€ 수 μžˆλŠ” μœ μš©ν•œ 언어이닀.
  • Native 기반의 코틀린은 LLVM 컴파일러λ₯Ό 톡해 μ•„λž˜μ™€ 같은 ν”Œλž«νΌμ„ νƒ€κΉƒμœΌλ‘œ ν•œ κΈ°κ³„μ½”λ“œλ₯Ό λ§Œλ“€ 수 μžˆλ‹€, 즉 μ½”λ“œλ₯Ό ν•œλ²ˆλ§Œ μž‘μ„±ν•˜λ”λΌλ„ μ•ˆλ“œλ‘œμ΄λ“œμ™€ iOSμ—μ„œ λͺ¨λ‘ κ΅¬λ™ν•˜λŠ” μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ§Œλ“€ 수 μžˆλ‹€λŠ” 것이닀. 
  • JVM(Java Virtual Machine, μžλ°” 가상 λ¨Έμ‹ ) 기반의 코틀린은 μžλ°” ν˜Ήμ€ μ•ˆλ“œλ‘œμ΄λ“œ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ§Œλ“€ 수 μžˆλ‹€.

 

 

 

 

μ½”ν‹€λ¦°μ˜ μž₯점

  1. μžλ£Œν˜• 였λ₯˜λ₯Ό 미리 μž‘μ„ 수 μžˆλŠ” 정적 언어이닀.
    → 코틀린은 '정적언어'둜 ν”„λ‘œκ·Έλž¨μ΄ 컴파일될 λ–„ μžλ£Œν˜•μ„ κ²€μ‚¬ν•˜μ—¬ ν™•μ •ν•˜λ―€λ‘œ ν”„λ‘œκ·Έλž¨μ˜ μ•ˆμ •μ„±μ΄ μ’‹μŒ.
  2. 널 포인터 μ˜ˆμ™Έ(NPE)둜 μΈν•œ ν”„λ‘œκ·Έλž¨μ˜ 쀑단을 μ˜ˆλ°©ν•  수 μžˆλ‹€.
  3. κ°„κ²°ν•˜κ³  νš¨μœ¨μ μ΄λ‹€.
  4. ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°κ³Ό 객체 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ°μ΄ λͺ¨λ‘ κ°€λŠ₯ν•˜λ‹€. (닀쀑 νŒ¨λŸ¬λ‹€μž„ μ–Έμ–΄)
  5. μ„Έλ―Έμ½œλ‘ μ„ μƒλž΅ν•  수 μžˆλ‹€.

 

 

 

 

μ•ˆλ“œλ‘œμ΄λ“œ 곡식 μ–Έμ–΄λ‘œ μ±„νƒλœ μ½”ν‹€λ¦°

μžλ°”(Java) μ–Έμ–΄λŠ” μ œμž„μŠ€ 고슬링이 λ§Œλ“€μ–΄ μ΄ˆκΈ°μ—λŠ” 썬 λ§ˆμ΄ν¬λ‘œμ‹œμŠ€ν…œμ¦ˆμ—μ„œ κ΄€λ¦¬ν–ˆμ—ˆμœΌλ‚˜ μ˜€λΌν΄μ— 인수되고 고슬링이 νšŒμ‚¬λ₯Ό λ– λ‚˜λ©° 였라클이 μžλ°” JDK의 개발과 관리λ₯Ό μ „μ μœΌλ‘œ μ£Όλ„ν•˜κ²Œ λœλ‹€. μžλ°”λŠ” μ„Έκ³„μ μœΌλ‘œ 널리 μ‚¬μš©λ˜κ³  있으며 μ–Έμ–΄ μžμ²΄λŠ” λ¬΄λ£Œμ΄λ‹€. ν—ˆλ‚˜ 였라클이 썬 λ§ˆμ΄ν¬λ‘œμ‹œμŠ€ν…œμ¦ˆλ₯Ό μΈμˆ˜ν•œ λ‹€μŒ νŠΉμ • μžλ°” JDK에 λŒ€ν•œ μœ λ£Œν™” μ •μ±…μ˜ μ‹œμž‘κ³Ό ν•¨κ»˜ 이미 μžλ°” JDKλ₯Ό 톡해 μ•ˆλ“œλ‘œμ΄λ“œμ˜ 핡심 ν”„λ ˆμž„μ›Œν¬μ™€ μ„œλΉ„μŠ€λ₯Ό κ°œλ°œν•œ κ΅¬κΈ€μ—κ²Œ JDK와 κ΄€λ ¨λœ λͺ‡κ°€μ§€ API에 λŒ€ν•΄ μ²œλ¬Έν•™μ μΈ κΈˆμ•‘μ˜ νŠΉν—ˆ μ‚¬μš©λ£Œλ₯Ό μš”κ΅¬ν•˜λ©° 좩돌이 λ°œμƒν•˜κ²Œ λ˜μ—ˆλ‹€. 이에 ꡬ글은 μ΄λŸ¬ν•œ λΆ„μŸμ„ ν”Όν•˜κΈ° μœ„ν•΄ 자체적인 가상 λ¨Έμ‹ (DalvikVM 및 ART)을 λ§Œλ“€κ±°λ‚˜ μƒˆλ‘œμš΄ SDKλ₯Ό μ œμž‘ν•˜λŠ” λ“±μ˜ μ‘°μ·¨λ₯Ό μ·¨ν•˜λ©° μžλ°” μ–Έμ–΄λ₯Ό λŒ€μ²΄ν•˜κΈ° μœ„ν•΄ 코틀린을 μ•ˆλ“œλ‘œμ΄λ“œ 곡식 μ–Έμ–΄λ‘œ μ±„νƒν•˜μ˜€λ‹€. 

 

μ½”ν‹€λ¦°μœΌλ‘œ κ°œλ°œν•œ μ•ˆλ“œλ‘œμ΄λ“œ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μœΌλ‘œλŠ” ν•€ν„°λ ˆμŠ€νŠΈ(Pinterest), μ—λ²„λ…ΈνŠΈ(Evernote), 트렐둜(Trello), μŠ€ν€˜μ–΄(Square), 코세라(Coursera) 등이 μžˆλ‹€. ν˜„μž¬ μ•„μ§κΉŒμ§€λŠ” μžλ°”λ‘œ λ§Œλ“  μ•ˆλ“œλ‘œμ΄λ“œ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ 더 λ§Žμ§€λ§Œ 2017λ…„ Google I/Oμ—μ„œ 코틀린을 μ•ˆλ“œλ‘œμ΄λ“œ 곡식 μ–Έμ–΄λ‘œ λ°œν‘œν•œ ν›„ μ½”ν‹€λ¦°μœΌλ‘œ λ§Œλ“  μ•ˆλ“œλ‘œμ΄λ“œ μ–΄ν”Œμ΄ 더 λ§Žμ•„μ§€κ³  μžˆλŠ” μΆ”μ„Έμ΄λ‹ˆλ§ŒνΌ μ½”ν‹€λ¦° μ–Έμ–΄λ₯Ό κ³΅λΆ€ν•˜λŠ” 것은 λ―Έλž˜μ— λŒ€ν•œ 쒋은 투자둜 보인닀. :)

728x90

'Language > Kotlin' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

01-2. Kotlin vs Java  (0) 2022.01.23
01-1. Kotlin 문법 훑어보기  (0) 2022.01.23