본문 바로가기

JAVA

(36)
JDK 23에서 주목해야 할 기능 5가지: Java의 진화와 개발자 생산성 향상 2024년 9월 17일에 출시 예정인 JDK 23은 Java 개발자들에게 여러 새로운 기능을 제공합니다. 이번 릴리스는 비장기지원(LTS) 버전으로, Java 언어의 효율성, 유연성 및 성능을 향상시키는 데 중점을 두고 있습니다. 아래에서는 JDK 23의 주요 기능을 살펴보고, 코드 예시를 통해 새로운 기능이 어떻게 활용되는지 설명하겠습니다.1. Class-File API (JEP 466)Java의 바이트코드를 조작할 수 있는 기능이 Class-File API로 통합되었습니다. 이전에는 바이트코드 조작을 위해 ASM과 같은 외부 라이브러리에 의존했지만, 이제 Java 자체에서 이 기능을 지원합니다.주요 대상:프레임워크 개발자: 런타임 시 클래스 생성 또는 수정이 필요할 때.도구 개발자: 클래스 파일을 분..
Java 22의 놀라운 새로운 기능! 개발 효율을 극대화하는 방법 Java 22가 드디어 출시되었습니다! 이번 업데이트는 개발자들이 기다리던 다양한 기능을 제공합니다. 특히, 코드 간결성, 성능 향상, 멀티스레딩 처리 등을 개선할 수 있는 강력한 도구들이 포함되었습니다. 이번 블로그에서는 Java 22의 주요 기능을 소개하고, 이를 통해 여러분의 개발이 어떻게 더 효율적이고 편리해질 수 있는지 알아보겠습니다.1. Statements Before super: super() 호출 전 코드 작성 가능 (Preview feature)기존에는 생성자에서 super() 호출 전에 다른 코드를 작성할 수 없었지만, Java 22부터는 이 제약이 사라졌습니다. 이제 super()를 호출하기 전에도 유효한 로직을 추가할 수 있습니다.public class PositiveBigInteg..
Java의 신개념 데이터 클래스! Record로 코드 간결하게 작성하는 방법 Java 14부터 도입된 record는 새로운 종류의 클래스 타입으로, 데이터만 저장하는 객체를 간결하고 효율적으로 작성할 수 있게 해주는 기능입니다. Java에서 데이터를 다루기 위해 수많은 getter, setter, toString(), equals(), hashCode() 등의 메서드를 반복적으로 작성해야 하는 번거로움을 크게 줄여줍니다. 이번 글에서는 Java record의 개념과 특징을 살펴보고, 이를 통해 얻을 수 있는 장점과 간단한 코드 예제를 소개하겠습니다.1. record란?record는 불변(immutable) 데이터 객체를 쉽게 정의할 수 있는 데이터 전용 클래스입니다. 이 클래스는 선언하는 즉시 필드와 관련된 getter, equals(), hashCode(), toString()..
효율적인 단위 테스트를 위한 무기! JUnit Parameterized Tests 활용법 단위 테스트는 소프트웨어 품질을 유지하는 데 필수적인 요소입니다. 특히, 여러 입력값에 대해 동일한 테스트를 반복해야 할 때는 Parameterized Tests가 매우 유용한 도구로 활용될 수 있습니다. 이 글에서는 JUnit의 Parameterized Tests에 대해 알아보고, 이를 도입했을 때의 장점과 간단한 코드 예제를 통해 실제로 어떻게 사용하는지 설명하겠습니다.1. Parameterized Tests란?Parameterized Tests는 테스트 메서드를 다양한 입력값으로 반복 실행할 수 있는 기능을 제공합니다. 일반적으로 동일한 로직에 대해 여러 가지 입력을 테스트해야 할 때, 각 테스트 케이스를 개별적으로 작성하는 대신, 파라미터를 지정해 반복적으로 테스트를 수행할 수 있습니다. 이를 통..
Java 21의 새로운 기능 Java 21의 새로운 기능Java 21은 2023년 9월 19일에 출시된 LTS(장기 지원) 버전으로, 이전 버전인 Java 17 이후 새롭게 추가된 여러 기능과 개선사항을 포함하고 있습니다. 이 글에서는 Java 21의 주요 기능을 살펴보겠습니다.1. 개요Java 21은 새로운 기능과 언어 개선을 통해 개발자의 생산성을 높이고 코드의 가독성을 향상시키는 것을 목표로 합니다. 특히, **Java Enhancement Proposals (JEPs)**을 통해 추가된 여러 기능이 주목할 만합니다.2. 주요 기능2.1 레코드 패턴 (JEP 440)Java 21에서 레코드 패턴 기능이 정식으로 도입되었습니다. 이 기능은 레코드 클래스 인스턴스를 구조화해 보다 복잡한 데이터 쿼리를 작성할 수 있게 합니다. 또한..
Zulu JDK: 무료로 장기 지원을 받을 수 있는 최고의 Java JDK Zulu JDK는 Azul Systems에서 제공하는 무료 오픈 소스 JDK(자바 개발 키트)입니다. Zulu JDK는 OpenJDK 기반으로 만들어졌으며, Java SE(Standard Edition) 규격을 준수합니다. 이 JDK는 다양한 운영체제와 플랫폼에서 사용할 수 있으며, 상업적인 용도로도 자유롭게 사용할 수 있습니다.Zulu JDK의 주요 특징상업적 사용 가능: Zulu JDK는 기업에서 상업적으로 자유롭게 사용할 수 있습니다. 이는 상업적 지원이 필요한 회사들에게 유용합니다.장기 지원(LTS) 버전 제공: Azul은 Zulu JDK에 대해 장기 지원(LTS) 버전을 제공하여, 오랜 기간 동안 안정적인 업데이트와 보안 패치를 받을 수 있도록 합니다.다양한 플랫폼 지원: Zulu JDK는 다양..
HikariCP Oracle 데이터베이스와의 커넥션 유효성을 검사 성능 최적화!! oracle.jdbc.defaultConnectionValidation 설정은 HikariCP (JDBC 커넥션 풀링 라이브러리)에서 Oracle 데이터베이스와의 커넥션 유효성을 검사할 때 사용하는 설정 입니다. 기본적으로, HikariCP는 커넥션 풀에 있는 커넥션이 여전히 유효한지 확인하기 위해 여러 방법을 제공합니다. SOCKET: 소켓을 통해 연결 상태를 검사합니다.FAST: 기본적인 유효성 검사로, 연결이 유효한지 간단히 확인합니다.METADATA: 메타데이터를 사용하여 연결을 검사합니다.TABLE: 특정 테이블에 대해 간단한 쿼리를 실행하여 연결을 검사합니다.설정 방법구분내용 SOCKET 위에서 설명한 것처럼, SOCKET은 소켓을 통해 연결 상태를 검사합니다. 이는 네트워크 레벨에서 연결이 ..
ZGC 기본 개념 알아보기 ZGC (Z Garbage Collector)는 Java Virtual Machine (JVM)에서 사용되는 최신의 가비지 컬렉터 중 하나로, 대규모 애플리케이션에서의 낮은 지연 시간과 높은 처리량을 목표로 설계되었습니다. ZGC는 Java 11에 처음 도입되었으며, 계속해서 개선되고 있습니다. ZGC의 주요 특징과 작동 방식을 상세히 설명드리겠습니다.ZGC의 주요 특징저지연(Garbage Collection Pause Time): ZGC는 가비지 컬렉션으로 인한 지연 시간을 매우 짧게 유지하는 것이 특징입니다. 일반적으로 수 밀리초 이내로 유지되며, 이는 대규모 애플리케이션에서 매우 중요한 성능 요소입니다.대규모 힙 지원: ZGC는 테라바이트 단위의 대규모 힙 메모리까지 지원합니다. 이는 대용량 데이터..