본문 바로가기
Program Language/Kotlin

[Do it! 코틀린 프로그래밍] 1. 코틀린 시작하기

by SungJe 2021. 3. 26.

1. 코틀린 시작하기


1. 소개

코틀린(Kotlin)은 젯브레인즈(JetBrains)에서 개발한 언어로 JVM 기반의 언어이며, Java 언어와 완벽하게 호환된다. JVM 뿐만 아니라 JS, Native상에서 실행 가능한 멀티플랫폼 언어이다. 구글의 안드로이드에서는 코틀린을 공식 언어로 채택하고 있다.

2. 장점

  • 자료형 오류를 미리 잡을 수 있는 정적 언어: 프로그램이 컴파일될 때 자료형을 검사하기 때문에 오류를 초기에 발견하여 안정성이 뛰어나다.
  • 널 포인트 예외(NPE: NullPointerException)로 인한 프로그램의 중단을 예방: Non-nullNullable 타입의 구분, Safe calls, Safe casts, Elvis 연산자 등을 지원하여 NPE의 위험을 낮춘다.
  • 함수형 프로그래밍과 객체 지향 프로그래밍이 모두 가능한 다중 패러다임 언어
  • 간결하고 효율적
  • 세미콜론(;)의 생략 가능

NOTE✏️

  • 객체 지향 프로그래밍(Object-Oriented Programming)
    프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 객체들의 모임으로 파악하고자 하는 프로그래밍 패러다임
  • 함수형 프로그래밍(Functional Programming)
    자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임
    출처: 위키백과

3. Hello Kotlin 프로그램

  • 코틀린 소스코드
/* HelloKotlin.kt */
fun main(args: Array<String>) {
    println("Hello Kotlin!")   
}
// 결과=> Hello Kotlin!
  • Java언어로 디컴파일 된 소스코드
/* HelloKotlin.decompiled.java */
public final class HelloKotlinKt {
    public static final void main(@NotNull String[] args) {
        Intrinsics.checkNotNullParameter(args, "args");
        String var1 = "Hello Kotlin!";
        System.out.println(var1);
    }
}

NOTE✏️

  • static 매서드: 정적 메모리 영역에 객체가 생성된다. 따라서 객체의 생성 없이 호출하여 사용 가능
  • 프로그램 메모리 영역
    • 코드 영역: 실행할 프로그램의 소스코드가 할당
    • 데이터 영역: 문자열, 정적 변수가 할당, 프로그램 시작과 동시에 적제되어 프로그램 종료시 해제
    • 힙 영역: 런타임 시 생성되는 객체가 할당, JVM의 GC(Garbage Collector)가 자동으로 해제
    • 스택 영역: 함수 호출시 생성되는 지역 변수와 매개변수가 할당, 함수 호출이 끝나면 해제
  • GC(Garbage Collector): 프로그램이 동적으로 할당한 메모리 영역 중에서 필요 없게 된 영역을 해제하는 기능