Observer 패턴 vs Jetpack Compose

Bluewave·2025년 6월 19일

안드로이드

목록 보기
5/14
post-thumbnail

옵저버 패턴과 Jetpack Compose의 차이점 정리

옵저버 패턴이란?

어떤 객체(Subject)의 상태가 변하면, 그 변화를 감지한 다른 객체들(Observer)이 자동으로 반응하도록 하는 구조.

대표적인 예로 LiveData를 사용할 때 다음과 같이 구현한다:

liveData.observe(viewLifecycleOwner) { value ->
    textView.text = value
}
  • liveData가 변화하면 Observer로 등록된 UI가 반응한다.
  • 이 방식은 명령형 UI 구조에서 자주 사용된다.

Jetpack Compose는?

Jetpack Compose는 선언형 UI 방식으로 동작하며, 상태가 변경되면 자동으로 필요한 UI만 다시 그리는 자동 리컴포지션 구조를 갖고 있다.

val text by viewModel.name.collectAsState()
Text(text = text)
  • text가 바뀌면 해당 Text() 컴포저블만 다시 그려진다.
  • 별도로 observe()를 호출하지 않아도 된다.

차이점 비교

항목LiveData/XMLJetpack Compose
옵저버 등록 방식수동 (observe 호출)자동 추적 및 리컴포지션
생명주기 고려필요 (LifecycleOwner 등)거의 신경 쓰지 않아도 됨
UI 방식명령형 (imperative)선언형 (declarative)
상태 반영 방식명시적 호출자동 상태 추적 및 UI 갱신

정리

Compose는 전통적인 옵저버 패턴을 더 선언적이고 직관적인 방식으로 발전시킨 구조다.
명시적인 옵저버 등록 없이도 상태만 선언해두면 자동으로 UI가 반응한다는 점에서, 간결하면서도 오류 가능성이 적은 개발 경험을 제공한다.

profile
Developer's Logbook

0개의 댓글