개발자 / 애플리케이션

[ITWorld 넘버스] 자바스크립트는 어쩌다 ‘애증의 언어’가 됐을까

박상훈 | ITWorld 2023.07.07
# 장면 1. 미국의 유명 IT 기업 테스트 담당자가 자신의 업무를 자동화 프로그램에 맡기고 6년 동안 일을 안 하고 있다가 들통이 나서 해고됐다. # 장면 2. 마이크로소프트 연구에 따르면, 개발자가 생성형 AI를 사용하면 50% 이상 더 빠르게 작업할 수 있다. 이 두 장면의 진정한 교훈은 직업 윤리의 중요성이나 AI의 위협이 아니다. 장면 1의 개발자는 '6년 동안 놀 수 있을 만큼' 강력한 자동화 프로그램을 만들 수 있는 초고수였고, 장면 2의 생산성 향상은 AI가 짠 코드의 에러를 잡아낼 수 있는 개발자만 누릴 수 있는 혜택이다. 직업 윤리가 무너지고 '유사' 지능이 위협해도 결국 개발자의 무기는 프로그래밍 언어다.
 
ⓒ ITWorld

문제는 이 프로그래밍 언어가 수십, 수백 가지라는 사실이다. 웹과 모바일, 프론트엔드과 백엔드 등 용도와 환경, 상황에 따라 더 유리한 언어, 더 불리한 언어가 있고 다른 언어와의 궁합도 고려해야 한다. 심지어 언어에 대한 사회적 수요도 변한다. 한때 많은 기업의 구애를 받았던 개발자도 프로그래밍 언어의 흥망성쇠에 따라 어느 순간 아무도 찾지 않는 자신을 발견한다. '집행검'인 줄 알고 꼭 붙잡고 있었지만 어느덧 낡고 손상된 기본 무기가 돼 버린 셈이다. 이 때문에 이제 프로그래밍 세계에 입문하는 초보자는 물론 오랜 경력자도 프로그래밍 언어 트렌드에 관심을 기울일 필요가 있다.

코로나 이후 본격적인 각자도생, 적자생존 시대가 열린 만큼 채용 시장에서 통하는 프로그래밍 언어를 중심으로 살펴보자. IT 인력 채용 업체의 자료를 보면 공통적으로 등장하는 프로그래밍 언어가 3가지다. 파이썬, 자바스크립트, C++다. 혹시, 현재 이들 언어에 전문성이 있다고 안도하고 있다면 너무 성급하다. <2023 기술 업계 채용 현황>에 따르면, 이들 3개 언어는 공급이 수요를 초과한다. 채용 시장에서 경쟁이 치열하다는 의미다. 반면 타입스크립트, 스위프트, 스칼라, 코틀린 같은 비인기(?) 언어는 수요가 공급을 넘어선다. 프로그래밍 언어 선택 방정식이 단순하지 않은 이유다.
 

파이썬, AI 시대 황태자

이 고차 방정식을 풀어낼 해법을 개별 언어 속에서 찾아보자. 먼저 파이썬이다. 이미 데이터 과학 분야의 황태자였던 파이썬은 AI 시대를 맞아 최전성기를 구가하고 있다. 스탠퍼드대 산하 HAI 연구소의 <2022 AI 인덱스 보고서>에 따르면, 파이썬 전문가에 대한 수요는 2010년 대비 20배 이상 폭증했다. 성장률과 채용 규모 면에서 모두 압도적인 1위다. <해커랭크 2023 개발자 리포트>에서도 이런 추세를 확인할 수 있다. 보고서는 기업과 개발자 모두 머신러닝과 데이터 과학 기술에 대한 수요가 커졌다고 분석했다. 파이썬의 독주가 당분간 계속된다는 전망을 강력하게 뒷받침한다.

파이썬이 인기가 높은 가장 큰 이유는 개발을 간소화하는 다양한 라이브러리다. 또한 코드가 읽기 쉽고 명확해 진입장벽이 낮다(물론 한국어 사용자에겐 읽기 쉬운 코드라고 해도 영문 코드일 뿐이다). 더 근본적으로는 범용성을 꼽을 수 있다. 파이썬 소프트웨어 재단 자문위원 반 리드버그는 “파이썬은 모든 용도에서 '두 번째로' 가장 쓰기 좋은 언어다. 예를 들어 통계라면 R이 최선책, 파이썬이 차선이다. 머신러닝, 웹서비스 등 거의 모든 용도에서도 파이썬은 '최소' 차선책이다"라고 말했다. 오로지 통계 관련 업무만 하는 일부 기업을 제외하면 범용성 좋은 파이썬이 단연 최선의 선택지라는 설명이다. 
 

애증의 자바스크립트

