NPM에서 작년 겨울 자바스크립트 개발자들을 대상으로 자바스크립트 사용 환경에 대한 설문조사를 진행했었다. 그리고 총 1만 6천여명의 개발자들이 참여한 이 조사에서 얻은 결과를 토대로 산업별 자바스크립트 사용 현황에 대해 분석한 글이 npm 블로그에 올라왔다. 원본 글은 JavaScript Usage by Industry에서 볼 수 있으며 이 글에서는 해당 글을 요약하며 나름의 평가를 붙여보려 한다.
가장 많이 사용하는 직군
이 부분의 결과는 조금 왜곡됐을 수 있는 게, 45%나 되는 사용자들이 "tech"라고 답했기 때문이다. 기술 분야도 분야 나름이고 사실 자바스크립트를 사용하는 개발자 대부분은 우리식으로 말하면 "IT 분야"에 있는게 어찌보면 당연하지 않나 싶다.
게다가 한 회사라 하더라도 하는 일에 따라 분야가 나뉠 수도 있다. 예를 들어 내가 근무하는 회사는 블로그 서비스를 하는 회사이지만, 내가 하는 일은 마케팅과 관련한 개발이다. 이런 경우 누군가는 자신이 하는 일을 "기술직"이라고 답할 수도 있지만 또 누군가는 "마케팅"이라 답할 수도 있을 것이다. 나 스스로는 "기술직"이라고 생각하지만... 어쨌든, 응답자들의 산업별 비중은 다음과 같았다고 한다.
- IT: 45%
- 금융: 7%
- 광고/마케팅: 5%
- 교육: 5%
- 엔터테인먼트: 5%
- 비즈니스 지원/물류: 4%
- 헬스케어: 4%
- 소매: 3%
- 정부: 2%
- 제조업: 2%
사용하는 도구
"웹 브라우저와 메모장만 있으면 자바스크립트를 할 수 있어요"라고 말하던 시대는 이미 지난 듯 하다. 물론 지금도 가능하긴 하지만, '자바스크립트로 프로젝트 좀 해봤다'라고 말하려면 듣기만 해도 어지러울 정도로 많은 다양한 도구를 함께 사용해야 하는게 현실이다.
하지만 도구 면에서도 산업별 차이는 있었다. 제조업 분야는 다른 분야에 비해 도구를 덜 사용하는 면이 있는데 제조업 분야 응답자의 51%만이 테스팅 프레임워크를 사용한다고 한 반면, 금융업 종사자들은 75%가 테스팅 프레임워크를 사용한다고 밝혔다.
여기에는 제조업 종사자의 15%가 자바스크립트를 임베디드 환경에서 사용한다고 답한 게 연관이 있을 것이라는 게 원글의 설명이다. 임베디드 환경은 브라우저와 다르기 때문에 브라우저에 맞춰 최적화를 해주는 다른 도구가 굳이 필요하지 않다는 것이다. 참고로 제조업의 임베디드 환경 비율은 다른 분야보다 두 배 이상 많은 것이다.
반면 금융 분야에서는 모든 도구를 열심히 사용했다. 사용 순위는 번들러에서는 1위, 린터에서는 2위(1위는 헬스케어), 테스트 프레임워크에서 1위, 웹 프레임워크에서 2위(소매가 1위), 트랜스파일러에서 1위, CSS 전처리기에서 2위(광고가 1위)를 각각 기록했다.
프레임워크
참고로 비율은 중복 응답이 가능하다.
Angular와 React는 모든 산업에서 인기가 많았지만, Angular는 특히 금융권에서, React는 특히 엔터테인먼트 분야에서 인기가 많았다.
React는 엔터테인먼트 종사자의 65%, 정부에서 46%, 제조업에서 38%의 사용률을 기록했다. 제조업과 정부는 새로운 프레임워크의 도입에 보수적인 모습을 보여줘서 여전히 jQuery가 가장 강세였다. jQuery는 제조업에서 52%, 정부에서도 52%의 사용률을 기록했다.
대부분의 산업에서 20% 정도의 개발자가 Vue를 사용한다 응답했는데 특이하게 광고 분야에서는 34%를 기록했다. 전체 응답에서 Ember(4%), Preact(5%), Hapi(5%), Next.js(5%), Meteor(5%)의 비율은 크지 않은 반면, Electron은 20% 이상의 사용률을 기록했다.
함께 사용하는 언어
"직장인이 아닌(unemployed)" 사람은 Python을 가장 많이 사용했다. 아마 이 카테고리에 학생도 속해있어서 교육 현장에서 인기있는 Python이 이 카테고리에서 1등을 한게 아닐까 한다.
금융계에선 Java(41%)가 2위인 .NET(27%)에 비해 큰 격차로 앞섰고, 광고계에선 PHP(49%)가 2위인 Python(26%)을 크게 앞섰다. 광고계 응답자 중 50% 이상이 소속 기업이 소기업(50명 미만)이라고 응답했는데, PHP가 광고계에서 우세한 이유가 크기가 작은 에이전시 등에서 작은 웹 사이트를 만들기 좋아서 일 것이라고 원글은 짐작하고 있다.
참고로 .NET 분야는 C#과 F#을 따로 구분하지 않았으므로 이 언어는 사용하지만 .NET은 사용하지 않는 사람들이 응답하지 않았을 수도 있다고 한다.
Ruby는 대체로 인기가 적은 편이라 전체에서 13% 미만의 비율을 차지했다. Ruby가 가장 적게 사용되는 곳은 제조업(3%)이고 가장 많이 사용되는 곳은 교육(13%)이었다.
C, C++은 각각 9%, 18%로 제조업에서 가장 많이 사용되는 언어였다. C++이 가장 적게 사용된 곳은 소매(4%) 분야였다.
Go(10%), Swift(3-5%), Rust(3%)도 일부 사용되었는데 특히 Rust는 제조업 분야에서만큼은 7%의 비율을 차지했다.
자바스크립트를 사용하는 이유
대체로 생산성 향상을 목적으로 자바스크립트를 사용했다. 가장 적게 "생산성"이라고 답한 정부 분야조차 51%의 비율이었다. 가장 많이 생산성을 이유로 든 분야는 금융(60%)이었다. "성능 향상"도 있었는데 의외로 정부 분야에서 가장 높은 응답(31%)이 나왔다. 다른 대부분의 산업에서는 20-21% 정도만 성능 향상이라고 응답했다. 금융쪽에서는 "비용 절감"이라고 답한 사용자도 많았다(41%).
"개발자 풀"이라고 답한 사람은 엔터테인먼트 분야(41%)에 가장 많았고, "신입 개발자를 구하기 쉬워서"라고 답한 사람은 소매업(40%)에 많았다.
조금 특이하다 싶은 부분인데, 우리나라에서는 경력 프론트엔드 개발자 구인난이 있다고 보기 때문이다. 나는 주변에서 프론트엔드 개발자를 소개해달라는 부탁을 꽤 자주 받는데, 막상 소개해줄만한 사람도 마땅치 않고 주변을 둘러봐도 쉽게 연결해줄만큼 프론트엔드 개발자의 풀이 그리 넓지도 않다.
일부에서는 "IT가 3D 업종이다"라는 진실(?) 혹은 도시전설(?)이 너무 널리 퍼져서 신입 개발자의 수가 확 줄어버린 "잃어버린 10년"이 있다고도 말한다. 지금 다시 신입 개발자가 늘고 있는 추세지만 가장 수요가 많은 3~7년차의 허리 부분이 사라졌다는 것이다. 내 주변을 기준으로 판단해보건데 수긍할만한 부분은 분명 있다. 하지만 해외에서는 자바스크립트를 선택하는 이유에 넓은 개발자 풀도 포함되어 있다니... 인상적인 부분이다.
"언어를 내가 고르지 않았다"는 응답도 있었다. 짐작했듯이 이 응답이 가장 많았던 분야는 정부(21%)였다.
보안
공통적으로 자신이 작성한 코드의 보안(87-90%)과 사용한 오픈소스 코드의 보안(73-79%)에 대해서는 우려가 많았고, 현재의 코드 코드 보안 방식(51-60%)에 대해서도 불만족스럽다는 응답이 많았다.
교육계 종사자(학생 제외)의 90%는 자신이 작성한 코드의 품질에 대해 우려했는데, 보안 평가를 전혀 하지 않는다고 응답한 사람이 많았던 분야도 교육계(33%)였다.
보안에 가장 열심이었던 건 짐작했겠지만 금융 분야였다. 금융계는 코드 리뷰(81%), 외부 평가(30%), 자동화된 코드 스캐닝(52%)을 가장 많이 하는 분야였다. 앞선 항목의 2등은 모두 IT 분야("tech")가 차지했다.
비공개 코드
비공개 코드를 저장하는 장소로 가장 인기있던 곳은 GitHub이었다. 대체로 80%대였는데 광고 분야(93%)가 가장 사용률이 높았고 제조업 분야(75%)가 가장 낮았다.
내 예상보다 비공개 npm 패키지를 사용하는 비율도 대략 30%로 꽤 높았다. 비공개 npm 패키지 사용자의 절반 정도는 동료와 협업할 때 재사용하기 위해서 비공개 패키지를 사용한다고 응답했다.
테스트
테스팅 프레임워크를 가장 열심히 사용하는 분야는 금융계(88%)였고, 정부와 제조업 분야(68%)에서 가장 적게 사용했다. 가장 많이 사용하는 프레임워크는 Mocha(50%)였고 그 뒤를 Jasmine(33%)과 Jest(19%)가 이었다. 웹 프레임워크와는 다르게 테스팅 프레임워크의 사용 순위는 산업별로 큰 차이가 없었다.
끝
이상으로 산업별 자바스크립트 사용 현황을 살펴보았다. 국내 상황은 전세계 트렌드와 다소 거리가 있는 부분이 있어서 국내와 맞지 않는 내용이 있을 수도 있지만, 그래도 어느 정도 참고는 될 수 있을 것으로 생각한다.