본문 바로가기

전체 글

뜬금 Reflection 으로 field 받아오기. getFields와 getDeclaredFields 의 차이는 넘어가고.. --- 플젝도중 누군가 jpa 엔티티의 id를 빼오는 작업을 하는데 해당 작업의 구현시.. 다른 누군가가 만들어둔 유틸성 클래스를 사용하더라. 근데 id가 정상적으로 처리되지 않더라고 한다. ( 아마 ID가 들어있는 class를 extends하는 방식이라 그런거 같다고.. - AbcEntity extends JpaIdBase 뭐 이런식..) 해서 그 누군가가 만들어둔 유틸 클래스를 디컴파일해서 보니 역시나... Arguments 클래스에 getDeclaredFields 를 이용하여 field값들을 처리하더라. 그럼 역시 super class의 field를 볼 수 없는건 당연하겠지. ( 고치면 좋을 듯 한데 유틸 클래스 작성자의 의.. 더보기
Kotlin Kotest + Spring Boot 적용해보기 https://github.com/KimHyeongi/KotlinSpringboot-Tips #1 SpringBootTest 테스트용 서비스 @Service class DicFindService(val dicRepository: DicRepository) { fun findById(id: Long): Dic = checkNotNull(dicRepository.findByIdOrNull(id)) { "검색된 정보가 없습니다." } } 테스트 코드 - Kotest 전역설정 package com.tistory.eclipse4j.domain.persist.dic import io.kotest.core.config.AbstractProjectConfig import io.kotest.core.spec.Isolat.. 더보기
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.. 더보기