티스토리 뷰

본 게시물을 다음 원본 게시물을 한국어로 번역함과 동시에 필자의 약간의 편집이 가미되어 있음을 알립니다.
원문: https://pythonspeed.com/articles/stop-using-python-3.8/

 

이제 3.8 버전을 보내줄 때가 되었다.

2.5 버전이었나 2.7 버전이 메인으로 사용되었을 때 Python을 처음 접하고 공부했었는데 이제 벌써 3.8이 EOL라니.. 충격이다...

 

Python 3.8 버전은 19년 10월 14일에 릴리즈 되어 5년 동안 지원되었고, PyPI 패키지 다운로드 통계 사이트에 따르면 24년 12월 기준 아직까지 10%의 다운로드 비율을 보이며 꽤나 많은 사용량을 보이고 있다.

PyPI 통계사이트에 나온 다운로드 비율

 

그럼에도 불구하고, 업그레이드를 미룰 수 없다.

EOL 되면 뭐가 바뀌는 것....?

PEP 569에는 다음과 같은 내용이 있다.

  • 릴리즈 후 첫 2년 동안에는 2개월마다 버그수정 및 보안 수정 릴리즈가 있었다.
  • 그 이후로는 보안 수정이 필요할 대만 릴리즈가 이루어졌다.
  • 3.8 버전이 출시된 지 5년 후에 릴리즈가 중단되고 end-of-life phase에 도달한다.
  • 3.8.20은 마지막 보안 릴리즈이다.

즉, 앞으로 Python 3.8의 릴리즈는 더 이상 없다. 보안 버그가 발생하더라도 Python 개발팀에서는 이를 수정하지 않을 것이다. 하지만 우리에게 보안 수정은 필수적이다.

LTS Linux 쓰고 있어서 괜찮아요!

물론 일부 Linux 배포판은 보안 버그 수정을 포함해서 일정 기간 동안 장기지원을 보장하는데, 이런 경우 Python3.8에 대한 보안 수정을 제공하긴 한다. 따라서 이론적으로는 당장 3.9 버전 이상으로 업데이트를 하지 않아도 무방하다.

 

하지만 실제로는 주의해야 하는 것이 Linux 배포판이 모든 보안수정을 제공하지 않고, 보안수정이 있다 한들 무한히 지속되지도 않는다. Python에서 릴리스한 모든 보안수정을 Linux 쪽으로 백포팅 하지 않은뿐더러 Ubuntu 20.04는 25년 4월이면 보안 업데이트가 종료된다.

패키지 의존성도 문제가 발생한다.

서드파티 라이브러리와 프레임워크는 이미 3.8 버전의 지원을 중단하기 시작했다. 이는 라이브러리나 프레임워크에 중요한 버그가 있어서 수정 사항이 있어도 3.8 버전에서는 제공이 안된다는 뜻이다. 그리고 Linux LTS에서도 Python 라이브러리에 대한 백포팅일 제공하지 않는다는 것을 의미한다.

 

AI, 데이터 사이언스 분야에서 사용하는 Numpy와 Pandas는 이제 3.8을 지원하지 않고 있고, Web 프레임워크인 Django 5점대 버전은 3.8을 지원한 적도 없습니다.

패키지 명 Latest 버전이 3.8을 지원하는가? 3.8 버전을 지원하는 마지막 릴리즈
NumPy 아니오. 22년 12월
Pandas 아니오. 23년 6월
Django 5.x 아니오. 지원한 적 없음.

 

그래도 업그레이드하기 싫으세요?

하지만 해야 합니다. 업그레이드 프로세스가 내가 속한 조직에 없다면 도입하는 것을 고려해야 합니다. 이제 Python 버전 업그레이드는 큰 일회성 이벤트로 수행하는 것이 아니라 매년 지속적으로 수행해야 하는 요구사항이다. 매년 새로운 Python버전이 릴리즈 될 예정(K8s가 그렇던데.. 유행인가...)이고, 그럴 때마다 이전 버전의 Python은 지원이 종료될 것이다.

 

따라서 앞으로 매년 레거시 버전의 Python에서 한 단계씩 업그레이드하면서 버그를 수정하는 프로세스는 조직차원에서 도입하고 정기적으로 수행되어야 할 것이다.

 

개인적으로 3.11버전 이상으로 업그레이드 하기를 권장하는데 이는 3.9버전에서 3.13버전까지 변경사항을 정리하는 게시글에서 이유를 공개하도록 하겠다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함