Minecraft Java 에디션에서 코드 난독화 제거 발표

2 days ago 7

  • Mojang이 Minecraft: Java Edition의 난독화를 완전히 제거한다고 발표
  • 난독화는 게임 산업에서 일반적인 보안 관행이었으나, 코드 접근성과 모드(mod) 개발에 제약을 주는 요소였음
  • 기존에는 클래스·함수·변수명이 모두 난독화되어 모드 개발과 디버깅이 복잡했으나, 이제 원본 코드 이름을 포함한 빌드를 제공함
  • Mounts of Mayhem 업데이트 이후 첫 스냅샷부터 난독화가 사라지며, 기존 툴 호환성을 위해 한동안 난독화·비난독화 버전을 병행 배포
  • 이번 변경으로 모드 개발, 코드 분석, 충돌 로그 해석, 버그 수정이 한층 쉬워질 것으로 기대됨

Minecraft 코드 난독화의 역사

  • Java Edition은 출시 초기부터 소스코드 보호를 위한 난독화를 사용해왔음
    • 코드 내부의 클래스, 함수, 변수명이 의도적으로 무의미한 문자열로 변환되어 공개되지 않았음
    • 이로 인해 모더들은 각 코드의 역할을 수작업으로 분석해야 했음
  • 2019년부터 Mojang은 이를 완화하기 위해 난독화 매핑 파일(obfuscation mappings) 을 공개
    • 난독화된 이름을 원래 의미의 이름으로 연결해주는 매핑 리스트 제공
    • 덕분에 모더들이 코드 구조를 이해하기 쉬워졌지만, 여전히 중간 과정이 존재했음

난독화 제거 결정

  • Mojang은 난독화 자체를 제거하여 중간 과정을 완전히 없애기로 결정함
    • “Mounts of Mayhem” 완전 출시 이후 첫 스냅샷부터 적용
    • 향후 모든 버전에서 변수명·필드명·클래스명 등 원래 이름이 포함된 코드가 기본 제공됨
    • 개발자와 모더들이 직접적인 코드 접근과 수정이 가능해짐
  • 이는 Java Edition의 개방성을 높여 모드 생태계의 장벽을 낮추는 조치로 해석됨

모더를 위한 전환 단계

  • Mojang은 기존 툴의 호환 문제를 고려해 전환기를 마련함
    • 다음 스냅샷부터 비난독화 실험 버전(experimental release) 을 함께 배포
    • 모더들은 새로운 코드 구조에 맞게 툴과 워크플로우를 사전 테스트 가능
    • 이후 완전 전환 시 기존 난독화 버전은 중단될 예정임
  • 첫 번째 완전 비난독화 버전은 Mounts of Mayhem 출시 이후의 첫 스냅샷

변경의 목적

  • Mojang은 “모딩은 Java Edition의 핵심”이라 밝히며, 난독화는 그 성장을 방해했다고 설명
    • 복잡한 코드 해독 없이 빠르게 모드 제작·업데이트·디버깅이 가능해짐
    • 충돌 로그의 가독성 향상으로 문제 해결 속도도 개선
    • 모더 간 협업과 학습 과정 또한 단순화될 것으로 기대

라이선스 및 법적 지침

  • 이번 변화는 EULA나 Usage Guidelines에는 영향을 주지 않음
    • 여전히 Minecraft 및 모드 제작자는 해당 규정을 준수해야 함
    • 각 jar 파일에는 EULA로 직접 연결되는 LICENSE 파일이 포함됨
  • 앞으로의 변경 사항:
    • 버전 .json에서 난독화 매핑 정보 제거
    • 클라이언트/서버 jar 파일 모두 비난독화 상태로 제공
    • 각 jar에 새로운 LICENSE 파일 포함

향후 방향

  • Mojang은 “투명한 미래로의 전환”이라 표현하며, 커뮤니티 피드백을 적극 수집 예정
  • 난독화 해제는 Minecraft Java Edition 역사상 가장 개방적인 개발 환경 변화로,
    모드 생태계의 성장 가속화와 교육적 가치 확대가 기대됨

Read Entire Article