토픽 브리핑 | 현 시점에서 배워야 할 프로그래밍 언어들

ITWorld
세상을 움직이고 변화시키는 원동력은 다양하다. 하지만 이런 변화의 중심에는 항상 IT가 있었다. 오늘날 비즈니스 현업 사용자는 IT를 모르고서는 할 수 있는 업무는 그리 많지 않다. 과거에는 오피스 프로그램이나 자신의 업무와 관련된 시스템 정도만 이해해도 충분히 버틸만 했다. 하지만 최근에는 IT를 통해 데이터를 분석해 인사이트를 찾아내고, 새로운 비즈니스를 창출하고, 기업 경쟁력를 확보해야 한다. 



개발자라면 자신의 무기를 확장하고, IT 관리자라면 자신의 경쟁력을 강화하며, 현업 사용자라면 현재 비즈니스를 위해 프로그래밍 언어를 배워야 할 때다. 자신이 개발자가 아니라면 ▲웹의 언어인 HTML, CSS, 자바스크립트 ▲차트와 시각화에 쓸모가 있는 R ▲기초 중의 기초인 C ▲자동화를 위한 배시 셸(Bash shell)를 배우는 것이 좋다. 

현업 사용자의 경우, 자신은 이미 늦었다고 생각할지도 모른다. 하지만 뒤에서 소개할 인공지능, 사물 인터넷, 블록체인에서 인기있는 프로그래밍 언어의 대부분은 현재 개발 전문가조차도 학창 시절에는 들어보지도 못한 것들이다. 

“미래를 생각하는 개발자를 위한” 지금 배워야 하는 프로그래밍 언어


인공지능과 관련이 있다면 배워야 할 프로그래밍 언어  

인공지능(AI)은 애플리케이션 개발자에게 새롭게 열리는 가능성의 세계다. 머신러닝 또는 딥 러닝을 활용함으로써 훨씬 더 정밀한 사용자 프로필과 개인화, 추천이 가능하며, 스마트 검색, 음성 인터페이스 또는 지능적인 가상비서를 구현하거나 그 외의 다양한 방법으로 앱을 개선할 수 있다. 심지어 보고 듣고 반응하는 애플리케이션도 만들 수 있다. 

이에 필요한 대표적인 프로그래밍 언어는 파이썬(Python)이다. 파이썬은 인공지능에 있어 탁월한 언어이며, 특히 파이썬의 라이브러리는 다른 언어에서는 따라올 수 없을 정도로 독보적이다. 

넘파이(NumPy)는 워낙 보편적으로 사용되는 터라 텐서 연산에서 사실상 표준 API 역할을 한다. 판다스(Pandas)는 R의 강력하고 유연한 데이터프레임을 파이썬으로 가져온다. 자연어 처리(NLP)에서는 이름도 유명한 NLTK와 빠른 속도가 장점인 스페이시(SpaCy)가 있다. 머신러닝 쪽에는 역전의 사이킷-런(Scikit-learn)이 있다. 딥 러닝이라면 현재의 모든 라이브러리(텐서플로우(TensorFlow), 파이토치(PyTorch), 체이너(Chainer), 아파치 MXNet(Apache MXNet), 테아노(Theano) 등)가 사실상 파이썬을 가장 우선시하는 프로젝트다.

AI 개발에 가장 적합한 5가지 프로그래밍 언어
파이썬 인기 '역대 최고 수준'··· "3~4년내 자바·C까지 제칠 것"
"파이썬 성능 향상을 위한" 파이파이란 무엇인가
모든 파이썬 프로그래머를 위한 20가지 실용적인 파이썬 라이브러리
“머신러닝으로 파이썬 코드 완성” 카이트, 전체 함수 호출로 기능 확대

데이터를 전문적으로 다루는 통계학자, 빅데이터 전문가, 소셜 과학자 등 데이터 과학자들에게는 파이썬 못지않게 R 또한 인기가 높다. 파이썬이나 R은 사용 계층의 거의 똑같지만 접근방식이 전혀 다르며, 특장점 또한 다르다. 

“왜 R인가?” R 언어의 장점과 단점
"데이터 과학자의 마음을 잡기 위한" 파이썬과 R의 경쟁 분석
"알짜 함수부터 파이썬 협업까지"··· R 중급자를 위한 고급 팁과 가이드


사물 인터넷과 관련이 있다면 배워야 할 프로그래밍 언어 

IoT의 진화가 계속되면서 어떤 툴이 가장 많이 사용되는지 추적하는 것이 힘들어지고 있다. 너무나 다양한 용도로 사용되기 때문이다. 마찬가지로, 몇 가지 분명한 기준으로 비교적 인기있는 프로그래밍 언어를 파악하는 것도 복잡한 일이 되었다. 2016년에만 이미 620만 명 이상으로 추정되는 IoT 개발자 사이에서 가장 인기있는 프로그래밍 언어를 파악하는 것은 두 배는 힘든 일처럼 보인다.

