안드로이드 제트팩이 뭔데

Kim JuYoung·2023년 10월 15일
0

Android Libraries

목록 보기
2/4
post-thumbnail

🚀 Jetpack은 개발자가 중요한 코드에 집중할 수 있도록 권장사항 준수, 상용구 코드 감소, 여러 Android 버전과 기기에서 일관되게 작동하는 코드 작성을 돕는 라이브러리 묶음입니다.


기술 스택이 중요한데...



⏱️ 1년 전의 나에게 3가지 무언가 말을 할 수 있다면, 로또 번호와 비트코인 그리고 기술 스택에 대해 제발 공부 좀 하라고 하고싶다.


기술 스택이란, 애플리케이션이나 서비스나 이러한 것들을 개발하고 배포하는 데 필요한 기술 구성 요소를 포함하는 모든 것들을 의미한다고 인터넷에 정의되어 있다.


그래서 기술 스택이 왜 중요한데?



위 사진은 모집 공고의 자격 요건과 우대 사항인데, 내가 예전에 정말 좋아하고 많이 했던 모바일 게임 회사이다. 몇 년전에 게임 룰을 이상하게 바꾸는 바람에 삭제하고 쳐다도 안봤는데 찾다보니 있어서 보게되었다.


아무튼, 이렇게 몇몇 기술 스택을 자격요건과 우대사항에서 바로 볼 수 있듯이 기술 스택이 있는 것과 없는 것의 차이는 확연하게 보이기 때문에 중요하다고 생각되는 것이다.


코루틴이나 이런거 써보긴 했는데

📱애플리케이션 개발에 흔히 사용되는 Gson, Retrofit 이러한 API들도 기술 스택에 포함되는데,


이런 것들을 공부하고 정리하면서 자신의 프로젝트에서 쓰는 것과, 그냥 당시에 필요해서 인터넷에 찾은 뒤 코드 복붙 해서 쓰는 것. 이러한 것들의 차이는 분명히 있을것이다.


나도 이런저런 API들을 써봤는데, 면접에서 "그냥 써보긴 했어요" 하면 누가 인정해주겠냐 이런 생각이 들어서 이렇게 각 잡고 안드로이드에서 애플리케이션을 개발할 때 권장되는 최신 기술 라이브러리 부터 공부를 해보려고 한다.


제트팩 말고 다른 기술 스택은 뭐가 있지?



안드로이드 제트팩 말고 알아두면 좋은 기술 스택 몇가지 내가 알고 있는 것을 나열하자면


  • JAVA/Kotlin/Dart(플러터 한정) : 가장 기초적인 기술 스택, 앱 개발을 위한 프로그래밍 언어

  • Coroutine, Flow : 비동기 작업과 데이터 스트림 처리를 위해 코틀린 언어에서 사용되는 기술

  • MVVM, MVI, MVM : 소프트웨어 아키텍처 패턴

  • Github : 버전 관리, 협업 플랫폼

  • Retrofit2, OkHttp3, Gson : HTTP 통신을 위한 API 그리고 JSON 객체 처리를 위한 API

  • WebSocket : 양방향 통신 세션을 위한 프로토콜

이렇게 인터넷에 찾아서 나열해봤는데 잠깐 찾아본걸로 이정도 나오는데 앞으로 막막하다 🤣


안드로이드 제트팩(Android Jetpack)

안드로이드 제트팩이란?

안드로이드 제트팩 공식 홈페이지에 가보면 제트팩에 대해 설명이 나와있고 유튜브에도 설명이 나와있는데


차세대 안드로이드 개발 컴포넌트 도구, 안드로이드 최신 아키텍쳐 설계, 애플리케이션 개발자를 위한 라이브러리 등등 좋은말로 꾸며놓고 있다.



내가 아는 제트팩은 하늘 날아다니는 제트팩 밖에없는데 말이다.


여튼, 한마디로 쉽고 빠르게 안드로이드 앱을 만들 수 있도록 안드로이드에서 만들어준 고오급 라이브러리와 API들의 모음이다.


앱 개발에 꼭 필요할까?

만약, 똑같은 기능을 하는데, 더 짧은 코드가 있다면 대부분의 경우에서 그건 잘 만든 코드가 틀림없다. 우리 학교 교수님이 하시던 말이 있다. "코드를 간결하게 짜라"


