대머리개발자

[코틀린]null 처리 재미지다! 본문

개발이야기/코틀린

[코틀린]null 처리 재미지다!

대머리개발자 2024. 4. 2. 15:42
728x90

 

 

 

fun create(targetId: Long, userId:String? = "loginId", ..){
..
}

userId가 할당되지 않으면 초기값으로 "loginId"를 바인딩한다.

그럼 당연히 userId는 Null일 수가 없다고 생각하지만 null 값이 바인딩 될 수 있다.!!

 

그렇기 때문에 비지니스로직에서 userId를 사용할 때는 userId가 명백히 널이 아님을 다시 명시해야 한다.

 

fun create(targetId: Long, userId:String? = "loginId", ..){
..
 userId!!
 ...existByTargetIdAndUserId(targetId, userId, ..)
 ...updateTargetIdAndUserId(targetId, userId, ..)
}

 

이런 불편함으로 인해서 물음표(?)를 빼면 되지 않니?라고 이야기할 수 도 있겠다.

... create(targetId=targetID)   		-> (1)
... create(targetId=targetID, userId=userId)    -> (2)

 

But 물음표를 빼면 무조건 2번 형태로 fun을 호출해야 한다. 뭔가 코틀린스럽지 못하다! ㅎ

var userId =  "loginId"
....
... create(targetId=targetID, userId=userId)

 

재밌다!!

 

내가 경험했던바..

 

모든 오류의 90% 이상은 데이터의 정합성이 문제다. ㅋ

그런 문제들을을 컴파일 시점에서 체크해준다는것은 개발자들을 한층 더 편하게 해준다.

728x90

'개발이야기 > 코틀린' 카테고리의 다른 글

시크릿 컬럼 추가에 대한 말도 안 되는 고민  (0) 2024.08.05
데이터 정규화  (1) 2024.05.17
멤버 변수 바인딩에 대한 고민  (2) 2024.03.29
코루틴 조으다!  (1) 2024.03.19
아르메리아를 쓰자.  (1) 2024.03.15