<iframe width="100%" height="400" src="https://www.youtube.com/embed/p_r_S8neDWs" frameborder="0" allowfullscreen></iframe>
같은 계산인데 왜 파이썬만 느릴까? C·자바스크립트·파이썬 속도 비교로 배우는 실전 감각
"파이썬 느리다"는 말, 코딩을 조금이라도 해봤다면 한 번쯤 들어봤을 겁니다. 그런데 막상 "왜 느린데?"라고 물으면 명확하게 답하기가 쉽지 않죠. 그냥 "원래 느린 언어래"라고 넘어가는 경우가 많습니다.
이번 글에서는 C, 자바스크립트, 파이썬으로 똑같은 합산(덧셈) 작업을 실행했을 때 속도가 어떻게 달라지는지, 그리고 그 차이가 실제 돈 버는 코딩에서 어떤 의미를 갖는지를 정리해보려 합니다.
같은 계산, 다른 속도: 실험의 핵심
실험 자체는 단순합니다. 1부터 아주 큰 수까지 더하는, 혹은 거대한 반복문을 돌리는 "순수 계산" 작업을 세 언어로 똑같이 짜서 실행 시간을 재는 겁니다.
결과의 큰 흐름은 대체로 이렇습니다.
- C: 압도적으로 빠름. 기준점이 되는 속도.
- 자바스크립트: 생각보다 빠름. C에 꽤 근접하는 경우도 많음.
- 파이썬: 눈에 띄게 느림. 많게는 수십 배 차이.
NumPy,Pandas,TensorFlow같은 라이브러리의 내부는 사실 C/C++로 작성되어 있습니다.- 파이썬은 "어떤 계산을 할지" 지시하는 조종석 역할만 하고, 실제 무거운 연산은 C로 짜인 엔진에 넘깁니다.
여기서 중요한 건 숫자 자체가 아니라 "왜 이런 차이가 나는가" 입니다.
파이썬이 느린 진짜 이유
1. 인터프리터 언어의 숙명
C는 코드를 미리 기계어로 컴파일해 CPU가 바로 실행합니다. 반면 파이썬은 코드를 한 줄씩 해석하면서 실행하는 인터프리터 언어입니다. 반복문이 백만 번 돌면, 그 "해석" 비용도 백만 번 쌓입니다.
2. 모든 것이 '객체'라는 대가
파이썬에서는 숫자 1 하나조차 단순한 비트 덩어리가 아니라 하나의 객체입니다. 타입 정보, 참조 카운트 등 부가 정보를 함께 들고 다니죠. 덧셈 한 번에도 "이게 정수인가? 실수인가?"를 매번 확인합니다. C는 이런 확인 없이 메모리 주소에서 값을 바로 꺼내 더합니다.
3. 자바스크립트가 빠른 이유 — JIT
그렇다면 같은 동적 언어인 자바스크립트는 왜 빠를까요? 핵심은 JIT(Just-In-Time) 컴파일입니다. V8 엔진은 자주 실행되는 코드를 실행 도중에 기계어로 바꿔 최적화합니다. "자주 쓰이는 길목"을 미리 포장도로로 깔아두는 셈이죠.
4. 최적화 조건에 따라 결과가 뒤집힌다
재미있는 지점은 여기입니다. 컴파일러 최적화 옵션, 반복문 구조, 변수 사용 방식에 따라 같은 언어라도 속도가 크게 달라진다는 것. C조차 최적화 플래그를 끄면 느려지고, 파이썬도 작성 방식에 따라 체감 속도가 바뀝니다. "언어 = 속도"라는 단순 공식이 항상 맞지는 않다는 뜻입니다.
그럼 파이썬은 쓰면 안 되는 언어인가?
전혀 아닙니다. 오히려 여기서 돈 버는 코딩의 핵심 인사이트가 나옵니다.
파이썬이 데이터 분석, AI, 머신러닝에서 1등 언어인 이유는 무거운 계산을 직접 하지 않기 때문입니다.
numpy.sum() 한 줄로 C 수준의 속도를 뽑아내는 겁니다. 느린 언어의 약점을 "설계"로 극복하는 전형적인 사례죠.# 느린 방식 — 순수 파이썬 반복
total = 0
for i in range(10_000_000):
total += i빠른 방식 — C로 짜인 엔진에 위임
import numpy as np
total = np.arange(10_000_000).sum()
같은 결과, 그러나 속도는 수십 배 차이가 납니다.
실무에서 챙겨야 할 3가지 인사이트
1. 언어 선택은 '속도'가 아니라 '목적'으로 한다. 초당 수만 건을 처리하는 거래 엔진이라면 C/러스트가 맞습니다. 하지만 아이디어를 빠르게 검증하고 데이터를 다루는 일이라면, 개발 속도가 빠른 파이썬이 돈을 더 빨리 벌어다 줍니다. 프로그램 실행 속도보다 개발자의 시간이 더 비싼 경우가 많으니까요.
2. 병목(bottleneck)은 측정하고 나서 손댄다. "느리다"는 느낌만으로 최적화하지 마세요. 실제로 시간을 재보면 전체의 1%도 안 되는 코드를 붙잡고 있을 수 있습니다. 느린 그 '한 지점'만 C 라이브러리나 다른 언어로 바꾸는 것이 가장 가성비 높은 전략입니다.
3. 라이브러리의 '속'을 알면 실력이 보인다.
NumPy가 왜 빠른지 설명할 수 있는 개발자와, 그냥 갖다 쓰는 개발자는 문제가 터졌을 때 대응 수준이 다릅니다. 이 차이가 곧 몸값의 차이로 이어집니다.
마무리
파이썬이 느린 건 '설계상의 트레이드오프'이지 '결함'이 아닙니다. 중요한 건 각 언어의 성격을 이해하고, 무거운 일은 빠른 엔진에 맡기고 파이썬은 조종석에 앉히는 감각입니다. 이 감각을 갖추면 "어떤 언어를 배워야 하죠?"라는 질문에서 벗어나, "이 일에는 어떤 도구 조합이 최적일까?"를 고민하는 단계로 올라서게 됩니다.
바로 그 지점이 취미 코딩과 돈 버는 코딩이 갈리는 길목입니다.
이 주제에 대해 더 배우고 싶다면 TTJ 코딩클래스를 확인해보세요.