도서 리뷰

[도서 리뷰][제이펍] 핵심만 골라 배우는 젯팩 컴포즈

스무비 2025. 12. 5. 21:19
반응형

 

 

핵심만 골라 배우는 젯팩 컴포즈 도서 리뷰!

 

핵심만 골라 배우는 젯팩 컴포즈 표지

 

 

안드로이드 앱을 개발해보고 싶어서 관련 서적이나, 기술정보를 수집하다가 최근에는 코틀린 기반의 젯팩 컴포즈를 사용해서 쉽고 빠르게 앱을 개발한다는 것을 알게 되었다. 그래서 젯팩 컴포즈와 코틀린에 대해서 기본적인 내용이 잘 정리된 입문자용 도서를 보고 싶어서 제이펍 출판사에서 만든 아래 책을 읽게 되었다.

 

본 도서는 제이펍의 모바일 시리즈 41번으로써 3년 전(2022년 12월)에 나온 책이라 최신성은 좀 떨어질 수 있지만, 나는 기본적인 개념을 전체적으로 한번 훑어보는 것이 주목적이기 때문에 크게 신경 쓰지 않고 봤다.

 


 

 

목차 구성

먼저 책 목차 구성을 보면, 매우 세부적으로 챕터가 나뉘어 있어서 총 55개의 챕터로 구성된다. 챕터를 나름대로 그룹핑해보면 다음과 같이 설명할 수 있을 것 같다.

  1. 실습을 위한 안드로이드 스튜디오 개발환경 설정 (+컴포즈 기본)
  2. 안드로이드 아키텍처 개요
  3. 코틀린 개요 및 문법(기능)
  4. 젯팩 컴포즈 개념 및 기능설명(+튜토리얼)
  5. 안드로이드 앱 생성 및 마켓 배포
  6. 안드로이드 스튜디오 그레이들(Gradle) 개요

상세한 Chapter 구성을 보고 싶다면, 교보문고에 가서 확인을 해보면 된다.

https://product.kyobobook.co.kr/detail/S000200385559

 

핵심만 골라 배우는 젯팩 컴포즈 | 닐 스미스 - 교보문고

핵심만 골라 배우는 젯팩 컴포즈 | 젯팩 컴포즈, 안드로이드 스튜디오, 코틀린으로 안드로이드 앱 개발하기이 책은 젯팩 컴포즈, 안드로이드 스튜디오, 코틀린 프로그래밍 언어를 사용해 신속하

product.kyobobook.co.kr

 

 

자 이제부터 6개 분류를 기준으로 하나씩 어떤 내용이 포함되어 있는지 살펴보자.

 

 

1) 실습을 위한 안드로이드 스튜디오 개발환경 설정 (+컴포즈 기본)

안드로이드 앱 개발을 위한 서적을 보면 보통 앞부분은 앱 개발을 위한 환경을 설정하는 방법이 나오는데, 이 책도 특별히 다른 점은 없다. 이론만 배웠다고 해서 안드로이드 앱을 만들 수 있는 것은 아니고, 반드시 실습이 병행되어야만 하는데, 그러려면 당연히 앱을 코딩해 보고 결과를 확인해 볼 수 있는 개발환경이 필요하다. 독자의 다양한 운영체제 환경을 고려해서 윈도, 리눅스, 맥 별로 안드로이드 스튜디오 설치방법을 친절하게 안내해주고 있다.

 

