본문 바로가기

두두의 IT

[Kotlin] 개념, Java와의 호환, 장점, 활용 방법, 만든 이유

728x90

[개념]

  • 100% 자바와 호환이 가능한 프로그래밍 언어

 

[Java와 100% 호환의 비결]

  • JVM을 통해 같은 프로젝트 내 Kotlin 파일이 Java 파일 바로 옆에 있다면 Java에서 Kotlin 코드를 부를 수 있고 Kotlin에서 Java 코드를 부를 수 있음 
  • JVM(Java Virtual Machine)
    • Java Bytecode를 각각의 OS에서 실행시키기 위한 장치
    • Compilation, Interpretation의 조합
    • Compilation : 자바 혹은 코틀린을 Java bytecode로 컴파일 해 줌
    • Interpretation : Java bytecode를 이해하고 각각의 OS로 번역함

[참고]

  • Compilation
    • C프로그램을 기계어로 컴파일 하는 것
    • 항상 Interpretation보다 빠름
    • 플랫폼에 의존적임
    • OS마다 다른 기게어를 가지고 있으므로 컴파일 작업을 다르게 해야 함
  • Interpretation
    • 파이썬을 컴파일하지 않고 프로그램을 실행하면 파이썬?에 있는 interpreter에 리얼타임으로 기계어로 전달됨
    • 플랫폼 독립적임
    • 파이썬 코드를 한번만 쓰면 나머지는 Interpreter가 알아서 각각의 OS로 변환함 

 

[장점]

1. null safe : 자바 개발자로서는 엄청난 안도감을 줌 

2. coroutine이 있음 : 많은걸 한번에 실행하는 코드를 짤 수 있다 : 다른언어보다 빠르다

3. 객체지향, 함수형 프로그래밍의 완벽한 밸런스를 갖고있음

4. Java 시스템과 호환이 됨

 

[활용방법]

  • Java 어플리케이션에서 활용
  • Spring Boot에서 사용 가능
  • 안드로이드 애플리케이션 개발 가능 
  • 자바스크립트로 컴파일 가능 (코틀린->JS->React.JS, 코틀린->JS->Node.JS)
  • 데이터 사이언스 가능. 코틀린을 활용한 데이터 시각화, 데이터 사이언스 사례가 나오고 있다

 

[왜 만들었는가?]

  • JetBrains가 만듦
    • IDE(Integrated Development Environment)를 만드는 러시아 회사
  • 코드를 더 좋고 모던한 프로그래밍 언어로 바꾸고 싶었음
  • 젯브레인의 코드 70%는 Java로 작성되어 있어서 이걸 싹다 무시하고 새로운 언어로 작성할 수는 없었음
  • 그래서 Java와 호환이 가능하고 새로운 언어로 작성하면서 동시에 이전 시스템을 관리할 수 있는 언어가 필요했음

 

[누가 배우면 좋은가?]

  • 회사에서 안드로이드 개발을 하고 자바를 싫어하는 사람
  • JAva에 지루함을 느끼는 사람
  • 새로운 언어를 배워보고 싶은 개발자. 그러나 올드 레거시 시스템을 버리면 안되는 상황

 

참고
https://www.youtube.com/watch?v=8gseVzeMOzk&t=93s

'두두의 IT' 카테고리의 다른 글

[Kotlin] Modifiers  (0) 2022.04.12
객체지향 프로그래밍이란?  (0) 2022.04.12
[Kotlin] in/out  (0) 2022.04.11
[Kotlin] operator  (0) 2022.04.11
[OOP] 추상클래스와 인터페이스  (0) 2022.04.11