파이썬 3 로 이사를 시작합니다!

2026-08-25 - 작성자 EVE Online Team

캡슐리어 여러분, 안녕하세요.

EVE Forever 프로젝트를 통해 EVE 는 계속해서 발전하고 있습니다. 그리고 이제 게임의 코드 자체를 주목해 볼 차례가 왔죠!

EVE Online 에서 일어나는 모든 게이트 점프, 시장 주문, 함대 전투의 이면에는 엄청난 수의 파이썬 코드가 작동하고 있습니다. 지난 20 년 이상 뉴에덴을 구동해 온 이 코드가 이제 파이썬 3 로 전환됩니다. 이로써 우수한 툴의 도입으로 버그를 더 빠르게 수정하고, 새로운 콘텐츠를 위한 공간을 확보하고, 장기적으로 한층 더 빠르고 쾌적해진 플레이가 가능해지죠.

이번 마이그레이션의 성공 기준은 명확합니다. 일부 콘텐츠가 이전보다 훨씬 부드럽게 돌아가는 순간을 제외하면, 플레이어 여러분이 변화를 전혀 느끼지 못하도록 하는 것입니다.

이미 많은 분께서 Singularity 서버에서 첫 단계를 함께 테스트해 주셨고, 해당 변경 사항이 오늘 본 서버에 적용되었습니다. 이는 앞으로 나아갈 긴 여정의 첫걸음에 불과하죠.

코드베이스보다 어리신 분들도 계실 겁니다

EVE 는 2003 년 스택리스 파이썬을 기반으로 출시되었습니다. 스택리스 파이썬은 경량화된 ' 태스크릿'을 통해 단일 서버 노드에서 수천 명의 캡슐리어를 동시에 처리할 수 있게 해주는 파이썬 버전입니다. Fenris Creations 는 단순히 스택리스 파이썬을 채택하는 데 그치지 않고, 해당 프로젝트의 핵심적인 역할을 하게 되었습니다.

여러분 중 몇몇은 2007 년 스택리스 파이썬 2.5 로 업그레이드했던 때나, 2010 년 스택리스 파이썬 2.7 로 업그레이드했던 때를 떠올리실지도 모르겠습니다. 이때가 EVE 가 마지막으로 파이썬 버전을 변경한 것이었죠. 파이썬 2.7 은 지난 2020 년에 공식 지원이 종료되었습니다. 모든 소프트웨어가 한 단계 진화하고, 한 세대의 캡슐리어가 태어나고, 학교에 가고, 프리깃을 몰기 시작하는 동안에도 EVE 는 동일한 언어 버전에 머물러 있었습니다. 대대적이고 위험 부담이 큰 마이그레이션을 굳이 감수할 필요가 없을 정도로 이전 버전은 충분히 안정적이었죠. 적어도 지금까지는요.

동일한 버전으로 16 년을 유지했다는 것은 해당 시스템이 얼마나 훌륭하게 작동했는지를 잘 보여줍니다. 카본 엔진 역시 큰 도움이 되었는데요. 이 엔진 역시 이제 한 단계 더 발전했습니다!

왜 파이썬 3 일까요? 그리고 왜 지금일까요?

요약하자면, 파이썬 2 에 머무르는 것은 EVE 의 발전을 계속해서 저해할 뿐입니다. 파이썬 3 로 전환하면 여러분에게 더 안정적이고 쾌적한 게임 환경을 제공해 드릴 수 있죠.

첫 번째 이유는 '성능'입니다. 최근 출시된 파이썬 3 버전들은 파이썬 언어 역사상 가장 큰 폭의 속도 향상을 이루어냈습니다. 시간이 지남에 따라 이는 더 빠르게 작동하는 EVE 를 만들어 줄 수도 있을 것입니다. 구체적으로 어떤 변화로 이어질지 단정하기엔 아직 이르지만요.

또 다른 이유는 '환경'입니다. 최신 라이브러리, 디버거, 프로파일러는 모두 파이썬 3 용으로 개발됩니다. 파이썬 2 에 머무르는 해가 늘어날수록 유용한 툴을 활용하기 어려워지며, 게임 자체를 개선하는 것보다 툴을 유지 보수하는 데 더 많은 시간을 뺏기게 됩니다. 더 뛰어난 툴을 이용할 수 있다면 문제점을 더 빨리 찾아내고 수정할 수 있죠.

