본문 바로가기
Kotlin

(Kotlin) 코틀린이란? Kotlin 소개

by Developer RyanKim 2020. 8. 16.

코틀린이란? Kotlin 소개

열심히 공부해서 이번에 이직을 하게 되었습니다! 짝짝짝

기존에는 Java/Spring 기반으로 웹서버 백엔드 개발만 했었는데

이직 하는 회사에서는 Kotlin을 사용한다고 하더라구요.

 

따라서, Kotlin이 무엇인지 간단하게 찾아보았습니다.


https://kotlinlang.org/

 

Kotlin Programming Language

 

kotlinlang.org

먼저 Kotlin 공식 사이트의 소개 내용입니다.

" 개발자를 더 행복하게 하는 모던한 프로그래밍 언어이다. 평생 오픈소스로 제공된다! "

위 환경들에서 제공될 수 있구요.

왜 코틀린인가?

 

1. 간결함
boilerplate code(반복적으로 필요한 코드)를 대폭 줄일 수 있다.

// getters, setters, `equals()`, `hashCode()`, `toString()` and `copy()`를 포함한 POJO 클래스를 한줄로
data class Customer(val name: String, val email: String, val company: String)

// 람다 표현식을 사용한 필터 기능
val positiveNumbers = list.filter { it > 0 }

// 싱글톤
object ThisIsASingleton {
    val companyName: String = "JetBrains"
}

 

2. 안전함

전체 클래스 오류를 방지한다. (Null Pointer exception 등)

// 성가신 null Pointer 예외를 벗어나자
var output: String
output = null   // 컴파일 에러

// nullable type을 다룰때 실수를 방지 
val name: String? = null    // Nullable type
println(name.length())      // 컴파일 에러

// 타입이 맞다고 확인되면, 컴파일러가 auto cast를 제공
fun calculateTotal(obj: Any) {
    if (obj is Invoice)
        obj.calculateTotal()
}

 

3. 상호운용성

JVM, Android 및 브라우저에 기존 라이브러리 활용이 가능하다.

// SAM 지원을 포함하여 100% 호환성이 있어, JVM의 기존 라이브러리 사용가능하다
import io.reactivex.Flowable
import io.reactivex.schedulers.Schedulers

Flowable
    .fromCallable {
        Thread.sleep(1000) //  imitate expensive computation
        "Done"
    }
    .subscribeOn(Schedulers.io())
    .observeOn(Schedulers.single())
    .subscribe(::println, Throwable::printStackTrace)
// JVM 또는 JavaScript를 대상으로 코드를 Kotlin으로 작성하고 배포할 위치를 결정해라
import kotlin.browser.window

fun onLoad() {
    window.document.body!!.innerHTML += "<br/>Hello, Kotlin!"
}

이렇게 간단히 Kotlin에 대하여 알아보았고
다음에는 Kotlin과 Java를 비교하여 어떤점이 있을지, 장단점이 무엇인지 알아보겠습니다.
감사합니다!

 

By Ryankim

댓글