개발언어/KOTLIN

코틀린 vs 자바

nomoreFt 2023. 7. 18. 18:09

자바가 있는데 굳이 코틀린을 배워야해? 라고 생각한 뒤, 생각을 고쳐먹고 최근 코틀린을 배우기로 생각했습니다.
그래서 코틀린이 자바보다 좋은 이유들을 찾고 있습니다.그것에 대한 정리글입니다.


  1. 간결한 문법: Kotlin은 더 간결한 문법을 제공하여 코드를 더 간결하게 작성할 수 있습니다. 예를 들어, Nullable 타입, 확장 함수, 데이터 클래스 등의 기능을 활용하여 코드를 더 간단하고 명확하게 작성할 수 있습니다.

    // Java 코드
     String name = "John";
     if (name != null) {
         System.out.println(name.toUpperCase());
     }
    
     // Kotlin 코드
     val name: String? = "John"
     println(name?.toUpperCase())
  1. Null 안전성: Kotlin은 타입 시스템에서 Nullable 타입과 Non-Nullable 타입을 명확하게 지원하여 Null 포인터 예외를 방지하는 데 도움을 줍니다. 이로 인해 Null 관련 버그를 줄일 수 있고, 코드의 안정성을 향상시킬 수 있습니다.

    // Java 코드
     String name = null;
     System.out.println(name.length()); // NullPointerException 발생
    
     // Kotlin 코드
     val name: String? = null
     println(name?.length) // null 출력
  1. 확장 함수: Kotlin은 확장 함수를 지원하여 기존 클래스의 기능을 확장할 수 있습니다. 이는 기존 클래스의 코드 수정 없이 새로운 함수를 추가할 수 있는 장점을 제공합니다.

    // Java 코드
     StringUtils.capitalize("hello"); // 외부 클래스의 정적 메서드 호출
    
     // Kotlin 코드
     "hello".capitalize() // String 클래스에 capitalize() 함수 추가
  1. 함수형 프로그래밍 지원: Kotlin은 함수형 프로그래밍의 개념과 기능을 지원합니다. 람다 식, 고차 함수, 스트림 처리 등을 활용하여 코드를 더욱 간결하고 효율적으로 작성할 수 있습니다.

    // Java 코드
     List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
     int sum = 0;
     for (int num : numbers) {
         sum += num;
     }
     System.out.println(sum);
    
     // Kotlin 코드
     val numbers = listOf(1, 2, 3, 4, 5)
     val sum = numbers.sum()
     println(sum)
  1. 자바 호환성: Kotlin은 100% 자바와 상호 운용이 가능합니다. 기존의 자바 코드와 라이브러리를 Kotlin으로 전환하거나 Kotlin 코드를 자바와 함께 사용하는 것이 매우 쉽습니다. 이는 기존 자바 프로젝트에서 점진적으로 Kotlin을 도입할 수 있음을 의미합니다.

위의 예시 코드에서 볼 수 있듯이, Kotlin은 코드를 더 간결하고 안전하게 작성할 수 있도록 도와줍니다. 이를 통해 생산성을 향상시키고 버그를 줄이는 데 도움이 됩니다. 또한, Kotlin은 Java와의 상호 운용성을 제공하여 기존 자바 코드와 라이브러리를 쉽게 활용할 수 있습니다.