파이썬은 왜 만들어졌나 — 탄생 배경, 해결한 문제, 그리고 그 이전과 이후
들어가며
오늘날 파이썬은 데이터 과학, 머신러닝, 웹 백엔드, 자동화 스크립트, 교육용 첫 언어까지 거의 모든 영역에 스며들어 있습니다. TIOBE 지수에서 수년째 상위권을 유지하고 있고, 처음 프로그래밍을 배우는 사람이 가장 많이 선택하는 언어이기도 하죠.
그런데 파이썬은 원래 “천하를 얻기” 위해 만들어진 언어가 아닙니다. 1980년대 말, 한 연구자가 크리스마스 연휴에 심심해서 시작한 사이드 프로젝트에서 출발했습니다. 이 글은 그 시작점에서 지금까지의 여정을 따라가며 왜 파이썬이 필요했는지, 어떤 문제를 풀었는지, 그리고 파이썬 전과 후로 개발 세계가 어떻게 달라졌는지를 정리한 글입니다.
1. 왜 만들어졌나 — 1989년 크리스마스와 ABC의 그림자
파이썬을 만든 사람은 네덜란드의 프로그래머 Guido van Rossum(귀도 반 로섬)입니다. 그는 당시 네덜란드 국립수학정보과학연구소(CWI)에서 Amoeba라는 분산 운영체제 프로젝트에 참여하고 있었습니다.
문제는 Amoeba를 다루는 데 필요한 언어가 마땅치 않았다는 겁니다:
- C: 시스템을 다룰 수 있지만 사소한 스크립트 하나 짜려 해도 메모리 관리, 컴파일, 헤더 파일까지 신경 써야 함
- 셸 스크립트: 짧은 글루 코드에는 좋지만 복잡한 로직에는 무너짐
- ABC: 귀도가 이전에 참여했던 교육용 언어. 설계는 우아했지만 확장이 어렵고 파일 I/O 같은 실용적 기능이 부족
귀도는 ABC의 좋은 점(가독성, 들여쓰기 문법, 인터랙티브 실행)은 살리고 그 한계(확장성, 시스템 접근)를 극복하는 언어를 상상했습니다. 그리고 1989년 12월, 크리스마스 연휴에 손을 대기 시작했습니다.
“I was looking for a ‘hobby’ programming project that would keep me occupied during the week around Christmas.” — Guido van Rossum
이름은 당시 그가 즐겨보던 영국 코미디쇼 Monty Python’s Flying Circus에서 따왔습니다. 뱀 이미지는 나중에 마케팅용으로 붙은 것이지, 시작부터 있던 게 아닙니다.
1991년, 파이썬 0.9.0이 alt.sources 뉴스그룹에 공개되면서 세상에 처음 나왔습니다.
2. 파이썬이 해결한 문제
파이썬이 등장하기 전, 프로그래머들은 상황마다 다른 언어를 조합해 써야 했습니다. 파이썬은 이 파편화된 지형에 “하나의 언어로 대부분의 실용적 작업을 다룰 수 있게 하자”는 답을 내놓았습니다.
문제 1 — “C는 무겁고, 셸은 약하다”
간단한 텍스트 처리를 위해 C로 malloc/free를 짜는 것은 과잉이었고, 셸 스크립트는 조금만 로직이 복잡해지면 유지보수가 지옥이었습니다. Perl이 그 틈을 파고들었지만 “write-only 언어”라는 악명을 얻었습니다. 파이썬은 Perl만큼 강력하면서도 6개월 후의 나도 읽을 수 있는 코드를 목표로 삼았습니다.
# 파일에서 특정 패턴 찾기 — 파이썬 3줄
with open('log.txt') as f:
for line in f:
if 'ERROR' in line:
print(line.strip())
같은 일을 C로 짜면 파일 열기, 버퍼 관리, 라인 파싱, 에러 처리까지 수십 줄이 됩니다.
문제 2 — “언어가 문법을 강제하지 않으면 팀은 무너진다”
C, C++, Perl은 문법에 자유도가 컸습니다. 결과적으로 팀마다, 사람마다 스타일이 달라 코드 리뷰의 절반이 “포매팅 논쟁”에 쓰였습니다. 파이썬은 과감하게 들여쓰기를 문법의 일부로 못 박았습니다. 논쟁의 여지를 없앤 것이죠. 처음엔 논란이 있었지만, 결과적으로 팀이 커져도 코드 스타일이 균일해지는 효과를 낳았습니다.
문제 3 — “배터리는 어디에 있나?”
C/C++로 HTTP 요청 하나 보내려면 외부 라이브러리를 찾아 링크하고 컴파일해야 했습니다. 파이썬은 “batteries included”를 표방하며 표준 라이브러리에 HTTP, 정규식, JSON, 스레딩, 파일 압축, 이메일 파싱까지 다 넣었습니다. 설치만 하면 바로 쓸 수 있는 이 철학이 프로토타이핑 속도를 극적으로 올렸습니다.
문제 4 — “과학자와 프로그래머 사이의 벽”
과학·통계 분야는 오랫동안 Fortran, MATLAB, R의 영역이었습니다. 이들 언어는 수치 계산엔 강했지만 범용 프로그래밍에는 약했고, 그 반대도 마찬가지였습니다. 파이썬은 Numeric(1995) → NumPy(2006) → SciPy, pandas, scikit-learn 로 이어지는 생태계를 통해, 과학자도 프로그래머도 같은 언어로 소통할 수 있는 다리를 놓았습니다.
3. 파이썬 이전 vs 이후
3.1 시스템 관리와 자동화
이전: 관리자는 Bash + Perl + Awk + Sed의 조합으로 스크립트를 짰습니다. 리눅스 배포판마다 도구 버전이 달라 이식성이 떨어졌고, 200줄 넘어가는 Perl 스크립트는 유지보수가 힘들었습니다.
이후: Red Hat의 Anaconda 인스톨러, YUM, 이후 Ansible, SaltStack이 모두 파이썬으로 구현되면서 인프라 자동화의 표준이 바뀌었습니다. 지금 데브옵스 엔지니어의 필수 언어 중 하나는 확실히 파이썬입니다.
3.2 웹 개발
이전: 2000년대 초반 웹은 PHP, Perl CGI, Java Servlet이 주도했습니다. PHP는 진입 장벽이 낮았지만 대규모 코드베이스에서 일관성이 무너졌고, Java는 무거웠습니다.
이후: Django(2005), Flask(2010), 그리고 최근의 FastAPI(2018)가 파이썬 웹 생태계를 열었습니다. Instagram, Pinterest, Dropbox, Spotify 같은 대형 서비스가 파이썬 백엔드로 시작했거나 지금도 운영 중입니다.
3.3 데이터 과학과 머신러닝 — 가장 큰 파도
이전: 통계 분석은 R, 수치 계산은 MATLAB, 대규모 데이터 처리는 SAS. 각각 라이선스가 비싸고, 언어들끼리 데이터를 주고받는 것도 번거로웠습니다.
이후: NumPy, pandas, matplotlib이 오픈소스 데이터 스택의 근간을 만들었고, TensorFlow(2015), PyTorch(2016)가 딥러닝을 파이썬 중심으로 재편했습니다. 오늘날 논문에 첨부되는 코드는 대부분 파이썬 노트북(.ipynb) 형태입니다. AI 붐이 파이썬 위에서 일어난 것은 우연이 아니라 필연에 가깝습니다.
3.4 교육
이전: 대학 첫 프로그래밍 수업은 오래도록 Pascal, C, Java가 차지했습니다. 학생들은 “Hello World”를 찍기 위해 public static void main을 이해해야 했습니다.
이후: MIT는 2009년 입문 과목을 Scheme에서 파이썬으로 바꿨고, 국내외 대부분의 대학이 같은 길을 걸었습니다. 한 줄로 실행되는 print(“hello”)는 초심자가 “내가 뭘 시켰는지”를 즉시 눈으로 확인할 수 있게 해주는 강력한 교육 도구입니다.
4. 파이썬의 한계는?
물론 파이썬이 만능은 아닙니다:
- 속도: CPython의 실행 속도는 C/C++, Rust, Go에 비해 느립니다. 성능이 중요한 부분은 C 확장이나 Cython, PyPy, 최근에는 Rust 바인딩(PyO3)으로 우회합니다.
- GIL: Global Interpreter Lock 때문에 CPU 바운드 멀티스레딩이 제한됩니다. 3.13에서 실험적으로 GIL-free 빌드가 도입되고 있어 향후 변화가 기대됩니다.
- 모바일/프론트엔드: 이 영역에서는 여전히 Kotlin/Swift, JavaScript가 압도적입니다.
이런 한계에도 파이썬이 살아남는 이유는, “충분히 빠르지 않은” 문제보다 “충분히 빨리 짤 수 없는” 문제가 대부분의 조직에서 더 크기 때문입니다.
마치며
파이썬의 성공은 어느 날 갑자기 만들어진 게 아닙니다. 1989년 크리스마스에 시작된 개인 프로젝트가:
- 가독성이라는 강한 철학
- batteries included 표준 라이브러리
- 오픈 커뮤니티가 만든 방대한 생태계
이 세 축을 30년 넘게 지켜온 결과입니다.
지금 우리가 pandas로 데이터를 만지고, PyTorch로 모델을 학습시키고, FastAPI로 API를 띄우고, Ansible로 서버를 배포할 수 있는 것은 — 그 크리스마스 휴가의 실험이 없었다면 상당히 다른 모습이었을 겁니다.
프로그래밍 언어는 도구이지만, 어떤 도구는 세상이 어떻게 만들어지는지를 바꿉니다. 파이썬은 확실히 그런 도구 중 하나입니다.