Python 소개
Python 언어의 역사 및 배경
Python: The Documentary | An origin story
- Python의 탄생 배경
- 네덜란드 Centrum Wiskunde & Informatica (CWI)의 ABC 프로젝트에서 시작
- ABC 프로젝트는 초보자도 쉽게 배우고 사용할 수 있는 언어를 목표로 했으나, 1985년 출시 후 인터넷 부재로 대중에게 알려지지 못하고 중단됨
- 프로젝트의 일원인 Guido van Rossum은 ABC 프로젝트의 원칙을 바탕으로 1989년 크리스마스 휴가 동안 자신만의 프로그래밍 언어를 설계
- ABC로부터 들여쓰기를 통한 문장 그룹화 등 주요 특징을 차용했음.
- 코미디 쇼 “Monty Python”에서 이름을 따 Python이라고 명명함.
- CWI는 Python의 오픈소스 배포를 허용

- Python 커뮤니티의 성장과 주요 전환점:
- 인터넷의 확산은 Python 배포를 용이하게 했고, 커뮤니티가 “큰 가족처럼” 성장하기 시작했습니다.
- 1994년 11월 메릴랜드에서 열린 첫 워크숍은 Python 커뮤니티의 시작
- CNRI (Corporation for National Research Initiatives)는 Guido를 고용하여 Python 개발에 전념
- Guido van Rossum은 “자비로운 종신 독재자(Benevolent Dictator for Life, BDFL)”라는 리더십 모델을 채택하여 언어의 방향을 결정
- 2018.7.12 walrus operator 추가 후 격렬한 비난으로 사임
- 이후 5인으로 구성된 “스티어링 위원회(Steering Council)” 모델을 채택
- Tim Peters가 작성한 “Zen of Python”은 Python의 철학을 담아냈음
- Python Software Foundation (PSF)이 설립되어 Python의 독립성을 보장하고 커뮤니티를 지원했음
- Python 2에서 Python 3으로의 전환
- 2007년 Python 3.0 출시 시 하위 호환성을 깨는 변화로 인해 커뮤니티의 강한 저항에 부딪힘
- Python 3.4/3.5 이후 새로운 기능과 Dropbox, Instagram 등 대기업의 성공적인 전환 사례가 확산에 큰 영향을 미쳤음
- Python 2.7의 보안 지원 중단 되어, 10년이 넘는 대장정 끝에 2020년 전환이 완료되었음
데이터 사이언스와 Python
- 2009년에서 2010년경부터 “데이터 사이언스”가 하나의 분야로 부상하기 시작하면서, Python은 이러한 데이터 과학 작업에 “잘 포지셔닝”되어 엄청난 수의 새로운 사용자를 유입
- 당시에는 “데이터 사이언스”이라고 불리지는 않았지만, 데이터 처리, 모델링, 예측 분석과 같은 작업들이 Python을 통해 이루어졌음
- 대기업이 비즈니스 데이터 처리 및 예측 분석에 Python을 사용하기 시작하면서 단순한 “값싸고 무료인 대안”이 아닌 메이저 언어로 인정받게 되었음
- 핵심 라이브러리 및 생태계의 발전
- Python은 과학 및 공학 분야(수치 커뮤니티)에서 “고성능 행렬 연산”을 제공하며 이미 유용성을 증명하고 있었음
- NumPy와 같은 라이브러리의 등장은 이 분야에서 Python의 입지를 강화하는 데 결정적인 역할을 했음
- 이후 SciPy, Numba, Pandas 등 방대한 도구 모음이 개발되어 Python의 과학 및 데이터 스택을 더욱 풍부하게 만들었음
- 이러한 데이터 라이브러리들은 종종 C++ 또는 Fortran과 같은 기본 언어를 기반으로 하여 복잡하지만 고성능의 작업을 수행할 수 있게 함
- Anaconda 배포판의 기여
- Python의 과학 및 데이터 스택은 다양한 라이브러리들이 복잡하게 얽혀 있어 설치하기가 매우 어려웠음.
- Continuum Analytics(현 Anaconda)는 이러한 문제를 해결하기 위해 Python 배포판을 만들어 소프트웨어 설치를 쉽게 만들었음.
- “Anaconda Python 배포판”은 “Python for big data”를 위한 “큰 뱀(big snake)”이라는 농담에서 이름이 유래했으며, Python을 엄청나게 인기 있게 만드는 데 기여했다고 평가받았음.
- R과의 비교 및 Python의 강점
- 초기 데이터 엔지니어링 분야에서는 Python과 R이 함께 사용되었지만, 시간이 지남에 따라 Python의 데이터 분석 및 플로팅 라이브러리들이 R의 기능들을 따라잡거나 능가하게 되었음.
- Python은 데이터 수집 단계부터 분석까지 “데이터로 엔드투엔드(end-to-end) 작업을 수행”할 수 있다는 장점으로 인해 더욱 선호되었음.
- 반면 R은 데이터 분석에는 뛰어나지만 다른 단계에서는 그렇지 못하다는 한계가 있었음.
- AI/ML 시대의 핵심 언어
- 오늘날 Python은 AI/ML 분야에서 “사실상의 표준 언어”
- TensorFlow와 PyTorch와 같은 주요 머신러닝 패키지들은 Python API를 제공하며, AI 과학자들이 모델을 개발하고 훈련하며 사용하는 데 필수적인 도구가 되었음.
- Python 생태계에 축적된 수세기 동안의 엔지니어링 시간은 사용자들이 방대한 라이브러리들을 활용하여 AI/ML 작업을 효율적으로 수행할 수 있게 함.
- LLM(거대 언어 모델)의 코드 생성에서도 백엔드 데이터 분석의 핵심 언어가 될 것으로 전망됨.