본문 바로가기

Java5

SpringBoot 4.0 RC 변경사항 확인하기 2025년 10월 24일 SpringBoot 4.0 RC 버전이 깃허브에 올라왔습니다. https://github.com/spring-projects/spring-boot/releases/tag/v4.0.0-RC1 Release v4.0.0-RC1 · spring-projects/spring-boot⭐ New Features Revisit metrics and tracing test properties #47776 Downgrade to GraphQL Java 24.3 #47752 Configure devtools to set trace probability to 100% by default #47721 Remove "public" from r...github.com 주로 어떤점이 변경되는지 확인하는 과.. 2025. 10. 25.
[Java] 가상스레드 개념 파헤치기(Java24기준) 현재 블로그에서 가장 인기있는 글이 가상쓰레드 관련 글이다보니.. 도움이 되고자 따로 정리를 하고 공유합니다.1. 개요, 배경먼저, 가상쓰레드 배경에 대해 파악하려면 Blocking I/O가 무엇을 의미하는 지 알아야합니다.Blocking I/O란 어떤 요청을 보냈을 때 요청에 대한 응답이 올 떄까지 아무것도 안하고 기다리는 것을 말합니다. 아무것도 안하고 기다리다보니 그 기다리는 시간동안에 아무것도 할 수가 없기에, 이러한 요청이 많아지면 많아질수록 성능저하로 이어지고 있었습니다.이러한 배경속에서 Project Loom이라는 프로젝트를 자바에서는 시작했고, 그 결과 가상 스레드가 탄생했습니다.플랫폼 스레드, 가상스레드플랫폼 스레드는 운영체제가 직접관리하는 스레드입니다. 스레드 1개당 메모리도 어느정도 .. 2025. 7. 18.
[java] EnumMap 정리 EnumMap 파헤치기회사에서 프로젝트를 진행하다가 EnumMap으로 상태관리하는 선임님의 코드를 보고 문득 파헤쳐보고 싶어졌습니다.EnumMap개요EnumMap이란?Enum 타입의 상수를 키(Key)로 사용하기에 최적화된 자료구조내부적으로 배열(array)을 기반으로 구현되어 있어 일반 HashMap과는 차이가 존재합니다.HashMap과 비교HashMap은 키에 제약이 없지만, EnumMap는 오직 Enum 타입의 상수만을 키로 사용할 수 있습니다.HashMap은 null을 키로 허용하지만 EnumMap은 허용하지 않습니다.HashMap의 내부구조는 해시테이블로 구현되어있지만, EnumMap은 배열을 사용하여 구현됩니다.일반적으로 Enum을 키로 가진다면 EnumMap의 성능이 더 압도적입니다.둘다 스.. 2025. 7. 15.
Java-jmh(벤치마킹 툴) 환경구성하기 개요Java 테스트 관련 글을 읽다가 어떤 글에서 jmh라는 벤치마킹툴을 사용하는것을 보았습니다.한 번 구성해봐야겠다고 생각했습니다.jmh 벤치마킹툴에 대한 설명들은 여러 블로그에 있으니, 참고부탁드립니다.요구사항요구사항은 다음과 같습니다.가장 큰 숫자의 값을 가지고 있는 String 객체이 String 객체를 여러 방법으로 숫자로 변환하였을때 걸리는 평균시간들을 측정1. 의존성 추가//benchmarkimplementation 'org.openjdk.jmh:jmh-core:1.37' //coreannotationProcessor 'org.openjdk.jmh:jmh-generator-annprocess:1.37'//annotationjmh코어 부분과 애노테이션 관련 라이브러리를 추가해줍니다.2. 코드 .. 2025. 2. 4.
Spring Batch 테스트 환경 구축 후기(With Redis) 개요회사에서 spring-batch는 사용하지만 테스트코드는 일절없는 환경.테스트 코드를 작성할 수 있는 환경이 필요(성능 테스트 등을 위하여) 환경: spring-boot : 2.7.4의존성 추가spring-boot-starter-test : Junit사용 때문spring-batch-test: SpringBatchTest 애노테이션 사용h2: JobLauncher가 사용할 테스트용 데이터베이스실행할 배치Job에 대한 테스트 코드 작성// For Junit@RunWith(SpringRunner.class)@SpringBatchTest@SpringBootTest(classes = {TestBatchConfig.class, SampleJob.class}) //Batch 설정와 테스트할 Job을 추가합니다.@.. 2025. 1. 17.