간단히 Request 요청을 받는 DTO class 가 있다고 치자.
data class ProfileSignUpDto(
@field:NotEmpty(message = AccountErrorCode.ErrorMessage.USERNAME_REQUIRED_MESSAGE)
@field:Size(min = 3, max = 15, message = AccountErrorCode.ErrorMessage.USER_PROFILE_USERNAME_SIZE_MESSAGE)
@field:Pattern(
regexp = Regex.USERNAME_PATTERN,
message = AccountErrorCode.ErrorMessage.USER_PROFILE_USERNAME_PATTERN_MESSAGE
)
@field:Pattern(
regexp = Regex.USERNAME_PATTERN,
flags = [Pattern.Flag.CASE_INSENSITIVE],
message = AccountErrorCode.ErrorMessage.USERNAME_NOT_CONTAINS_MUNUTE_MESSAGE
)
val username: String,
val country:Country?,
val genre:Genre?,
)
이 data class에는 Country라는 enum class가 필드로 선언되어있다. 나는 요청과 응답을 enum의 field로 받고 처리하기 위해, @JsonValue를 활용했다.
enum class Country(
@JsonValue val value: String,
) {
USA("United States of America"),
정상적으로 문자열 요청이 enum으로 잘 매핑돼서 들어오는 걸 확인했다.
문제는 이 data class에서 구조분해할당할 때.. 발생했다.
val (username, country, genre) = profileSignUpDto
componentN 함수가 country를 못 찾는 이슈였는데 , 갑자기 해결됐다?????? 일단 조금 더 테스트해보고 다시 작성..
https://stackoverflow.com/questions/66419950/serialize-enum-field-into-json-in-kotlin