이노베이팅 컨설팅 신청하기 (클릭)
logo
|
Blog

    앱 MVP Android 앱별 언어: 시스템 설정·선택기·호환성을 나누는 5가지 기준

    Android 앱 MVP에서 앱별 언어 설정을 시스템 설정·앱 내 선택기·Android 12 이하 호환·화면 복구로 나눠 점검하는 기준입니다.
    Sep 21, 2026
    앱 MVP Android 앱별 언어: 시스템 설정·선택기·호환성을 나누는 5가지 기준

    다국어를 지원하는 Android MVP에서 ‘언어를 바꾼다’는 일은 번역 파일을 추가하는 일만은 아닙니다. 사용자가 시스템 설정에서 고른 언어와 앱 안에서 고른 언어가 같은 상태인지, 어떤 언어를 시스템에 노출할지, Android 12 이하에서 무엇을 별도로 처리할지, 변경 뒤 화면이 다시 만들어져도 진행 중이던 흐름이 안전한지를 나눠야 합니다. 이 기준이 없으면 언어 선택 화면은 있어도 설정과 실제 화면이 어긋날 수 있습니다.

    Android 13부터는 다국어 앱을 위한 앱별 언어 설정과 공개 API가 제공됩니다(C001). Android Developers는 앱 내 언어 선택기가 있다면 공개 API를 써서 시스템 설정과 일관된 경험을 만들도록 안내합니다(C002). 이 글은 특정 앱이 다국어 사용자나 매출을 늘린다고 주장하지 않습니다. 대신 MVP에서 설정 범위·호환성·복구·QA를 기록하는 방법에 집중합니다.

    먼저 분리할 것: 시스템 언어, 앱별 언어, 번역 준비는 다른 상태입니다

    기기 전체의 시스템 언어와 특정 앱에만 적용하는 앱별 언어는 같은 값일 수도, 다를 수도 있습니다. Android 13 이상 사용자는 시스템 설정에서 앱별 언어를 고를 수 있습니다(C001).

    앱이 시스템 설정에 언어 목록을 보이게 하려면 자동 앱별 언어 지원을 켜거나 수동으로 LocaleConfig를 구성해야 합니다(C003). 번역 리소스가 실제로 준비됐는지는 별도의 배포 준비 상태입니다.

    MVP의 첫 결정은 ‘사용자가 어디에서 언어를 고를 수 있는가’입니다. 시스템 설정만 쓸지, 앱 안에도 선택기를 둘지, 두 곳 모두 허용할지를 제품 흐름에 맞춰 정합니다. 그 뒤에는 지원 언어 목록, 기본 언어, 언어별 미번역 화면, 외부 웹 화면의 언어, 변경 후 복귀할 화면을 각각 기록하세요. 한 개의 “다국어 완료” 상태로 묶으면 QA에서 무엇을 확인했는지 알기 어렵습니다.

    기준 1: 시스템 설정에 노출할 언어는 실제 배포 가능한 리소스에서 시작합니다

    Android Developers는 Android 13 이상에서 자동 앱별 언어 지원을 권장하며, Android Studio Giraffe와 AGP 8.1 이상에서는 빌드가 앱과 라이브러리 리소스를 바탕으로 LocaleConfig를 생성할 수 있다고 설명합니다(C003).

    자동 지원을 켠 경우 수동 LocaleConfig 파일을 함께 만들면 빌드가 실패할 수 있다는 조건도 안내합니다(C004). 구현 방식은 자동 생성과 수동 설정 중 하나를 선택해 릴리스 체크리스트에 남기세요.

    여기서 중요한 것은 언어 코드 수가 아니라 지원 범위입니다. 기본 언어는 무엇인지, 어떤 지역·스크립트 조합을 실제로 제공하는지, 라이브러리에서 들어온 리소스가 사용자에게 의도치 않게 보이지는 않는지를 확인하세요. Android는 resourceConfigurations로 APK에 포함할 언어 리소스를 제한하는 방법도 설명합니다(C005). 다만 이 설정이 번역 품질을 보증하지는 않으므로, 목록 노출 검증과 핵심 화면 검증을 별도로 진행해야 합니다.

    기준 2: 앱 안 선택기를 두면 시스템 설정과 같은 API 경로를 씁니다

    앱 안에 언어 선택기를 추가하는 이유는 온보딩 중 선택하게 하거나, 설정 화면에서 바로 바꾸게 하려는 경우가 많습니다. Android Developers는 Android 13 이상에서 LocaleManager의 setApplicationLocales와 getApplicationLocales를 제공합니다(C002).

    이 API는 시스템 설정과 동기화됩니다. 임의의 별도 저장값만 바꾸기보다, 사용자가 시스템과 앱 어느 쪽에서 선택했는지에 관계없이 같은 현재 상태를 읽는 경로를 설계할 수 있습니다.

    Compose 앱에서도 언어 변경은 화면 구성에 영향을 줍니다. 공식 문서는 언어 설정 호출이 기본적으로 Activity를 다시 만들며, Compose는 새 구성에 맞춰 다시 구성된다고 안내합니다(C006). 그래서 선택 버튼이 눌렸다는 기록과 언어가 실제 적용된 화면을 다시 관찰한 기록을 나누세요. 입력 중인 폼, 결제 전 확인, 업로드 대기, 딥링크 복귀처럼 Activity 재생성에서 잃으면 안 되는 상태는 해당 기능의 별도 QA 항목입니다.

    우리 앱 MVP의 설정·호환성·화면 복구 기준 함께 점검하기

    기준 3: Android 12 이하 호환은 API 선택과 저장 이전을 분리해 판단합니다

    Android 12(API 32) 이하까지 지원할 때는 AndroidX의 호환 API를 검토해야 합니다. Android Developers는 이전 버전에서 AppCompatDelegate를 쓰는 방법을 제시합니다(C007).

    이 경로는 애플리케이션 컨텍스트가 아니라 AppCompatActivity 컨텍스트에서 동작합니다. 최소 지원 버전, Activity 기반 화면 여부, 시스템 설정 노출 여부, 기존 선택기 구현을 각각 결정하세요.

    기존 앱이 자체 저장소에 언어 선택값을 보관했다면, Android 13 기기에서 처음 실행할 때의 이전 절차도 별도 점검 대상입니다. 공식 문서는 기존 사용자 요청 언어를 시스템으로 넘기는 경우와 자체 저장소에서 AndroidX 자동 저장으로 옮기는 경우를 설명합니다(C008).

    저장 위치를 바꾼다는 사실과 사용자가 이전에 고른 언어를 계속 본다는 사실은 다릅니다. 이전 전·후에 선택값, 기본값으로 되돌리는 동작, 앱 재시작 뒤 표시값을 실제 기기에서 관찰하세요.

    기준 4: 언어 변경 뒤 ‘앱이 열림’과 ‘원래 업무가 이어짐’을 따로 확인합니다

    언어 변경은 구성 변경과 Activity 재생성을 일으킬 수 있습니다(C006). 그래서 테스트는 설정 화면에서 새 언어가 보이는지만 확인해서 끝내지 않는 편이 좋습니다. 홈 화면, 로그인 전·후, 핵심 입력 화면, 오류·빈 상태, 푸시나 딥링크로 들어온 화면에서 바꾼 뒤 어떤 화면으로 돌아오는지 확인하세요. 앱이 다시 열렸다는 관찰만으로 사용자의 작성 중인 내용, 선택한 항목, 복귀 경로가 보존됐다고 단정하면 안 됩니다.

    특히 브라우저 기반 화면을 함께 쓰는 MVP라면 앱 언어와 웹 콘텐츠의 언어를 구분해야 합니다. Android Developers는 Chrome Custom Tab을 열 때 앱의 언어를 고려해 Accept-Language 헤더를 검토할 수 있다고 안내합니다(C009).

    관련 글 앱 MVP Android Custom Tabs: 앱 화면·브라우저·복귀 경로를 나누는 기준은 외부 웹 화면의 경계를 다룹니다. 이번 글은 앱별 언어 설정의 단일 상태와 변경 뒤 복구에 초점을 둡니다.

    기준 5: 지원 중단·기본값 복귀도 사용자 선택의 일부로 기록합니다

    지원 언어를 더 이상 시스템 설정에 노출하지 않기로 했다면, 단순히 매니페스트 설정을 없애는 것으로 끝나지 않을 수 있습니다. Android Developers는 android:localeConfig를 제거하면 사용자가 시스템 기본 언어로 쉽게 되돌리기 어려울 수 있다고 설명합니다(C010).

    공식 문서는 빈 locale 목록으로 앱 언어를 재설정하는 방안을 안내합니다. 기능 제거, 번역 축소, 실험 종료 때는 설정 목록·현재 선택값·기본값 복귀의 관찰 지점을 함께 적어 두세요.

    출시 전에는 최소한 다음 네 가지 기록을 남겨 보세요. 첫째, 실제로 노출한 언어와 리소스 범위입니다. 둘째, 시스템 설정과 앱 내 선택기에서 읽힌 현재 언어입니다. 셋째, 언어 변경 뒤 핵심 흐름이 복구된 관찰입니다. 넷째, Android 13 이상과 지원하는 이전 버전에서 적용한 경로입니다. 이 기록은 다국어 전환의 성과를 뜻하지 않으며, 다음 수정에서 설정 불일치의 위치를 찾기 위한 근거입니다.

    출시 전 앱별 언어 설정과 QA 항목 정리하기

    자주 묻는 질문

    Android 13 이상이면 앱별 언어가 자동으로 시스템 설정에 보이나요?

    자동으로 단정할 수 없습니다. Android Developers는 자동 앱별 언어 지원을 켜거나 LocaleConfig를 수동 구성해 지원 언어를 시스템 설정에 노출하도록 안내합니다. 실제 빌드 설정과 기기 설정 화면에서 목록을 확인하세요.

    앱 안 언어 선택기와 시스템 설정을 따로 구현해도 되나요?

    가능한 화면 구성은 제품마다 다르지만, Android Developers는 공개 API를 사용해 두 경로의 언어 설정이 일관되게 동작하도록 안내합니다. 별도 저장값만 바꾸지 말고 현재 앱 언어를 읽고 쓰는 경로를 하나로 정하세요.

    언어를 바꾸면 사용자가 작성 중이던 내용도 유지되나요?

    그렇게 보장할 수 없습니다. 언어 설정 호출은 기본적으로 Activity 재생성을 일으킬 수 있으므로, 입력·선택·딥링크 복귀처럼 제품에 중요한 상태는 실제 흐름에서 따로 확인해야 합니다.

    지원 언어를 제거하면 앱 언어는 어떻게 되나요?

    Android Developers는 시스템 설정에서 앱별 언어 구성을 제거할 때 빈 locale 목록으로 시스템 기본 언어로 재설정하는 방법을 안내합니다. 기존 사용자 선택값과 기본값 복귀를 함께 테스트하세요.

    공식 출처

    Android Developers: Per-app language preferences — 2026-09-21 확인

    Android Developers: LocaleManager API reference — 2026-09-21 확인

    Android Developers: Support different languages and cultures — 2026-09-21 확인

    발행일: 2026-09-21 · 작성: 유인어스 정책자금·정부지원사업 인사이트

    Share article
    유인어스 정책자금·혁신기업 전환 컨설팅

    유인어스는 주식회사 넥스트빌더가 운영하는 정책자금 및 혁신기업 전환 컨설팅 브랜드입니다. 기업의 업종·업력·재무상태를 진단해 적합한 정책금융기관과 준비 절차를 안내합니다.

    유인어스 홈 컨설팅 신청 RSS