저는 웹사이트를 개발 및 운영하고 있습니다. 백엔드를 Python django로 시작하게 되어서 계속 파이썬이 익숙한채로 개발을 해왔습니다. 가끔씩 들려오는 백엔드는 JAVA Spring을 해야한다.. 아니면 Node.js 가 좋지 않겠는가라는 소리도 많이 들었지만 django도 좋았고 '개발하기 편하다'가 최고의 장점이었던 것 같습니다.
하지만 요즘 코딩테스트를 위해서 알고리즘 풀이를 하고 언어에 대해서 더 알아보던 와중 파이썬이 굉장히 느린 언어라는 것을 알게되었죠..
그렇게 파이썬은 스크립트 언어라 그렇다 컴파일 언어가 훨씬 빠르다라는 말까지 오게 되었죠
개발자들이 짠 코드는 분명 컴퓨터가 알아 듣고 처리할 수 있도록 기계어로 번역이 되어야 합니다.
이때 스크립트 언어는 마치 옆에 번역가를 두고 컴퓨터와 소통하는 것과 같죠!
컴파일 언어는 컴파일 과정을 거쳐서 기계어가 읽을 수 있는 실행파일을 만듭니다. 이후 이 실행파일로 컴퓨터와 소통하는 과정을 거치게 됩니다.
여기서 각 언어의 장단점이 나오게 되는데
컴퓨터가 코드를 실행하는 과정에서 코드가 인터프리터를 거쳐서 번역되는 과정이 포함되어 있으므로 컴파일 언어에 비해 느립니다. 또한 소스코드에 문법적인 오류가 있더라도 실행 자체는 되기 때문에 디버깅으로 문제를 찾아내기가 어렵습니다. 하지만 어려운 문법에 대한 제약이 적기 때문에 쉽게 배울 수 있고 시작하는 개발자에게는 더 쉽게 접근할 수 있고 빠르게 결과물을 만들 수 있다는 장점이 있습니다
컴파일 언어는 이미 기계어로 번역하는 과정을 거쳤던 실행파일을 컴퓨터가 실행하기 때문에 번역과정이 없어지기 때문에 스크립트 언어에 비해 빠릅니다. 그리고 문법적으로 오류가 있다면 컴파일이 되지 않기 때문에 디버깅이 비교적 쉽습니다. 하지만 그만큼 지켜야하는 문법이 많아지고 개발을 시작하기에 앞서 배워야할 내용들이 산더미처럼 쌓아는게 문제죠.. 그리고 운영체제마다 사용하는 기계어가 다르기 때문에 파일을 실행하는 환경마다 신경써야할 조건들이 많아지게 됩니다.
이 포스트를 쓰면서 여러가지 블로그의 글을 읽게 되었는데.. 언어별 선호도에 따른 장점을 주장하는 것이 천차만별이고 어느 상황에서는 특정언어가 더 잘맞기 때문에
뭐가 더 좋은 언어라고는 할 수는 없다. 속도만 따지고 본다면 JAVA 보다 더 좋은 언어도 많을 테니..
하지만 코딩을 하고 서비스를 구현하는데는 속도라는 변수보다 훨씬 더 많은게 작용한다. 협업의 과정, 개발자의 수, 개발커뮤니티 및 라이브러리의 발달, 프레임워크의 안정성 및 업데이트 유지, 개발 시간, 돈 등등 여러가지이다.
세상엔 더 좋은 언어, 세련된 언어, 다양한 언어 및 프레임워크가 나오고 있는 상황속에서 각자의 상황에 맞추어서 최적의 언어를 선택하는 능력이 더 중요해진 시점이 아닌가 싶다.