분류 전체보기
-
[Spring Batch] 이제 LocalDate도 지원돼요!웹 개발/Spring Framework 2023. 9. 2. 16:50
많은 블로그를 보면 스프링 배치에서 LocalDateTime, LocalDate, LocalTime 등이 jobParameters로 지원되지 않아서 String을 파싱하는 방법으로 알려준다. 이전에는 java 8의 time api를 지원하지 않아서 String을 파싱하는 방법 밖에 없었다. 그 이후로 최신 글이 없다보니 지금의 개발자들도 String으로 파싱해서 사용하고 있지 않을까해서 포스팅 하기. 스프링 배치에서 java 8의 time api를 2022년 10월부터 지원하고 있다. 참고글 : https://github.com/spring-projects/spring-batch/issues/1035 테스트 해봅시다. 준비물 - 버전: 스프링 배치 5.0.0 이상, 스프링 부트 배치 3.0 이상(아직까지..
-
KeyspaceEventMessageListener 이용 시, RedisCommandExecutionException: ERR unknown command 'CONFIG', with args beginning with: 'GET' 'notify-keyspace-events' 에러 해결웹 개발/Spring Framework 2023. 6. 18. 02:48
기존에 사용하던 레디스를 deprecated 시키고, 사내 인프라 도구를 이용해 새로 레디스를 만들었다. 그랬더니 기존에 없던 에러가 발생했는데, 아래의 에러가 발생했다. RedisCommandExecutionException: ERR unknown command 'CONFIG', with args beginning with: 'GET' 'notify-keyspace-events' 근본적인 원인은 레디스 서버에서 CONFIG 명령어를 허용하지 않아서 클라이언트측에서 발생하는 에러다. 클라이언트측이라 함은 결국 내가 운영하는 서버. spring data redis에서 Redis keyspace notifications 기능을 사용한다치면 서버가 올라올 때 자동으로 redis에다가 CONFIG 명령어를 날린..
-
[Redisson] SearchDomainUnknownHostException 이슈 해결웹 개발/Spring Framework 2023. 6. 18. 02:30
이건 무지성 해결 방법 공유이다.Failed to resolve '{레디스 호스트}' [A(1)] and search domain query for configured domains failed as well: [여러 도메인들] Spring에서 Redisson을 쓰고 있는데 이런 에러가 계속 발생했다. 구글링을 해보니 아래 방법으로 해결할 수 있다고한다. import io.netty.channel.socket.DatagramChannel; import io.netty.channel.socket.nio.NioDatagramChannel; import io.netty.resolver.ResolvedAddressTypes; import io.netty.resolver.dns.DnsAddressResolverG..
-
[Redisson] 레디스로 객체 저장 시 클래스 (타입)정보 제외하기DataBase/Redis 2023. 3. 25. 22:59
redis client로 redisson을 쓰고 있는데 따로 설정 없이 객체를 저장할 경우 클래스 정보도 함께 저장된다. 데이터 직렬화를 하면서 클래서 정보도 포함시킨다. redisson은 객체를 사용하기 위해 RBucket 개념을 활용하는데, spring data redis에서 bucket에 관한 설명을 보면 다음과 같다. Bucket is the data bag for Redis hash structures to be used with RedisData. 버킷은 레디스의 hash structure로 사용되는 데이터 가방이다. 직역하면 그런데, 객체를 담을 수 있는 녀석이라고 생각하면 되겠다. baeldung에도 object holder로 소개하고 있다. 데이터 직렬화 시 redisson은 Kyro5..
-
[WebClient] Content type 'application/octet-stream' not supported for bodyType='' 에러웹 개발/WebFlux 2023. 3. 15. 01:15
webClient를 사용중에 bodyToMono를 사용했더니 에러가 발생했다. // 대략 이런 코드 fun convertErrorResponse(clientResponse: ClientResponse): Mono { return clientResponse.bodyToMono(ErrorResponse::class.java) } 위의 코드처럼 사용하려고 했더니 발생한 에러문구 Content type 'application/octet-stream' not supported for bodyType='변환하려는 클래스' webClient 요청시 Content-Type을 application/json으로 붙여서 보내라는 해결법도 있었는데, 난 이미 그렇게 처리하고 있어서 그게 이유는 아닌듯했고, 내가 클라이언트일 ..
-
'마이크로서비스' 단어에 대한 오해웹 개발/웹&프로그래밍 2023. 3. 12. 20:49
우리가 보통 마이크로서비스 아키텍처 또는 마이크로서비스라고 불리는 아키텍처 스타일에서 한국말로 번역되면서 오해를 불러일으킬만한게 있다. 마이크로서비스를 영어로 표기할 때 Microservice가 아닌 Microservices가 정식 명칭이다. 정확히 말하려면 '마이크로서비스들'이라고 말해야겠지만, 한국말로 번역하면서 '들'이라는 복수 표현이 사라진듯하다. 우리나라 말 특성상, 매번 말할 때마다 마이크로서비스들이라고 말하거나 표현하기 불편해서 생략한게 아닐까? AWS, red hat 같은 공식 사이트에 번역된 글을 봐도 모두 마이크로서비스라고 적혀있다. 원래 2011년 소프트웨어 아키텍처 워크샵에서 microservice라는 용어가 사용되었는데, 2012년 이 용어를 쓴 그룹에서 microservices가..
-
조르바의 2022년 회고개발 일기장/직장 생활 2023. 1. 10. 01:21
오랜만에 글을 쓴다. 블로그 글을 주기적으로 올려야지 생각하고 있었지만 게을렀다. 2022년 내내 몇 가지 계속 하는 것들이 있었는데 일, 책 집필, 게임 이 3가지 키워드로 정리할 수 있을듯 싶다. 3가지만 해도 벅차서 일하면서 블로그에 쓰고 싶던 주제들을 꽤 놓쳤다. (메모라도 해둘걸..) 게임은 안해도 되는거지만, 게임해 본 사람 중에 의지대로 게임을 끊을 수 있던가?! 난 아님.. 작가 희망생 작년에 있었던 사건 중 흔하지 않은 사건은 책을 쓰게된 일이다. 4월쯤 내 블로그를 보시고 출판사에서 책 집필을 권유받았다. '내세울 것 없는 내가 책을 써도 되나'라는 생각에 가까운 개발자분들에게 의견을 구했었다. 그렇게 자신감이 넘치는 스타일이 아니라 책을 쓰더라도 욕 먹으면 어떡하지? 라는 마음도 컸다..
-
실무적인 디자인 패턴 정리 글 모음개발 일기장/개발 일상 2022. 7. 2. 15:27
https://docs.microsoft.com/ko-kr/azure/architecture/patterns/ 클라우드 디자인 패턴 - Azure Architecture Center Microsoft Azure를 기반으로 하는 예제를 통해 클라우드에서 안정적이고 확장 가능한 보안 애플리케이션을 빌드하기 위한 디자인 패턴에 대해 알아봅니다. docs.microsoft.com 4 gang 디자인 패턴은 많이 들어도, 실무를 하다보면 여러가지 패턴을 많이 듣게 된다. 정리를 너무 잘해놔서 일일이 사이드로 뒤져가보면서 읽을 필요가 없어서 좋다. 구조적인 문제에 봉착했을 때 해결하는데 도움이 되는 패턴들이 많이 보인다. 틈날 때 하나씩 읽어봐야지. MS, red hat 블로그는 이런 정리를 잘해놔서 좋다.