본문 바로가기

Programming!

Kotlin Spring Boot Redis Cache 대충 적용하기. 그냥 메모용으로.. (너무나 흔해서 설명 필요 없음. 구현방식만 내맘대로) 캐시로 사용될 키-TTL 에 대한 Enum 하나. ( 직접 처리해도 됨 ) enum class RedisCacheKeyProperties(val description: String, val ttl: Long, val key: Boolean, val placeholder: String, val dpOrderNumber: Int) { cached_default( "시스템 유지 관리 캐시", 60 * 60 * 24L, true, "KEY", 0 ), //second s * m * h cached_company_id( "회사 정보 캐시", 60 * 60 * 24L, true, "KEY", 0 ), //second s * m * h } L.. 더보기
Kotlin Excel Reader/ fastexcel 코틀린으로 엑셀 읽기/쓰기 신규로 전달(?) 받은 프로젝트가 코틀린 환경으로 되어있어서.. 하... 여튼 공부나 해볼겸해서 코틀린에서 엑셀 읽기를 대충대충 만들어 봤다. 개발환경부터 실행까지.. 어렵네..ㅎㅎ ( java 였으면 말이지 그냥 쑥..) 우선 플젝을 만들어보자. 아래 DB관련 부분은 제거해도 된다. 엑셀 라이브러리 추가만 확인하자. fastexcel . fastexcel-reader import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { id("org.springframework.boot") version "2.4.5" id("io.spring.dependency-management") version "1.0.11.RELEASE" kotlin("jvm") v.. 더보기
@Cacheable (Redis) 의 장애 대응용으로 Hystrix 사용 https://github.com/Netflix/Hystrix/wiki/Configuration Netflix/Hystrix Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex di... github.com 캐시를 여기저기 많이 붙여 사용함. @Cachable(key="#{id}", value="cache_xxxxxx") public Xxxxx findById( Long id ){ ..... return xxxx.. 더보기
AWS @SqsListener 사용시 warn 문제. The failing operation will be retried in 10000 milliseconds ... Running, pool size = 3, active threads = 3, queued tasks = 0, completed tasks = 20 ... 개발환경에서는 문제없이 잘 받아주던 Queue 리스너가 운영에 배포되면서 위와 같은 오류가 났다. 처리 되기는 하는데 밀리는 상황. 메세지 내용으로 보면 대략 처리량의 문제로 보인다. 즉, 베타의 간헐적 메시지 처리가 운영에서의 무지막지한 메시지 처리를 허용하지 못한. 아.. 뭔가 또, Configuration을 만들어줘야 하는 구나... 하고 찾아보니. https://stackoverflow.com/questions/51373082/sp.. 더보기
Spring Cache Error 오늘의 삽질. 첫번째: spring-data-jpa에서 인터페이스 기반의 projection을 반환 받아 redis cache에 담으면 에러가 난다. (리포팅되어 있는 듯.) "java.io.NotSerializableException: org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor" ... 두번째: @JsonView가 지정된 Dto를 캐시에 담은 후 Controller에서 재조회시 @JsonView의 속성이 지정되지 않는다. 즉, Controller를 거쳐 출력되는 것은 옵션에 따라 다르지만 empty 이거나 Dto 전체 속성이거나 일것이다.(전체 속성이여도 값은 null) 좀 더 해봐야 겠지만 거참... 더보기