반응형
안드로이드 UI를 구성하는 방식은 오랜 기간 XML 레이아웃이 기본이었습니다. 하지만 구글이 공식적으로 Jetpack Compose를 지원하면서, UI 작성 방식에 큰 전환점을 맞이했습니다.
이 글에서는 Jetpack Compose와 기존 XML UI의 차이점을 실무 관점에서 비교하고, 각 방식의 장단점과 언제 어떤 걸 선택하면 좋은지 안내해드립니다.
📌 Jetpack Compose란?
Jetpack Compose는 선언형 UI(Declarative UI) 방식으로, 코드로 직접 UI를 구성합니다. Flutter나 React Native처럼 UI = 상태(State)에 따라 자동으로 그려지는 구조입니다.
@Composable
fun Greeting(name: String) {
Text(text = "Hello, $name!")
}
위 예제처럼, XML 없이 순수 Kotlin 코드로 UI를 정의할 수 있습니다.
📄 XML UI란?
기존 Android에서는 레이아웃 XML 파일을 작성하고, Java/Kotlin 코드에서 findViewById로 접근하는 명령형 UI 방식이었습니다.
<TextView
android:id="@+id/textView"
android:text="Hello"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
코드는 분리되어 깔끔하지만, 복잡한 UI 상태 변경 시 번거롭고 오류 가능성이 높습니다.
⚖️ Compose vs XML UI 비교
| 항목 | Jetpack Compose | XML UI |
|---|---|---|
| 코드 통합 | Kotlin으로 UI + 로직 작성 | XML과 코드 분리 |
| 상태 관리 | State 기반 자동 업데이트 | 수동으로 View 갱신 필요 |
| 학습 곡선 | 처음엔 생소할 수 있음 | 익숙한 개발자 많음 |
| 생산성 | 빠르고 직관적 | 복잡할수록 비효율적 |
| 디자인 미리보기 | 실시간 Preview 지원 | Layout Editor 사용 |
💡 어떤 걸 선택할까?
- 새로운 프로젝트: Jetpack Compose 적극 추천
- 기존 XML 기반 레거시 유지보수: XML 유지
- 점진적 전환: Compose + XML 혼용 가능
Tip: Compose는 Android Studio에서 XML과 독립적으로 사용할 수 있으며, 일부 화면부터 도입해보는 것도 좋은 방법입니다.
🚀 Jetpack Compose 도입 시 주의할 점
- Android Studio 최신 버전 사용 권장 (Hedgehog 이상)
- 기존 라이브러리와의 호환성 체크 필요
- MVVM 패턴에 맞는 구조 설계 필요
이제 Android UI의 미래는 Compose로 가고 있다는 건 분명합니다. 물론, XML이 곧 사라지진 않지만, Compose는 더 생산적이고 유지보수가 쉬운 방식으로 자리 잡고 있습니다.
천천히 시작해보세요. Compose를 도입한 순간, 새로운 안드로이드 개발의 세계가 열릴 것입니다.
반응형
'개발일기' 카테고리의 다른 글
| 안드로이드 ViewBinding 완벽 가이드 (7) | 2025.08.09 |
|---|---|
| Jetpack Compose로 만드는 안드로이드 UI 기본 가이드 (7) | 2025.08.08 |
| Kotlin Flow vs LiveData - 무엇을 언제 써야 할까? (9) | 2025.08.06 |
| 2025 안드로이드 targetSdkVersion 35 완벽 가이드 (8) | 2025.08.05 |
| 📱 안드로이드 앱 크기 줄이기 실전 팁 (2025 최신) (14) | 2025.08.04 |