티스토리 뷰
안드로이드 스튜디오에서 Refactor 기능을 사용해 패키지명을 안전하고 효율적으로 변경하는 방법을 알아보세요. 프로젝트 구조 최적화와 오류 방지 팁도 함께 제공합니다.
안드로이드 스튜디오에서 패키지명을 변경해야 하는 경우는 종종 발생합니다. 예를 들어, 앱을 구글 플레이스토어에 배포하거나 기존 프로젝트를 리팩토링할 때 패키지명을 수정해야 할 수 있습니다. 이 글에서는 Refactor 기능을 이용해 패키지명을 일괄적으로 변경하는 방법을 단계별로 설명합니다.
안드로이드 스튜디오에서 패키지명을 변경해야 하는 이유
패키지명은 안드로이드 앱의 고유 식별자로, 앱의 도메인 이름과 유사한 역할을 합니다. 다음과 같은 상황에서 패키지명을 변경해야 할 수 있습니다:
- 초기 설정한 패키지명이 잘못되었거나 오타가 있는 경우
- 구글 플레이스토어 등록 시
com.example
와 같은 임시 패키지명을 사용할 수 없는 경우 - 동일한 기능의 앱을 새롭게 리브랜딩하거나 UI를 수정해 새로운 앱으로 배포할 때
👇👇👇 내용 자세히보기 👇👇👇
Refactor 기능으로 패키지명 변경하기: 단계별 가이드
1. Compact Middle Packages 해제
패키지 구조를 세분화하여 보기 위해 다음 단계를 실행합니다:
- Project 창에서 톱니바퀴 아이콘(설정)을 클릭합니다.
- Compact Middle Packages 옵션을 해제합니다.
- 이 작업을 통해 패키지가 계층적으로 나뉘어 표시됩니다.
2. 변경할 패키지 선택
- 변경하려는 특정 디렉토리를 선택합니다.
- 해당 디렉토리에서 우클릭 > Refactor > Rename을 클릭합니다.
3. Rename Package 실행
- 팝업창이 나타나면 Rename Package 옵션을 선택합니다.
- 새로운 패키지명을 입력한 뒤, Refactor 버튼을 클릭합니다.
- 하단의 Refactoring Preview 창에서 영향을 받는 파일들을 확인하고, 문제가 없으면 Do Refactor를 클릭합니다.
4. build.gradle 파일 수정
패키지명을 변경했다면 build.gradle
파일에서도 이를 반영해야 합니다:
build.gradle
파일(app 모듈)을 열고,defaultConfig
섹션의applicationId
값을 새로운 패키지명으로 수정합니다.- 수정 후 프로젝트를 Sync Now 버튼으로 동기화합니다.
5. 기타 파일 확인
패키지명 변경 후에도 일부 파일에서 수동 수정이 필요할 수 있습니다:
AndroidManifest.xml
의<manifest>
태그 내package
속성- Firebase를 사용하는 경우
google-services.json
파일의package_name
- Navigation XML이나 기타 경로 의존성이 있는 설정
주의사항 및 팁
- 전체 프로젝트 영향 확인
Refactor 기능은 대부분의 참조를 자동으로 업데이트하지만, 일부 누락된 참조는 컴파일 에러를 유발할 수 있습니다. 에러 로그를 확인하며 문제를 해결하세요. - 백업 권장
중요한 프로젝트라면 작업 전에 반드시 백업을 생성하세요. - Clean 및 Rebuild
모든 작업이 완료된 후에는 상단 메뉴에서 Build > Clean Project 및 Rebuild Project를 실행하여 오류가 없는지 확인하세요.
자주 묻는 질문
Q1: Compact Middle Packages 해제를 꼭 해야 하나요?
A1: 필수는 아니지만, 세분화된 디렉토리 구조를 통해 특정 부분만 선택적으로 변경할 때 유용합니다.
Q2: Firebase 설정은 어떻게 업데이트하나요?
A2: Firebase를 사용하는 경우, google-services.json
파일 내 package_name
속성을 새 패키지명으로 수정해야 합니다.
Q3: Refactor 후에도 에러가 발생한다면?
A3: AndroidManifest.xml, build.gradle, 기타 XML 파일 등에서 이전 패키지명이 남아 있는 부분이 없는지 확인하세요.
결론
안드로이드 스튜디오의 Refactor 기능은 복잡한 작업 없이도 패키지명을 안전하게 일괄 변경할 수 있는 강력한 도구입니다. 위 가이드를 따라 작업하면 오류를 최소화하며 효율적으로 프로젝트를 관리할 수 있습니다.