0. 이 글을 작성하는 이유
누군가 당할 수 있고 나도 당했기 때문에 정말 아주 짧고 간단히 정리를 해보기 위함
1. 코드도 최소한으로, 하지만 상상력을 당신에게 부여하며
오늘도 서버개발자는 평화롭게 코딩을 하던 중 클라이언트 파트에게 연락이 왔다.
클라 : 님 아니 우리 boolean은 앞에 is붙이기로 했잖아요 왜 갑자기 안 붙여서 보내요
서버 : ????? 저 건든 거 없어요
클라 : 아니 진짜 안붙어서 온다니까
서버 : 리스폰스 줘봐요
클라 :
{ "expiryDate": 1741527664.202672300, "name": "tester1", "age": 444, "paid": true, "ageAvailable": true, "dateAvailable": true }
서버 : 어 진짜네 아니 근데 나 예전부터 이렇게 해놨음. 다른 거 한 거 없음
data class UserModel(val expiryDate: Instant, val name: String, val age: Int, val isPaid: Boolean){ val dateAvailable : Boolean get() = expiryDate.isAfter(Instant.parse("1970-01-01T00:00:00Z")) val isAgeAvailable : Boolean get() = age > 10 }
클라 : 어 뭐야 아 아무튼 고쳐줘요
괴담도 이런 괴담이 없을 것이다. 그래서 서버개발자는 직접 테스트를 해보기로 했다.
어? 이왜진

어 어 이게 뭐냐
일단 검색을 좀 해봤더니 이런 내용을 발견했다
Jackson skips isXXX properties with Int type · Issue #337 · FasterXML/jackson-module-kotlin
Jackson skips isXXX properties with Int type · Issue #337 · FasterXML/jackson-module-kotlin
Describe the bug The Kotlin properties with signature isXXX: Int omits default values even with option JsonInclude.Include.ALWAYS private data class ProblematicType(val id: Int, val default: Int) T...
github.com
어 어? 이러면 어케 해야 하지
3. 아무튼 서버의 땜질
일단 당장 뭐가 떠오르지 않는 서버 개발자는 아래와 같이 처리를 하며 추후 github을 트래킹하기로 한다.
data class UserModel(val expiryDate: Instant, val name: String, val age: Int, @get:JsonProperty("isPaid") val isPaid: Boolean){
@get:JsonProperty("isDateAvailable")
val dateAvailable : Boolean
get() = expiryDate.isAfter(Instant.parse("1970-01-01T00:00:00Z"))
@get:JsonProperty("isAgeAvailable")
val isAgeAvailable : Boolean
get() = age > 10
}
오늘도 JsonProperty는 신이라고 느끼며..
'JAVA > Kotlin' 카테고리의 다른 글
코틀린 클래스에서 기본 생성자가 있는 클래스의 상속 (1) | 2023.10.22 |
---|---|
Kotlin의 TODO (0) | 2023.10.05 |
코틀린 Int? Number? (0) | 2022.11.19 |
Kotlin으로 서버에서 json데이터 가져오기(FastAPI를 곁들인) (0) | 2022.07.24 |
0. 이 글을 작성하는 이유
누군가 당할 수 있고 나도 당했기 때문에 정말 아주 짧고 간단히 정리를 해보기 위함
1. 코드도 최소한으로, 하지만 상상력을 당신에게 부여하며
오늘도 서버개발자는 평화롭게 코딩을 하던 중 클라이언트 파트에게 연락이 왔다.
클라 : 님 아니 우리 boolean은 앞에 is붙이기로 했잖아요 왜 갑자기 안 붙여서 보내요
서버 : ????? 저 건든 거 없어요
클라 : 아니 진짜 안붙어서 온다니까
서버 : 리스폰스 줘봐요
클라 :
{ "expiryDate": 1741527664.202672300, "name": "tester1", "age": 444, "paid": true, "ageAvailable": true, "dateAvailable": true }
서버 : 어 진짜네 아니 근데 나 예전부터 이렇게 해놨음. 다른 거 한 거 없음
data class UserModel(val expiryDate: Instant, val name: String, val age: Int, val isPaid: Boolean){ val dateAvailable : Boolean get() = expiryDate.isAfter(Instant.parse("1970-01-01T00:00:00Z")) val isAgeAvailable : Boolean get() = age > 10 }
클라 : 어 뭐야 아 아무튼 고쳐줘요
괴담도 이런 괴담이 없을 것이다. 그래서 서버개발자는 직접 테스트를 해보기로 했다.
어? 이왜진

어 어 이게 뭐냐
일단 검색을 좀 해봤더니 이런 내용을 발견했다
Jackson skips isXXX properties with Int type · Issue #337 · FasterXML/jackson-module-kotlin
Jackson skips isXXX properties with Int type · Issue #337 · FasterXML/jackson-module-kotlin
Describe the bug The Kotlin properties with signature isXXX: Int omits default values even with option JsonInclude.Include.ALWAYS private data class ProblematicType(val id: Int, val default: Int) T...
github.com
어 어? 이러면 어케 해야 하지
3. 아무튼 서버의 땜질
일단 당장 뭐가 떠오르지 않는 서버 개발자는 아래와 같이 처리를 하며 추후 github을 트래킹하기로 한다.
data class UserModel(val expiryDate: Instant, val name: String, val age: Int, @get:JsonProperty("isPaid") val isPaid: Boolean){
@get:JsonProperty("isDateAvailable")
val dateAvailable : Boolean
get() = expiryDate.isAfter(Instant.parse("1970-01-01T00:00:00Z"))
@get:JsonProperty("isAgeAvailable")
val isAgeAvailable : Boolean
get() = age > 10
}
오늘도 JsonProperty는 신이라고 느끼며..
'JAVA > Kotlin' 카테고리의 다른 글
코틀린 클래스에서 기본 생성자가 있는 클래스의 상속 (1) | 2023.10.22 |
---|---|
Kotlin의 TODO (0) | 2023.10.05 |
코틀린 Int? Number? (0) | 2022.11.19 |
Kotlin으로 서버에서 json데이터 가져오기(FastAPI를 곁들인) (0) | 2022.07.24 |