Kotiln에서는 문자열 처리 시 null 안정성을 확보하기 위해 여러 편리한 확장 함수들을 제공합니다.
그중 자주 사용되는 함수는 isNullOrEmpty()와 isNullOrBlank()입니다.
두 함수는 문자열이 null인지, 비어있는지 판단할 때 사용하지만, 미묘한 차이가 있어서 구분해서 사용하는 게 좋습니다.

결론 요약
값이 없거나 빈 문자열만 체크 → isNullOrEmpty()
값이 없거나 빈 문자열 또는 공백만 체크 → isNullOrBlank()
isNullOrEmpty()
문자열이 null이거나 길이가 0인 경우에 true를 반환합니다.
문자열이 아예 없거나 빈 문자열("") 일 때만 true 가 되는 함수입니다.
val str1: String? = null
val str2: String? = ""
val str3: String? = " "
val str4: String? = "Hello"
println(str1.isNullOrEmpty()) // true (null)
println(str2.isNullOrEmpty()) // true (빈 문자열)
println(str3.isNullOrEmpty()) // false (공백 문자열은 빈 문자열이 아님)
println(str4.isNullOrEmpty()) // false
isNullOrBlank()
저는 isNullOrEmpty()의 확장판이라고 생각하는데요. 문자열이 null이거나 빈 문자열이거나, 공백으로만 이루어진 문자열일 때도 true를 반환합니다.
val str1: String? = null
val str2: String? = ""
val str3: String? = " "
val str4: String? = "Hello"
println(str1.isNullOrBlank()) // true (null)
println(str2.isNullOrBlank()) // true (빈 문자열)
println(str3.isNullOrBlank()) // true (공백 문자열)
println(str4.isNullOrBlank()) // false
(" ")처럼 공백 문자 (스페이스, 탭, 줄 바꿈 등)만 있을 때 문자열을 의미 없는 값으로 간주하고 싶을 때 사용하면 좋습니다.
비교
| 함수명 | null 일 때 | 빈 문자열일 때 ("") | 공백 문자열일 때 (" ") | 기타 |
| isNullOrEmpty() | true | true | false | false |
| isNullOrBlank() | true | true | true | false |
isNullOrEmpty()는
로그, 데이터 저장, 기본 유효성 검사로 주로 사용하고
isNullOrBlank()는
회원가입 이름, 이메일 등 필수 입력값 검사하는데 많이 사용했습니다.
백엔드에서 데이터를 다루실 때 띄어쓰기조차 데이터일지 고민해 보고 사용하시면 좋을 것 같습니다.
예를 들어 사용자가 자기소개란에 스페이스바 하나 입력한 것도 소중한 데이터니까요.