[Tech] 2020년 꼭 알아야 할 기술 트렌드

2020년이 성큼 가까이 다가 왔습니다. 2020년이라는 단어는 마치 자동차가 날아다니는 공상과학소설에 나올것과 같은 먼 미래의 느낌이 듭니다.

2020년 우주의 원더키디

자동차는 아직도 땅에서 뜰 생각은 안하고, 로봇이 아침밥을 차려주진 않더라도 내년을 지배할 개발 트랜드에 대해 알아볼 필요는 있습니다. 미래를 점칠 수 있는 무당은 아니지만, 여러가지 통계자료를 통해서 예측정도는 충분히 가능할 것 같습니다.

미래를 예측하는 가장 좋은 방법은 미래를 만들어내는 것이다.

— 에이브리험 링컨

1. Rust(rust-lang.org)

A language empowering everyone
to build reliable and efficient software.

Rust는 모질라 리서치에서 개발한 범용 소프트웨어 프로그래밍 언어입니다. 특히 안전하고, 병렬적이고, 실용적인 점에 주안을 둔 언어입니다. Rust는 C/C++와 문법적으로 유사하지만, 고성능을 유지하면서 더 뛰어난 메모리 안전성을 제공하도록 설계되었습니다.

Rust Crap

지난 4년동안 Rust는 급격하게 성장한 로그래밍 언어입니다. 2020년에 Rust는 대세 언어로 자리매김할 것입니다. 현재는 교육과정에서 가장 핫한 언어는 파이썬이지만, 점차 Rust로 옮겨갈 것으로 예측합니다.

Most loved programming languages from the 2019 StackOverflow Survey.

Stackoverflow 기술 서베이에서 볼 수 있는 것 처럼, Rust는 한해동안 가장 사랑받은 언어입니다. 또한 매우 활발한 커뮤니티를 가지고 있습니다. Facebook이 발행할 계획인 암호화폐인 Libra 또한 Rust로 개발되었습니다.

만약 당신이 새로운 언어를 배우고자 한다면, 저는 단연코 Rust를 학습할 것을 추천합니다. 아쉽만 Yes24기준으로 Rust에 대해 발간된 국내도서가 없기 때문에 원서를 참고하거나, 한국 러스트 사용자 그룹에서 번역한 Document 2판을 따라가는 것이 좋아보입니다!

Oh..crap!

2. GraphQL(graphql.org)

Describe your data

Ask for what you want

Get predictable results

GraphQL Google Trends

GraphQL은 API를 위한 쿼리언어입니다

서비스 어플리케이션의 복잡성이 증가함에 따라, 더욱 다양한 형태의 데이터가 필요해지고 있습니다. REST API는 데이터 형태 마다 URL end-point가 필요하며, 해당 API에 대한 명세서가 필요합니다.

이러한 흐름에 비춰봤을 때, 기존의 REST API에 비해 GraphQL은 훌륭한 대안이 될것 이라고 생각합니다.

기존의 REST API는 많은 URL과 명세서를 필요로 하는 반면, GraphQL은 단일 진입점(End point)와 단일 요청으로 원하는 형태의 데이터를 쿼리해올 수 있습니다.

https://graphql.org/

GraphQL은 규모가 작은 기업들 뿐만 아니라 Facebook, Yelp, Github, Twitter, Atlassian등 거대한 테크 기업에서도 사용하고있습니다.

  • Python으로 GraphQL을 사용하고 싶으신 분은 가장 유명한 라이브러리인 Graphene을 참고하세요
  • Django framework에 GraphQL을 사용하고 싶으신 분은 Graphene-django를 사용하세요

3. Progressive Web Apps

Reliable

Fast

Engaging

Progressive Web Apps(이하 PWA)은 웹의 기능과 앱의 품질을 결합하여 어플리케이션을 개발하는 새로운 접근방식입니다. 기존의 네이티브앱 또는 하이브리드 앱과는 다릅니다. 브라우저상에서 지원하는 앱이라고 이해할 수 있습니다.

Going Big: PWAs Come to Desktop and Chrome OS (Google I/O 2019)

PWA는 설치없이 브라우저를 통해서 서비스를 제공, 모바일 앱아이콘을 추가할 수 있고, 푸시알람을 보낼 수 있고, 오프라인에서도 접근할 수 있습니다.

