본문 바로가기
728x90
반응형

java25

[JAVA16] stream().collect(Collectors.toList())와 stream().toList() Java에서 stream().collect(Collectors.toList())와 stream().toList()는 스트림을 리스트로 변환하는 두 가지 방법입니다. JDK 16에서 Stream.toList() 메서드가 도입되었으며, 이 메서드와 Collectors.toList() 메서드 간의 차이점은 다음과 같습니다. stream().collect(Collectors.toList())가변 리스트 반환stream().collect(Collectors.toList())는 가변 리스트를 반환합니다. 즉, 반환된 리스트는 수정할 수 있습니다.유연성Collectors.toList()는 더 많은 유연성을 제공합니다. 커스터마이징이 필요한 경우 다른 Collector와 결합하여 사용할 수 있습니다.JDK 8 이상에서.. 2024. 7. 3.
JJWT 0.11.2 에서 0.12.5 버전 마이그레이션 1. OverviewJJWT (Java JSON Web Token) 라이브러리를 최신 버전으로 업그레이드하면, deprecated 처리된 메서드나 삭제된 메서드 때문에 코드 변경이 필요할 수 있습니다. 여기에서는 JJWT 버전을 0.11.2에서 0.12.5로 마이그레이션 하는 방법을 설명합니다. 2. Migration2.1. Maven dependency먼저 Maven 의존성을 0.11.2에서 0.12.5로 업데이트합니다. io.jsonwebtoken jjwt-api 0.12.5 io.jsonwebtoken jjwt-impl 0.12.5 runtime io.jsonwebtoken jjwt-jackson 0.12.5 runtime 2.2. Token 생성// V 0.11.xString token = Jwt.. 2024. 5. 20.
[JAVA] JDK 11에서 JDK 21로 변경하기 (LTS버전) OverviewSpringBoot 버전을 2.x에서 3.x로 변경하면서 JDK도 최신버전인 21로 변경하게되었습니다.JDK LTS 버전End Of Support Life212031년 9월172029년 9월112026년 9월82030년 12월 1. JDK 설치https://jdk.java.net/21/ 2. Maven Java version 변경 21 3. IntelliJ Project Settings[Ctrl+Shift+Alt] Project Strucature > Project Settings  만약 build 실패 중 아래와 같은 에러가 발생한다면, Settings > Build, Execution, Deployment > Build Tools > Maven 에서 Maven home path를 Bun.. 2024. 5. 8.
[Java21] Virtual Thread 요약 개요Java 8 이후 세 번째 LTS버전인 Java 21이 2023년 9월에 릴리즈 예정인데, 이 버전에 Virtual Thread 기능이 추가될 예정입니다. (현재 Java 19에 Preview Features로 들어가 있음)그래서 Virtual Thread 주제로 포스팅하려고 보니 이미 잘 정리되어 있는 포스팅이 많아서 요약정리만 하겠습니다. 요약높은 처리량을 보장하는 Reactive Programming인 Spring Webflux는 Mono나 FLux와 같은 Publisher 타입으로 값을 래핑 해야 하기 때문에 코드 가독성이 좋지 않고, 고성능을 보장하더라도 유지보수가 어렵고 러닝커브가 존재합니다.최신 pinpoint 버전에서는 webflux도 지원하지만 이전 버전에서는 pinpoint로 안 잡.. 2023. 5. 15.
[Java11] Exception이 성능에 미치는 영향 예전에 Exception에 대해 포스팅했었는데, 이번엔 Exception이 성능에 미치는 영향에 대해 알아보겠습니다. [java] 예외처리 Exception handling이 글은 Java의 정석 (남궁성/도우출판) 기반으로 작성되었습니다. 1. 프로그램 오류 컴파일 에러(compile-time error): 컴파일할 때 발생하는 에러 런타임 에러(runtime error): 실행할 때 발생하는 에러 에moonsiri.tistory.com  예외 처리 장점프로그램 실행 완료를 위한 제공프로그램 코드 및 오류 처리 코드를 쉽게 식별오류 전파의미 있는 오류 보고오류 유형 식별  JVM 예외 처리 순서예외가 발생하게 되면, JVM은 발생한 예외를 처리할 수 있는 exception handler(try-catc.. 2023. 3. 19.
[Java11] Customizing redisCodec for redisCommands redis command를 날렸을 때 Key는 String, Value는 Object class로 받고 싶어서 커스텀 한 redisCodec입니다.key는 io.lettuce.core.codec.StringCodec, value는 io.lettuce.core.codec.ByteArrayCodec 참조하여 구현import io.lettuce.core.codec.RedisCodec;import io.netty.buffer.ByteBuf;import io.netty.buffer.Unpooled;import io.netty.util.CharsetUtil;import org.springframework.util.SerializationUtils;import java.nio.ByteBuffer;import java.. 2023. 2. 9.
[JAVA] UUID 중복 확률 UUID를 단순히 유니크 값이라고 생각해왔는데 얼마나 유니크하고 정말 중복될 확률이 없는지 알아보겠습니다. UUID란? UUID(universally unique identifier)란, 범용 고유 식별자로 네트워크 상에서 서로 모르는 개체들을 식별하고 구별하기 위해 개발주체가 스스로 이름을 짓도록 하되 고유성을 충족할 수 있는 방법입니다. 총 36개 문자(32개 문자와 4개의 하이픈, 128bit)로 된 8-4-4-4-12라는 5개의 그룹을 하이픈으로 구분합니다. 예) 550e8400-e29b-41d4-a716-446655440000 중간에 4는 버전을 나타냅니다. 버전 v1 : timestamp + MAC 주소 v2 : timestamp + MAC 주소 + DCE 보안 v3 : name-based +.. 2022. 8. 9.
[Java] Handler dispatch failed; nested exception is java.lang.NoSuchFieldError: public class NoSuchFieldError extends IncompatibleClassChangeError Thrown if an application tries to access or modify a specified field of an object, and that object no longer has that field. Normally, this error is caught by the compiler; this error can only occur at run time if the definition of a class has incompatibly changed. Since: JDK1.0 NoSuchFieldError는 보통 해당 객체에 해당 필드가 더 이상 없는 경우 throw.. 2022. 7. 21.
[Java] java.time.format.DateTimeParseException: Text 'yyyyMMdd' could not be parsed: Unable to obtain LocalDateTime from TemporalAccessor: {},ISO resolved to yyyy-MM-dd of type java.time.format.Parsed LocalDateTime.parse("20220720", DateTimeFormatter.ofPattern("yyyyMMdd")); java.time.format.DateTimeParseException: Text '20220720' could not be parsed: Unable to obtain LocalDateTime from TemporalAccessor: {},ISO resolved to 2022-07-20 of type java.time.format.Parsed 위 코드를 실행 시 DateTimeParseException 이 발생하는 이유는 자바가 Base Date 값을 DateTime으로 허용하지 않기때문입니다. LocalDateTime 대신 LocalDate를 사용하면 문제가 해결됩니다... 2022. 7. 20.
[Java] 사용 가능한 모든 Locale, Country 조회 java.util.Locale 를 사용합니다. 사용 가능한 모든 Locale 객체 조회 Locale[] availableLocales = Locale.getAvailableLocales(); 모든 Locale 객체의 Country 조회 String[] countries = Locale.getISOCountries(); [Reference] https://docs.oracle.com/javase/7/docs/api/java/util/Locale.html 2022. 6. 3.
728x90
반응형