IoT와 관련한 프로그래밍 언어 정보가 충분하지는 않지만, 미디엄(Medium)부터 쿼라(Quora)까지, 기업 웹사이트부터 IoT 블로그까지, 그리고 몇 년 전의 기록까지 뒤진다면, 공통된 실마리를 찾을 수 있을 것이다. 이클립스 재단의 2018년 IoT 개발자 설문조사에 따르면, 가장 인기있는 IoT 프로그래밍 언어는 다음과 같다. 

1. 자바
2. C
3. 자바스크립트
4. 파이썬
5. C++
6. PHP
7. C#
8. 어셈블러
9. LUA
10. 구글 고
11. R
12. 스위프트
13. 루비
14. 러스트


캐노니컬은 어떤 IoT 프로그래밍 언어가 개발자에게 가장 높은 연봉을 보장하는지 파악하고자 했다. 조사 결과에 따르면, IoT 분야에서는 평균적으로 자바와 C 개발자가 다른 언어 전문가보다 더 높은 연봉을 기대할 수 있으며, 경력있는 구글 고 개발자가 가장 높은 연봉을 받을 가능성이 있다. 숙련된 구글 고 개발자는 업계에서 가장 높은 연봉을 받았다. 하지만 초급과 중급 구글 고 개발자는 다른 개발자와 비교해 많이 받지 못했다.

IoT 개발에 있어 자바가 가장 많이 사용되는 언어지만, 자바스크립트와 파이썬은 IoT 개발의 서로 다른 하위 영역에서 자바를 바짝 뒤쫓고 있다. IoT 개발은 다중 언어 환경이며, 미래에도 다중 언어 환경으로 남을 가능성이 크다. 

“IoT 세상을 지배할 프로그래밍 언어는?”
"어떤 언어를 배울까" 자바스크립트, 파이썬, 자바 3종 비교
자바는 어떻게 시간의 시험을 견디었는가
자바 웹 애플리케이션을 위한 요청 처리, "자바 서블릿"의 이해
C 프로그래밍 언어가 여전히 최고인 이유 : 개발언어 일대일 비교
업데이트 | 구글 고 1.12 프로덕션 릴리즈 공개, 툴체인·런타임· 라이브러리 실행에 변화
“세상을 프로그래밍하라” 사물인터넷 시대의 필수 개발 기술 12가지


블록체인과 관련이 있다면 배워야 할 프로그래밍 언어 

블록체인 기술은 여러 산업 분야에서 신뢰 모델과 비즈니스 프로세스를 혁신적으로 바꾸어 놓을 수 있는 잠재력을 지니고 있다. 블록체인의 개념을 처음 제시한 것은 2008년 ‘사토시 나카모토’라는 사람이었지만, 이 기술이 실제 사례에 적용되기 시작한 것은 불과 몇 년 전이다. 오늘날 블록체인 기술은 주로 암호화폐나 가상 금융 거래에서 분산 원장을 만드는 데 사용되고 있다.

블록체인 도입을 모색 중인 기업은 블록체인에 대해 고도의 이해력을 갖춘 전문가를 찾고 있다. 분산 원장, P2P 토폴러지, 합의 기제에 대한 이해로, 이는 고임금 블록체인 개발직을 원하는 기술 전문가에게 필수적인 요소이다. 여기에 하나가 더 있다. 시장을 이해하고 신기술인 블록체인을 구체적인 문제에 적용하는 방법을 아는 것이다.

블록체인 개발자를 위한 핵심 기술은 스마트 컨트랙트(Smart Contract)를 만드는 프로그래밍 언어인 솔리디티(Solidity)다. 이 밖에 암호화폐를 포함한 오픈소스 블록체인인 이더리움(Ethereum), 암호화폐 개발, 블록체인 노드나 서버에서 명령줄 툴을 작성할 때 사용하는 자바스크립트인 Node.js가 있다. 

“수요는 많은데 개발자는 부족” 블록체인 채용 현황과 기술 역량 습득 가이드

솔리디티는 계약 지향 프로그래밍 언어로 2014년 8월, 이더리움 공동 창시자인 개빈 우드가 처음으로 제안했으며, 이후 이더리움 프로젝트의 솔리디티팀에 의해 개발됐다. 이더리움 가상 머신(Ethereum Virtual Machine, EVM)을 목표로 설계된 4가지 언어 중 하나로, 현재는 이더리움의 주요 언어가 됐다. 

Node.js는 새로운 웹 애플리케이션 개발을 위한 언어로 자바, 루비, 파이썬, 닷넷을 빠른 속도로 따라잡는 중이다. Node.js 팀은 하루가 다르게 자바스크립트 런타임을 더 빠르게, 더 견고하게 만들고 있다. 사용자 커뮤니티도 하루가 다르게 성장 중이다.

Node.js 앱 구조 설계를 위한 7가지 핵심 사항
새로운 Node.js, 가장 좋은 시기에 io.js와 통합  
editor@itworld.co.kr