에쓰디드림의 블로그

에쓰디드림이 운영하는 티스토리 블로그!!

마인크래프트/마인크래프트 뉴스

[마인크래프트] 자바 에디션에서 난독화 제거

에쓰디드림 2025. 10. 30. 15:38
반응형
[마인크래프트] 자바 에디션에서 난독화 제거

이것이 우리 모딩 커뮤니티에 의미하는 바


목차
1. 본문
2. 마무리

1. 본문

자바를 수정하거나, 빌드를 손보거나, 마인크래프트 코드를 심층적으로 분석하는 것을 좋아하시나요? 그렇다면 이 글이 바로 당신을 위한 것입니다!  

오랫동안 자바 에디션은 게임 업계에서 흔히 사용되는 난독화(코드 일부 숨기기)를 사용해 왔습니다. 이제 저희는 마인크래프트 자바 에디션의 배포 방식을 변경하여 난독화를 완전히 제거합니다. 이러한 변경을 통해 마인크래프트 자바 에디션에서 모드를 더욱 쉽게 제작, 업데이트 및 디버깅할 수 있는 미래를 열어갈 수 있기를 바랍니다. 

반응형

모호한 역사

마인크래프트 자바 에디션은 출시 이후 난독화되어 왔습니다. 이 난독화로 인해 사람들은 소스 코드를 볼 수 없었습니다. 대신 모든 것이 뒤죽박죽이 되었고, 자바 에디션을 수정하려는 사람들은 코드의 모든 클래스와 함수가 어떤 역할을 하는지 일일이 조각조각 맞춰야 했습니다. 

하지만 저희는 마인크래프트와 마인크래프트 모두에서 사람들이 창의력을 발휘하도록 장려합니다. 그래서 2019년에 "난독화 매핑"을 출시하여 이 지루한 과정을 조금 더 쉽게 만들고자 했습니다. 이 매핑은 기본적으로 난독화된 용어와 난독화되지 않은 용어를 매칭할 수 있는 긴 목록이었습니다. 이를 통해 모더들이 모든 것이 무엇을 하는지, 또는 더 이상 무엇이라고 불러야 하는지 고민할 필요가 없어져 문제가 다소 완화되었습니다. 하지만 왜 거기서 멈추었을까요?  

 

자바 에디션에서 난독화 제거 

작업을 더욱 간편하게 하고 이러한 중간 단계를 제거하기 위해, 저희는 난독화 기능을 완전히 제거합니다! 대혼돈의 탈것 정식 출시 후 첫 번째 스냅샷부터 마인크래프트 자바 에디션의 난독화를 더 이상 사용하지 않습니다. 즉, 이 빌드(및 향후 모든 빌드)에는 기존 이름*(변수 이름 및 기타 이름 포함)이 기본적으로 포함되어 모딩이 더욱 쉬워집니다. 

 
*본문에서 언급된 '이름'은 변수, 필드, 메서드, 클래스 등 코드 구성 요소의 기술적 명칭을 의미합니다.

간편 가이드

 

이것이 모더에게 의미하는 바

이러한 변경 사항이 일반적으로 난독화된 코드용으로 설계된 기존 모딩 도구에 어려움을 초래할 수 있음을 인지하고 있으며, 모더들이 이러한 변경 사항에 대비할 수 있도록 지원할 것입니다. 다음 스냅샷부터는 난독화된 버전과 함께 난독화되지 않은 "실험적 릴리즈" 버전을 제공할 예정입니다. 모더들은 난독화되지 않은 버전으로 완전히 전환하기 전에 이러한 버전을 사용하여 도구와 워크플로를 테스트할 수 있습니다. 

대혼돈의 탈것이 완전히 출시된 후 공개되는 첫 번째 스냅샷은 난독화가 적용되지 않은 첫 번째 버전이 될 것입니다.  

 

왜 우리는 이런 일을 하는가?

모딩은 자바 에디션의 핵심이며, 난독화는 모딩을 더욱 어렵게 만듭니다. 난독화를 제거하는 이번 변경 사항은 모더들이 모드를 더 빠르고 쉽게 만들고 개선할 수 있도록 해주기 때문에 매우 기쁩니다. 이제 까다로운 코드를 풀거나 불분명한 이름을 다룰 필요가 없습니다. 게다가 디버깅이 더욱 간편해지고 충돌 로그도 읽기 쉬워집니다!  

 

EULA 변경 사항 없음

간단히 알려드립니다. 이번 변경 사항은  마인크래프트 최종 사용자 라이선스 계약  및  마인크래프트 사용 지침에는 영향을 미치지 않습니다. 두 가지 모두 마인크래프트 자바 에디션 및 모든 모드에 계속 적용되므로 유의하시기 바랍니다. 더욱 명확한 이해를 위해, 이제 jar 파일 내부에 EULA로 바로 연결되는 LICENSE 파일이 추가되었습니다. 

모더들이 다가올 릴리즈와 스냅샷에서 기대할 수 있는 내용은 다음과 같습니다.

 

  • 버전 .jsons에서는 더 이상 난독화 맵이 필요하지 않으므로 더 이상 난독화 맵이 없습니다.
  • 클라이언트 및 서버 .jar 파일은 난독화되지 않습니다.
  • 이제 각 .jar에 새로운 LICENSE 파일이 포함됩니다. 

 

모든 릴리즈와 마찬가지로, 우리는 이 변경 사항에 대한 여러분의 피드백을 원합니다. 특히 모호한 과거에서 새롭고 더 투명한 미래로 전환하는 시점에 더욱 그렇습니다!  


2. 마무리

오늘 이렇게 자바에서 난독화가 사라졌다는 소식 전해드렸습니다.

 

사실 일반 사용자 입장에서는 크게 중요한 소식은 아니긴 합니다만, 모드 개발이 더 순조로워져 모드 제작자들 입장에서는 환호할 소식이지 않나 싶습니다.

 

일반 사용자들 입장에서도 간접적인 이득이 있긴 하죠. 모더들이 모드들을 비교적 더 쉽고 간편하게 만들어서 보다 더 다양한 모드들이 늘고, 기존에 개발 기간이 오래걸려서 정식 릴리즈가 되어도 그 모드 하나 기다리느라 승계를 못하는 문제가 어느정도 해소가 되지 않을까 하고 기대는 하고 있습니다.

 

자바 에디션의 난독화 해제가 어떤 결과를 낳을지는 지켜볼 문제입니다. 정황상 2026년 1월 부터 시작될 1.21.12 혹은 1.22 스냅샷 부터 이러한 점이 반영된다고 하니 2026년~2028년 사이에 이러한 정책의 결과가 어느정도 윤곽을 드러내겠죠.

 

그럼 전 에쓰디드림이었고, 다음 시간에 찾아뵙도록 하겠습니다.


 

반응형