android

Android Kotlin

Seon Dev Notes 2025. 2. 1. 21:13

오늘은 간결하고 실용적인 코드를 지향하는 현대적인 프로그래밍 언어 Kotlin에 대해서 설명을 해보겠다.

Kotlin?

코틀린은 자바를 만든 회사인 IntelliJ IDEA의 개발사 JetBrains에서 공개한 언어로 자바와 100퍼센트 호환이 되며 자바보다 더 간결하고 많은 기능을 추가한 언어이다.

Kotlin의 장점

  1. 간결하다
  • getter와 setter를 작성하는 Java의 class -> Kotlin에서 data class로 간결하게 표현한다.
// Java
public class User {
    private String name;
    private int age;

    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }
    // getter, setter, equals, hashCode, toString 모두 작성이 필요하다.
}
// Kotlin
data class User(val name: String, val age: Int)
  1. 안전한 코드
  • 코틀린에서는 변수 선언시 널 허용과 불허용을 구분해서 선언할 수 있다.
  1. 상호 운용성
  • Java와 100% 호환되어 기존 Java 코드 및 라이브러리를 그대로 사용할 수 있다.
  1. 풍부한 기능
  2. 코루틴 (Coroutines): 비동기 프로그래밍을 쉽게 처리할 수 있도록 도와준다.
    import kotlinx.coroutines.* fun main() = runBlocking { launch { delay(1000L) println("World!") } println("Hello, ") }
  3. 확장 함수 (Extension Functions): 기존 클래스에 새로운 함수를 추가하여 코드를 확장할 수 있다.
    fun String.removeFirstLastChar(): String = this.substring(1, this.length - 1) fun main() { val text = "Example" println(text.removeFirstLastChar()) // 출력: xampl }
  4. 스마트 캐스트 (Smart Casts): is 키워드로 타입 체크 후 별도의 캐스팅 없이 해당 타입의 멤버를 사용할 수 있다.
    fun printLength(obj: Any) { if (obj is String) { println("Length: ${obj.length}") // 스마트 캐스트 } }
  5. when 표현식: 다양한 조건을 처리할 수 있는 강력한 조건문이다.
    fun describe(obj: Any): String = when (obj) { 1 -> "One" "Hello" -> "Greeting" is Long -> "Long" in 10..20 -> "Between 10 and 20" obj is String && obj.startsWith("A") -> "String that starts with A" else -> "Unknown" }

기본 문법

변수

  • val (value): 불변성 변수, var (variable): 가변성 변수

타입

기초 타입 객체: Int, Short, Long, Double, Float, Byte, Boolean
문자와 문자열: Char, String
모든 타입: Any
반환문이 없는 함수: Unit
null이나 예외를 반환하는 함수: Nothing

컬렉션 타입

여러 개의 데이터를 표현하는 방법이며 Array, List, Set, Map 이 있다.

val numbers = listOf(1, 2, 3, 1) // 중복 허용
val uniqueNumbers = setOf(1, 2, 3, 1) // 중복 허용 안함
val ages = mapOf("HI" to 30, "Hello" to 25)
val numbers = listOf(1, 2, 3, 4, 5)
val evenNumbers = numbers.filter { it % 2 == 0 } // [2, 4]
val doubledNumbers = numbers.map { it * 2 }  // [2, 4, 6, 8, 10]

null 허용과 불허용

var name: String? = null // null 허용
var age: Int = 30 // null 불허용

함수

// 함수 사용법
fun 함수명(매개변수명: 타입): 반환 타입 { ... }
  • 디폴트 매개변수: 함수 정의 시 매개변수의 기본값을 지정하여 함수를 호출할 때 생략할 수 있다.
  • 이름 지정 매개변수: 함수 호출 시 매개변수의 이름을 명시하여 코드를 더욱 가독성 있게 만들 수 있다.
  • 고차 함수: 함수를 매개변수로 받거나 반환하는 함수

코틀린 활용 분야

  • Android 앱 개발: Android 공식 지원 언어로, 간결하고 안전한 코드를 작성할 수 있습니다.
  • 서버 사이드 개발: Spring Boot와 함께 사용하여 백엔드 개발 생산성을 높일 수 있습니다.

'android' 카테고리의 다른 글

Android DI  (0) 2025.02.09
Android Coroutine(코루틴)  (0) 2025.02.03
Android MVVM  (1) 2024.12.30
Android MVP  (2) 2024.12.24
Android Flow?  (1) 2024.12.16