2020년도 며칠 남지 않았다. 올해는 유난히 남달랐고 변화가 많았던 한 해였다.
이 책은 몇 년째 다음 해의 트렌드를 예측하는 내용으로 출판되고 있는데 꾸준히 잘 팔리고 있다. 이 책의 인기와 올해의 급격한 변화를 보면서 개발자의 시선으로 이 책처럼 올해를 정리하고 내년을 예측해봐야겠다는 생각을 했다.
작년 말부터 시작된 코로나는 올해에 가장 큰 변화를 주었다. 2020년의 화두는 '언택트'가 되었다. 공유 경제를 기반으로 성장하던 Uber, wework, airbnb 같은 회사는 큰 어려움을 겪고 있고 반대로 zoom, slack, notion 같은 회사들은 예상외의 많은 주목을 받았다. (12월 10일, airbnb는 상장해서 주가가 급등했다.)
전 세계가 출퇴근 대신 재택근무를 하게 되었다. twitter, microsoft, facebook 같은 미국에 있는 대기업들은 무기한 재택근무를 선언하였고 한국에서도 지난 2월부터 계속해서 재택근무를 이어가고 있는 회사들이 있다. 개발자는 재택근무를 함으로써 생기는 제약이 다른 직종에 비해 적다. 코로나 이전부터 많은 회사가 재택근무를 실행했었고, 개발자들은 회사가 아닌 집, 카페에서 대신 일을 했었다. 코로나로 인해 월 2회 또는 주 2회였던 재택근무가 주 5일이 되었다.
재택근무가 지속된다면 개발자에게 재택근무가 기본, 출근은 옵션이 될 날이 올 수도 있을 것 같다. 그렇다면 한국에 살면서 실리콘 밸리의 회사에서 일할 수도 있지 않을까? 물론 영어도 잘하고 실리콘 밸리의 개발자들보다 개발 실력도 좋다면 말이다. 그리고 한국에 살면서 미국시간에 맞춰 살 수 있다면 가능할 것 같다. 이런 미래를 꿈꾼다면 재택근무로 절약한 출퇴근 시간에 공부(개발 + 영어)를 해야 한다. (말이 안 되는 예측 같다.)
JavaScipt Framework 시장에서는 리액트가 압도적인 위치를 차지하게 되었다. 예전에 SPA가 뜨기 전 jQuery 정도의 위치가 올라왔다. 요즘에 웹 프론트엔드 JavaScipt Framework에 관심이 있는 사람이라면 반드시 리액트를 가장 먼저 공부할 것이다.
그렇다면 2021년에도 "리액트의 시대가 계속될 것인가?"라는 질문을 해야 한다. 당분간은 리액트의 시대가 되겠지만 리액트의 미래에 대해서 회의적인 시각이 많다.
이제 React.js 를 버릴 때가 왔다
위 링크는 최근에 재미있게 읽은 글이다. 짧게 요약하자면 '리액트말고도 좋은 대안이 많다. 반드시 리액트로 모든 것을 만들어야만 하는 것은 아니다. 리액트는 최정점을 찍고 내려오는 중이다.'이다.
2013년 페이스북에서 'virtual dom' 개념을 핵심으로 리액트를 공개한 이후 계속해서 리액트를 놀라운 발전을 해왔고, 2019년 react hook 은 그 발전의 최정점이었고 다른 프레임워크랑은 비교불가의 수준으로 올려주었다고 생각한다. 하지만 그 이후에는 올해 2020년에는 큰 변화가 없었고 타입스크립트가 더 큰 주목을 받았다.
리액트를 쓰면서 타입스크립트도 함께 쓰는데 이게 무슨 소리인가 싶을 것이다. 2013년부터 2019년까지는 리액트가 매년 새로운 기능을 선보이며 JavaScipt Framework 시장을 이끌었지만 2020년 올해에는 타입스크립트가 그 자리를 차지했다. 어떻게 쓰는 것이 타입스크립트와 리액트를 잘 조합하는 것인지가 가장 큰 화두였고 ECMAScript 명세는 공식 릴리즈 이전에 타입스크립트에 반영되기도 했다.
[번역] 두려움, 믿음, 그리고 자바스크립트 - 언제 타입 시스템과 함수형 프로그래밍이 먹히지 않는가
이 글은 타입스크립트를 처음 접했을 때 많은 도움이 되었던 글이다. 자바스크립트가 첫 번째 프로그래밍 언어이고 객체지향보다는 함수형 프로그래밍에 익숙한 사람들에게 많은 도움이 될만한 글이다.
Angular는 오래 전부터 타입스크립트를 써왔고, Vue.js, Svelte는 새롭게 타입스크립트 지원을 제공했다. 리액트와 리액트 주변의 라이브러리들은 이미 지원을 완료했거나 준비 중이다.
Deno는 node.js를 만든 Ryan Dahl이 2019년에 선보인 자바스크립트 및 타입스크립트 런타임이다. 올해에는 Deno v1.0.0를 릴리즈 했다. Deno 1.0 (Den0 1.0에 대한 정보)
Node.js에 관해 후회하는 10가지 - Ryan Dahl - JSConf EU
위 영상은 Ryan Dahl이 2018년 JSConf에서 Node.js에 관해 후회하는 10가지
주제로 발표한 내용이다.
갑자기 node.js와 Deno를 말하는 이유는 좁게는 프론트엔드, 넓게는 자바스크립트 생태계는 node.js가 만들었다고 해도 무방하기 때문이다. 2008년에 v8 엔진의 크롬이 나오고 2009년에 node.js 릴리즈 되었다. 그리고 2010년에 나온 npm
이 지금의 자바스크립트 생태계를 만들었다. 이후 angular, typescript, vuejs, react 등이 계속 나오면서 자바스크립트의 르네상스를 이끌었다고 생각한다.
그런데 그 시작이었던 node.js를 대신할 Deno가 2020년에 출시되었다. 아직까지는 영향이 미미하지만 내년부터 Deno의 영향력은 지속적으로 커질 것이라고 생각한다. Deno의 영향력 확대가 자바스크립트 생태계에 어떤 영향을 미칠지는 정확히 예측할 수 없지만 하나는 확실하다. 자바스크립트를 사용하는 개발자라면 Deno는 항상 주목하고 있어야 한다. 그리고 Deno가 자바스크립트 뿐만 아니라 아예 명시적으로 타입스크립트 런타임이라고 표기한 것도 주목해야 한다. 대세는 확실히 타입스크립트!!
앱 시장에서 올해에 가장 큰 뉴스는 애플과 에픽게임즈의 싸움이었다. 30% 앱수수료가 부담스러웠던 에픽게임즈는 ‘에픽 다이렉트 페이’를 통해 고객의 결제를 유도했고 애플은 Apple 결제 수단만 사용하도록 되돌릴 것을 요구했다. 하지만 에픽게임즈는 이 요구를 거절했고 에픽게임즈의 포트나이트
는 App Store에서 사라졌다.
에픽게임즈는 애플의 광고를 패러디하면서 더욱 강하게 나갔고 갈등은 현재까지 진행 중이다. 애플과 안드로이드의 수수료 30%는 앱을 만들고 수익을 내는 기업과 개발자에게 엄청난 부담이다. 하지만 이 두 기업의 플랫폼은 독점적 위치를 이미 차지해 버렸고 App Store와 Google Play Store 밖에서 유저를 만나 수익을 내기는 어렵다.
이러한 상황을 피하기 위해서 WebAssembly를 이용해 네이티브 수준의 앱을 만들어 App store 밖에서 유저를 만나는 방법을 찾으려 할 것 같다. 이 방법이 성공하려면 수많은 어려움을 극복해야 하지만 그 어려움을 극복하려는 시도는 계속될 것으로 예상된다. 왜냐하면 많은 개발자와 기업들은 현재의 상황이 불공정하다고 생각하기 때문이다.
애플은 에픽게임즈의 포트나이트
를 App Store에서 삭제하면서 강한 대응을 보여주는 동시에 M1
를 탑재한 맥북을 선보였다. M1
는 기대보다 훨씬 좋은 성능을 보여주었고 가격도 기준의 맥북보다 저렴했다. 인텔 CPU를 맥북에서 제거했다는 것은 더욱 강력한 애플 생태계를 만들어 가겠다는 애플의 포부로 보인다. 현재에는 로제타
를 통해 기존 프로그램들을 M1
에서 실행할 수 있도록 도와주고 있지만 장기적으로는 맥북에서도 현재의 아이폰과 아이패드에서처럼 반드시 App Store를 통해야만 프로그램을 설치해야만 할 수도 있다. 만약 그렇게 된다면 이전의 에픽게임즈처럼 모든 회사들이 애플에게 30% 수수료를 내야 할 것이다.
Slack이 electronjs로 만들어진 대표적인 앱인데 electronjs가 WebAssembly를 이용한 자바스크립트 모듈이다. Slack은 App Store 없이 브라우저에서 사용이 가능하고 브라우저를 통해 프로그램을 직접 다운 받을 수도 있다.
electronjs로 만들어진 앱들
2021년에는 플랫폼의 힘이 더 견고해질지 아니면 불만이 커져서 새로운 곳에서 새로운 방법으로 앱을 배포할지 유심히 지켜봐야 한다.
애플과 에픽게임즈 관련 영상(반독점법 내용까지 포함)
엘런 머스크의 테슬라
와 스페이스x
는 다들 잘 아는데 OpenAI
는 모르는 사람들이 꽤 있는 거 같다. OpenAI
는 앨런 머스크의 인공지능 연구소이다. 이 곳에서 올해 'GPT-3(Generative Pre-Training 3)'를 공개했다. 발표된 GPT-3는 뛰어난 자연어 처리(NLP) 능력을 보여주었다. 일반인과 대화를 하고 소설을 쓰고 하는 것에는 그렇게 큰 감흥은 없었는데 GPT-3를 통해서 코딩을 하는 것을 보고 큰 충격을 받았다.
GPT-3를 이용해서 글로 요구 사항을 명령하면 GPT-3가 글을 해석해서 코드를 짜서 요구 사항에 맞는 프로그램을 만들어준다. 아직까지는 100% 요구 조건을 만족 못 시키는 경우도 있고 가끔 에러도 일으키고 있어서 당장 개발자들의 자리를 뺐을 것 같지는 않지만 인공지능이 코딩하는 시대는 확실히 빠르게 다가오고 있다.
인공지능이 미래의 개발자들의 자리를 노리고 있다면 지금 눈 앞에서 개발자들의 자리를 위협하고 있는 것은 nocode platform
이다.
위 영상은 대표적인 nocode platform인 아마존의 Honeycode
의 소개 영상이다. 코드 없이 웹 및 모바일 앱 구축하기
가 서비스의 주된 가치이다. 비슷한 서비스로는 구글의 AppSheet
가 있다. nocode platform을 이용하면 개발자 없이 필요한 기능과 디자인을 넣으면 웹이나 앱을 만들 수 있다. nocode platform를 통해 만들어진 결과물보다 좋은 결과물을 만들지 못한다면 개발자들은 일자리를 뺏길 수 있을 것 같다.
자연어 처리 인공지능 GPT-3
와 Nocode Platform은 개발자의 잠재적인 적으로 인식하고 주의 깊게 살펴봐야 한다.
2015년에 발표된 서버리스의 AWS lambda는 계속해서 진화하고 있다.
AWS Lambda를 사용하면 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행할 수 있습니다. 사용한 컴퓨팅 시간에 대해서만 비용을 지불하면 됩니다.
Lambda에서는 사실상 모든 유형의 애플리케이션이나 백엔드 서비스에 대한 코드를 별도의 관리 없이 실행할 수 있습니다. 코드를 업로드하기만 하면, Lambda에서 높은 가용성으로 코드를 실행 및 확장하는 데 필요한 모든 것을 처리합니다. 다른 AWS 서비스에서 코드를 자동으로 트리거하도록 설정하거나 웹 또는 모바일 앱에서 직접 코드를 호출할 수 있습니다.
AWS lambda는 대표적인 서버리스 서비스인데 여러 가지 요청(이벤트)를 예상해서 그에 대응하는 함수를 만들어 기존의 서버처럼 응답하는 방식이다. 이러한 AWS lambda와 같은 함수를 사용하는 Faas(Function as a Service)은 큰 단점이 있었다. 이 함수를 실행하는 환경(컨테이너)이 항상 준비되어 있는 것이 아니기 때문에 초기에 함수를 실행하기 전까지 함수를 이루고 있는 환경을 실행하는 데에 많은 시간이 소비된다. 이것을 cold start라고 하는데 Faas(Function as a Service)의 큰 단점이었다. 하지만 2020년에 "Provisioned Concurrency"기능을 발표하면서 cold start의 문제점이 개선되었다. 그 뿐만 아니라 이제 컨테이너 이미지 지원까지 시작했다. (AWS Lambda의 새로운 기능 — 컨테이너 이미지 지원)
Faas(Function as a Service)은 AWS lambda 말고 Azure Function, Cloud Functions도 있는데 이 서비스들도 마찬가지로 기능 개선이 되고 있다. Faas(Function as a Service)의 장점은 기존 서버가 있을 때처럼 별도의 컴퓨팅 자원을 관리할 필요 없다는 점이다. 개발자들이 더 이상 scale up
, scale out
를 신경 쓸 필요가 없다.
FaunaDB: A modern operational database built for your Cloud(소개영상)
서버리스와 함께 서버리스 DB 서비스도 많아지고 있다. 밑에 그림은 FaunaDB에서 말하는 the database for a new generation of applications
의 비전이다.
서버 없이 클라이언트에서 직접 serverless API를 이용해 DB와 연결한다. 서버리스 DB는 FireBase에서 오래 전부터 Cloud Firestore로 서비스 해왔다. Cloud Firestore와 FaunaDB는 크게 다르지 않다. 2021년에는 서버리스를 사용하는 회사들이 많아진다면 서버리스 DB 또한 더 많이 사용될 것 같다. 확실히 대세는 서버리스, 서버리스 DB이다. 서버와 DB는 간단하게!!
Cloud Firestore 소개(한글자막)
12월 현재까지 코로나로 전세계가 난리이고 세계 곳곳에서 셧다운
이 되고 있는데 IT 회사들의 주식은 미치듯이 치솟고 있다. 각 정부들은 돈을 뿌리고 있는데 이것이 모두 다 거대 IT회사로 몰리고 있다. 또 많은 사람들이 주식투자를 시작하면서 동학개미운동
이라는 흐름도 생겼다.
증권가에는 구두닦이 소년 신호 (shoeshine boy signal)라는 이론이 있다.
택시 기사들이 당신에게 무엇을 사면 되는지 말해 준다. 구두닦이 소년이 걸레와 광택제로 구두를 닦아 주면서 그 날의 시황을 요약해서 말해준다. 내 사무실 앞에 길가를 거닐던 늙은 걸인이 지금은 내게 주식매매 조언을 주고, (내 추측에) 나와 다른 사람들이 준 돈을 주식시장에 써 버리고 있다. 나의 주방장이 주식거래계좌를 갖고 있으며 종목명(ticker)을 아주 잘 알고 있다. 그녀의 장부상 가공의 이익은 1929년 돌풍에 바로 날아가 버리고 말았다.
위에 인용된 글의 1929년은 역사책에도 나오는 경제대공황
이다. 경제대공항 이후의 역사는 모두 잘 알 것이다. 물론 지금의 흐름이 1929년 직전의 버블과 같다고 생각하는 것은 아니지만 위험성은 잘 인지하고 있어야 한다. 많은 돈이 IT업계로 들어오니 개발자들의 좋은 시절을 보내고 있지만 20년전 IT버블을 잊어선 안 된다. 20년전 그 후폭풍으로 우리나라에서 벤처기업
이라는 단어는 부정적인 뉘앙스가 되었고 아직도 창업이나 도전에서 대해서 부정적인 인식이 절대적이다.
2020년에는 많은 사람들이 스타트업에서 대해서 관심을 갖게 되었고 인식도 좋아졌는데 다시 한 번 20년 전과 같은 버블이 터진다면 똑같은 일이 반복될 것 같다. 기업은 돈을 벌어야 한다. 돈 한 푼 벌지도 못하는 기업들이 미래의 수익을 담보로 많은 투자를 받고 있다. 이러한 기업들이 다가오는 미래에 약속했던 수익을 못 얻고 하나씩 무너질 때 다시 버블 붕괴가 시작될 수도 있다. 만약 미래의 많은 수익을 담보로 많은 투자를 받은 회사에 다니고 있는 개발자라면 이런 점도 생각해야 한다. 버블 붕괴가 시작되면 많은 개발자들이 일자리를 잃게 될 것이다.
물론 2021년에 많은 스타트업들이 실제로 많은 혁신을 이루어내서 성장을 이끌어 내서 개발자들이 좋은 시절을 더 오래 보낼 수 있으면 좋겠다. 많은 개발자들이 지금 받고 있는 기대를 현실로 보여주는 2021년 되길.
* 매우 얇고 넓게 조사한 내용이라 부족한 점이 많을 수 있습니다. 부족한 점은 댓글로 남겨주세요. 수정 반영하겠습니다.
잘 읽었습니다. 그런데 M1, WebAssembly 그리고 App Store를 통해야만 프로그램을 설치하게 되는 이슈에 대한 연관성을 잘 모르겠네요..
올해의 트렌드를 핵심부분만 정확하게 집어 작성해주셔서 감사합니다. 개발자가 되기 위해 공부중인데 너무 중요한 정보를 얻고 갑니다. 앞으로 더 미래에는 또 다른 직업이 생겨날 수 있겠네요. 정말 하루하루 기존의 직업들이 사라지고 새로운 직업들이 경제로 인해 생기고 바뀔 수 있으니 우린 살아남기 위해 계속 공부하며 연구할 수 밖에 없겠군요.
좋은 내용 감사합니다 멋지네요! 저도 개발 공부하는 중인데, https://quantpro.co.kr/ 해당 사이트 퀀트 내용 어떤지 의견주시면 감사하겠습니다!
재밌게 읽고 갑니당!!!☺️