Jetpack Compose란 무엇인가요
Android의 선언형 UI를 이해해 보세요.
Jetpack Compose란 무엇인가요은(는) CoddyKit의 무료 Android Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Android Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Android Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
Jetpack Compose란 무엇인가요?
Jetpack Compose는 네이티브 UI를 만들기 위한 Android의 최신 도구 키트입니다. XML 레이아웃 파일을 작성하는 대신 Kotlin 코드에서 UI를 직접 설명합니다.
Compose는 선언형입니다. 특정 상태에서 화면이 어떻게 보여야 하는지 알려 주면, Compose가 이를 그려서 업데이트하는 방법을 알아냅니다.
기존 방식: XML 뷰
기존에는 Android 화면에 두 부분이 필요했습니다.
- 위젯을 설명하는 XML 레이아웃 파일
findViewById로 뷰를 찾고 변경하는 Kotlin/Java 코드
XML과 코드를 동기화하는 작업은 번거롭고 오류가 발생하기 쉬웠습니다.
<!-- res/layout/activity_main.xml -->
<TextView
android:id="@+id/greeting"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />명령형과 선언형
XML 뷰를 사용하면 명령형 코드를 작성합니다. 뷰를 가져온 다음 단계별로 변경합니다.
Compose를 사용하면 선언형 코드를 작성합니다. 데이터를 바탕으로 최종 결과를 설명합니다. 데이터가 변경되면 Compose가 필요한 부분을 자동으로 다시 그립니다.
// Imperative (old views)
val tv = findViewById<TextView>(R.id.greeting)
tv.text = "Hello"
tv.visibility = View.VISIBLE컴포저블 함수
Compose의 기본 구성 요소는 컴포저블 함수입니다. @Composable이 지정된 일반 Kotlin 함수로, UI를 생성합니다.
컴포저블은 다른 컴포저블을 호출할 수 있으므로 작고 재사용 가능한 조각을 조합하여 화면을 만들 수 있습니다.
@Composable
fun Greeting(name: String) {
Text(text = "Hello, $name!")
}findViewById 없음
Compose에는 findViewById가 없고 뷰 ID도 없습니다. UI는 함수 호출 자체입니다. 다른 텍스트를 표시하려면 다른 인수를 전달하고 Compose가 다시 구성하도록 하면 됩니다.
@Composable
fun Screen() {
Greeting(name = "Ada")
Greeting(name = "Linus")
}상태의 함수로서의 UI
핵심 개념은 다음과 같습니다. UI = f(state). 화면은 현재 상태가 주어졌을 때 컴포저블이 출력하는 결과입니다. 상태를 변경하면 같은 함수가 새로운 UI를 만듭니다.
이렇게 하면 UI를 예측하고 이해하기가 더 쉬워집니다.
모든 것이 Kotlin입니다
컴포저블은 Kotlin 함수이므로 반복문, 조건문 및 변수를 사용하여 UI를 만들 수 있습니다. 특별한 템플릿 언어가 필요하지 않습니다.
@Composable
fun Items(names: List<String>) {
for (n in names) {
Text(text = n)
}
}보일러플레이트 감소
Compose는 방대한 연결 코드를 제거합니다. XML 인플레이션도, 간단한 목록을 위한 어댑터도, 레이아웃과 로직 사이의 수동 연결도 필요하지 않습니다.
그 결과 파일과 버그가 줄어듭니다.
뷰와 상호 운용
앱 전체를 다시 작성할 필요는 없습니다. Compose는 기존 View 시스템과 상호 운용됩니다. 기존 XML 화면 안에 Compose를 넣거나 Compose 안에 View를 넣을 수 있습니다.
따라서 팀이 점진적으로 이전할 수 있습니다.
필요한 것
Compose를 사용하려면 다음이 필요합니다.
- 최신 버전의 Android Studio
- Gradle 파일의 Compose 의존성
- 컴포저블을 호스팅하기 위해
setContent { }를 호출하는 액티비티
간단한 화면
다음은 완성된 최소 Compose 화면입니다. setContent는 Android의 Activity와 Compose 환경을 연결하는 다리입니다.
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Greeting(name = "World")
}
}
}빠른 확인
Jetpack Compose를 가장 잘 설명하는 것은 무엇인가요?
복습
Jetpack Compose가 선언형이며 Kotlin을 중심으로 하는 UI 도구 키트라는 것을 배웠습니다. 핵심 개념은 다음과 같습니다.
- UI는
@Composable함수로 만듭니다. - XML과
findViewById가 없습니다. - UI = f(state) — 상태를 변경하면 Compose가 다시 그립니다.
자주 묻는 질문
“Jetpack Compose란 무엇인가요” 강의는 무료인가요?
네 — “Jetpack Compose란 무엇인가요” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Android Academy 강의 전체를 잠금 해제할 수 있습니다. Android Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“Jetpack Compose란 무엇인가요”에서 뭘 배우나요?
Android의 선언형 UI를 이해해 보세요. 브라우저에서 직접 실행하는 실습 코드로 Android Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Android Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Android Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“Jetpack Compose란 무엇인가요” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Android Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Android Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- Jetpack Compose란 무엇인가요
- 첫 번째 컴포저블
- 텍스트, 이미지, 버튼
- 미리 보기와 핫 리로드