지난 2017년 5월 Google I/O 에서 Kotlin이 안드로이드의 공식 개발 언어로 발표되었습니다.

Kotlin 공식 사이트를 보면 아래와 같이 메인에서 소개하고 있습니다.

말 그대로 Java와 Android 에서 100% 호환가능하며 여러 platform 에서 동작하는 언어라고 정의하고 있는데요.

 

Kotlin은 Anroid Studio 개발사인 JetBrain 社 에서 만든 언어로 Kotlin/JVM, Kotlin/JS, Kotlin/Native 등 여러 환경에서 동작을 합니다.

Java 와 100% 호환이 되므로 Android의 API 들을 그대로 사용할 수 있고, Ant, Maven, Gradle과 같은 빌드 시스템을 사용할 수 있어 기존의 Android 개발자들이 낯설치 않게 사용 가능할 것이라 생각됩니다.

 

Java 코드를 Kotlin코드로 변환하는 도구를 제공하고 있으며, Java 로 개발하는 것보다 비약적으로 코드의 양이 줄어들고 여러 개발자들의 번거로움을 덜어줄 수 있도록 NullPointerException에 대한 안정성이 증가하였습니다.

 

Kotlin 에 대해 기본문법에 대해 좀더 알아보겠습니다.

 

1. Kotlin 은 문장 끝에 세미콜론이 없다.

C, C++, Java 많은 언어들이 세미콜론으로 문장의 끝을 알리는데요. Kotlin의 문장 끝에는 세미콜론이 없습니다.

한 줄에 여러 문장을 표현할 때만 세미콜론을 이용합니다.

 

2. 전역함수 사용이 가능하다

함수가 반드시 클래스 내에 있지 않습니다.

 

3. new 키워드 삭제

 

4. 함수 선언은 [접근지정자][inline][final] fun 함수명(매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입) :반환형의 형태로 한다.

 

5. val과 var

val은 읽기전용 변수(final 개념) 이며 var는 읽기&쓰기가 가능한 변수를 뜻합니다.

변수선언과 동시에 초기화를 하면 타입을 알아서 추론하기 때문에 변수의 타입이 생략 가능합니다.

 

아래의 3개 sample 코드를 통해 1~5번까지의 문법 설명이 가능하다.

MainActivity.kt

class MainActivity : AppCompatActivity() {

   
override fun onCreate(savedInstanceState: Bundle?) {
       
super.onCreate(savedInstanceState)
        setContentView(R.layout.
activity_main)

        sayHello(
"GoodFortune")

       
val ck = ClassKotlin("GoodFortune");
       
val ck2 = ClassKotlin("GoodManner", "01055563262");
       
var ck3 = ClassKotlin("GoodMan", "01044778855", "ourhome")
    }
}
 

KotlinTest.kt

fun sayHello(who:String){
    val TAG: String = "KotlinTest"
    Log.d(TAG, "sayHello "+who)
}

ClassKotlin.kt

class ClassKotlin(var name: String, var phone: String="", var addr: String ="")
{

}

 

6. Nullable

Kotlin 의 가장 큰 장점 중 하나라고 할 수 있습니다. Kotlin에서는 NullPointException 이 발생하지 않는다고 하니 많은 분들이 반가워 할 것 같습니다.

Kotlin 에서는 변수에 null을 저장하고 싶으면 타입명 뒤에 "?"를 붙여 null을 가질 수 있는 변수임을 알려줍니다.

Nullable은 null을 가질 수 있는 변수 타입을 말합니다. (그렇지 않은 변수는 Non-Null 이라고 합니다)

Non-Null 변수인 경우 값이 null 이 아님을 보장할 수 있으므로 Null 체크가 필요없으며 NullPointerException도 발생하지 않습니다.

Nullable 변수에 대해서는 null 체크가 없으면 컴파일러에 의해 오류가 발생합니다.

아래 sample code 에서 checkphone 은 Nullable 변수이므로 checkphone.length 를 사용시 compile error 를 발생시킵니다.

class ClassKotlin(var name: String, var phone: String="", var addr: String ="")
{
    fun checkInformation(){
        var checkname: String = name
        var checkphone: String? = phone

        if ( checkname.length > 0 ) {   // OK
           
        }
       
        if ( checkphone.length > 0) {   // compile error
           
        }

    }
}

 

7. When 문

switch 문의 변형이라고도 볼 수 있는데요. switch-case 에서는 하나의 변수값에 대해 integer 형으로만 구분할 수 있는데 when 문은 아래와 같이 다양하게 사용될 수 있습니다.

when{
    name.equals("GoodFortune") -> Log.d(TAG, "GoodTortune")
    phone.length < 9 -> Log.d(TAG, "phone number is short")
}

 

간단한 문법에 대해서 알아보았는데, 다음번엔 Android Studio 3.0 에서 직접 사용하는 방법에 대해서도 알아보려고 합니다.

Android Studio 3.0 에서 JAVA 코드를 Kotlin으로 변환도 가능하다고 하네요^^

 

 

'Language > Kotlin' 카테고리의 다른 글

[Kotlin] Range 사용하기  (0) 2018.01.25
[Kotlin] if, when, for, while 제어문 사용하기  (0) 2018.01.04
[Kotlin] 함수 사용하기  (0) 2017.12.28
[Kotlin] Class 두번째 이야기  (0) 2017.12.22
[Kotlin] Class 사용하기  (0) 2017.12.15

+ Recent posts