🗂️ Etc
감탄이 나오는 코틀린
loose
2023. 6. 21. 19:38
반응형
최근에 코틀린으로 개발을 하고 있는데 단순히 머리로만 알던 지식이 개발을 하다보니 더 체감되는 부분이 많다.
NPE에 대한 처리를 강제하는 제약을 걸어둔다는 것에 대한 이점을 느끼자면 아래와 같다.
서비스의 안정성을 추구할 수 있다.
내가 쓸데 없이 사용도 안할 DTO에 프로퍼티를 추가하는 것 조차 "너 데이터 안넣었어"라고 알려준다.
마치 "안쓸거면 지워라" 하는 느낌이다.
fun createPost(username: String?, title: String, content: String): Post {
val validUsername = username ?: throw IllegalArgumentException("Username must not be null")
return Post(username = validUsername, title = title, content = content)
}
또 위와 같은 코드도 있다.
username에 대한 값이 nullable하게 넘어왔는데 Entity에서는 null을 넣어주면 안되는 경우에 코드 2번째줄 처럼 null이 필요하지 않은 것이니 null이면 Exception을 발생시켜라.
그리고 nullable하지 않은 값으로 바꾸게 되면서 마치 개발자에게 "너 이거 null 허용 안할거면 예외처리 하고가"라고 알려주는 듯 한 느낌이 들었다.
개발자의 자유분방한 자율성을 한정 지어버리는 것이 좋을진 모르겠지만 너무 맘에 들었다.
728x90