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

> Clean Markdown view of GeekNews topic #24012. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=24012](https://news.hada.io/topic?id=24012)
- GeekNews Markdown: [https://news.hada.io/topic/24012.md](https://news.hada.io/topic/24012.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-10-30T09:52:42+09:00
- Updated: 2025-10-30T09:52:42+09:00
- Original source: [minecraft.net](https://www.minecraft.net/en-us/article/removing-obfuscation-in-java-edition)
- Points: 12
- Comments: 1

## Summary

Mojang이 **Minecraft: Java Edition의 코드 난독화를 완전히 제거**하기로 하면서, 오랜만에 진짜 ‘개방형’ 업데이트가 찾아왔습니다. 이제 클래스와 변수명이 그대로 노출된 **비난독화 빌드**가 제공되어, 모더들은 복잡한 매핑 과정 없이 **직접 코드 분석·디버깅·모드 개발**을 진행할 수 있게 됩니다. 이는 단순한 기술적 조정이 아니라, Minecraft가 다시 한 번 **커뮤니티 중심의 개발 생태계**로 회귀하는 상징적 변화로 보입니다.

## Topic Body

- 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 역사상 **가장 개방적인 개발 환경 변화**로,  
  **모드 생태계의 성장 가속화와 교육적 가치 확대**가 기대됨

## Comments



### Comment 45628

- Author: neo
- Created: 2025-10-30T09:52:42+09:00
- Points: 2

###### [Hacker News 의견](https://news.ycombinator.com/item?id=45748879) 
- Minecraft가 이렇게 **강력한 모드 커뮤니티**를 가진 게임이면서도, 개발자들이 난독화된 Java 바이너리를 디컴파일해서 작업했다는 게 놀라움  
  10년 넘게 난독화 해제와 재난독화를 반복하며 툴링을 발전시킨 그들의 **헌신**이 대단함
  - 2004년에 MMO 게임을 **해적 서버**에서 플레이했는데, 서버 운영자가 헥스 에디터로 직접 바이너리를 수정하며 기능을 추가했음  
    마치 영화 *Matrix*의 해커처럼 16진수를 보며 한 글자씩 바꾸던 모습이 인상적이었음
  - 소스 코드 없이도 소프트웨어를 수정할 수 있다는 또 다른 증거임  
    다만 Java는 원래 디컴파일이 쉬워서, 진짜 장벽은 코드 난독화보다 **객체지향 구조의 복잡성**임
  - 사실 2019년부터 Mojang이 공식적으로 **매핑 파일**을 제공하기 시작했음  
    예전처럼 커뮤니티가 직접 만들어 쓰지 않아도 됨
  - Java는 디컴파일이 쉬워서 JVM 코드만 이해하면 금방 손댈 수 있음  
    VM 구조와 **객체 디스패치** 개념만 알면 충분했음  
    초창기 Minecraft 모딩 커뮤니티는 정말 즐거운 곳이었고, 내가 경험한 코딩 중 가장 기억에 남는 순간 중 하나였음
  - 나도 Minecraft에 익숙하지 않아서 공식 플러그인 시스템이 있는 줄 알았음  
    그런데 알고 보니 대부분이 **리버스 엔지니어링**으로 만들어진 생태계였다는 게 놀라움

- Minecraft, Roblox, Geometry Dash, Trackmania 같은 게임은 **커뮤니티의 힘**으로 성공한 사례임  
  엔진이 폐쇄적이거나 개발이 어렵다면 Vision Pro나 메타버스처럼 성장하기 힘듦  
  취미 개발자와 소규모 유저가 쉽게 참여할 수 있어야 커뮤니티가 생김
  - Flight Simulator 시리즈도 거대한 **애드온 생태계**를 만들었음  
    하지만 결국 중요한 건 ‘좋은 게임’ 자체임  
    커뮤니티가 커지면 그중 일부가 자연스럽게 모딩을 시작함  
    예를 들어 Richard Burns Rally는 원래 모딩을 염두에 두지 않았지만, 팬들이 차, 트랙, 온라인 기능까지 추가했음  
    voxel 엔진 [Luanti](https://www.luanti.org/)에서도 비슷한 현상이 나타남
  - Roblox의 초기 **엔진 완성도**는 정말 뛰어났음  
    2006년에 무료로 수천 개의 3D 멀티플레이 게임을 즉시 실행할 수 있었고, 건물 파괴나 지형 변형도 가능했음  
    당시로선 혁신적이었고, 그 단순한 접근성이 결국 어린이 시장을 장악하게 했음
  - Minecraft는 예외라고 생각함  
    알파 버전부터 **싱글플레이 경험**이 훌륭했고, 생존과 창의성의 균형이 완벽했음  
    이미 그 시절에도 수백만 달러의 매출을 올렸음
  - 메타버스가 실패한 또 다른 이유는, 아무도 그걸 원하지 않기 때문임  
    비싼 **VR 헤드셋**을 쓰고 싶어 하는 사람은 거의 없음
  - VR 엔진이 나쁘다는 주장에는 동의하지 않음  
    Unity, Unreal, Godot 모두 VR 지원이 좋음  
    문제는 **개발 비용 대비 사용자 수가 적다**는 점임  
    접근성, UX, 멀미 방지 등 고려할 게 많아서 개발이 훨씬 비쌈  
    예를 들어 6DoF 환경에서 자막을 표시하는 것조차 어려움

- Mojang이 2019년에 공개한 **obfuscation mappings**은 난독화된 이름을 해제해주는 리스트였음  
  덕분에 모더들이 더 이상 모든 코드를 추측하지 않아도 됐지만, 왜 절반만 공개했는지 의문임
  - 많은 모드 툴이 이미 **커뮤니티 명칭 체계**에 맞춰져 있었기 때문임
  - 아마 법무팀이 난독화 해제라는 단어를 듣고 멘붕했을 것 같음
  - 단순히 법적 이유나 **절차적 편의성** 때문이었을 수도 있음
  - 혹시 매핑이 일부 클래스나 메서드만 포함된 **공식 API 형태**였는지도 궁금함

- 언젠가 Minecraft Java Edition을 **GitHub에 오픈소스로 공개**할지 궁금함  
  Skyrim처럼 어떤 플랫폼에서도 계속 팔릴 것 같음
  - 이미 **오픈소스 런처**들이 계정 인증만 주의하면 정상적으로 작동함  
    게임 파일도 Microsoft 서버에서 무료로 받을 수 있어서, 오픈소스화해도 손해는 없을 것 같음
  - 2010년에 Notch가 “판매가 줄면 소스 코드를 공개하겠다”고 약속했었음  
    [당시 웹페이지 아카이브](https://web.archive.org/web/20100301103851/http://www.minecraft.net/about.jsp)
  - Doom처럼 **엔진만 오픈소스화**하는 것도 좋은 방법임  
    예술 자산은 여전히 저작권 보호를 받음
  - 비슷한 대안으로는 Minetest나 Luanti가 있음
  - 지금이라면 소스는 공개하고, **계정 인증 서버 접근권**만 유료로 유지해도 매출에 큰 영향이 없을 것 같음

- 나는 요즘 [Luanti](https://github.com/luanti-org/luanti)에서 작업하는 걸 더 선호함  
  Minecraft와 거의 같은 경험을 모드로 구현할 수 있고, [VoxeLibre](https://content.luanti.org/packages/Wuzzy/mineclone2/) 같은 게임 모드도 있음  
  Lua로 작성된 모드의 소스 코드도 대부분 공개되어 있음  
  특히 [Zoonami](https://content.luanti.org/packages/isaiah658/zoonami/)는 포켓몬 같은 게임 경험을 제공해서 흥미로움
  - Luanti에도 AllTheMods 10이나 Meatballcraft 같은 **대형 모드팩**이 있는지 궁금함
  - Zoonami는 Tuxemon이 이루지 못한 목표를 달성할 것 같음

- Minecraft는 이미 **불법 복제**가 쉬워서, 소스 공개로 인한 손해는 거의 없을 것 같음  
  대부분은 Mojang의 인증 서버를 쓰기 위해 정품 계정을 유지함  
  심지어 비영리 조건을 붙인 **오픈소스화**도 가능할 정도로 규모가 큼
  - 다만 “영리 금지 조항”이 붙으면 진정한 오픈소스가 아니라 **소스 공개(Source Available)** 로 분류됨

- Proguard의 **공격적 난독화**는 클래스 이름을 복잡하게 바꾸고 인라인화까지 해서 코드를 이해하기 어렵게 만듦  
  이번 조치는 그런 점에서 큰 진전임

- 좋은 소식임! Minecraft 모딩 커뮤니티에 **새로운 가능성**이 열림

- 커뮤니티가 만든 매핑은 자유 라이선스였지만, Microsoft의 매핑은 그렇지 않음  
  일종의 **함정**일 수도 있음
  - 하지만 이제 매핑 자체가 사라졌으니, 그 함정이 뭔지 잘 모르겠음
  - 변수명에도 **저작권**이 적용되는지 궁금함

- 진짜로 더 쉽게 만들려면, **모딩 허용 라이선스**로 소스 코드를 공개하는 게 가장 좋을 것 같음
