본문 바로가기
🐎Language/Kotlin

[Kotlin] 코틀린이란? (feat. Java)

by inbeom 2023. 10. 15.
728x90
Kotlin은 JetBrains에서 개발한 신속하고 안전하며 실용적인 프로그래밍 언어로, 2011년 처음 공개되었다. Java 가상 머신 (JVM) 위에서 실행되며, Android 앱 개발을 비롯한 다양한 영역에서 사용되고 있다.

코틀린은 JetBranins에서 개발하는 크로스 플랫폼 범용 프로그래밍 언어로, 자바와 완벽하게 호환되도록 설계되었다.

일반적으로 JVM(Java Virtual Machine)에서 사용되나 Javascript, LLVM(Low Level Virtual Machine), Data Science 영역에서도 사용 가능하다.

파일 확장자는 일반적으로 .kt를 사용하며, 코틀린 스크립트는 .kts를 사용한다.

 

코틀린은 간결하고 실용적이며, 자바 코드와의 상호운용성(interoperability)을 중시한다. 
또한 Nullable 타입과 람다식, 엘비스 연산자, 문자열 템플릿 등의 기능을 지원하여 개발 효율을 향상시킨다.

 

특징

간결하고 실용적인 문법:

- 코드를 간결하게 작성할 수 있도록 디자인 되었으며, 개발자들이 더 적은 코드로 더 많은 기능을 구현할 수 있도록 한다.

널 안전성:

- NPE(Null Pointer Exception)을 방지하기 위한 기능을 내장하고 있다. 

상호 운용성:

- Java와의 높은 상호 운용성을 가지며, 기존 Java 코드를 Kotlin으로 변환하거나 Kotlin코드를 Java로 호출할 수 있다. 

확장 함수:

- 기존 클래스의 메서드를 확장하여 새로운 기능을 추가할 수 있는 확장 함수를 지원한다.

데이터 클래스:

- 데이터를 담기 위한 클래스를 간결하게 정의할 수 있는 데이터 클래스를 제공한다. 

함수형 프로그래밍 지원:

- 함수형 프로그래밍 패러다임을 지원하며, 람다식과 고차 함수를 활용할 수 있다.

고차 함수란? 다른 함수를 매개변수로 받거나, 함수를 반환할 수 있는 함수이다.

 

Java와의 상호운용성

Kotlin은 Java와 같은 JVM(Java Virtual Machine)에서 실행되기 때문에 Java와 같은 .class파일로 컴파일된다.

그렇기 때문에 서로의 Library, Class, Method등을 사용하고 호출하는 등 완벽하게 호환된다. 

 

 

Java & Kotlin 차이점

문법: 

- Java보다 간결하고 실용적이다. (NPE를 방지하기 위한 ?. 이나 Null 병합 연산자 ?: 등이 있다.

널 안전성:

- 기본적으로 널 안전성을 가지고 있어, NPE를 방지할 수 있다.

확장 함수:

- 기존 클래스의 메서드를 확장하여 새로운 기능을 추가할 수 있다.

데이터 클래스:

- 데이터를 담기위한 클래스를 간결하게 정의할 수 있는 데이터 클래스를 제공한다. (Spring의 Dto 클래스? 라고 생각하면 된다)

명시적인 타입 변환:

- Kotlin에서는 타입 변환이 더욱 엄격하게 적용되어, 자동으로 타입이 변환되지 않는다. => 프로그램 안전성 증가

 


// Java
public class Example {
    public static int add(int a, int b) {
        return a + b;
    }

    public static void main(String[] args) {
        int result = add(2, 3);
        System.out.println("Result: " + result); // 출력: Result: 5
    }
}
*Kotlin은 Method를 따로 Class안에 넣지 않고 바로 파일 수준에서 작성할 수 있다. 
// Kotlin
fun add(a: Int, b: Int): Int {
    return a + b
}

fun main() {
    val result = add(2, 3)
    println("Result: $result") // 출력: Result: 5
}

 

 

728x90