DevLog

엔지니어링 블로그를 한 곳에서 탐색하고, 최근 발행 흐름을 빠르게 파악할 수 있는 서비스 입니다.

Quick Links

  • Latest Feed
  • Engineering Directory

Support

  • 소개
  • 개인정보처리방침

Contribute

  • 원하는 블로그 추가 (준비 중)
  • Feedback

© 2026 DevLog Inc. All rights reserved.

본 사이트는 공개 RSS 피드를 통해 콘텐츠를 수집하며, 모든 콘텐츠의 저작권은 원저작자에게 있습니다.

Back to Feed
KOEN
Read Original

Contents

Continue Reading

  • More from Netflix
  • Related reads#Java
#Backend

클래스 패스는 백미러 너머로: 모던 자바 개발을 위한 모듈 네이티브 CLI 도구

클래스 패스는 백미러 너머로: 모던 자바 개발을 위한 모듈 네이티브 CLI 도구
01

Summary

클래스 패스는 이제 안녕! 넷플릭스가 공개한 모던 자바용 모듈 네이티브 CLI 'ja'

자바 모듈 시스템을 극대화하여 개발자와 AI 에이전트 모두를 만족시키는 차세대 명령줄 도구 생태계

넷플릭스 JVM 에코시스템 팀이 설계한 차세대 자바 CLI 도구 'ja'와 독립 유틸리티 제품군을 소개합니다. 이 도구들은 자바 표준 모듈 시스템을 프로젝트 사양의 '단일 진실 공급원'으로 격상하여 무거운 빌드 시스템 없이도 현대적인 CLI 경험을 선사합니다. AI 코딩 에이전트와의 매끄러운 통합과 강화된 플랫폼 보안 무결성까지 갖춘 자바 개발의 새로운 방향성을 제시합니다.

  • 01모듈 디스크립터(module-info.java)에 의존성 버전과 메타데이터 정보를 직접 통합하여 단일 파일로 빌드 구조 간소화
  • 02AI 에이전트가 인덱싱, LSP, MCP 없이도 자바 소스 코드와 심볼을 빠르게 탐색하도록 지원하는 초경량 CLI 검색 도구 'jist' 도입
  • 03메이븐(Maven) 저장소의 도메인 기반 네임스페이스와 모듈 이름을 정밀 매핑하는 지능형 검색 메커니즘 활용
  • 04최신 JDK의 보안 지향점인 'Integrity by Default'에 발맞춰 런타임 최종 필드 변경 등의 권한 승인을 모듈 단에서 강제 정의
  • 05어노테이션 프로세싱을 불투명한 자동 동작 대신 가시적인 명시적 코드 생성 단계로 분리하여 코드 리뷰 투명성 극대화

+RECOMMENDATION

자바 모듈 시스템(JPMS) 도입에 주저하고 있었거나, 거대한 IDE를 켜지 않고도 터미널 환경이나 AI 에이전트와의 협업에서 번개처럼 빠른 빌드와 심볼 검색을 원하시는 자바 백엔드 개발자 및 플랫폼 엔지니어분들께 적극 추천합니다.

The Problem

전통적인 자바의 클래스 패스 방식과 거대한 빌드 도구 모델은 현대적인 CLI 환경이나 AI 코딩 에이전트가 프로젝트 의존성, 문서, 소스 코드를 원활하게 식별하는 데 걸림돌이 되었습니다. 또한 런타임 시 불투명한 접근 제어로 인해 최신 JDK 버전이 지향하는 '기본 무결성(Integrity by Default)' 제약을 명확하게 준수하기 어려운 한계가 있었습니다.

The Solution

넷플릭스는 자바 모듈 시스템(JPMS)을 확장하여 모듈 디스크립터 자체를 프로젝트의 완전한 명세서로 활용하는 CLI 오케스트레이터인 'ja'와 핵심 작업을 수행하는 개별 독립형 도구 패밀리(jig, jfmt, jist, jdocserver)를 개발했습니다.

The Result

