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

    앱 MVP 앱별 언어 설정: 시스템 언어·앱 선택·초기화를 나누는 5가지 기준

    Android 앱 MVP에서 시스템 언어와 앱별 언어를 분리하고, 지원 리소스·선택 동기화·이전 값 이관·시스템 기본값 복귀를 점검하는 기준을 정리합니다.
    Sep 20, 2026
    앱 MVP 앱별 언어 설정: 시스템 언어·앱 선택·초기화를 나누는 5가지 기준

    앱 MVP 앱별 언어 설정: 시스템 언어·앱 선택·초기화를 나누는 5가지 기준

    다국어 앱을 준비할 때 “언어 선택 화면 하나를 만들면 되겠지”라고 시작하면, 사용자가 시스템 설정에서 바꾼 언어와 앱 안에서 고른 언어가 엇갈릴 수 있습니다. Android 13 이상에는 앱마다 선호 언어를 정할 수 있는 시스템 설정과 API가 있습니다. 이 글은 번역 품질이나 출시 성과를 약속하지 않습니다. 대신 MVP 팀이 어떤 언어를 제공할지, 사용자가 어디에서 바꾸게 할지, 기존 선택을 어떻게 넘길지, 시스템 언어로 어떻게 돌아갈지를 분리해 결정하는 방법을 다룹니다.

    먼저 나눌 것: 시스템 언어와 앱별 언어

    시스템 언어는 기기 전반의 기본 언어이고, 앱별 언어는 특정 앱에만 적용하는 선호 언어입니다. Android Developers는 Android 13(API 33)부터 사용자가 시스템 설정에서 앱별 언어를 선택할 수 있도록 안내합니다. 따라서 “기기의 언어가 바뀌면 앱도 항상 같은 언어여야 한다”는 전제를 먼저 확인할 필요가 있습니다.

    MVP의 첫 결정은 기능 목록이 아니라 제공 범위입니다. 한 언어만 실제로 준비되어 있다면 선택기를 먼저 노출하기보다 기본 언어와 지원 범위를 명확히 두는 편이 낫습니다. 여러 언어 리소스를 제공한다면, 그 목록과 시스템에 보이는 지원 언어 목록이 같은지 검토합니다. 앱별 언어 설정이 자동으로 문장을 번역해 주는 기능은 아닙니다.

    기준 1: 지원 언어 목록은 번역 리소스와 함께 결정한다

    Android의 자동 앱별 언어 지원은 앱 모듈과 라이브러리 의존성의 `res` 리소스를 바탕으로 `LocaleConfig`를 생성하고 최종 manifest에 연결할 수 있습니다. Android Developers는 이 방식을 권장하며, Android 13 이상을 대상으로 하고 `compileSdkVersion` 33 이상이 필요하다고 설명합니다.

    여기서 중요한 것은 “보여 줄 수 있는 언어”와 “실제로 검수한 언어”를 같은 목록으로 관리하는 일입니다. 예를 들어 라이브러리가 가진 번역 리소스까지 목록에 섞이면 제품 팀이 의도하지 않은 언어가 설정 화면에 나타날 수 있습니다. 새 언어를 추가하는 배포에서는 핵심 화면, 오류 문구, 약관·지원 경로, 날짜·통화 표기를 함께 점검 대상으로 둡니다.

    자동 생성을 쓰지 않는 경우에는 `locale_config.xml`을 만들고 `android:localeConfig`로 연결하는 수동 구성이 가능합니다. 자동 생성을 켠 상태에서 수동 `LocaleConfig`를 같이 만들면 빌드가 실패할 수 있으므로, 두 방식을 한 번에 적용하지 않는 것이 안전합니다.

    기준 2: 시스템 설정과 앱 안 선택기는 같은 상태를 보게 한다

    앱에 자체 언어 선택 화면이 이미 있다면, 화면만 따로 저장하는 방식보다 공개 API를 통해 현재 앱 언어를 읽고 설정하는 흐름을 우선 검토합니다. Android Developers는 `LocaleManager`의 `setApplicationLocales()`와 `getApplicationLocales()`가 시스템 설정과 동기화된다고 설명합니다.

    이 결정을 문서로 남길 때는 아래 네 질문이면 충분합니다.

    1. 사용자는 시스템 설정, 앱 설정, 또는 두 곳 모두에서 언어를 바꿀 수 있는가?

    2. 앱 내부 선택기는 공개 API를 통해 현재 앱 언어를 다시 읽는가?

    3. 변경 뒤 화면 재구성으로 중단될 수 있는 입력·업로드·결제 흐름은 무엇인가?

    4. 선택한 언어가 없을 때 어떤 기본 언어와 문구로 돌아가는가?

    특히 언어를 설정하면 구성 변경과 Activity 생명주기 이벤트가 일어날 수 있습니다. 그래서 언어 선택은 긴 입력 작업의 마지막 단계나 취소 가능한 설정 화면에 두고, 진행 중인 작업을 완료로 표시하지 않는지 QA로 확인하는 편이 좋습니다.

    앱 MVP의 설정·출시 범위를 먼저 점검하고 싶다면 유인어스에 문의하기

    기준 3: 이전에 저장한 언어 선택은 한 번만 이관한다

    기존 앱이 자체 저장소에 언어 값을 보관하고 있었다면, Android 13 기기에서 시스템의 앱별 언어 설정과 두 개의 진실 원천이 생길 수 있습니다. Android Developers는 기존 사용자 요청 언어를 처음 실행할 때 `AppCompatDelegate.setApplicationLocales`로 전달하는 이관 경로를 안내합니다. Android 12 이하 호환 구현에는 AndroidX와 `autoStoreLocales` 설정을 별도로 고려해야 합니다.

    실무에서는 이관 조건을 짧게 고정합니다. “기존 값이 있고, 아직 이관하지 않았으며, 사용자가 새 선택을 하지 않은 첫 실행”처럼요. 이관이 끝난 뒤에는 어느 저장소를 기준으로 읽을지 하나만 남깁니다. 앱별 언어를 설정했다고 해서 모든 외부 웹 페이지, 이메일, 고객지원 답변까지 같은 언어가 된다고 가정하면 안 됩니다. 각 채널의 언어 정책은 별도로 확인해야 합니다.

    기준 4: ‘시스템 기본값으로’는 빈 값으로 되돌리는 동작이다

    사용자에게 “시스템 기본값 사용”을 제공한다면, 특정 언어 코드를 다시 저장하는 버튼으로 구현하지 말고 앱별 언어 설정을 비우는 의미를 확인해야 합니다. Android `LocaleManager` 문서는 빈 `LocaleList`를 전달하면 시스템 언어로 재설정한다고 설명합니다.

    이 선택은 화면 문구에도 드러나야 합니다. “한국어”와 “시스템 기본값”은 같은 항목이 아닐 수 있습니다. 기기 언어가 바뀌었을 때 앱이 무엇을 따를지, 앱별 언어가 있을 때 어떤 언어가 우선되는지, 초기화 뒤 즉시 반영되는지까지 QA 시나리오로 적습니다. 이 글과 별도로, 번역 문구·지원 국가·스토어 설명을 묶어 검수하는 범위는 앱 MVP 다국어 출시 범위 점검에서 확인할 수 있습니다.

    기준 5: QA는 언어별 화면이 아니라 전환 경로로 한다

    언어 화면이 잘 보이는지만으로는 충분하지 않습니다. MVP에서는 다음 전환 경로를 실제 기기 또는 에뮬레이터에서 기록해 두면 됩니다.

    확인 장면

    확인할 질문

    완료로 보지 말아야 할 것

    Android 13 이상 시스템 설정

    앱이 지원 언어 목록에 보이는가?

    목록에 보인다는 사실만으로 번역 완성

    앱 내부 선택기

    현재 선택이 시스템 설정과 같은가?

    버튼 탭만으로 설정 저장 성공

    긴 입력 중 언어 변경

    화면 재구성 뒤 임시 입력을 어떻게 처리하는가?

    화면이 다시 그려진 사실만으로 데이터 보존

    기존 사용자 업그레이드

    이전 선택을 한 번만 넘겼는가?

    이전 저장소와 새 저장소의 이중 기록

    시스템 기본값 복귀

    빈 앱별 언어 설정 뒤 기기 언어를 따르는가?

    특정 언어를 다시 저장한 동작

    Android는 앱별 언어와 시스템 언어를 조합해 리소스를 선택합니다. 따라서 QA 결과에는 기기 언어, 앱별 언어, Android 버전, 진입 위치, 기대 문구를 함께 남기되, 한 테스트 결과를 모든 기기·언어에서의 동작으로 일반화하지 않습니다.

    출시 전 10분 점검표

    • 실제 번역·검수가 끝난 언어만 지원 목록에 넣었는가?

    • 자동 `LocaleConfig` 생성과 수동 파일 구성을 동시에 두지 않았는가?

    • 시스템 설정과 앱 내 선택기 중 어느 쪽에서 바꿔도 현재 상태를 다시 읽는가?

    • 기존 자체 저장 언어가 있다면 이관 조건과 종료 시점을 정했는가?

    • “시스템 기본값”이 앱별 언어 초기화라는 의미로 테스트됐는가?

    • 언어 변경 시 중단되는 입력·네트워크 작업의 처리 기준을 정했는가?

    앱별 언어 설정은 번역·글로벌 출시·고객지원 정책을 한 번에 해결하는 기능이 아닙니다. 그러나 시스템 언어, 앱 선택, 지원 리소스, 기존 사용자 이관, 초기화를 분리해 두면 MVP의 언어 관련 결정이 서로 충돌하는 일을 줄이는 데 도움이 됩니다.

    우리 앱 MVP의 언어 설정과 출시 범위를 함께 정리하기

    자주 묻는 질문

    앱별 언어 설정을 켜면 번역도 자동으로 되나요?

    아닙니다. Android의 앱별 언어 기능은 사용 언어를 선택·적용하는 경로입니다. 해당 언어 리소스의 번역과 검수 범위는 앱이 별도로 준비해야 합니다.

    앱에 언어 선택 화면이 있으면 시스템 설정은 필요 없나요?

    앱 내 선택기만 둘 수도 있지만, Android Developers는 공개 API를 사용해 시스템 설정과 앱 내 선택이 같은 상태를 보도록 안내합니다. 실제 적용 범위는 지원 Android 버전과 앱 구조에 맞춰 정해야 합니다.

    Android 12 이하에서는 어떻게 해야 하나요?

    Android 13의 framework API와는 별개로 AndroidX의 호환 API와 저장 설정을 검토할 수 있습니다. 지원 범위와 기존 저장 방식에 따라 구현이 달라지므로, 이 글의 일반 원칙을 특정 코드 적용 결과로 해석하면 안 됩니다.

    시스템 기본값으로 되돌리면 무엇이 바뀌나요?

    Android `LocaleManager`에서 빈 앱별 언어 목록으로 설정하면 시스템 언어로 재설정됩니다. 실제 화면 반영과 진행 중 작업의 처리 여부는 앱에서 테스트해야 합니다.

    출처

    • Android Developers, Per-app language preferences (2026-09-20 확인)

    • Android Developers, LocaleManager API reference (2026-09-20 확인)

    • Android Developers, Support different languages and cultures (2026-09-20 확인)

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

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

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

    유인어스 홈 컨설팅 신청 RSS