티스토리 뷰

728x90
반응형
SMALL

안녕하세요, 안드로이드 앱 개발을 즐기는 여러분! 오늘은 Kotlin에서의 중요한 주제 중 하나인 "널 안정성(Null Safety)"에 대해 알아보겠습니다. 안드로이드 앱을 개발하면서 가끔씩 마주치게 되는 널 포인터 예외를 방지하고 코드의 안정성을 높이는 방법을 배워보겠습니다.

1. 널이란 무엇인가?

널(Null)은 어떤 값도 없음을 나타내는 특별한 상태를 말합니다. Kotlin은 기본적으로 모든 변수를 널이 될 수 없는 것으로 간주합니다. 그러나 때로는 널이 될 수 있는 변수를 사용해야 하는 경우가 있습니다.

2. 널 안전성 기능

2-1. 널 체크 (Null Check)

val name: String? = getName()

if (name != null) {
    println("Name is $name")
} else {
    println("Name is null")
}

2-2. 안전한 호출 (Safe Call Operator)

val length: Int? = name?.length

2-3. 엘비스 연산자 (Elvis Operator)

val result: String = name ?: "Default Name"

3. 널 안정성과 함수

3-1. 반환 타입에 널 허용하기

fun findUserById(id: String): User? {
    // 사용자를 찾지 못하면 null 반환
    // ...
}

val user: User? = findUserById("123")

3-2. 널 병합 연산자 (Null Coalescing Operator)

val username: String = user?.username ?: "Guest"

4. 널 안정성과 컬렉션

val userList: List<User?> = // ...

// 널이 아닌 항목만 골라내기
val nonNullUsers: List<User> = userList.filterNotNull()

5. 통합 예제: 사용자 프로필 출력하기

data class UserProfile(val name: String, val age: Int)

fun getUserProfile(userId: String): UserProfile? {
    // 사용자 프로필을 가져오지 못하면 null 반환
    // ...
}

val userProfile: UserProfile? = getUserProfile("123")

// 안전한 호출과 엘비스 연산자를 사용하여 출력
val profileInfo: String = "Name: ${userProfile?.name ?: "Guest"}, Age: ${userProfile?.age ?: "Unknown"}"
println(profileInfo)

마무리

널 안정성은 Kotlin에서의 중요한 개념 중 하나로, 안드로이드 앱 개발 시 발생할 수 있는 예외를 방지하고 안전한 코드를 작성하는 데 큰 도움을 줍니다. 항상 널 안정성을 고려하여 개발하는 것이 좋습니다. 다음에는 안드로이드에서 자주 사용되는 XML 레이아웃과 상호작용하는 방법에 대해 알아보도록 하겠습니다. 계속해서 흥미로운 Kotlin 코딩되세요! 🚀

728x90
반응형
LIST
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함