특히 2.7절에서는 "안드로이드 스튜디오 메모리 관리"라는 제목으로 성능을 최적화할 수 있는 방법에 대해서도 언급하고 있다. 본인의 PC 또는 노트북에 RAM 이 충분하다면, 책에서 설명하는 방법을 통해 성능을 향상시켜보자! (또는 구글링을 해도 방법을 쉽게 찾을 수 있다 https://codinghero.tistory.com/134)

 

자 이제 안드로이드 앱 개발환경이 구축되었다면, 앱을 만들어봐야겠지. 과거에는 XML로 안드로이드 앱 화면(액티비티)을 어떻게 구성할지 정의하고, Java 코드로 안드로이드 앱의 동작을 제어했었다. (너무.. 라떼인가?) 본 도서에서는 코틀린 기반의 젯팩 컴포즈를 사용하여 간단하게 앱을 만들고 테스트하는 방법(Hello, World 컨셉)을 알려준다. 그냥 따라 하는 대로 하면 앱이 덜커덕 만들어진다.

 

안드로이드 앱은 안드로이드 스튜디오라는 IDE 도구를 사용하여 개발하게 된다. 앱을 잘 만들기 위해서는 결국 도구를 잘 써야 하기 때문에, 안드로이드 스튜디오의 다양한 기능에 대해서도 차근차근 설명을 해준다. 화면에 보이는 버튼과 윈도우의 용도, 역할 그리고 안드로이드 앱을 테스트해볼 수 있는 가상 디바이스(AVD, Android Virtual Device) 사용법까지 설명하고 있으니 안드로이드 앱을 처음 개발하는 사람은 꼼꼼하게 읽고 따라 해보자.

안드로이드 스튜디오

요즘은 안드로이드 스튜디오에서 Gemini 기반의 코딩 Assistant 기능을 사용할 수 있어서, 내가 직접 타이핑을 할 게 별로 없다. 코딩할 때 몇 글자를 타이핑하면 나머지 부분은 AI 가 알아서 코딩을 다 해준다. 좋은 세상이다.

 

 

 

2) 안드로이드 아키텍처 개요

안드로이드 앱을 개발하는데, 안드로이드 아키텍처도 알아야 할까? 물론 몰라도 앱을 개발할 수는 있지만, 안드로이드 앱이 동작하는 데 있어서 기반이 되는 프레임워크의 내부 구조를 알고 있다면 안드로이드 앱을 디버깅할 때도 도움이 되고, 좀 더 효율적으로 동작하는 앱을 개발할 수 있다고 개인적으로 생각한다.

 

책에서는 리눅스 커널 -> 안드로이드 런타임(ART) -> 안드로이드 라이브러리 -> C/C++ 라이브러리 -> 애플리케이션 프레임워크 순서대로 안드로이드 시스템 전체 Full Stack에 대해 개념을 설명하고 있다. 내용이 많지 않으니, 정독하길 추천한다.

안드로이드 소프트웨어 스택

 

안드로이드 플랫폼(프레임워크)에 대해 보다 자세한 내용이 궁금하다면 아래 링크에서 내용을 확인하자.

https://developer.android.com/guide/platform?hl=ko

 

플랫폼 아키텍처  |  Platform  |  Android Developers

Android는 다양한 기기와 폼 팩터에 사용할 수 있도록 개발된 Linux 기반의 오픈소스 소프트웨어 스택입니다. 다음 다이어그램에서는 Android 플랫폼의 주요 구성요소를 보여줍니다. Android 플랫폼의

developer.android.com

 

 

3) 코틀린 개요 및 문법(기능)

Chapter11부터는 코틀린에 대해 설명한다. 젯팩 컴포즈 책인데, 왜 코틀린을 설명할까? 젯팩 컴포즈는 코틀린으로 작성된 안드로이드 앱 개발을 위한 라이브러리이다. 따라서 젯팩 컴포즈를 사용하기 위해서는 코틀린 프로그래밍 언어에 대해 기본은 알고 있어야 한다.

젯팩 컴포즈에 대한 설명

 

젯팩 컴포즈에 대해 좀 더 자세히 알고 싶다면 https://developer.android.com/compose 에서 내용을 확인하자.

 

 

Jetpack Compose UI App Development Toolkit - Android Developers

Jetpack Compose is Android's recommended modern toolkit for building native UI. It simplifies and accelerates UI development on Android. Quickly bring your app to life with less code, powerful tools, and intuitive Kotlin APIs.

developer.android.com

 

하지만 코틀린 언어, 그 자체에 대해 설명하는 것이 목적은 아니기 때문에, 젯팩 컴포즈를 실습하는 데 있어서 필요한 기본적인 문법과 특징에 대해서만 설명한다. 코틀린 프로그래밍 언어에 대해 전체적으로 쭉 훑어보기에 부족함이 없다고 생각한다. 코틀린 언어의 개요부터 시작해서, 변수 타입(코틀린에서는 Null을 어떻게 다루는지가 중요), 연산자, 반복문/조건문, 함수와 람다, 객체지향 프로그래밍(OOP), 상속까지 총 7개 챕터에 걸쳐서 설명하고 있는데, 꼭 실습을 병행하지 않더라도 아, 대충 문법이 이렇게 생겼구나.. 하고 보면 좋겠다. 혹시 본인이 알고 있는 다른 프로그래밍 언어가 있다면, 공통점/차이점을 비교하면서 살펴보자. 그럼 더 쉽게 이해될 것이라 생각한다.

 