큰 규모의 서비스에 이를 도입하는데 시간이 걸리겠지만, 자연스러운 변화의 흐름이라고 생각합니다. PWA에서 Progressive한 부분은 Front-end 개발보다는 Web worker API(Native Browser API)과의 상호작용에 좀더 가깝습니다

기존의 웹앱은 큰 영향은 없겠지만, PWA를 사용할 수록 시간과 비용을 절감할 수있다는 것을 경험할 것입니다.

PWA Google Trends

PWA에 대해 좀더 알고 싶으시면 링크 문서를 참고하시면 됩니다

4. WebAssembly(webassembly.org)

is a binary instruction format for a stack-based virtual machine.

Web Assembly (이하 WASM)는 C/C++과 같은 언어를 컴파일 하여 브라우저에서 빠르게 실행되는 이진형식으로 바꾸는 기술입니다. 플러그인 설치 없이, 브라우저에서 네이티브에 가까운 성능을 보여주는 기술입니다. WASM는 C/C++/RUST와 같은 고성능의 언어를 컴파일 하여 브라우저상에서 직접 사용할 수 있도록 고안되었습니다. 또한, 클라이언트와 서버 앱을 웹상에서 배포할 수도 있습니다.

즉, WASM는 Javascript 기술을 더 높은 수준의 기술로 연결해줍니다. React 앱에서 Rust로 개발한 이미지처리 라이브러리를 사용할 수 도 있습니다. WASM는 이를 가능하게 해줍니다.

WebAssembly with Rust

서비스의 핵심은 언제나 성능입니다. 하지만, 데이터가 많이 쌓이면서 좋은 성능을 발휘하기는 점점 더 어려워집니다. 이때가 바로 C++/Rust 저수준의 라이브러리가 필요한 시점입니다. 머지않아 대기업들도 WASM를 도입하고, 활용폭은 커질 것입니다.

고전게임인 Quake를 브라우저에서 바로 즐길 수 있는것도 바로 이 때문입니다.

http://www.quakejs.com

5. React(reactjs.org)

A JavaScript library for building user interfaces

Javascript Library Google Trends

React는 Front-end 개발자들에게 가장 인기있는 Javascript 라이브러리입니다. React를 활용하면 쉽고 재미있게 앱을 만들 수 있습니다. Angular가 2013년부터 짧은시간동안 인기를 누렸지만 높은 learning curve가 장벽이 되었습니다. 이후 React의 인기가 치솟아오르게 됩니다. React 개발진과 커뮤니티는 계속속해서 앱 개발경험을 향상시키기 위해 노력하고 있습니다.

React, Angular, Vue 모두 훌륭한 라이브러리 입니다. 하지만 선택이라는 기로앞에서 논쟁이 시작됩니다. 라이브러리를 사용하는 이유는 업무 효율을 높이는 것임을 기억해야합니다. 어떤 프레임워크가 최고인지를 따지는것은 시간낭비에 불과합니다. 대신, 하나를 선택하고 모든 노력을 다하는 것이 중요합니다.

사이드 프로젝트를 시작하고 싶은데 주제를 정하지 못했다면 링크를 참고하세요

6. Javascript(MDN)

is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions

지난 10년간은 Javascript의 시대였습니다. Javascript는 엄청나게 성장을 하였고, 그 속도를 늦출것 같아보이지 않습니다.

이따금, Javascript개발자들에게 “진짜 개발자가 아니다" 라는 조롱하는 사람도 있었습니다. 하지만 이제 그렇게 말하면 바보취급받는 시대로 변했습니다.

Top Languages in Octoverse

Netflix, Google, Facebook 등등 굴지의 테크회사들은 Javascript 아주 중요하게 사용하고 있습니다. 또한 Javascript 커뮤니티에 의해서 멋지고 혁신적인 것들이 마구마구 만들어지고 있습니다. Javascript는 훌륭한 프로그래밍 언어이며, JS개발자로서 자부심을 가질 필요가 있습니다. 자바스크립트 개발자는 지금 가장 좋은 시기를 누리고 있습니다. 수요의 증가에 따라 몸값이 계속해서 상승하고, 커뮤니티는 여느때보다 활발합니다.

자바스크립트를 배우고 싶다면 You Don’t Know JS 책을 추천합니다. 또한 Json 창시자의 더글라스 크락포드의 자바스크립트 핵심가이드 추천합니다!

긴 읽어주셔서 감사합니다! 해피~코딩

참고링크

Blog https://chrisjune.dev Work for www.29cm.co.kr