자바스크립트와 가장 잘 어울리는 단어는 '애증'이다. 스택 오버플로우에 따르면, 2023년 현재 가장 많이 쓰이는 프로그래밍 언어가 자바스크립트다. 무려 11년 연속 1위다. 그런데 올 1월에 나온 젯브레인 보고서를 보면 가장 싫어하는 프로그래밍 언어도 자바스크립트다. 2위는 자바, 3위는 C였다. 진입 장벽이 높고 코드 짜기 까다롭기로 악명 높은 C보다 피하고 싶은 언어가 바로 자바스크립트다. 흥미로운 것은 이 조사에서 가장 좋아하는 프로그래밍 언어 순위에서 자바스크립트가 파이썬, 자바에 이어 3위에 올랐다는 사실이다. 복잡미묘하다. 자바스크립트는 어쩌다 '애증의 언어'가 됐을까.

개발자가 자바스크립트를 사랑하는 이유는 명확하다. 모든 브라우저가 자바스크립트를 지원하므로 브라우저만 있으면 바로 개발을 시작할 수 있고, 컴파일 과정이 필요 없어 속도가 빠르다. 자바스크립트가 폭풍 성장한 결정적 계기는 Node.JS의 등장이었다. 이를 통해 브라우저 외부에서 자바스크립트를 실행하는 것이 가능해지면서, 자바스크립트는 데스크톱을 넘어, 스마트폰, 키오스크, 로봇 등 우리 주변의 거의 모든 기기로 진출했다. 웹 세계의 지배자가 세상에 풀려난 순간이다. 이런 지배력은 그 자체로 강력한 구심력이다. 이제는 점점 더 많은 언어를 자바스크립트로 손쉽게 변환할 수 있게 됐다.

그렇다면 자바스크립트를 끔찍하게 생각하는 이유는 무엇일까? 공식 통계 같은 것은 없지만, 2가지는 공통적으로 언급된다. 바로 독창적인(?) 구문과 번아웃이다. 자바스크립트 구문에는 부모-자식 구분이나 클래스-인스턴스 관계가 없다. 이런 무질서한 자유로움은 초보자에게는 진입장벽, 다른 언어에 익숙한 개발자에게는 기이함 혹은 거부감으로 다가온다. 이 단계를 어찌 통과해도 기다리는 것은 성취감이 아니라 '자바스크립트 번아웃'이다. 새 기능과 관행, 프레임워크가 너무 빈번하게 등장해 이런 변화를 따라가는 것만도 벅차다. 특히 프론트엔드 개발자 상당수가 자바스크립트를 '개미지옥'처럼 느낀다.
  

C++의 화려한 역주행

C++는 1979년에 나온, 이제 40년 된 범용 시스템 프로그래밍 언어다. C++는 방대한 개발 생태계와 뛰어난 라이브러리로 이미 유명했지만, 2022년 티오베 선정 '올해의 프로그래밍 언어'로 선정되는 등 새롭게 주목받고 있다. 이런 화려한 역주행의 이유 중 하나가 AI다. 최근 딥 러닝이 엣지로 이동하고 있는데, 이처럼 시스템의 마지막 한 방울까지 최대한 성능을 짜내야 한다면 C++가 필수다. 물론 C++의 세계에는 여전히 '포인터'라는 무시무시한 괴물이 살고 있다. 다행히 엔비디아 쿠다(CUDA) 같은 라이브러리를 활용하면 GPU에서 바로 실행되는 코드를 조금 수월하게 만들 수 있다.

현재 프로그래밍 세계를 파이썬, 자바스크립트, C++가 주도하고 있다면, 앞으로는 어떻게 될까? InfoWorld 컬럼리스트인 매튜 애세이가 사용한 방법에 힌트가 있다. 그는 스택 오버플로우의 자료 중 '현재 사용하진 않지만 앞으로 쓰고 싶은 DBMS' 설문 결과를 연도별로 추적했다. 그 결과 상위에 이름을 올린 몽고 DB, 포스트그레SQL, 레디스가 10여 년에 걸쳐 점유율을 확대한 것을 확인했다. 이와 같은 방식으로 10년 후 프로그래밍 언어 순위 변화를 점쳐보면 어떨까? 최신 설문 결과를 보면 러스트가 17.6%, 깻잎 한장 차이로 1위다. 파이썬(17.59%), 타입스크립트(17.0%), 고(16.4%)가 뒤를 이었다.
 
  • 세상의 모든 IT 리서치 자료, '넘버스'
    여기서 소개한 모든 자료는 넘버스(Numbers) 서비스에 등록돼 있다. 넘버스는 IT 전문 미디어 ITWorld가 제공하는 IT 리서치 자료 메타 검색 서비스다. IDC, 가트너, 포레스터 등 시장조사 업체의 자료는 물론 국내외 정부와 IT 기업, 민간 연구소 등이 발표한 기술 관련 최신 자료를 총망라했다. 2023년 7월 기준 1,100여 건의 자료가 등록돼 있으며, 매달 50여 건이 새롭게 올라온다. 등록된 자료는 출처와 토픽, 키워드 등을 기준으로 검색할 수 있고, 관련 기사를 통해 해당 자료의 문맥을 이해할 수 있다. 자료의 원문 제목과 내용을 볼 수 있는 링크, 자료를 발행한 주체와 발행 일자도 함께 확인할 수 있다.

sanghun_park@idg.co.kr
Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.