개발일기

Jetpack Compose vs XML UI - 안드로이드는 어디로 가고 있나?

뱅우 2025. 8. 7. 11:54
반응형

안드로이드 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를 도입한 순간, 새로운 안드로이드 개발의 세계가 열릴 것입니다.


반응형