본문 바로가기
언어/코틀린

[Kotlin] 코틀린이란?

by 코딩히어로 2021. 10. 26.
728x90

제목


코틀린은 젯브레인스에서 오픈소스 그룹을 따로 만들어 개발한 언어입니다.

 

자바가 인도네시아 섬 이름을 따와서 사용했듯이 자바를 대체할 목적으로 만든

 

코틀린도 러시아의 섬 이름에서 유래했습니다.

 

코틀린으로 안드로이드 앱을 개발할 수 있는 것은 자바의 가상 머신인 JVM에

 

기반을 둔 언어이기 때문에 가능합니다.

 

즉 코틀린을 통해 개발한 프로그램은 JVM에서 실행할 수 있습니다.

 

하지만 코틀린은 자바와는 엄연하게 다른 언어입니다.

 

자바는 확장자로 .java 를 사용하지만 코틀린은. kt를 사용합니다.

 

그러나 여기에서 재밌는 점은 코틀린 컴파일러가 .kt 파일을 컴파일하게 되면

 

자바 바이트 코드가 만들어진다는 것입니다.

 

즉 개발자는 자봐와 다른 코틀린으로 코드를 작성하지만 컴파일을 거치면

 

자바 클래스가 만들어지고 이를 JVM이 실행하게 됩니다.

 

 

 

1) 코틀린 장점


1. 표현력과 간결한 코드

 

코틀린은 최신 언어 기법을 이용하여 훨씬 간결한 구문으로 프로그램을 작성할 수 있습니다.

 

2. 코드의 안전성

 

코틀린은 널 안전성을 지원하는 언어입니다.

객체지향 프로그래밍에서 객체는 널 상태일 수 있으며 이때 런타임 오류인 널 포인트 예외가 발생합니다.

따라서 객체가 벌인 상황을 고려해 개발해야 하는데 코틀린에서는 변수를 널 허용과 널 불허용으로

구분해서 선언하는 것을 지원합니다. 이러한 기능을 통해 설과 관련된 여러 부분을 컴파일러가 해결해줍니다.

 

3. 상호 운용성

 

코틀린은 자바 코드와 100% 호환 가능합니다.

따라서 코틀린으로 프로그램을 작성할 때 자바 클래스나 라이브러리를 활용할 수 있습니다.

코틀린에서 자바 클래스를 이용할 수 있으며 반대로 자바 코드에서 코틀린 클래스를 사용할 수 있습니다.

 

4. 구조화 동시성

 

코틀린 언어가 제공하는 코 루틴이라는 기법을 이용하면 비동기 프로그래밍을 간소화할 수 있습니다.

네트워크 연동이나 데이터베이스 갱신과 같은 작업을 할 때 이용하면 프로그램을 조금 더 간단하게

그리고 효율적으로 작성할 수 있습니다.

 

5. 다양한 개발

 

코틀린은 안드로이드 앱 개발자가 많이 사용하지만 IOS 앱뿐만 아니라 서버 쪽 애플리케이션도

개발할 수 있는 언어입니다.

대표적인 예로 스프링 프레임워크를 이용해 백엔드 웹 애플리케이션도 개발이 가능합니다.

 

 

 

2) 코틀린 파일 구성


코틀린 파일의 확장자는. kt입니다.

 

test.kt라는 이름의 코틀린 파일에 package와 import 구문을 선언하고 data라는 변수,

 

formatDate()라는 함수, 그리고 Test라는 클래스를 선언한 예입니다.

 

설명1

package 구문은 파일을 컴파일했을 때 만들어지는 클래스 파일의 위치를 나타내며

 

소스파일에서 맨 처음 한 줄로 선언합니다.

 

그런데 package 이름은 kt 파일의 위치와 상관없는 별도의 이름으로도 선언할 수 있습니다.

 

예를 들어서 Test.kt 파일이 다른 폴더에 있더라도 package ch3처럼 선언할 수 있습니다.

 

당연히 이렇게 선언했을 때에는 컴파일된 클래스 파일은 ch3 폴더에 생성됩니다.

 

import 구문은 package 구문 아래에 여러 줄 작성할 수 있습니다.

 

그리고 import 문 아래에 변수, 함수, 클래스를 선언하여 사용합니다.

 


 

요즘 안드로이드 개발의 추세는 코틀린으로 전부 넘어가고 있는 분위기입니다.

 

최근 나오는 서적들만 봐도 자바로 개발하는 안드로이드보다는 코틀린 언어로 된

 

개발 서적이 더 많이 나오고 있고 개발자 포럼 같은 경우도 많이 넘어가고 있는 것 같습니다.

 

이런 변화에 맞춰서 자바뿐만이 아니라 이제는 코틀린도 공부를 해야 될 것 같습니다.

728x90
반응형

'언어 > 코틀린' 카테고리의 다른 글

[Kotlin] 클래스와 생성자  (6) 2022.06.14
[Kotlin] 조건문 When  (2) 2022.06.13
[Kotlin] 함수 선언  (2) 2022.06.13
[Kotlin] 데이터 타입  (2) 2022.06.10
[Kotlin] 변수 선언  (1) 2022.06.10

댓글