요즘IT
위시켓
새로 나온
인기요즘 작가들컬렉션
물어봐
새로 나온
인기
요즘 작가들
컬렉션
물어봐
개발
AI
IT서비스
기획
디자인
비즈니스
프로덕트
커리어
트렌드
스타트업
서비스 전체보기
위시켓요즘IT
고객 문의
02-6925-4867
10:00-18:00주말·공휴일 제외
[email protected]
요즘IT
요즘IT 소개작가 지원
기타 문의
콘텐츠 제안하기광고 상품 보기
요즘IT 슬랙봇크롬 확장 프로그램
이용약관
개인정보 처리방침
청소년보호정책
㈜위시켓
대표이사 : 박우범
서울특별시 강남구 테헤란로 211 3층 ㈜위시켓
사업자등록번호 : 209-81-57303
통신판매업신고 : 제2018-서울강남-02337 호
직업정보제공사업 신고번호 : J1200020180019
제호 : 요즘IT
발행인 : 박우범
편집인 : 노희선
청소년보호책임자 : 박우범
인터넷신문등록번호 : 서울,아54129
등록일 : 2022년 01월 23일
발행일 : 2021년 01월 10일
© 2013 Wishket Corp.
로그인
요즘IT 소개
콘텐츠 제안하기
광고 상품 보기
AI

Java는 어디로 가고 있는가: Java 아키텍트가 말하는 Java의 미래

AI입니다만
7분
5시간 전
3.4K

Java 언어 아키텍트인 브라이언 괴츠(Brian Goetz)가 2025년 3월 열린 JavaOne에서 발표한 <Where is the Java language going>라는 제목의 발표를 했습니다. 이 글은 그의 발표 내용을 바탕으로 주요 흐름과 철학을 정리한 것으로, 일부 핵심 문장은 원문 그대로 인용하였습니다. Java의 전반적인 지향점과 방향을 담고 있는데요. 참고로 JAVA25가 올해 9월에 나올 예정이고, 현재 자세한 각 버전별 신규 기능은 inside.java에서 볼 수 있습니다.


"Java는 이제 데이터를 더 잘 다루는 언어가 되려 합니다."

 

Java 언어 아키텍트 브라이언 괴츠는 이렇게 말하며, Java 언어가 나아가고 있는 새로운 방향성을 소개했습니다. 그에 따르면, Java는 객체지향 중심 언어에서 데이터 지향 프로그래밍(data-oriented programming) 언어로의 진화를 추구하고 있습니다. 이번 발표는 특히 두 가지 주요 프로젝트—Amber와 Valhalla—에 초점을 맞췄습니다.

 

Project Amber: 개발자의 생산성을 조금 더 좋게

Amber 프로젝트는 Java의 언어 문법을 현대화하고, 불필요한 반복 작업을 줄이며, 개발자의 생산성을 높이는 데 중점을 둔 프로젝트입니다. 괴츠는 이를 다음과 같이 설명합니다.

 

Project Amber는 ‘언어의 형식(ceremony)을 적정 수준으로 조정한다(right-sizing language ceremony)’는 광범위한 목표를 가지고 있습니다.

 

Amber는 작은 문법 개선부터 시작해, record, sealed Types, pattern Matching 같은 기능을 포함한 장기적인 기능 로드맵을 구성하고 있습니다.

 

발표 중인 브라이언 괴츠 <출처: <Where is the Java language going>>

 

Record: 명확한 데이터 모델링

Java 16부터 도입된 record는 단순히 보일러플레이트 코드를 줄이기 위한 도구가 아닙니다. 괴츠는 말합니다.

 

record의 목적은 깔끔한 의미론적 방법으로 데이터를 모델링하는 것입니다.

 

record는 상태를 기반으로 API, 생성자, 접근자 등을 자동으로 유추하여 구현합니다. 무엇보다 중요한 점은, record는 “데이터 그 자체”이며, 사용자는 의도적으로 API 설계를 단순화함으로써 얻는 이점을 누릴 수 있다는 것입니다.

 

Sealed Types: 선택지를 통제하는 도구

sealed 클래스는 상속할 수 있는 하위 클래스를 명시적으로 제한할 수 있는 기능입니다. 이는 API의 보안성과 예측 가능성을 높이며, 패턴 매칭 시 모든 경우를 다루는지(exhaustiveness) 컴파일러가 검증할 수 있게 합니다.

 

Sealed class는 ‘final’과 유사하지만, ‘이 클래스들만 나를 상속할 수 있다’는 더 유연한 제약을 제공합니다.

 

Pattern Matching: 데이터를 선언하는 새로운 방식

