Android 스튜디오의 Gemini는 코딩 협업자 역할을 하며, 코드를 생성하고, 복잡한 주제를 요약하고, 특정 리소스를 찾는 등의 작업을 통해 개발 워크플로를 가속화합니다. 효과적인 커뮤니케이션은 Gemini의 잠재력을 최대한 활용하는 데 있어 핵심입니다.
이 가이드에서는 개발 환경을 설정하고 유용하고 신뢰할 수 있는 대답을 생성하는 프롬프트를 작성하는 전략을 설명합니다. 여러 전략의 경우 다양한 사용 사례에 대한 프롬프트 예시가 제공됩니다. 프롬프트 예시를 더 보려면 프롬프트 갤러리를 참고하세요.
에이전트 모드 사용
Android 스튜디오의 Gemini 에이전트 모드는 Gemini와의 채팅으로 경험할 수 있는 것 이상을 제공합니다. 에이전트에게 대략적인 목표를 제시하면 에이전트가 문제를 분석하고 이를 해결하기 위한 계획을 세웁니다. 에이전트는 도구를 호출하고, 여러 파일을 수정하고, 오류를 수정합니다. 에이전트 모드를 사용하면 복잡한 작업을 더 효율적으로 처리하여 전체 개발 프로세스를 가속화할 수 있습니다.
구체적으로 설명
Android 스튜디오의 Gemini는 명확하고 구체적인 안내가 있을 때 가장 잘 작동합니다. 사용하고 싶은 특정 라이브러리, API 또는 접근 방식이 있다면 질문에 포함하거나 프로젝트의 루트 AGENTS.md 파일에 포함하여 상호작용 전반에 걸쳐 유지하세요. 버그 신고를 제출하는 것과 비슷하다고 생각하면 됩니다. 정보를 많이 제공할수록 문제를 더 빠르고 효과적으로 해결할 수 있습니다.
새 기능 구현:
권장사항
금지사항
코드 생성:
권장사항
Coil 라이브러리를 사용하여 지정된 URL 문자열에서 이미지를 다운로드하는 Kotlin 정지 함수를 작성합니다.
함수 이름은 fetchImageAsBitmap
여야 합니다. Context
와 String
URL을 인수로 사용하고 null 허용 Bitmap
를 반환해야 합니다. 네트워크 또는 디코딩 오류가 있는 경우 예외를 포착하고 로깅하고 null
를 반환해야 합니다.
금지사항
개념 설명:
권장사항
음악 플레이어 앱을 빌드하고 앱이 백그라운드에 있을 때 재생을 계속해야 합니다.
사용자가 기기에서 다른 작업을 하는 동안 앱을 계속 실행할 수 있는 옵션은 무엇인가요? 각 접근 방식의 API 수준 요구사항과 배터리 수명 영향은 무엇인가요?
금지사항
답변의 구조 설명
기본적으로 Gemini는 대화형 단락 기반 형식으로 대답을 제공합니다. 이는 설명을 위해 유용하지만 대답을 구성하는 방법을 알려주면 더 효과적이고 즉시 사용할 수 있는 결과를 얻을 수 있습니다. 출력 형식을 지정하면 모델이 명확하고 예측 가능한 방식으로 정보를 정리하므로 직접 형식을 다시 지정하는 시간을 절약할 수 있습니다.
Gemini가 생성한 코드를 앱에 삽입하고 즉시 사용할 수 있도록 특정 형식의 코드가 필요한 경우 코드 생성 및 형식 지정에 관한 명확한 지침을 Gemini에 제공하세요.
대답 구조화:
권장사항
사용자 프로필의 Room 항목을 만듭니다. id
, userName
, email
, memberSince
필드가 포함되어야 합니다. id
필드는 자동 생성되어야 합니다. memberSince
필드는 타임스탬프를 나타내야 합니다.
금지사항
개방형 질문을 하는 경우 x개의 옵션을 요청하세요.
대답 제한:
권장사항
금지사항
복잡한 요청을 더 작은 작업으로 나누기
복잡한 다단계 요청의 경우 에이전트 모드를 사용해 보세요. 하지만 에이전트의 접근 방식이 예상과 다른 경우 한 번에 모든 것을 요청하는 대신 일련의 작은 순차적 프롬프트를 통해 Gemini를 안내하는 것이 도움이 될 수 있습니다. 이 방법을 사용하면 더 많은 제어 권한을 얻을 수 있으며 다음 단계로 진행하기 전에 각 단계를 확인할 수 있습니다.
순차적 프롬프트 적용:
권장사항
프롬프트 1: 데이터 모델
먼저 User
라는 Kotlin 데이터 클래스를 만듭니다. id
(Int), name
(String), email
(String)의 세 가지 속성이 있어야 합니다.
프롬프트 2: 네트워크 레이어
이제 ApiService
라는 Retrofit API 인터페이스를 만듭니다. List<User>
를 반환하는 getUsers()
이라는 단일 suspend fun
가 필요합니다.
프롬프트 3: 상태 관리
다음으로 ApiService
를 종속 항목으로 사용하는 UsersViewModel
를 작성합니다. UsersViewModel
는 Loading, Success(users: List
및 Error(message: String)
상태를 나타낼 수 있는 봉인된 UiState
클래스의 StateFlow
를 노출해야 합니다. ViewModel
에서 사용자를 가져오고 상태를 업데이트하는 함수를 만듭니다. 새 기능의 단위 테스트 작성
프롬프트 4: UI 레이어
마지막으로 UiState
를 매개변수로 허용하는 UserListScreen
라는 Jetpack Compose 함수를 작성합니다. when
문을 사용하여 로드 상태의 CircularProgressIndicator
, 성공 상태의 사용자 이름 LazyColumn
, 오류 상태의 오류 메시지가 있는 Text
요소를 표시합니다. 새 기능을 확인하는 테스트를 추가합니다.
금지사항
ViewModel
와 데이터 로직을 처리하는 저장소, User
데이터 클래스가 있어야 하며 로드 및 오류 상태를 표시해야 합니다.컨텍스트 관리
Android 스튜디오에서 Gemini를 사용하는 데 있어 중요한 부분은 올바른 컨텍스트를 제공하는 것입니다. 가장 유용한 대답을 얻으려면 관련 코드 스니펫, 파일 콘텐츠, 프로젝트 구조 정보를 제공하세요. 적절한 균형을 찾기 위해 반복해야 할 수도 있습니다. 정보가 너무 많으면 Gemini가 잘못된 방향으로 갈 수 있고, 정보가 너무 적으면 Gemini가 도움을 줄 수 있는 충분한 컨텍스트가 제공되지 않습니다. 사용 가능한 기능을 사용하여 Gemini가 필요한 컨텍스트에 액세스하도록 합니다.
- 이미지를 첨부하여 구상 중인 UI 또는 이해하려는 앱 아키텍처를 시각적으로 보여주세요.
- 파일 첨부를 사용하여 코드베이스의 관련 부분을 강조 표시합니다.
.aiexclude
파일을 사용하여 Gemini가 코드베이스의 특정 부분을 무시하도록 합니다.- AGENTS.md 파일을 사용하여 프로젝트별 안내를 제공하고 팀 전체에 공유하세요. AGENTS.md 파일을 사용할 때는 마크다운 헤더와 형식을 사용하여 안내를 명확하게 작성하세요.
- 에이전트 모드를 사용할 때는 MCP 서버를 구성하여 외부 환경으로 Gemini의 지식과 기능을 확장합니다.
설명 요청
Android 스튜디오의 Gemini의 대답이 이해되지 않으면 설명을 요청하세요. 이는 제안된 솔루션이 사용 사례에 적합한지 학습하고 확인하는 좋은 방법입니다. 대답이 예상과 다른 경우 Gemini가 잘못된 것일 수 있으며, 설명을 요청하면 Gemini가 스스로 수정할 수 있습니다.
요청 사항 반복
동료와 함께 작업할 때와 마찬가지로 Android 스튜디오에서 Gemini와 함께 작업할 때도 작업과 예상 결과에 대해 명확히 파악하기 위해 몇 차례의 커뮤니케이션이 필요할 수 있습니다. Gemini의 초기 대답이 충분하지 않은 경우 개선 방법에 관한 의견과 제안을 포함하여 대답하세요. 대답이 제안에 따라 개선되면 프롬프트 라이브러리의 항목을 업데이트하거나 AGENTS.md 파일을 업데이트하여 원래 프롬프트에 제안을 통합합니다.