내 블로그에서도 코틀린에 대해 아주 퀵(?)하게 정리를 하고 있는데, 혹시 10분 만에 코틀린 대충 살펴보고 싶다면 이 글이 도움이 될지도 모르겠다.

https://sparkthenmove.tistory.com/4

 

코틀린 퀵하게 살펴보기 (1)

1) 일단 Hello, World 부터Ubuntu 22.04 에 vscode 를 설치Kotlin extension 을 설치Kotlin 컴파일&실행을 편하게 하기위해 Code Runner 설치Hello, world 를 출력하는 기본코드는 Copilot 에게 부탁해서 작성 실행을 해보

sparkthenmove.tistory.com

 

 

코틀린 언어에 대해서 배운 내용을 실습하고 싶으면 또 개발환경을 셋업해야 한다. 설치하는 게 귀찮고 번거롭게 느껴진다면, 코틀린 플레이그라운드에서 실습을 해보자. 코드 양이 많으면 좀 애매하고, 코틀린 언어 문법에 대해 간단히 테스트만 하고 싶다면 이 방법이 더 편리할 것이다. https://play.kotlinlang.org/

 

Kotlin Playground: Edit, Run, Share Kotlin Code Online

 

play.kotlinlang.org

코틀린 플레이 그라운드

 

반응형

4) 젯팩 컴포즈 개념 및 기능설명(+튜토리얼)

Chapter18부터는 컴포즈에 대한 내용이다. 책이 젯팩 컴포즈 책인데, 드디어 Ch18부터 본격적으로 젯팩 컴포즈에 대한 내용이 등장한다. 젯팩 컴포즈는 안드로이드 앱을 쉽고 빠르게 개발하기 위한 라이브러리이기 때문에, 코드만 보고 젯팩 컴포즈의 개념과 동작원리를 깨우치는건 불가능이라고 생각한다. 젯팩 컴포즈에서 가장 중요한 개념인 "컴포저블 함수"에 대해서 개요를 설명하면서 시작된다. 다음으로는 컴포저블 동작의 근간이 되는 상태(state)와 재구성(recomposition)에 대해 설명한다. 이 부분을 모르면 젯팩 컴포즈의 동작을 이해할수 없으니 한번 읽고 두번 읽고 세번 읽도록 하자.

 

각 챕터에서는 젯팩 컴포즈의 세부 기능(기술?)에 대해 개념을 먼저 설명한 후, 해당 개념에 대한 튜토리얼을 진행하고 마지막에 내용을 정리(wrap-up)하는 형태로 설명한다. 난 이 구성이 매우 맘에 든다. 내가 평소 어떤 지식(정보?)을 받아들이는 데 있어서 가장 선호하고 익숙한 방식이다.

 

젯팩 컴포즈가 메인인 만큼 여러 가지 핵심 기능들을 쭉 설명한다.

초반부는 컴포저블에 대해 다루고, 다음은 앱 화면을 구성하는 다양한 레이아웃, 그다음은 코루틴, 앱에 목록을 출력하기 위한 리스트/그리드, 애니메이션, 캔버스, 모던 안드로이드 앱 개발 아키텍처인 ViewModel, 안드로이드 DB, 내비게이션, 제스처, 코틀린 플로, 테마까지... 꼼꼼하게 빠짐없이 내용을 다루고 있다.

 

본 포스팅에서 하나하나 다 설명할 건 아니고, 그냥 이런 내용이 있다.. 소개하는 정도로 마무리하고자 한다. 도서의 각 내용에 대해서는 스터디한 내용을 별도로 포스팅하고 있는데, 관심 있는 분들은 살펴보시고 댓글도 남겨주시면 좋겠습니다.

