2022년 당신이 배워야 하는 개발 언어 그리고 기술 스택 8가지




이 세상에 정말 많은 개발 언어와, 기술들 그리고 프레임워크들..

2022년에 눈여겨볼 만한 것들이 무엇이 있는지 한번 살펴보겠습니다. 이 글은 사실 백엔드 개발자이자, 테크리드인 제 입장에서 쓴 글이라 모든 분들에 맞는 것이라고 이야기 하기는 어렵습니다. 하지만 밝은 미래가 예상되는 산업군과 프레임워크와 개발언어들의 라이징 스타들을 한번 알아보는 시간을 가져보고자 합니다. 2022년이 끝나면 한번 어느 정도 예측이 맞았나... 알아보는 시간도 가지고 싶군요!


오늘 알아볼 각분야의 스타들을 한번 알아볼까요?

개발언어

  • Python
  • Java
  • TypeScript


프레임워크

  • Svelte
  • FastAPI
  • Flutter(Dart)
  • Unity(C#)


DevOps

  • Terraform




  개발언어


Python

저는 TIOBE를 자주 레퍼런스로 사용하는데요. 2021년 1월에 TIOBE 순위에 대해 이야기 나눈 적 있었습니다. 

관련글 : 2021년, Top 7 프로그래밍 언어 추천


2021년 1월은 3등이었던 Python이 1등으로 돌아왔습니다. 개인적으로 파이썬은 배우기 쉽기 때문인듯합니다. 데이터 과학자들도 많이 사용하는 언어이기도 하고요. 아마 개발자 분들이 제 블로그를 많이 들어오시기 때문에, 사실 개발자들의 시각에서 Python을 생각하실 듯 합니다만, 데이터 과학자들과 밀접하게 일하다보니, 개발자들의 Python 과 데이터 엔지니어들의 Python은 다른 것 같아보였습니다. 같은 언어지만, 개발자들에게는 많은 언어중 하나인 반면에 많은 데이터 과학자 분들께는 R 아니면 Python 이런 양자택일의 문제 더라고요. 인공지능과 데이터가 더욱 더 핫 해질 2022년에도 Python은 2위 그룹과 더 격차를 벌리지 않을까 싶습니다. 만약 개발자가 되고 싶은 분이라면, Python과 Java를 배워보시면 편하게 일할만한 곳은 많을 것이라 생각합니다.

TIOBE 2022 1월




Java

만능언어 Java. 대한민국 정부과제가 Java를 표준으로 하고 있기때문에, 자바 엠파이어 라고들 하지만, 비단 우리나라만 그럴까요? 자바는 상당히 많은 국가/기업에서 튼튼하고 신뢰가는 언어로 이미 자리 잡았습니다. Java의 간판 스프링 프레임워크가 계속해서 성장하고 있고, Spring Framework도 Async를 트렌드처럼 지원하고 있습니다. 이런 것만으로는 드라마틱하게 위상이 올라가지는 않을 거라고요? 맞습니다. Java는 너무나 안정화된 세계 입니다. 그래서 드라마틱한 기술적 도약을 생각하지는 않지만, 최근 Jetbrain 연구에 따르면 미국에서 Java로 개발하는 개발자 비율이 27% 정도 됩니다. 중국은 47% 입니다. 대한민국은요? 아래 에서 보시지요!


Source : Jetbrain

 

대한민국은 53% 입니다. 해당 설문 이름은 "프로그램 인기도" 이지만, 해당 설문 질문으로 유추하자면, 한국 개발자의 53%가 Java를 사용하고 있습니다. 이미 이렇게 큰 생태계를 가지고 있는 언어인 만큼 귀추가 주목됩니다. 




TypeScript

타입스크립트의 TIOBE 순위는 49위 입니다. Java 설명할 때 나왔던 히트맵에도 타입스크립트는 상당히 약합니다. 하지만, 좋은 언어임에 분명합니다. 현재 사내에서 TypeScript Express와 TypeScript React로  프로젝트를 준비하고 있습니다. TypeScript 를 하면서 이 언어의 매력에 빠졌습니다. 2014년에 MicroSoft에서 1.0버전이 나왔고 2016년에 2.0버전이 나왔습니다. 역사가 오래된 언어가 아니다보니, 아직 시장을 점유하는 비율은 적은데요. 그래도 앞으로 성장이 무궁무진한 프로그래밍 언어 임에는 분명합니다. JavaScript의 슈퍼셋인 TypeScript는 정적타입언어 입니다. 그래서 진입장벽이 높다고 생각하실 수도 있지만, JavaScript를 할 줄 아신다면 편안하게 적응 하실 수 있을 것으로 봅니다. 

저는 주로 일할때 Python을 사용하고 Python 에는 Type Hint라는 것이 있지만 타입을 강제 하지는 않습니다. 동적언어를 사용하다보니, 때로는 컴파일러가 존재하는 정적타입언어를 사용하고 싶은 생각도 종종듭니다. 코드가 길어지고 프로젝트 비즈니스 로직이 난해해 질수록 그리고 해당 프로젝트 컨트리뷰터가 많아질 수록 코드가 복잡해져서 컴파일 타임에 오류를 잡아내어 안심하고 싶기 때문입니다. 당신이 이것을 배우면 이 멋진 정적타입언어로 튼튼한 비동기 백엔드서버도 만들수 있고 빼어난 프론트엔드도 만드실 수 있습니다. 물론 자바스크립트도 할 수 있지만, TypeScript로 하면 훨씬 튼튼하게 잘 만들 수 있을 것이라 자신합니다!! 2022년이 끝날때 얼마나 점유율을 올릴지 기대가 되는 언어입니다. 아.. 참! Angular 사용하시려면 TypeScript가 필수 입니다.



  프레임워크


Svelte (JS/TS)

React가 압도적으로 시장 점유율을 늘려가고 있고, React 역시 2022년에 귀추가 주목되는 프레임워크이지만, 이제 우리에겐 Svelte가 있습니다. 처음 들으셨다고요? 그럴 수 있습니다. 우선 Svelte(스벨트) 가 내세우는 철학은 다음과 같습니다.

  • Write less code
  • No virtual DOM
  • Truly reactive

지금까지 사용했던 virtual DOM 이 없..다..고? 지금 까지 했던 접근방법과는 다른 접근법을 제시합니다. React나 Vue에서는 브라우저에서 대부분 작업을 수행하지만, Svelte는 빌드 단계에서 구성요소를 컴파일 합니다. 단일 번들(hundle.js)를 로드하여 앱을 렌더링합니다. Svelte는 프레임워크지만, 런타임에 프레임워크를 로드하지 않습니다. 신기하쥬? 다른 프론트엔드 프레임워크보다 훨씬 러닝커브가 적다는 것을 알수 있었습니다. 물론 어마어마하게 큰 프로젝트를 해본 것은 아니어서 코드베이스가 복잡하고 커지면 어떨지 아직 잘 감이 안오지만, 큰 프로젝트에도 한번 사용해보고 싶은 마음이 들었습니다. 


우선, 프레임워크를 로드하지 않아도 되기 때문에, 바닐라 자바스크립트로 돌아갑니다. 이게 얼마나 판타스틱 한가 잘 이해가 안가실수 있지만,  


얼마나 빠른지 벤치마크를 볼까요?



 

최상위권에 머물러 있는 것으로 알 수 있습니다. 그럼 이제 번틀 사이즈를 한번 보겠습니다. 




사실 이 결과는 당연한 것일 수도 있습니다. 적은 파일을 로드하면 처리할 연산이 줄어들고, 그러면 당연히 더 빨라지는 것은 어쩔 수 없는 것이니까요.


그리고, 샘플프로젝트를 해보았는데 어렵지 않았습니다. 우선 프레임워크가 아니라 컴파일러에 가깝다는 새로운 패러다임을 제시하고, JSX같은 것을 배우지 않아도 지금까지 우리가 알고 있던 HTML, CSS, JS의 기본 작동원리를 그대로 사용하는 방식으로 코딩이 가능했습니다. SSR, Scoped CSS, Animation 지원은 기본이고요. 

Svelte를 기본으로 한 여러가지 프레임워크들이 있습니다. 

등등..


Sveltekit 에서 TS를 지금 지원하고 있습니다.


React, Vue, Angular 가 3대장이라고 한다면, 아직은 아웃사이더 프레임워크 일 수 있습니다. 하지만, 새로운 패러다임을 제시한 만큼 급성장 할 것으로 보입니다. 마치 제가 처음 FastAPI를 만났들때 들었던 느낌이었습니다. Svelte의 또다른 확장성을 하나 말씀드리자면, FastAPI, Django RestFramework, Flask 에서 풀스택으로 작업하고 싶으실때, Jinja Template을 사용하지 않아도 됩니다. 빌드 후 로드할때 프레임워크가 필요 없기 때문에, 그냥 Svelte를 템플릿으로 사용해 버리면 됩니다. 강의를 아마 하나 만들지 않을까 싶습니다.



FastAPI (Python)

제가 현재 재직중인 회사는 Python - FastAPI 를 메인스택으로 사용하고 있습니다. 아마... 어쩌면.. 아마도.. 대한민국에서 처음으로 FastAPI 프로덕션에서 사용했을 수도(?) 있다고 생각합니다. 빨리 사용한게 자랑은 아니지만, FastAPI 를 선택하고 한번도 후회한적 없다는 것을 말씀드리고 싶습니다. 

그래서, 이미 제가 써둔 글들이 많습니다.

- Node.js 아성에 도전한다. FastAPI written in Python


FastAPI 의 Github Star는 4만개 입니다.




이게 얼마나 많은 것인지 잘 모르신다면, Django 는 6.1만개, Flask는 5.7만개 입니다. 아직 Django, Flask 보다는 아래이지만, 나이가 10살넘게 차이 나는 것을 보면 매우 놀라운 성장세 입니다. 

게다가, 아직은 확실하지 않지만, 2022년! 드디어 1.0 정식버전을 만나볼 수 있지 않을까 하는 기대감이 있습니다. 물론 Starlette과 uvloop를 포크해서 만든 프레임워크에 SQLAlchemy에 Pydantic을 사용해서 어느정도 안정감이 있었지만, 1.0 버전을 만나게 된다면 더욱 기쁠것 같습니다. 




Flutter (Dart)

처음 플러터를 사용했을 때에는, 그저 그랬습니다. 사실, 언어 자체가 익숙하기 않으니 더 그랬을 수도 있고요. 계속 사용해보니 언어도 익숙해지면서, 사용할만 하다고 생각만 하고 있었습니다. '만약, 앱을 개발할 일이 있다면, Flutter를 사용해봐야지!' 라고요. Flutter 2.0이 나오면서 다시 사용해봤습니다. 꽤 괜찮았습니다. Awsome Flutter 를 방문해서 원하는 라이브러리들도 설치해서 사용해봤습니다. GET X 라는 환상적인 상태관리 라이브러리를 만나면서 Flutter 인생이 달라졌습니다. 


이미 구글 트렌드에서 웬만한 웹프레임워크보다 검색량이 많고, 스택오버플로우에서도 react native 보다 질문량이 많습니다.

플러터의 인기를 실감해 보고 싶으신가요? 제가 써둔 "왜 플러터 인지" 를 설명한 글이 있습니다. 한 번 읽어보세요!

Flutter.. 정말 좋네..? 나만 그렇게 생각하는 건가..  


 

Unity3D (C#)

언어도 그렇고, 진입장벽에 좀 있어서 전문적으로 다뤄본적이 있는 분들은 얼마 없어도, Metaverse(메타버스) 산업이 성장하면 성장할 수록 인기도가 높아지지 않을까 생각합니다. 물론 게임을 제작할수 있는 프레임워크는 많습니다. 그 중에도 왜 유니티 인가? 에 대해 생각해 보자면,  Unity3D(이하 유니티) 는 매우 강력한 개발 프레임워크 입니다. 애니메이션과 렌더링이 매우 유연하며, 케릭터를 살아있는 것처럼 만들 수 있습니다. 자연스럽고 유연한 움직임을 잘 표현하고, 무엇보다 크로스 플랫폼 입니다.

자바스크립트 지원은 중단되었지만 여전히 C#으로 엄청난 퀄리티의 게임을 만들 수 있습니다. 

유니티로 작업하면 총작업량의 20~30%정도 코딩을 하게 됩니다. 나머지는? 전부 UI/UX, Drag and Drop으로 구성됩니다. 게다가 어마어마한 크기의 커뮤니티도 있습니다. 

VR/AR/Metaverse 가 발전함에따라 수요가 늘어나지 않을까 생각되는 프레임워크입니다. 게임은 혼자 만들 수 없지만, 그래도 한번쯤 배워보고 싶은 프레임워크임에는 확실합니다.


어떤 게임이 Unity로 만들어 졌나고요?




 어떤가요? 배워볼만 하지 않을까요?


게다가 Naver Zepeto 에서 Unity로 게임 개발을 할 수 있습니다. 벌써 시작되었다고 생각합니다.



  DevOps


Terraform

테라폼은 HashiCorp에서 관리하는 오픈 소스 Infrastructure as Code 소프트웨어 툴 입니다. 수백개의 Cloud 서비스를 지원하며, 우리가 많이 쓰는 AWS, Azure, GDP 그리고 Naver Cloud를 지원합니다. HCL (HashiCorp Configuration Language ) 라는 언어로 설정파일을 쓰고 그 파일 대로 클라우드 인프라가 생성/변경/삭제 되는 것이라고 보면 됩니다. 


테라폼이 할 수 있는 일은 정말 명확합니다. 인프라를 코드로 관리 해주는 것. 한번만 쓰면 테라폼의 매력에서 나올 수 없습니다.


  • 빠르고 효과적으로 인프라를 구축해 줍니다.
  • 구축도 정말 빠릅니다.
  • 멀티 클라우드도 지원하고요!
  • 사용하고 계신 클라우드에 대해 잘 아신다면, 진입장벽도 낮습니다.
  • 커뮤니티 역시 방대 하기에, 걱정 안하셔도 됩니다.
  • 테라폼은 당신의 리소스를 추적합니다.


제가 테라폼에 대해 이전에 써둔 글이 하나 있습니다. 한번 읽어보세요!

Terraform 도입해봐! 안써본 사람은 있어도, 한번만 써본 사람은 없을껄?


  Conclusion

하나도 시작한 적이 없다면 위에 기술을 전부 다 배워볼 수는 없겠지만, 하나씩 시작해보면 어떨까요? 

2022년 새해 저도 한번 달려보겠습니다!


 



  • [[a.original_name]] ([[a.file_size | fileSizer]])
좋아요[[ postLike | likePlus ]]
공유
라이언

“Lead Python Engineer”

댓글 [[totalCommentCount]]
[[ comment.author__nick_name ]] [[ comment.datetime_updated | formatDate]] (수정됨)

[블라인드 처리된 글 입니다.]

답장
[[ sub.author__nick_name ]] [[ sub.datetime_created | formatDate ]] (수정됨)

취소
댓글을 남겨주세요.
'데브옵스' 관련 최신 포스트
[[ post.title ]]
[[ post.datetime_published_from | DateOnly ]]