모듈 내에 의존성 버전 정보를 통합하고 런타임 권한 요구 사항을 명시적으로 선언 및 승인하도록 강제함으로써 빌드 과정을 단순화하고 보안 무결성을 확보했습니다. 또한 별도의 무거운 인덱싱 없이도 소스 기호와 문서를 신속하게 찾을 수 있어 개발자와 AI 개발 에이전트의 생산성이 크게 개선되었습니다.

Trade-off

메이븐 센트럴 저장소의 수많은 레거시 라이브러리 중 절반 이상이 아직 공식 모듈 정의를 제공하지 않아 네임스페이스 기반의 캐노니컬 매핑 및 휴리스틱 검색에 의존해야 합니다. 또한 온전한 혜택을 누리기 위해서는 라이브러리 개발자가 명시적으로 모듈을 정의하고 분할 패키지(split package) 구조를 회피해야 하는 수고가 따릅니다.

03

Key Concepts

Concept · 01

Java Module System (JPMS)

자바 9부터 도입된 공식 모듈화 규격으로, 패키지를 모듈 단위로 그룹화하여 강력한 캡슐화와 명확한 의존성 정의를 보장하는 플랫폼 아키텍처입니다.

  • Netflix 'ja' 도구 세트는 JPMS의 모듈 디스크립터를 활용하여 프로젝트 빌드와 버전 정보를 하나로 명시합니다.
  • 클래스 패스를 배제하고 엄격한 모듈 경로(Module Path) 위주의 모던한 자바 생태계 사용을 제안합니다.
Concept · 02

Integrity by Default

자바 플랫폼이 최신 JDK 버전들에서 지향하는 보안 강화 조치로, 허용되지 않은 내부 API 접근이나 리플렉션을 통한 final 필드 변조 등을 런타임에 기본적으로 제한하는 정책입니다.

  • ja는 런타임 시 프레임워크가 요구하는 권한과 애플리케이션의 최종 명시적 승인을 코드 메타데이터 수준에서 검증합니다.
  • 의도하지 않은 권한 탈취나 위험한 우회 접근을 차단하여 자바 애플리케이션의 런타임 안전성을 제고합니다.
Concept · 03

jist

별도의 언어 서버(LSP) 구동이나 디렉터리 인덱싱 없이도 자바의 클래스 파일과 연계 소스 코드의 심볼을 빠르게 탐색할 수 있는 grep 스타일의 소스 인식 도구입니다.

  • AI 코딩 에이전트가 로컬 자바 소스 환경을 빠르게 이해하고 코드를 정밀하게 이해할 수 있도록 돕습니다.
Continue reading · same source

NetflixMore from Netflix

View all posts from Netflix
  • MAPS: 넷플릭스의 대규모 멀티모달 에셋 개인화

    CLIPMediaFMRecommendation Systems
    3주 전
  • 두 개의 플링크 오토스케일러 이야기

    Apache FlinkAutoscalingStream Processing
    4주 전
  • 넷플릭스가 실시간 분산 그래프를 구축한 방법과 이유: 3부 — gRPC 실행 API를 통한 그래프 쿼리

    gRPCGraph DatabaseDistributed Systems
    1개월 전
  • 분석을 위한 디바이스 사양 모델링

    Data ModelingFeature ManagementAnalytics
    1개월 전
  • GenRec: 넷플릭스의 LLM 네이티브 추천 시스템을 향하여

    LLMRecommendation SystemContext Engineering
    1개월 전

Related reads#Java

Explore #Java
우아한형제들·ArchUnit

문서로만 지키던 아키텍처 규칙, 테스트 코드로 강제하기

#Java1주 전
여기어때

NPE 하나를 팀의 방어 체계로 바꾸기까지

#Java1개월 전
NAVER D2·CSS

FE News 26년 8월 소식을 전해드립니다.

#Java1개월 전
여기어때·Kafka

실패한 메시지는 어디로 가야 할까?- Kafka Retry/DLT 설계와 운영에서 밟은 3가지 함정

#Java1개월 전
무신사·Java Flight Recorder

의심했던 범인은 알리바이가 있었다.

#Java2개월 전

Source

Netflix
Netflix
Engineering Blog

Published · September 18, 2026

Topics

JavaJPMSCLINetflixBuild Tools