patter matching은 Java에서 조건부 타입 캐스팅 + 추출을 하나의 연산으로 처리할 수 있게 해 줍니다. 예를 들어,

if(x instanceof String s){

   // s는 자동으로 String 타입으로 캐스팅된 변수

}

 

또한 switch 구문도 이에 맞게 대대적으로 개선되어, 타입 기반 분기, 가드 절(guard clause), 표현식으로 사용 등 다양한 방식으로 활용이 가능해졌습니다.

static int eval(Expr e){

    return switch(e){

        case SumExpr(var a,var b)->eval(a) + eval(b);

        case ProdExpr(var a,var b) -> eval(a) * eval(b);

        case NegExpr(var a) -> -eval(a);

        case ConstExpr(var i) -> i;

   };

}

 

이는 Java에서 분기마다 사용되어 피로감을 주던 instanceof의 사용성을 개선하고, 별도의 추출 과정이 반복적으로 발생하지 않도록 만들고자 하는 Java의 새로운 철학을 보여줍니다.

 

더 나아가, record와 함께 활용해 분해(deconstruct)와 생성(constuct)이 대칭적으로 활용되도록 할 수 있습니다.

 

이는 “값을 생성하는 것(construct)”과 “값을 분해하는 것(deconstruct)”을 대칭적인 구조로 구성하려는 Java의 새로운 철학을 보여줍니다.

 

patter matching은 추상화로 인해 생긴 정보 손실을 구조적으로 복원할 수 있는 수단을 제공합니다.

 

Project Valhalla: "클래스처럼 코딩하고, 배열처럼 동작하라"

Valhalla는 Java의 객체 메모리 구조, 기본 타입과 참조 타입의 통합, 성능 최적화를 목표로 한 대형 프로젝트입니다. 이 프로젝트의 핵심은 다음 세 가지입니다.

 

1. Value Class (값 클래스) – JEP 401

값 클래스는 객체의 정체성(identity)을 포기함으로써 VM이 객체를 더 효율적으로 다룰 수 있게 합니다. 예를 들어 Point라는 클래스를 값 클래스로 선언하면, 실제로는 x, y 필드만 레지스터나 연속된 메모리 공간에 직접 배치될 수 있습니다.

클래스를 값 클래스(value class)로 선언하면 VM은 이것을 더 자유롭게 복사하고, 분해하고, 재구성할 수 있습니다.

 

2. Null-restricted types

null 가능성을 명시적으로 표현할 수 있도록 하여, 컴파일러의 검사를 강화하고 런타임 오류를 줄이는 기능입니다. Kotlin의 String?, String!과 유사한 개념입니다.

 

발표 중인 브라이언 괴츠 <출처: <Where is the Java language going>>

 

Java는 이제 데이터 중심 언어가 되려 한다

괴츠는 다음과 같이 선언합니다.

Java는 원래 객체 지향 프로그래밍에 최적화되어 있었지만, 이제는 평범한 데이터(plain data)를 다루는 데 더 강력해질 필요가 있습니다.

 

  • record는 데이터의 집합(AND 관계)을 표현하고,
  • sealed types는 선택지(OR 관계)를 모델링하며,
  • pattern matching은 이 데이터를 분해하고 활용할 수 있게 해 줍니다.

이 세 가지를 합치면 함수형 언어에서 흔히 말하는 대수적 데이터 타입(algebraic data types)의 표현이 Java에서도 가능해집니다.

 

마치며: Java는 변하고 있다

Java의 새로운 기능들은 단순한 문법 개선을 넘어서, 현대적인 프로그래밍 환경에 맞춰 언어 자체의 철학적 기반을 변화시키고 있습니다. 발표를 마무리하며 괴츠는 다음과 같이 말했습니다.

 

이제 우리는 데이터를 구성하는 방법뿐만 아니라, 데이터를 분해하는 방식도 동일하게 표현할 수 있기를 원합니다.

 

개발자들이 보다 선언적이고 오류에 강한 방식으로 코드를 작성할 수 있도록, Java는 더 나은 언어로 진화하고 있습니다. 데이터 중심 시대에 어울리는 Java의 미래를 기대해도 좋을 듯합니다.

 

*이 내용은 JavaOne 2025에서 Brian Goetz가 발표한 세션을 바탕으로 정리되었습니다. 공식 영상과 슬라이드는OpenJDK 및 Oracle Dev 사이트에서 확인하실 수 있습니다.

에디터가 직접 고른 실무 인사이트 매주 목요일에 만나요.
newsletter_profile0명 뉴스레터 구독 중