←Back to posts


찰흙과 같은 언어 파이썬

2020-11-07

Programming, Language

이번 달 파이썬이 프로그래밍 언어의 인기 순위를 매기는 지표인 TIOBE Index에서 2위를 기록했다. 자바와 C가 아닌 다른 언어가 2위 안에 들어온 것은 20년 만의 일이라고 한다. 파이썬을 애정해온 나에게는 매우 뜻깊은 일이 아닐 수 없다. 누군가는 파이썬의 이런 성장을 빅데이터 혹은 인공지능 관련 산업의 급격한 성장과 연관지을 수도 있겠지만 이는 사실 피상적인 분석일 수 있다.

딥러닝 연산 라이브러리인 파이토치와 텐서플로의 코어는 C++로 작성되었으며 좀 더 일반적인 데이터 분석에 쓰이는 판다스나 넘파이의 경우 중요 부분이 C로 구현되어있다. 때문에 빅데이터, 인공지능 관련 기술의 핵심 언어를 파이썬 하나로 특정하기에는 다소 무리가 있다. 내가 생각하기에 정말 핵심적인 질문은 이런 유수의 라이브러리들이 하나같이 많고 많은 언어들 중에 파이썬이라는 언어를 최종 포장재로 사용하기로 결정했느냐 하는 것이다.

프로그래밍을 조형에 비유한다면 나는 파이썬이라는 언어가 접착성이 좋은 찰흙과 비슷하다고 생각한다. 파이썬은 C프로그램을 가장 쉽게 연동할 수 있는 언어 중의 하나이며 객체지향이나 함수지향과 같은 하나의 방식을 강요하지 않기에 대부분 언어로 작성된 프로그램을 어떤 방식으로든 자유롭게 섞을 수 있다. 이런 접착제같은 특징이 파이썬의 핵심 성공요인 중 하나가 아닐까 싶다. 찰흙의 비유를 조금 더 이어나가자면 파이썬은 한번 작성된 프로그램을 관찰하고 조작(해킹)하기가 매우 용이하다는 점에서도 찰흙과 비슷하다. 파이썬을 처음 접했을 때 내가 가장 놀랐던 것은 함수나 클래스의 정의가 프로그램 실행 중에 이루어진다는 것이었다. 파이썬에서는 디버거를 켜서 각각의 함수가 정의되는 과정 한 줄 한 줄을 살펴볼 수 있으며 메타클래스 변경을 통해 클래스가 정의되는 메커니즘 자체를 변경할 수도 있다. 이러한 특징을 활용해 조금만 노력을 하면 이미 돌아가고 있는 프로세스에 붙어서 함수 정의를 바꿔버리는 것도 어렵지 않다. 실제로 내가 수년 전 인턴을 할 때에 프로덕션 환경에서 돌아가는 웹크롤러의 함수를 산채로 갈아끼워버리는 야만스러운(?) 짓을 수차례 저지르기도 하였다.

누군가는 찰흙으로 만든 그릇이나 돌로 만든 그릇이나 기능이 같으면 별반 차이가 없다고 말할 수도 있다. 하지만 보여지는 결과물 만큼이나 중요한 것은 만드는 과정을 창작자가 얼마나 쉽고 재밌게 느끼는가이다. 어느날 길가에서 마음에 드는 들꽃을 발견해 그 꽃에 어울리는 화분을 만들어 보고 싶어졌다면 무거운 끌을 가지고 큰 돌을 한치의 실수도 없이 깎아 내는 것보다는 역시 찰흙을 꺼내는 편이 낫지 않을까? 무슨 일을 하는 데에는 많은 동기가 필요한 법이지만, 결국 인간은 쉽고 재밌는 일을 찾아 하기 마련이다. 그리고 파이썬은 그 어떤 언어보다 프로그래밍을 쉽고 재미있게 해주는 소중한 도구이다.

원글 링크