IntelliJ로 유명한 젯브레인(JetBrains)에서

25년 8월에 발표한 "The State of Python 2025)라는 보고서(설문조사)를 살펴보면

상당히 다양한 버전의 Python이 사용되고 있다는 것을 알 수 있다.

 

 

많은 사용자(15%)가 3.13 버전 이상의 최신 Python 버전을 사용하고 있지만,
1년 이상 오래된 버전을 사용하고 있을 가능성이 훨씬 더 높다(83%).

그런데, 이렇게 오래된 버전의 Python을 사용해도 괜찮은걸까?

 

 

▶ Status of Python versions (2025.10.25 기준)

- 가끔 아직도 2.x 버전 Python을 사용하는 경우를 최근에도 보는데, 보안을 생각하면 정말 위험한 선택이다

- 문제는 이제는 3.9 버전 이하도 모두 보안 패치도 끝난 end-of-life 버전이라는 것이다.

 

 

 

▶ Supported versions (2025.10.25 기준)

- 현재 시작하는 프로젝트라면 최소한 3.10 버전 이상을 사용해야 하고

  가급적이면 3.12 버전 이상을 사용하는 것이 그나마 조금 안전한 선택이지 않을까 한다.

 

 

 

▶ Release Compatibility Matrix (w/ PyTorch)

- support 기간 뿐만 아니라 호환성도 고려하면서 버전을 선택해야 한다.

- 사용하고자 하는 PyTorch 버전에 따라서 호환되는 Python 버전이 따로 있다.

 

 

 

▶ Python Downloads

- Python 설치를 위한 다운로드 페이지를 보면 다양한 버전과 배포판을 볼 수 있다.

 

 

 

안정성 등을 고려해서 최신 버전을 기피하는 개발자가 많은데,

최근 버전의 Python을 선택하면 성능에서도 많은 장점이 있고 유용한 여러 feature들이 있으니 한 번 고려해보기 바란다.

 

 

[ 출처/참고 ]

- https://blog.jetbrains.com/pycharm/2025/08/the-state-of-python-2025/ 

- https://devguide.python.org/versions/

- https://github.com/pytorch/pytorch/blob/main/RELEASE.md#release-compatibility-matrix

- https://www.python.org/downloads/

반응형

최근 software version을 살펴보면 1.x 버전을 넘어서는 것들을 보기 힘들다.

 

꼰대 아재가 알고 있는 기존 상식으로

외부에 출시하려면 1.0 version을 찍어야 하는데 말이다.

 

v0.1 이면 `이제 막 만들기 시작했군~`

v0.9 이면 `오~! 이제 곧 출시를 앞두고 있군~`

v1.0 이면 `축하! 축하! 이제 출시했네~`

v1.1 이면 `출시하자마자 발견한 버그들 fix 했구만~`

 

뭐 이런 식이었다.

 

 

하지만, 최근 트렌드는 `zero based versioning scheme` 이다!

 

 

https://0ver.org

 

 

software version에 대해서 최근 별 생각이 없었는데,

위 사이트를 발견하고는 `아~!! 그렇군~!!` 하면서 무릎을 탁! 치게 되었다. (너무 아재스러운 표현인가?!)

 

 

가장 대표적인 software versioning scheme은 다음의 3가지 방식이다.

 

① Semantic Versioning (https://semver.org/)

  - 전통적인 방식의 versioning scheme 이다.

    . 호환되지 않는 API 변경이 있으면 major version 올리고

    . 호환되는 기능 추가이면 minor version 올리고

    . 버그 수정했으면 patch version 올리는 방식

 

② Calendar Versioning (https://calver.org/)

  - Ubuntu, Unity 등에서 채택한 날짜를 기본으로하는 versioning scheme

    . Ubuntu : YY.0M.MICRO (20.04 - 2020년 04월)

    . Unity : YYYY.MINOR.MICRO (2020.1.0 - 2020년)

 

③ Zero(0) based Versioning (https://0ver.org)

  - 규칙은 간단하다. 1 버전이 넘어가지 않으면 된다.

    . React Native : 0.65.0-rc.4 (6.4년째)

    . scikit-learn : 0.24.2 (11.6년째)

 

 

 

최근 유행이 ③번이라는 것은 대부분의 개발자들이 동의할 것이다.

 

 

 

그러면, 대체 왜 0ver(ZeroVer) 방식이 유행을할까?

 

안타깝게도 위 사이트(https://0ver.org)에서 그 이유를 명시적으로 설명해주지 않는다.

 

그러면 개인적으로 그 이유를 상상해볼 수 밖에 없는데...

 

 

1. 예전에는 완성된 제품을 출시하는 방식으로 software를 생각했지만,

   인터넷의 발달로 connected world가 되었기에 언제든 업데이트할 수 있는 환경을 갖췄고

   그래서 이제는 software를 완성된 제품으로 바라보기 보다는

   버그가 좀 있더라도 일단 출시하고, 문제점을 발견하면

   빨리 고쳐서 업데이트 하면 된다고 생각하기 시작했고

   그래서 부담스러운 major version 체계보다는 0-based version 체계를 택한 것이 아닐까?!

 

2. 앞의 맥락과 같은 내용일 수도 있는데,

   기존에는 major version 출시를 하나의 큰 마케팅 포인트로 보았고, 하나의 완제품으로 보았기에

   자동차 모델 하나를 출시하는 것과 유사하게 여겼고 그렇기에 지속적인 지원을 해줘야 했다.

   그렇기에 다음 major version을 출시하게 되었더라도 (새로운 모델 출시)

   기존 major version에 대한 지원을 계속 해줘야 하는 어려움이 있었다.

   하지만, 0-based version 체계에서는?! 안해줘도 될 것만 같은...

 

3. version up을 한다는 것의 의미를 생각해봐야 한다.

   새로운 기능을 추가하거나, 버그를 고치거나, 보안상 이슈가 있는 것을 해결해 나가는 과정이다.

   그렇다면 과거 버전을 유지하는 것이 의미가 있을까?

   물론 여러가지 이유로 기존 버전의 필요성이 있을 수는 있겠지만

   중요한 것은 latest version 이다.

   그렇다면, 기존 version scheme 보다는 0-based version이 오히려 적합하지 않을까?!

 

 

재미있는 사이트를 찾게 되어

그냥 이런 저런 생각을 해봤다.

 

 

PS. 아! 노파심에서 말하지만 위 홈페이지의 about을 꼭 확인해보기 바란다!!! (0ver 추천 홈페이지가 아니다!!!)

반응형

'소프트웨어' 카테고리의 다른 글

Adobe Photoshop Lightroom v1.3  (0) 2007.11.20
freemind v0.8.0  (0) 2006.08.31

+ Recent posts