본문 바로가기

전체 글

Json 속성중 Enum에 대한 Null 처리 일반적인 null이나 알 수 없는 속성의 경우는 @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(JsonInclude.Include.NON_NULL) public class RateInfo {... 위 Annotation 정도면 무난하게 파싱이 가능하지만, Enum이 추가되고 해당 Enum이 Null 또는 Enum에 매칭되는 속성이 아닌 경우는 오류가 발생하게 된다.가령 Json과 Object가 아래와 같은 경우 "Unknown"이 없으므로 오류(deserialization error)이다. Json }, "nonRefundable": false, "rateType": "Unknown" } }, Object@JsonIgnoreProperties(ign.. 더보기
Kotlin-Webflux 의 Client Kotlin + Webflux를 이용해서 스터디를 하는중에 Flux데이터를 Interval을 줘서 반환할 경우 기존 Client에서는 어떻게 받을 것인가를 고민중에 있었다. 예로 아래와 같이 반환될 경우... Router@Bean fun routeFunctionPlayStream(handler: GameHandler) : RouterFunction = router { ("/").nest { GET("/reactive/play-stream", handler::playInterval) } } Handlerfun playInterval(req: ServerRequest): Mono{... return ServerResponse.ok().bodyToServerSentEvents(streamWiners)} 일반적.. 더보기
Spring Hibernate 2차 캐시 설정 Spring 에서 JPA 2차 캐시를 사용하면 "spring.jpa.properties.javax.persistence.sharedCache.mode" 속성을 이용해 캐싱 entity의 범위를 지정할 수 있다. (Default : ENABLE_SELECTIVE) ValueDescriptionALLAll entities are cachedNONEDisable cachingENABLE_SELECTIVEEnable caching only for those entities which has @Cacheable(true)DISABLE_SELECTIVEEnable caching only for those entities which are not specified with @Cacheable(false)UNSPECI.. 더보기
V20 쿼드덱 좋네~ 개발폰겸 음악도 들을겸 구입한 V20. 첨에 그냥 저가형 커널 이어폰 끼고 V20의 쿼드덱을 켜고 들으니 오잉! 음질 괜찮네. 음..그래서 집에서 굴러다니던 구매후 아내에게 대따 혼났던 오픈형 이어폰을 수리하기로 맘먹고 수리.. 오 소리가 더 좋아!! 근데...문제는 서비스센터에서 샘플로 놓여있던 Bose헤드폰의 음질이 더 좋았던..아 또 혼날 각오하고 질러야 하나..끙. 살까..살까..살까... 더보기
Slf4j Log Marker를 이용한 로그 분리 좀 오래된 사항이기는 한데.. 여튼 O2O의 예약 관련 사항을 작업하던중 처음 단일 벤더에서, 멀티 벤더를 허용하게 된다. (익xx디아, 핏x즈 등등) 기존에는 file appender를 하나로 처리해서 예약 관련 로그를 file로 남겼는데, 벤더사가 늘어나다 보니 좀 분리할 필요가 생겼다. 해서 기존 logback-spring.xml에 Marker와 Filter를 적용하여 로그파일을 분리 시킴. 각 Filter에 대한 설명은 여기서 확인하면 된다.https://logback.qos.ch/manual/filters.html 기존 logback-spring.xml ... ... file-appender-expedia.xml VENDOR1 ACCEPT DENY ${FILE_LOG_PATTERN}logs/sp.. 더보기