일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- map
- HashMap
- Spring Boot
- java sentry
- kotlin
- java.util.list
- cache sizes may be underestimated as a result
- spring MVC
- Spring JPA
- java list
- 센트리
- @FunctionalInterface
- sentry environment
- EnableWebMvc
- jpa
- list
- software.aws.rds.jdbc.mysql.Driver
- intellij recode issue
- spring
- java recode with intellij
- java lambda
- intellij issue
- DeferredImportSelector
- SpringMVC
- elasticsearch
- traceId
- ResponseBody
- spanId
- CompletableFuture
- java
- Today
- Total
목록전체 글 (66)
du.study기록공간
다른회사로 요청,응답을 기록하는 과정에, 필드의 로그값이 이중으로 찍혀있는 모습을 보고 내용을 정리해봅니다. 우선 발생된 상황을 정리해보면 다음과 같습니다. 1. request dto는 롬복의 @Getter와 @JsonProperty를 사용하고 있습니다. 2. 변수명중 두번째 글자가 대문자인 변수들이 있고, JsonProperty는 이 값을 다르게 사용하고 있습니다. 3. objectMapper.writeValusAsString() 를 활용하여 로그를 작성중에 있습니다. 이 경우, 의도했던 값과 다르게 유사한 변수명이 추가로 String에 노출되는 현상이 발생됩니다. lombok의 getter를 사용하면서 objectMapper.writeValusAsString()을 사용할때 발생될 수 있는 문제점을 ..
이 글은 driverClassName을 'com.mysql.jdbc.Driver'에서 'software.aws.rds.jdbc.mysql.Driver'로 바꾸는 과정에 발생된 이슈를 작성하고자 합니다. 우선 이슈가 발생된 과정을 정리해보면 다음과 같습니다. 1. driverClassName 변경 'com.mysql.jdbc.Driver' -> 'software.aws.rds.jdbc.mysql.Driver' 2. DATETIME 필드를 mybatis를 통해서 String으로 리턴하는 상태. 3. 로직상에서 String으로 받은 값을 아래 코드를 통해서 변환 DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S"); Lo..
새로운 프로젝트를 실행하면서 로컬 캐시 라이브러리인 Ehcache 를 사용하는 일이 있었습니다. 기존에도 자주 사용하는 라이브러리 였기에 큰 걱정없이 사용했으나, 다음과 같은 에러가 갑자기 노출되기 시작했습니다. The JVM is preventing Ehcache from accessing the subgraph beneath 'transient java.util.HashMap$Node[] java.util.HashMap.table' - cache sizes may be underestimated as a result 음.. 우선 원인이 되는 프로젝트의 코드를 찾아봅니다. ehcache 내부의 ObjectGraphWalker 클래스에서 아래 코드에서 해당 에러를 뱉고있었습니다. 예시를 위해서 아래 테..
이번엔 java프로젝트에서 sentry environment 설정 코드를 한번 보려고합니다. 프로젝트를 진행하면서 sentry설정을 하는도중, local에서 계속 production으로(찾고나니 default설정이 production이네요) 작성이 되어있는 부분이 거슬려서 environment 설정은 어떻게 하는지 한번 확인해봤고 이를 기록하고자 합니다. 우선 결론부터 작성하면 저는 아래와 같이 적용하였습니다. - 리소스 아래에 sentry.properties 를 생성하여 아래 문구 적용 dsn= 본인의 sentry의 dsn를 사용합시다! environment=local servername=project이름 - java 실행의 변수를 담는곳에 -Dsentry.environment=${SPRING_PROF..
팀에서 recode를 api request, response 를 사용하면서 @Builder를 붙여 사용을 하게되었습니다. 다만 테스트 코드를 작성하는 과정에서 lombok이 정상동작 하지않았고, 이를 찾기위해 관련 게시판을 뒤지다가 원인을 찾을 수 있었습니다. https://youtrack.jetbrains.com/issue/IDEA-266513 해결방안 : intellij 버전을 2021.3 에서 2022 이상의 버전으로 변경 java 의 버전을 실험적으로 올렸는데... intellij 의 버전은 그대로둬서 발생한 이슈였습니다.
오늘은 간단한 내용을 작성해보려 합니다. Spring 에서 로그 추적을 위해 traceId를 남기고자 sleuth를 사용하고 있습니다. 운영과정에서 일부 비동기 로직에서 traceId가 남지않는것을 확인하였고, 이 부분에 대해 확인한것을 기록하고자 합니다. 사실 해결법은 매우 간단하지만(검색하면 바로) 왜 동작하는지는 알고 바꾸고자 한번 작성하게되었습니다. 먼저 bean으로 생성하는경우를 확인하고자 합니니다. @Bean(name = "예시니까 세팅은 전부 1") public Executor threadPoolTaskExecutor() { ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor(); taskExecutor.setCorePoolSi..
코드리뷰를 하던도중 간단하면서도 실수하기 좋은 부분을 기록하고 넘어가고자 합니다. Arrays.asList 나 Collections.singletonList 등을 이용하여 List를 생성하는 경우를 종종 보고있는데요 이번엔 Arrays.asList를 사용해서 add를 하는경우에 발생하는 에러를 기록하고 넘어가고자 합니다. 예시코드는 아래와 같습니다. List list = Arrays.asList("A","B"); list.add("C"); System.out.println(list); 이 경우 [A, B, C] 가 출력될거라 생각할 수 있지만, 결과는 아래 에러를 맞이하게 됩니다. java.lang.UnsupportedOperationException 왜 그럴까? 를 확인하기위해 Arrays.asList..
간단한 통계 서비스를 구축하는 과정에서 맞이한 문제점을 정리해봅니다. 사용한 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초 딜레이도 줘봤..