-
AndroidStudio/IntelliJ IDE 에서 변수 추적이 안되는 케이스 분석Android & Kotlin 2025. 8. 8. 13:58
0. 개요
- IntelliJ IDE 에서 자동 변수추적(find usage) 이 작동하지 않는 케이스를 분석하고 해결방안을 정리합니다.
- 해당 글은 Kotlin 기반 프로젝트 이슈를 다룹니다.
1. 데이터 클래스 변수의 사용처 추적 이슈1-1. 문제 상황
데이터 클래스의 변수를 IDE에서 추적하여 사용처를 확인하려 했으나, 실제로는 사용되고 있음에도 사용처가 표시되지 않는 문제 발생
1-2. 원인 분석
함수 파라미터의 자동 할당(named parameter)을 사용할 경우, IDE가 변수 할당 위치를 제대로 인식하지 못함
- 인식 가능한 경우: 명시적으로 파라미터명을 표기한 경우
MainActivity.start(this, MainParams(url, someParam = isSomeParam))
- 인식 불가능한 경우: 자동 할당에 의존하는 경우
1-3. 해결 방법
- 코드 작성 시: 가능한 한 파라미터명을 명시적으로 표기하여 추적 가능성 향상
- 사용처 검색 시:
- IDE의 "Go to Usage" 기능으로 찾을 수 없는 경우
- 텍스트 기반 키워드 검색(Find in Files)을 병행하여 확인
2. Interface 변수의 구현체 사용처 추적 이슈
2-1. 문제 상황
Interface에 정의된 변수를 구현체(Impl) 클래스에서 사용할 때, IDE의 "Find Usages" 기능으로 해당 사용처를 찾을 수 없는 문제 발생
// UserRepository.kt (Interface) interface UserRepository { val userId: String val userName: String fun getUserInfo(): User } // UserRepositoryImpl.kt (구현체) class UserRepositoryImpl : UserRepository { override val userId: String = "12345" override val userName: String = "John" override fun getUserInfo(): User { // userId를 여기서 사용하지만, // Interface의 userId에서 "Find Usages"를 하면 찾아지지 않음 return User(userId, userName) } fun updateUser() { // 구현체 내부에서 사용하는 경우도 추적 안됨 println("Updating user: $userId") } }
2-2. 해결 방법
Interface에서 찾을 때
- Find Usages 대신 Find Implementations (Ctrl/Cmd + Alt + B) 사용
'Android & Kotlin' 카테고리의 다른 글
Serialization 라이브러리 마이그레이션 과정(Gson -> Kotlinx-Serialization) (1) 2023.12.23 직렬화 라이브러리 마이그레이션 이유(Gson 에서 Kotlinx-Serialization) (1) 2023.12.22 Hilt 관련 리펙토링 기록 (@binds @Provides 차이 , UsecaseModule) (0) 2023.01.08 DialogFragment 오류 정리 (Radius , 크기 지정) (0) 2022.11.28 By 키워드를 이용한 Shared Preference (0) 2022.11.18