https://sparkthenmove.tistory.com/16

 

안드로이드 젯팩 컴포즈 (ch18~21) - 컴포저블 개념, 상태 및 재구성

이전 포스팅에서는 젯팩 컴포즈 스터디를 시작하게 된 동기를 작성했다.지금부터는 본격적으로 젯팩 컴포즈에 대해 스터디를 해보자. 이번 포스팅에서 다룰 챕터는 다음과 같다.Ch18 컴포즈 개

sparkthenmove.tistory.com

https://sparkthenmove.tistory.com/17

 

안드로이드 젯팩 컴포즈 (ch22~25) - Slot API, 모디파이어(Modifier), Row/Column 레이아웃

젯팩 컴포즈 스터디를 이어가본다. 아래는 지난 젯팩 컴포즈 포스팅에서 다뤘던 내용과 이번에 다룰 내용 Chapter 정보이다.지난 스터디에서는 젯팩 컴포즈의 가장 기본적인 빌딩블럭인 '컴포저

sparkthenmove.tistory.com

https://sparkthenmove.tistory.com/21

 

젯팩 컴포즈에서 XYZScope 의미와 동작원리 (RowScope, ColumnScope, BoxScope)

젯팩 컴포즈를 공부하다보면 레이아웃 컴포저블 종류에 대해 접하게 된다. 예를 들면 RowScope, ColumnScope, BoxScope 과 같은 것들이다. 이런것들을 본 포스팅에서는 편의상 XYZScope 이라고 하자. 일단

sparkthenmove.tistory.com

 

 

 

5) 안드로이드 앱 생성 및 마켓 배포

이쯤까지 왔으면 사실 책 다 본 거다. 그동안 배운 젯팩 컴포즈 기능을 활용해서 앱을 만들었다면 마켓에 배포를 해봐야겠지. (꼭 배포를 해야 하는 건 아니에요) 내가 힘들게 만든 앱을 전 세계 사람들에게 공개해서 피드백도 받아보고 누군가에게 유용한 앱이 된다면 꽤? 뿌듯하지 않을까 싶다. Chapter54에 안드로이드 앱을 배포하는 방법이 자세하게 설명되어 있으니 참고해 보자.

 

 

6) 안드로이드 스튜디오 그레이들(Gradle) 개요

대망의 마지막 챕터 Chapter 55이다. 사실 이 챕터는 개발환경 구성하는 도서 앞부분에 나와도 괜찮을 것 같은데, 아마 마지막에 배치한 이유는 이걸 모른다고 하더라도 앱 개발하는 데 아무런 지장이 없기 때문이 아닐까 싶다. 당장 안드로이드 앱 개발을 하는데 있어서 필수내용도 아닌데, 괜히 조금 어려운? 난해한? 내용을 앞에 넣어버리면 초심자 입장에서는 어려운 책으로 느껴질 수 있으니 독자를 배려한 챕터구성이 아닌가 싶기도 하다. 안드로이드 앱 개발경험이 쌓이다 보면 이 부분도 분명히 필요한 순간이 올 테니 그때 참고하면 되겠다.

이것이 그레이들

 

 

마무리하며..

본 도서는 코틀린 기반의 젯팩 컴포즈에 대해 아주 상세하게 설명한다기보다 기본적인 개념을 설명하고, 이해를 돕기 위한 직관적인 예제(튜토리얼)를 제공하는데 집중하고 있다. 기본적인 지식이 없어도 그냥 따라 하기만 하면 앱을 만들 수 있도록 화면캡처도 꼼꼼하게 되어 있다. (다만, 현시점에서는 안드로이드 스튜디오의 버전이 더 최신버전이라 조금 다를 수 있긴 하지만, 크게 어렵지 않게 따라 할 수 있다)

 

개인적으로 모던 안드로이드 앱을 개발하는 데 있어서 길잡이가 되어주는 고맙고 소중한 책이라고 생각이 되어, 이렇게 시간 내어 열심히 도서 리뷰를 남겨본다. 나도 언젠가 누군가에게 도움이 되는 책을 출판해서 기쁨과 보람을 느낄 날이 오겠지. 이만 도서 리뷰 마무리 합니다.

 

Spark. Then. Move!

 

 

 

반응형