파이썬 3 는 언어의 많은 핵심 구성 요소를 단순화합니다.

텍스트가 단일하고 일관된 문자열 타입으로 처리되어 현지화의 안정성이 높아집니다. 정수는 더 이상 임의의 크기 제한을 받지 않으며 필요할 때 자동으로 확장됩니다. 파이썬의 클래스 시스템 또한 하나로 통합되어 레거시 동작이 제거되고, 객체 지향 코드가 더욱 일관성 있게 바뀝니다.

모든 캐릭터, 모든 스킬 포인트, 모든 격납고의 자산, 모든 지갑의 ISK 는 파이썬 2 코드로 작성되었으며, 이 모든 데이터는 파이썬 3 환경에서도 이전과 완벽히 동일하게 읽혀야 하죠.

앞으로의 여정은 험난할 것입니다. EVE 가 멈추지 않고 계속 작동하는 동안 엄청난 수의 코드를 업데이트해야 하지만, 저희는 이 목표를 완수할 수 있다고 믿고 있습니다. 이미 EVE Frontier 가 최신 파이썬 3 기반의 카본 엔진에서 문제없이 구동되고 있기 때문입니다.

Frontier 마이그레이션은 12 개의 파이썬 마이너 버전을 한 번에 커버하며, 하나의 프로젝트로 16 년 분량의 언어 진화를 처리합니다. 한편 Tranquility 서버에는 23 년간 축적된 코드와, 무엇보다 23 년 동안 쌓인 실제 플레이어 데이터, 즉 캡슐리어의 역사가 잠들어 있습니다. 그리고 Tranquility 서버는 매일 24 시간 중 23.75 시간 동안 계속 작동해야 하죠.

조심스럽게… 신중하게…

EVE 의 코드베이스는 240 만 줄의 파이썬 코드로 구성되어 있습니다. 그중 상당수는 파이썬 2.7 보다도 이전의 코드이며, 파이썬 3 에서는 파싱조차 거부하는 파이썬 2.3 및 2.5 시절의 표준으로 작성되어 있습니다.

그러면 240 만 줄의 코드를 어떻게 옮길까요?

아주 신중하게, 그리고 여러 단계로 나누어 진행합니다.

이 단계 중 일부는 파이썬 커뮤니티에서 개발한 툴(예: Python Futurize)을 활용하고, 다른 단계들은 EVE 고유의 특성에 맞춰 진행될 것입니다.

주요 목표에 도달하면 지난 7 월에 진행했던 것처럼 Singularity 서버에서의 플레이테스트를 요청드릴 예정입니다. 이를 통해 업데이트된 시스템이 실제 Tranquility 서버와 유사한 환경에서 어떻게 작동하는지 확인할 수 있죠.

현재 저희가 진행 중인 1 단계는 코드가 여전히 파이썬 2.7 에서 구동되는 동안 파이썬 3 에 호환될 수 있도록 준비하는 작업입니다.

저희는 파이썬 자체에서 이러한 마이그레이션을 돕기 위해 제공했던 코드 재작성 메커니즘(2 에서 3 으로)을 기반으로 구축된 Python-Future 라는 툴을 사용하고 있습니다. 이 툴은 자동화된 '픽서'를 적용하여 구형 패턴을 파이썬 2.7 과 파이썬 3 모두에 호환되는 최신 형태로 재작성합니다.

양쪽 버전에서 모든 코드가 작동하고 나면, 정말 힘든 작업이 시작됩니다. 바로 실행은 되지만 작동 방식이 다른 코드들을 처리하는 일이죠.

산의 높이 측정하기 (그리고 산이 줄어드는 과정 지켜보기)

파이썬 3 까지 얼마나 남았는지 어떻게 알 수 있을까요?

답은 간단합니다. 직접 측정해 보는 것이죠. 약 2 만 개에 달하는 EVE 의 모든 파이썬 파일은 실제 파이썬 2.7 인터프리터와 파이썬 3 인터프리터 양쪽에서 모두 컴파일을 거칩니다. 코드가 정상적으로 파싱되는지 구별하는 확실한 기준은 컴파일러뿐이기 때문입니다.

