안드로이드 내비게이션 룰
초기 안드로이드 폰(2010년 전후)은 하드웨어 키로 HOME 버튼과 BACK 버튼 두 가지 내비게이션 수단을 제공했다. 안드로이드 개발자 문서는 이 두 버튼이 단순히 '이동 위치'만 다른 것이 아니라, 화면(Activity)의 생존 여부 자체를 다르게 처리한다고 규정한다. 이를 이해하려면 안드로이드 시스템의 네 가지 기본 개념이 필요하다. Application은 서로 연관된 Activity들의 묶음(앱 아이콘 단위), Activity는 화면 기획에서 흔히 말하는 Key Screen 단위, Activity Stack은 사용자가 화면을 이동할 때마다 쌓이는 이동 경로(HOME을 기준점으로 하며 그 이전으로는 거슬러 올라가지 않음), Task는 특정 목적을 이루기 위해 거치는 Activity들의 연속적 흐름(소속 앱과 무관하게 이어질 수 있음)이다.
이 개념 위에서 HOME 버튼 룰과 BACK 버튼 룰이 갈린다. HOME 버튼을 누르면 현재 Activity는 '실행 중인 상태'를 유지한 채 HOME 화면으로 빠져나가며, 나중에 같은 앱을 다시 열면 이전 상태가 그대로 보존된 화면으로 복귀한다. 반면 BACK 버튼을 누르면 현재 Activity는 '종료'되고 이전 Activity로 돌아가며, 종료된 화면을 나중에 다시 열면 이전 상태가 아닌 새로 로딩된 화면이 나타난다. 즉 HOME은 상태 보존, BACK은 상태 폐기라는 근본적인 차이가 있다.
문제는 서드파티 앱들이 이 룰을 일관되게 지키지 않았다는 점이다. 어떤 앱은 HOME이든 BACK이든 관계없이 Activity를 항상 초기화해버렸고(케이스 A), 또 어떤 앱은 최초 화면에서 BACK을 누르면 '정말 종료하시겠습니까'라는 확인 팝업을 띄우면서도 같은 상황에서 HOME을 누르면 팝업 없이 그냥 빠져나가게 했다(케이스 B). 케이스 B의 의도는 선의에 가깝다 — 사용자가 BACK을 습관적인 '이전 화면' 내비게이션 용도로 누르다가 실수로 앱을 완전히 빠져나가는 것을 막으려는 배려다. 즉 HOME은 사용자가 '결과를 명확히 예측하고' 누른 것으로 간주하는 반면, BACK은 '앱 안에서 이전 화면을 보려는 의도'와 '앱을 나가려는 의도'가 뒤섞여 있다고 보는 것이다. 하지만 이런 비일관성은, 특히 케이스 B처럼 같은 상황에서 버튼에 따라 결과가 달라지는 경우 사용자에게 상당한 짜증을 유발할 수 있는 문제였다.
이에 대한 해법으로 네 가지 방향이 제시된다. ① 원래 룰대로 BACK으로 종료할 때는 경고 없이 그대로 빠져나오게 한다. ② 반대로 모든 앱이 BACK 종료 시 일관되게 확인 팝업을 띄우게 한다. ③ BACK 외에 FORWARD 버튼을 추가로 제공한다. ④ 아이폰처럼 하드웨어 버튼은 HOME 하나만 두고, '뒤로가기'는 각 Activity 안에 GUI 요소로 구현한다. 이 네 번째 방향은 실제로 이후 모바일 플랫폼이 수렴한 방향이기도 하다 — 하드웨어 내비게이션 키에 룰을 맡기기보다 인앱 GUI로 내비게이션을 명시적으로 통제하는 편이 일관성 확보에 유리하기 때문이다.
핵심 내용
- HOME 버튼: Activity를 '실행 중' 상태로 보존한 채 이탈 → 복귀 시 이전 상태 그대로
- BACK 버튼: Activity를 '종료'시키고 이전 화면으로 → 복귀 시 새로 로딩
- Activity Stack: HOME을 기준점으로 쌓이는 화면 이동 경로, HOME 이전으로는 거슬러 올라가지 않음
- 서드파티 앱들이 룰을 일관되게 지키지 않아 발생하는 두 가지 문제 유형(무조건 초기화 / 버튼별 종료 확인 비일관성)
- 해법의 방향성 중 하나로 하드웨어 BACK 키 대신 인앱 GUI 뒤로가기를 채택하는 아이폰식 접근이 제시됨
관련 개념
- 안드로이드 위젯 디자인 — 같은 시기 안드로이드 플랫폼 UI 설계 원칙을 다룬 사례
- 모바일 제스처 UI — 하드웨어 키가 아닌 터치 제스처로 내비게이션을 구현하는 후속 패턴들과의 대비
- Family UI — 안드로이드 홈 대시보드 구조와 iOS 하단 탭 구조의 차이가 크로스플랫폼 서비스 UI에 미치는 영향
출처
- Android의 BACK 버튼과 HOME버튼을 이용한 내비게이션 룰 — 2010-08-26, 전성진