본문 바로가기

전체 글55

Java24 + Spring boot 3.2이상버전을 쓰는건 어떨까 2025년 3월18일부로 Java24를 정식으로 사용할 수 있게됩니다. 많은 변화중에 기존 가상 쓰레드가 가지고 있던 Pinned Issue가 어느정도 해결되어 나오게 되었는데, 이는 어떤 이슈였고 어떻게 해결하였는가 확인해보겠습니다. 가상 쓰레드 와 문제점  가상 스레드(Virtual Threads)는 생성과 스케줄링 비용이 낮고, 경량화된 스레드로 동시성 애플리케이션을 쉽게 작성할 수 있게 해줍니다. 가상 스레드가 실행될 때는 플랫폼 스레드 위에 탑재되어 실행됩니다.하지만 지금까지는 Java의 synchronized 키워드를 통한 동기화가 실행되면 플랫폼 스레드가 가상 스레드에 고정(pinned)되는 문제가 있었습니다. 즉, synchronized를 사용할 때 플랫폼 스레드가 가상 스레드와 연결된 채.. 2025. 3. 11.
InfluxDB 개념+ JavaClient 구축 환경- docker- java- gradle 개요 사이드 프로젝트에 대한 설계를 진행하였습니다. 저장해야할 데이터들이 시계열 데이터라는 것에 집중하여 이를 저장하기 쉽고 그나마 대중적인 InfluxDB를 사용하자고 얘기가 나오게되었고, RDB에서의 스키마 설계, Client 연동까지 내가 담당하게되었습니다. 데이터베이스를 설계하기 전에, InfluxDB에서 사용하는 언어들에 대한 개념과 그를 토대로 간단한 데이터들을 생성하고 확인하는 테스트 코드를 작성해보았습니다. 내용자체는 (https://cocoder16.tistory.com/83) 이 블로그에 잘 나와있습니다. 그 중 핵심은 RDB와 비교한 그림인데, RDBinfluxDBdatabasebuckettablemeasurementcolumnkeyPK o.. 2025. 3. 9.
Spring WebClient와 Filter(Spring WebClient Filters) 원본 글: https://www.baeldung.com/spring-webclient-filters이 글은 WebClient에서 fitler를 다루는 방법에 대해 이야기합니다.1. Request Filtersfilter는 요청과 응답을 가로채서 추가,수정할 수 있는 기능입니다. 필터는 모든 요청과 응답에 대해 한 곳에 모여지므로 후처리나 전처리하기에 적합합니다. 요청을 모니터링하거나 수정, 로그 작성, 인증까지 가능합니다.Spring Reactive에서 필터는 함수형 인터페이스 ExchangeFilterFunction의 인스턴스입니다. 필터 함수에는 두 개의 매개변수가 있습니다. 수정할 ClientRequest와 다음 ExchangeFilterFunction입니다.일반적인 구성 예시입니다.Exchange.. 2025. 3. 6.
WebClient사용할때 파라미터 넣는방법 원본 글: https://www.baeldung.com/webflux-webclient-parameters1. REST API Endpoints다음과 같은 시나리오가 있다고 생각합시다./products/products/{id}/products/{id}/attributes/{attributedId}/products/?name=[name]&deliveryDate={deliveryDate} ../products/?tag[]=[tag1]/products/?category=[categoray1]&Webclient를 사용할 때 위 시나리오에서 어떻게 파라미터를 설정할지 작성해봅니다.참고로 위 url에서 tag, category는 배열형태로 가져오는데 이에 대해 정해진 포맷이 없다보니 여러 방법으로 가져올 수 있게 .. 2025. 3. 5.
Spring WebClient vs RestTemplate 원본 글: https://www.baeldung.com/spring-webclient-resttemplate  이 글에서는Spring5 버전에서 나온 WebClient와 RestTemplate을 비교합니다. 1. Blocking vs Non-Blocking Client1.1 RestTemplate Blocking ClientRestTemplate는 Thread-per-request(요청당 스레드1개)기반의 Java Servlet API를 사용합니다. 이 말은 Thread는 webClient가 응답을 받을때까지 block된 상태르 유지하고 있습니다. block된 상태로 CPU나 메모리를 점유하고 있기에 쓸데없는 리소스를 잡아먹는 Thread-per-request모델은 단점이 될 수 있습니다. 한 번에 엄청.. 2025. 3. 2.
Spring WebClient 원본 글: https://www.baeldung.com/spring-5-webclient이 글은 Sprign5에서 소개된 reactive webClient인 WebClient에 대해 다룹니다.또한, WebClient를 테스트하기 위해 제작된 WebTestclient에 대해서도 다룹니다.1. What Is the WebClient?WebClient는 웹 요청을 수행하기 위한 주요 진입점을 나타내는 인터페이스입니다.Spring Web Reactive 모듈의 일부로 만들어졌으며, 이러한 시나리오에서 기존의 RestTemplate을 대체할 예정입니다.또한, 새로운 클라이언트는 반응형(Reactive)이고 비동기(Non-blocking) 방식으로 동작하며, HTTP/1.1 프로토콜 위에서 작동합니다.WebClie.. 2025. 3. 1.