당장 제트팩 홈페이지에만 가도 써있지 않은가 "reduce boilerplate" 제트팩 API를 사용하여 코드 수를 줄일 수 있다면 그것만으로도 가치가 있다고 생각된다.


그리고 모바일 기기는 기기마다 화면도 다르고 성능도 다르고, 버전도 다르고, 같은 코드지만, 다르게 표시되는 경우가 종종 있다고 한다. 제트팩 API로 이러한 일관성을 유지하는데 도움이 된다면 안쓸 이유가 없다.


마지막으로 생명 주기와 메모리 누수를 해결하는데 최신 설계 방식으로 해결 방법을 제공한다면 이걸 안쓸 수 있겠는가.


이렇게 안드로이드에서 권장하는 방법들을 모아놓은 것이 바로 안드로이드 제트팩이라고 한다.


사실 이것 뿐만이 아니더라도 일단 기업 공고에 안드로이드 제트팩 API 사용 경험을 요구한다면 해야지 어쩔 수 있겠는가


안드로이드 제트팩 구성 요소

제트팩 라이브러리

유형별 안드로이드 제트팩 라이브러리는 여기서 더 자세히 볼 수 있는데, 최근에 안드로이드 개발을 아주 조금이라도 해본 사람이라면 Activity, Fragment, Room 이러한 이름을 들어봤을 것이다. 이런 것들 모두 제트팩 라이브러리에 포함되는 것이다.



제트팩 라이브러리는 크게 4가지 카테고리로 분류할 수 있다고 한다. 그렇다고 이 4개 밖에 없는게 아니고 하위 카테고리로 또 나뉜다고 한다. 그래서 정말 많은 카테고리가 있는데, 그걸 다 알아봤자 의미도 없고 해서 쓰임새 별로 유명한 라이브러리를 나열해보려고 한다.


  • Data Binding : XML 레이아웃 파일에서 데이터를 직접 바인딩하여 사용

  • Lifecycles : 안드로이드 컴포넌트의 생명주기를 관리

  • LiveData : 데이터의 변경을 관찰

  • Room : SQLite DB를 관리

  • ViewModel : UI 관련 데이터의 생명주기를 관리

  • CameraX : 다양한 카메라 호환성을 제공

  • Navigation : 앱 내 화면 간의 이동 관리

  • WorkManager : 백그라운드 작업 관리

  • Compose : 안드로이드 UI를 선언형으로 심플하게 구성

  • Paging : 대량의 데이터를 효율적으로 로드

  • AppCompat : 최신 안드로이드 기능을 이전 버전에서도 사용할 수 있게 처리

  • Hilt : 의존성 관련 라이브러리

몰랐던 라이브러리도 있고 간단한 프로젝트 할 때 써봤던 라이브러리도 있고 알게 모르게 쓰고 있던 라이브러리도 있을 것이다. 이렇게 찾아보고 공부하고 정리라도 한다면 나중에 면접 때 한마디라도 더 할 수 있지 않을까


이렇게 돌아보니 차라리 2학년 때 C++, XML 배울 시간에 이런 최신 라이브러리나 한번 더 봤으면 이렇게 앞길이 막막하진 않았을텐데 참 아쉬울따름이다.


이제는 찾아볼 때가 되었다



현재 3학년 2학기 차근차근 하나라도 더 본다면 잘먹고 잘 살 수 있지 않을까. 이렇게 인터넷에 글이라도 올려서 "이제는 진짜 공부 할거야"고 선언하는거니까 지금 당장 동기 부여가 조금은 되는 것 같다.


이제 슬슬 주변에서 취업 때문에 고심이 깊어지는 학생들의 모습을 보니 나도 위험한거 아닌가 싶어서 찾아보게된 포트폴리오 덕분에 정신을 차린 것 같다.


그리고 고민을 많이 하는 친구들이 있던데 다 비슷비슷하니까 너무 걱정하지 않았으면 좋겠다. 나는 좀 더 많이 걱정을 해야할 것 같고... 😭😭😭


profile
안드로이드와 인공지능에서 살아남기

0개의 댓글

관련 채용 정보