[Kotlin] IntervalTrainingTimer App 만들기
요즘은 프로그래밍이라는 단어보다는 코딩이라는 단어를 많이 사용하는 것 같습니다. 왜 그럴까를 생각해 봤습니다. 프로그램밍이 분석→설계→개발→테스트→운영 등 모든 단계를 아우르는 개념이라면, 코딩은 프로그램밍의 영역이 분업화/파편화되면서 프로그램 언어 자체 및 문법 등에 특화되지 않았나 생각합니다. AI를 활용해 안드로이드 앱을 만드는 것은 바로 이러한 흐름의 연장선에 있다고 볼 수 있습니다. AI는 프로그래밍의 여러 단계 중 코딩의 영역을 자동화하고, 더 나아가서는 설계와 테스트의 일부까지 보조하는 도구로 진화했습니다. 이런 진화에 따라 이 번 글에서는 어떻게 AI를 활용해서 Android App을 만들었는지 공유해 보겠습니다.
1. 만들고자하는 App의 기능 정의
2. Gemini 활용: 기능 정의를 사용하여 요구사항 정의서 작성 요청
3. Claude AI 활용: 작성된 요구사항 정의서로 코딩 요청
4. Android Studio 프로젝트에 소스코드 및 리소스 파일 추가하기
1. 만들고자하는 App의 기능 정의
만들고자하는 App의 목적과 기능을 간략하게 정의합니다. 아래는 제가 작성한 내용입니다.
- 목적: Interval Training을 위한 여러 동작의 시작과 종료를 알려주는 간단한 Timer를 개발 - 기능: 여러 동작을 하나의 세트로 관리하고, 동작 추가 시 운동시간/휴식시간/반복횟수를 등록
2. Gemini 활용: 기능 정의를 사용하여 요구사항 정의서 작성 요청
1단계에서 작성된 내용을 아래와 같이 Gemini 프롬프트에 입력합니다.
아래 목적과 기능이 반영된 Android App 개발을 위한 요구사항 정의서를 작성해 줘 - 목적: Interval Training을 위한 여러 동작의 시작과 종료를 알려주는 간단한 Timer를 개발 - 기능: 여러 동작을 하나의 세트로 관리하고, 동작 추가 시 운동시간/휴식시간/반복횟수를 등록
요구사항 정의서가 맘에 들 때까지 계속해서 수정 작업을 반복합니다. Gemini가 생성해 준 내용 중 꼭 필요한 내용만 발췌해서 프로젝트 개요 및 주요 기능 요구사항을 정리했습니다. 너무 많은 요구사항으로 프로젝트 크기가 켜지면 Claude ai 사용제한이 발생하므로 최소한의 기능 요구사항만 담았으며, 일부 내용은 제가 추가하였습니다.
프로젝트 개요 1. 프로젝트명: IntervalTrainingTimer 2. 플랫폼: Android (안드로이드 스튜디오, Kotlin) 3. 목적: 초보자를 위한 인터벌 트레이닝 타이머 앱 개발 주요 기능 요구사항 1. 운동 단위(동작) 설정 * 각 동작마다 운동 시간(초 단위) 입력 텍스트박스 제공 * 각 동작마다 휴식 시간(초 단위) 입력 텍스트박스 제공 * 각 동작별 반복 횟수는 1~5까지 선택 가능한 드롭다운 리스트 제공 2. 세트 그룹화 및 반복 * 여러 동작을 하나의 세트로 그룹화하여 관리 * 세트 반복 횟수를 1~5 사이에서 선택 가능한 드롭다운 리스트로 화면 상단에 배치 3. UI 구성 * 세트 반복 횟수 선택 드롭다운은 화면 최상단에 위치 * 각 동작별 운동 시간 및 휴식 시간은 숫자 입력 가능한 텍스트박스 * 각 동작별 반복 횟수 선택은 드롭다운 리스트 (1~5) * 사용자 친화적인 초보자용 단순 UI 4. 기타 * 입력값 검증: 운동 시간, 휴식 시간은 반드시 숫자만 입력 가능하도록 제한 * 반복 횟수 선택은 드롭다운만 가능, 숫자 직접 입력 불가 * 앱 실행 시 기본 세트 1개와 기본 동작 1개 포함 * MVVM 또는 간단한 구조 권장 (초보자 목적이므로 복잡하지 않게) * 추가 결정사항이 필요하면, 개발자 재량으로 결정하여 반영 * 레이아웃: ConstraintLayout 또는 LinearLayout 활용 * 입력 컨트롤: EditText (숫자 입력용), Spinner (드롭다운용) * 데이터 모델: 운동시간, 휴식시간, 동작 반복 횟수, 세트 반복 횟수 포함한 클래스 설계
3. Claude AI 활용: 작성된 요구사항 정의서로 코딩 요청
아래와 같이 프롬프트에 IntervalTrainingTimer 요구사항 정의서와 함께 코딩을 요청합니다.
안드로이드 스튜디오를 사용해서 내가 필요한 앱을 개발하고 싶어. 그런데 나는 진짜 코틀린에 대해 지식이 없어. 아래는 내가 요구하는 사항이야. 소스코드 및 리소스 파일을 각각 작성해서 안드로이드 스튜디오 프로젝트를 생성해줘. -------------------------------------------------------------------- (2단계에서 작성한 프로젝트 개요 및 주 기능 요구사항 입력)
아래 내용은 Claude AI가 응답 및 생성해준 내용의 일부분입니다.
4. Android Studio 프로젝트에 소스코드 및 리소스 파일 추가하기
Claude AI가 생성한 소스코드 및 리소스 파일들의 최종버전을 Android Studio 프로젝트에 추가합니다. 추가 및 실행하면서 발생하는 오류는 Claude ai 및 Gemini의 도움을 받았습니다.
에뮬레이터에서 정상적으로 실행된 최종 프로젝트 파일들을 Github에 등록하였습니다. 멈껏 수정해서 사용하셔도 됩니다. 출처를 기록해 주시면 감사할 따름이죠.