첫 진단 결과는 뜻밖의 좋은 소식이었는데요. 파일의 95.9%가 이미 두 버전 모두에서 문제없이 컴파일되었습니다. 파이썬 3 에서 거부하는 문법을 사용하는 블로킹 라인은 전체 240 만 줄 중 약 3,300 개에 불과했습니다.

거대한 산인 줄 알았던 과제가 막상 측정해 보니 꽤 나지막한 언덕이었던 셈이죠.

  •  ~ 1,500 개의 구식 print 출력문,

  • ~ 123L 과 같은 800 개의 'long' 정수 리터럴,

  • ~ EVE 가 존재하기도 전에 폐기된 문법 형태의 예외 처리 구문 약 600 개,

  • "동일하지 않다"를 뜻하는 구식 표현인 <> 사용 50 건 (너무 오래된 방식이라 요즘 파이썬 개발자들 중 본 적이 없는 사람도 많을 정도입니다)

앞에 놓인 과제들

파싱은 가장 쉬운 단계에 불과합니다.

진단 스캔 결과에 따르면, 양쪽 버전에서 컴파일은 문제없이 되지만 파이썬 3 에서 다르게 동작하는 코드가 약 20,000 줄 존재합니다. 대표적인 예로 나눗셈이 있습니다. 파이썬 2 에서 1 / 2 는 0 이지만, 파이썬 3 에서는 0.5 입니다.

해당 수치가 피해량, ISK, 혹은 좌표로 연결되는 EVE 세계에선 코드 한 줄 한 줄마다 기계적인 자동 수정이 아닌 개발자의 개입과 판단이 필요합니다. 이것이 바로 1 단계를 먼저 진행하는 이유이자 2단계에서 해야 할 작업이죠. 기계적으로 처리할 수 있는 잡동사니를 먼저 정리해야, 진짜 사람의 손길이 필요한 곳에만 온전히 집중할 수 있으니까요.

이 작업의 의의

단기적으로는 아무런 변화도 없을 것이며, 이것이야말로 저희가 의도한 바입니다. 1 단계의 변화들은 여러분의 눈에 전혀 띄지 않도록 설계되었습니다. 하지만 장기적으로 볼 때, 이는 EVE 의 미래를 위해 해놓을 수 있는 가장 가치 있는 기초 공사입니다. 대규모 함대전과 무역 허브를 처리할 더 빠른 인터프리터, 버그를 더 빨리 찾고 수정할 수 있게 해줄 최신 개발 툴, 그리고 신규 개발자가 훨씬 생산적으로 작업할 수 있게 해줄 코드베이스가 마련되는 셈입니다. 이는 곧 새로운 콘텐츠가 여러분께 더 빨리 제공된다는 것을 의미하죠. 한마디로 EVE Online 의 향후 20 년을 위한 인프라인 것입니다.

도와주셔서 감사합니다

플레이어가 아무런 변화를 느끼지 못하도록 하는 것이 저희의 목표이며, 여기에 가장 큰 도움을 주고 계신 것은 역시 여러분입니다.

7 월 말, 여러분은 Singularity 서버에서 첫 번째 변경 사항을 직접 테스트해 주셨습니다. 참여해 주신 모든 분께 감사드립니다.

이제 이 변경 사항들을 Tranquility 서버에 적용하고 있습니다. 여기서 다시 한번 여러분의 도움이 필요합니다. 평소처럼 게임을 즐겨 주시고, 만약 조금이라도 이상한 점이 느껴진다면 버그 제보를 통해 알려주세요.

추가로 에이전트 미션 백엔드도 파이썬 3 에 맞춰 준비 중이지만, 이 역시 여러분 입장에서는 체감되는 변화가 전혀 없을 것입니다.

이는 긴 여정의 첫걸음에 불과합니다. 잡동사니를 기계적으로 치우는 건 쉬운 부분이었습니다. 코드 한 줄 한 줄을 직접 읽고 검토해야 하는 진정한 과제가 기다리고 있으며, 여기서야말로 여러분의 도움이 절실히 필요합니다.

추후 진행될 테스트 소식도 지속적으로 확인해 주세요. 코퍼레이션 멤버들에게 "제가 EVE 를 파이썬 3 로 전환하는 데 일조했죠"라고 자랑하고 싶은 적이 있으셨다면, 지금이 바로 그 기회입니다!

어떤 파이썬 버전에 계시든, 늘 안전한 비행 되시길 바랍니다.