일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- traceasynccustomautoconfiguration
- java
- SpringMVC
- traceId
- HashMap
- b3-propagation
- DeferredImportSelector
- spring MVC
- spring
- EnableWebMvc
- asyncconfigurer
- elasticsearch
- spring3 spring2 traceid
- java list
- micrometer tracing
- Spring Boot
- jpa
- @FunctionalInterface
- java.util.list
- awssecretsmanagerpropertysources
- map
- java lambda
- list
- kotlin
- Spring JPA
- CompletableFuture
- ResponseBody
- aws secretmanager
- asynccustomautoconfiguration
- Sleuth
- Today
- Total
목록분류 전체보기 (69)
du.study기록공간
간단한 통계 서비스를 구축하는 과정에서 맞이한 문제점을 정리해봅니다. 사용한 Spring version : 2.5.10 spring yaml 설정 spring: datasource: url: jdbc:h2:~/test_leisure_product;MODE=MySQL;DB_CLOSE_ON_EXIT=FALSE .... type: com.zaxxer.hikari.HikariDataSource jpa: show-sql: true properties: hibernate: format_sql: true globally_quoted_identifiers: true dialect: org.hibernate.dialect.MySQL5InnoDBDialect .... 시작은 H2 SQLGrammarException: co..
이번에 어쩌다 보니 completablefuture를 사용하면서 stream으로 병렬로 작업하게 되어 겸사겸사 기록합니다. (사실 쓰면서 굳이 써야했을까 싶으면서도 나쁘진 않은것 같습니다.) 작업자체는 db에서 데이터를 날짜 range를 조회한 후, 2차가공을 거쳐 join을 하는 코드였습니다. 이부분을 어떻게 할까 하다가 작업을 다음과 같이 나눴습니다. 1. 날짜 range를 list로 나눈다. 2. list를 completablefuture를 돌려 전체 작업을 마무리한다. 3. 각 마무리된 작업을 join하고 결과를 리턴한다. 해당 작업을 간단하게 조금 바꿔서 다른 코드로 작성해보았습니다. list - 특정 조건 class CompletableFuture - 작업목록 (시간 체크상 1초 딜레이도 줘봤..
이번에는 @FunctionalInterface 하나인 Function에 대해 기록하고자 합니다. Function을 간략하게 설명한다면 객체(T)를 받아 객체(R)을 리턴하는 함수형 인터페이스 입니다. 코드를 보면 아래와같은 기능을 가지고 있습니다. public interface Function { R apply(T t); default Function compose(Function
이직 후, 너무 게시글 작성이 뜸해져서 스스로 습관도 들일겸, 기존에 쓰던 내용도 정리할겸 이번엔 java lambda에 대해 하나씩 정리해보려합니다. 그중에서 이번엔 Consumer를 기록하고자합니다. Consumer는 리턴값이 void이며, 특정 타입을 받아 해당 값을 사용하는 것이 특입니다. @FunctionalInterface public interface Consumer { void accept(T t); default Consumer andThen(Consumer
프로젝트 상에서 logback 1.2.3을 사용하는 도중, logback-1,2,3,.. 등 하루에 하나씩 늘어나는 현상이 발견되어 이를 정리하고자 합니다. 우선 발단은 매일 같은시간대에 하나씩 증가하는 쓰레드였습니다. 이를 thread dump를 본 결과, logback thread가 점점 증가하는것을 알 수 있었고, 이는 TimeBasedRollingPolicy에서 발상하는것을 알 수 있었습니다. logback을 설정할떄 다음과같이 몇일까지 로그파일 개수를 관리할지 결정하는 설정을 추가할 수 있습니다. 7 예를 들어 이설정을 통해 7개를 관리하게 되면 자신이 지정한 일자또는 시간 등의 파일을 최근 7개의 파일만 관리하는 그런 설정이 됩니다. 저희 프로젝트에서는 일자별로 로그를 적재하고있었기에, 매일 ..
나름 중복이 덜 발생하면서, 일렬번호를 만들되, 짧게 만들 수 있는 방법이 어떤것이 있을가 찾아보던 도중, millisecond를 Base64 String 으로 만들면 어떨까 하는 생각이 들어, 해당방식을 찾아 작성합니다. 우선 사용한 모듈은 다음과 같습니다. dependencies{ implementation("commons-codec:commons-codec:1.5") } 해당 모듈에서 Base64.encodeBase64URLSafeString 을 사용하기 위함입니다. 아래코드는 전체 플로우를 나타낸 코드입니다. public static byte[] longToByte(Long x){ ByteBuffer buffer = ByteBuffer.allocate(java.lang.Long.BYTES); bu..
해당 블로그에도 나와있는 이슈 https://newbedev.com/why-does-jackson-2-not-recognize-the-first-capital-letter-if-the-leading-camel-case-word-is-only-a-single-letter-long Programming tutorials | Newbedev Checkout new tutorials and guides for programming languages Javascript, Python, Java, Golang, C++, PHP newbedev.com 최근 개발을 하던 도중 조금 특이한 경우를 만났습니다. 간단한 예제코드 import org.springframework.web.bind.annotation.GetMap..
이번엔 request dto에 enum타입을 받아올 때, Jackson에서 제공하는 기본 EnumDeserializer 외에 내가 지정한 setter를 사용하는 방법에 대해 기록해보려 합니다. (게시글에서 만큼은 네이밍의 고통을 받고싶지않아 조금 날림입니다.) 간단한 테스트 코드를 구성해봅니다. @RestController public class TestController { @PostMapping("/hello") public String matchEnumTest(@RequestBody RequestDto requestDto){ return "hello world"; } } @Getter public class RequestDto { private TestEnum testEnum; } public en..
이번엔 스프링으로 grpc를 사용하는 과정에서 armeria를 사용하는법에 대해 기록하려합니다. github.com/line/armeria line/armeria Your go-to microservice framework for any situation, from the creator of Netty et al. You can build any type of microservice leveraging your favorite technologies, including gRPC, Thrift, Kotlin, ... github.com 우선 armeria 이전에 grpc-gateway를 먼저 간략하게 기록해보려합니다. github.com/grpc-ecosystem/grpc-gateway grpc-ecosy..
저번포스팅에서 SpringBoot의 AutoConfiguration 동작에 대해서 기록한 적이 있습니다. duooo-story.tistory.com/52 Spring boot Auto Configuration 동작방식 이전에도 간략하게나마 Spring boot의 동작 원리를 작성한 적이 있습니다. 이번에는 그 과정을 좀 더 자세하게 기록해 보고자 합니다. 결론부터 말하면 스프링 부트는 두가지 방법으로 bean 등록을 duooo-story.tistory.com 이번에는 이 동작을 이용해서 직접 해당 코드를 작성해보려합니다. 우선 ComponentScan을 제외한 빈 등록 방식을 사용하기 위해서는 다음과 같은 조건을 충족 클레스가 필요합니다. - import를 통해 불러와지며 ( @Component를 가지고..