spring boot

Caffeine Cache 란? 로컬캐시는 해당 기기에서만 사용되는 캐시이다. 속도가 빠르지만 분산 시스템일 경우 데이터 정합성이 깨질 수 있다. 비즈니스 요구사항에 따라 어느정도까지 정합성을 맞춰야할지, 얼마나 속도가 중요할지에 따라 캐시를 선택한다. Caffeine Cache는 java 캐싱 라이브러리 중 높은 성능을 가지고 있는 캐시이다. Caffeine은 Window TinyLfu eviction 정책을 가지고 있는데, 이는 최적의 적중률을 제공한다. Setting build.gradle.kts dependencies { implementation("org.springframework.boot:spring-boot-starter-cache") implementation("com.github.b..
위와 같은 형태의 데이터를 받아 객체로 변환 기대한 객체 형식은 아래와 같다. Payload(id = "...", payload = List(Map("..." to "...")) 아래 코드로 파싱 진행 /* build.gradle.kts */ implementation("com.fasterxml.jackson.module:jackson-module-kotlin") /* parsing logic */ jacksonObjectMapper().readValue(msg, PayLoad::class.java) 하지만 com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.ArrayL..
Unit Test ? 단위 테스트는 Service Layer의 비즈니스 로직만을 검증하는 것이므로, Repository와 Controller의 영향을 받지 않는 환경에서 테스트를 진행하여야 한다. 테스트의 F.I.R.S.T 원칙 F - Fast: 테스트를 시도하는 것에 있어서 주춤되지 않을 만큼 빨라야 한다. I - Independent: 객체의 상태, 메소드, 이전 테스트 상태, 다른 메소드의 결과에 의존해서는 안된다. R - Repeatable: 어떤 환경에서도 같은 결과가 나올 수 있도록 반복 가능해야 한다. S - Self-Validating: 모든 테스트는 pass 혹은 fail의 결과만 가지고 있어야 한다. T - Timely: 실제 코드가 만들어지기 전에 테스트 되어야 한다. 실제 코드를 구..