[Kotlin] 새롭게 다루는 것들
더 나은 성능과 사용성을 위해 새로운 기술들을 배워보자!
이번에 공부할 핵심 키워드는 컴파일, 빌드, 런타임, APK 이다.
1) 젯팩(Jetpack)
안드로이드는 모든 버전과 기기에서 일관되게 동작하는 젯팩(Jetpack) 라이브러리를 제공한다.
안드로이드 개발자들은 수많은 파편화로 인해 각각의 버전 및 기기별로 여러 버전의 코드를 작성해 왔다.
이런 문제들을 해결하기 위해 젯팩이 개발되었고, 개발자들은 필요한 로직에만 집중할 수 있게 되었다.
젯팩을 사용하는 이유
젯팩을 사용하는 이유는 다음과 같이 세 가지로 볼 수 있다.
- 하위 버전 호환성
- 최신 설계 방식을 바탕으로 빌드된 젯팩 라이브러리는 이전 버전과의 호환성 기능이 통합되어 비정상 종료와 메모리 누수를 줄일 수 있게 해준다.
- 반복되는 코드 제거
젯팩은 개발자가 비즈니스 로직을 작성하는 데 집중할 수 있도록 백그라운드 작업, 수명 주기 관리 등 반복적이고 지루한 코드를 제거해준다.
낮은 복잡도
- 모든 버전 및 기기에서 일관된 동작으로 코드의 복잡도를 낮춰준다.
- 하위 버전 호환성
젯팩 라이브러리
젯팩은 약 90개 정도의 라이브러리르 제공한다.
다음은 입문 단계에서 꼭 필요한 라이브러리이다.
Collection
ConstraintLayout
Fragment
RecyclerView
ViewPager2
Preference
Room
2) 뷰 바인딩(ViewBinding)
안드로이드에서 뷰 객체에 접근하기 위해서는 findViewById()를 사용한다.
안드로이드는 findViewById를 떨쳐내고(deprecate) 뷰 바인딩을 지원한다.
3) 코루틴
- 백그라운드 처리를 위해 사용되던 스레드(Thread)를 경량화한 코루틴(Coroutine)이 제공한다.
- 동시성 프로그래밍이 가능한 코루틴은 다른 언어에서 이미 사용되고 있는 개념이며, 이를 Kotlin에 도입한 것이다.
- 기존의 스레드는 코루틴을 위해 실행 가능한 공간을 제공하는 역할만 하며, 하나의 스레드에 여러 개의 코루틴이 존재할 수 있도록 설계되었다.
- 그래서 2개 이상의 코루틴이 있을 때 프로세스 흐름이 코루틴 1에서 코루틴 2로 변경된다 하더라도 기존 스레드의 변경에서 발생할 수 있었던 성능 저하는 발생하지 않는다.