@wzyns이커머스 서비스를 개발하는 주니어 백엔드 개발자.

  • Java AOT 컴파일

    August 28, 2025

    Java 버전별 AOT(Ahead-of-Time) 컴파일 지원 현황

    Java의 AOT 컴파일(Ahead-of-Time Compilation)은 자바 바이트코드를 네이티브 코드로 미리 컴파일하여 애플리케이션의 시작 속도를 높이고, 특정 환경에서의 성능을 개선하기 위한 기능입니다. Java 버전별로 AOT 지원 현황과 변화는 다음과 같습니다.

    Java 9 ~ Java 16: 실험적 AOT 컴파일러(jaotc) 도입 및 제거

    • Java 9
      • JEP 295: Ahead-of-Time Compilation
      • jaotc라는 실험적 AOT 컴파일러가 도입됨.
      • Graal 컴파일러 기반으로, 일부 플랫폼(주로 Linux/x64)에서만 지원.
      • 명령어 예시:
        jaotc --output libHelloWorld.so HelloWorld.class
    • Java 10 ~ Java 16
      • AOT 컴파일러가 계속 실험적 기능으로 유지됨.
      • 실제로는 제한적 환경에서만 사용되고, 널리 활용되지 않음.
    • Java 16

    (read more)

  • JDK 25

    August 28, 2025

    2025년 9월 16일, JDK 25 출시를 앞두고 있다. 2023년 9월 JDK 21 출시 이후 2년 만의 LTS 버전이다.

    https://openjdk.org/projects/jdk/25

    (read more)

  • Kafka 파티셔너

    August 07, 2025

    사용자의 ID를 키값으로 지정해 카프카 메시지를 발행하고 있었는데, 같은 사용자에 대한 메시지가 서로 다른 파티션에 할당되는 것을 발견했다. 내 짧은 배경 지식으로는 메시지의 키값의 해시 기반으로 파티션을 정하기 때문에, 키값이 동일한 두 메시지는 반드시 같은 파티션에 할당되어야 했다. 원인을 찾는 중 카프카에서 사용하는 몇가지 파티셔너의 동작에 대해 알게 되었다.

    카프카의 파티셔너

    • 기본 파티셔너
    • 라운드-로빈 파티셔너
    • 유니폼 스티키 파티셔너
    • 커스텀 파티셔너

    (read more)

© 2025 wzyns