시간 추적 앱 만드는 방법: 타이머, 타임시트, 보고서
시간 추적 앱은 누가, 무엇을 위해, 얼마나 오래 일했고, 그 시간을 청구할 수 있는지 기록합니다. 만들려면 시간을 기록할 고객과 프로젝트, 브라우저 탭이 닫혀도 살아남는 타이머, 수동으로 항목을 추가하고 고칠 방법, 주간 타임시트, 원시 항목을 합계로 바꾸는 보고서가 필요합니다. AI 앱 빌더는 명확한 프롬프트 한 번으로 작동하는 첫 버전을 만들 수 있습니다. 중요한 결정은 규칙에 관한 것입니다. 반올림, 누가 무엇을 수정할 수 있는지, 주를 언제 잠그는지, 무엇이 청구 가능한지입니다.
시간을 무엇에 쓰려는지 정하세요
같은 앱이라도 목적에 따라 완전히 다르게 보입니다.
- 고객 청구. 고객별 시간, 사람이나 프로젝트별 요율, 청구서용 깔끔한 내보내기. 정확성과 감사 기록이 가장 중요합니다.
- 시급 직원 급여. 출퇴근 기록, 휴식, 초과근무 규칙, 관리자 승인. 지역의 노동 규정이 적용되므로 어떤 기록을 보관해야 하는지 확인하세요.
- 시간이 어디로 가는지 파악. 개인이나 팀의 인사이트, 예상 대비 실제 시간. 입력 속도가 승인 흐름보다 중요합니다.
첫 버전에서 주된 목적 하나를 고르세요. 프리랜서의 청구용 추적기와 창고의 교대 시계는 타이머 정도만 공유하고 나머지는 거의 같지 않습니다.
앱에 필요한 것
데이터
| 테이블 | 주요 필드 |
|---|---|
| 고객 | 이름, 기본 시간당 요율, 활성 여부 |
| 프로젝트 | 고객, 이름, 예산 시간(선택), 기본 청구 가능 여부 |
| 작업 또는 분류 | 프로젝트, 이름(디자인, 회의, 지원). 처음에는 선택 사항 |
| 시간 항목 | 사람, 프로젝트, 작업, 시작 시각, 종료 시각, 길이, 메모, 청구 가능 여부, 상태(초안, 제출됨, 승인됨), 청구서 발행 여부 |
| 사람 | 이름, 이메일, 역할, 원가 요율 또는 청구 요율 |
모든 항목에 시작 시각과 종료 시각을 저장하고, 길이는 거기서 계산하세요. “2시간 15분”처럼 시각 없이 입력한 항목은 길이만 저장해도 되지만 날짜는 유지하세요.
페이지
- 타이머와 오늘: 크고 시작/정지 버튼, 프로젝트 선택기, 그 아래 오늘의 항목.
- 주간 보기: 프로젝트를 행으로, 월요일부터 일요일까지를 열로 둔 격자. 사람들이 시간을 셀에 바로 입력합니다. 많은 사람이 타이머보다 이쪽을 선호합니다.
- 보고서: 기간별로 고객, 프로젝트, 사람별 시간을 보여 주고, 청구 가능과 불가능을 나누며, CSV 내보내기를 제공합니다.
- 관리자: 고객, 프로젝트, 사람, 요율 관리.
권한
만들기 전에 누가 무엇을 할 수 있는지 적어 두세요.
- 사람들은 자기 항목만 보고 수정할 수 있습니다.
- 관리자는 팀의 항목을 보고 주를 승인합니다.
- 요율은 관리자만 바꿀 수 있고, 이상적으로는 관리자만 볼 수 있어야 합니다.
- 승인되었거나 청구서가 발행된 항목은 관리자가 다시 열지 않는 한 아무도 수정할 수 없습니다.
마지막 규칙이 보고서를 신뢰할 수 있게 만듭니다. 로그인 측면은 앱에 로그인 추가하기에서, 역할은 역할 기반 접근 제어에서 다룹니다.
결정과 절충점
타이머, 수동 입력, 또는 둘 다
타이머는 사람들이 시작 버튼을 기억할 때만 정확합니다. 수동 입력은 금요일에 한 주를 몰아서 채우는 사람에게 빠릅니다. 대부분의 팀은 둘 다 필요하고, 타이머 항목을 사후에 수정하는 방법도 필요합니다. 하나만 만든다면 주간 격자를 만드세요. 더 단순하고 “시작을 깜빡한” 경우도 해결합니다.
실행 중인 타이머는 어디에 있나요
브라우저 안에서만 세는 타이머는 탭을 닫으면 모든 것을 잃습니다. 누군가 시작을 누르는 순간 시작 시각을 데이터베이스에 저장하고, 현재 시각에서 그 시각을 빼서 경과 시간을 보여 주세요. 그러면 타이머는 새로고침, 노트북, 휴대폰을 넘나들며 계속 돌아갑니다. 한 사람이 타이머를 두 개 동시에 돌릴 수 있는지도 정하세요. 보통은 아니요입니다. 새 타이머를 시작하면 이전 타이머가 멈추는 방식이 일반적입니다.
반올림
흔한 규칙은 각 항목을 6분, 15분 또는 30분 단위로 올림하는 것입니다. 데이터베이스에는 정확한 시각을 두고, 반올림은 보고서와 청구서에서만 적용하세요. 보고서에는 두 숫자를 모두 보여 줘서 아무도 놀라지 않게 하세요.
잠금과 승인
잠금이 없으면 청구서가 나간 뒤에도 지난달 청구 시간이 바뀔 수 있습니다. 단순한 모델은 이렇습니다. 사람들이 한 주를 제출하고, 관리자가 승인하면, 승인된 항목은 읽기 전용이 됩니다. 앱에서 청구서를 만든다면 항목에 청구서 발행 표시를 해서 두 번 청구되지 않게 하세요.
시간대와 자정
시각은 UTC로 저장하고 사람의 시간대로 표시하세요. 23:00부터 01:00까지 이어지는 항목이 어느 날에 속하는지도 정하세요. 보통은 시작한 날로 봅니다.
잘 작동하는 첫 프롬프트
여섯 명이 일하는 디자인 스튜디오용 시간 추적 앱을 만들어 줘. 데이터: 고객(이름, 시간당 요율), 프로젝트(고객, 이름, 예산 시간), 시간 항목(사람, 프로젝트, 시작, 종료, 메모, 청구 가능 yes/no, 상태 초안/제출/승인). 페이지: 오늘 페이지에는 시작/정지 타이머와 프로젝트 선택기가 있어야 하고, 시작 시각을 데이터베이스에 저장해서 새로고침 후에도 타이머가 유지되게 해 줘. 주 페이지에는 프로젝트를 행으로, 월요일부터 일요일까지를 열로 두고 사람들이 시간을 바로 입력할 수 있게 해 줘. 보고서 페이지에는 기간별로 고객, 프로젝트, 사람별 시간을 청구 가능과 불가능으로 나눠서 보여 주고, CSV 내보내기를 넣어 줘. 관리자 페이지에서는 고객, 프로젝트, 사람을 관리하게 해 줘. 사람마다 한 번에 하나의 타이머만 돌릴 수 있어. 승인된 항목은 수정할 수 없어. 시각은 UTC로 저장하고 사용자의 시간대로 보여 줘. 깔끔하고 빠르며 키보드로도 조작하기 편한 디자인으로.
프롬프트에는 테이블, 페이지, 타이머 동작, 잠금 규칙을 이름 붙여 적었습니다. AI가 임의로 추측할 만한 부분들입니다.
빌드 단계
- 프로젝트와 수동 입력부터. 고객, 프로젝트, 항목 추가 폼, 목록을 만드세요. 합계가 맞는지 확인하세요.
- 타이머. 시작, 정지, 사람당 실행 중 타이머 하나, 저장된 시작 시각. 타이머를 시작하고, 탭을 닫았다가 다시 열어서 테스트하세요.
- 주간 격자. 셀에 시간을 입력하면 항목이 만들어지거나 갱신되어야 합니다.
- 로그인과 역할. 실제 사람이 쓰기 전에 추가하세요. 그래야 아무도 실수로 요율이나 다른 사람의 항목을 보지 않습니다.
- 제출과 승인. 주간 제출, 관리자 승인, 승인 후 읽기 전용.
- 보고서와 내보내기. 기간, 그룹화, 청구 가능 분리, CSV.
- 요율과 청구 연동(고객에게 청구한다면). 청구서 생성은 별도 단계나 별도 앱으로 두세요. 청구서 앱 만드는 방법을 참고하세요.
- 경계 사례 테스트. 자정을 넘는 항목, 일광 절약 시간 주간, 두 기기에서 동시에 시작한 타이머, 승인된 항목 수정.
흔한 실수
- 시간을 브라우저 안에서만 세기. 데모에서는 작동하지만 실제 사용에서는 시간을 잃습니다.
- 저장된 값을 반올림하기. 정확한 시각은 다시 복구할 수 없습니다.
- 승인된 주에 잠금 없음. 보고서가 청구서와 맞지 않게 됩니다.
- 모두가 모두의 요율을 보기. 첫날부터 역할에 따라 요율을 숨기세요.
- 필수 필드가 너무 많음. 시간 기록에 몇 초 이상 걸리면 사람들은 하지 않게 되고, 데이터는 허구가 됩니다. 작업과 메모는 처음에는 선택 사항으로 두세요.
- 추적기 안에 완전한 프로젝트 관리 도구 만들기. 프로젝트는 단순한 라벨로 유지하세요. 작업, 보드, 마감이 필요하다면 그것은 프로젝트 관리 도구라는 별도의 빌드입니다.
기성 추적 도구가 더 나은 경우
팀에 타이머, 주간 보기, 보고서가 필요하다면 전용 시간 추적 제품이 이미 이를 잘 해냅니다. 데스크톱과 휴대폰 앱, 유휴 감지, 캘린더와 도구 연동, 타임시트 작성 알림까지 갖추고 있는데, 직접 만들려면 상당한 노력이 필요합니다. 시급 급여라면 휴식, 초과근무, 기록 보관을 전용 도구가 더 안전하게 처리합니다. 첫 버전의 맞춤 앱보다 낫습니다.
규칙이 맞지 않을 때, 이미 보관 중인 데이터(작업 지시, 업무 오더, 리테이너, 청구서)와 시간을 연결하고 싶을 때, 대규모 팀의 사용자당 요금이 누적될 때, 또는 시간 추적이 더 큰 내부 도구의 한 부분일 때 직접 만드세요. 직접 만들기와 구매의 비교는 절충점을 다루고, 시간이 공유 시트에 있다면 스프레드시트를 앱으로 바꾸는 방법을 참고하세요.
Mythex로 만들기
Mythex에서는 채팅으로 추적기를 설명하면 에이전트가 라이브 미리보기에서 만들어 줍니다. 항목을 저장해야 하면 전용 Postgres 데이터베이스를 추가하며, 직접 요청하거나 /database를 입력할 수 있습니다. 문서의 내부 도구 사용 사례는 첫 버전에서 가장 아픈 단계 하나를 고르라고 권합니다. 여기서는 항목과 주간 격자부터 시작하고, 그다음에 타이머와 승인을 추가하는 방식이 맞습니다.
팀의 로그인은 직접 고른 인증 방식으로 추가합니다(로그인 추가 레시피). Mythex 계정은 앱을 만드는 사람을 위한 것이지, 앱을 쓰는 사람을 위한 것이 아닙니다. 핵심 흐름이 작동하면 /test로 에이전트가 미리보기에서 클릭하며 테스트하게 하세요(타이머 시작, 항목 추가, 보고서 실행). 어떤 것이 깨지는지 알려 줍니다. 시각적인 출발점이 필요하다면 앱 템플릿을 둘러보세요.
자주 묻는 질문
시간 추적 앱에는 어떤 기능이 필요한가요?
고객과 프로젝트 목록, 시작/정지 타이머, 수동으로 항목을 추가하거나 수정하는 방법, 주간 타임시트 보기, 프로젝트와 사람별 시간 보고서입니다. 승인, 청구 요율, 내보내기는 다음 단계입니다.
브라우저를 닫으면 타이머의 시간이 사라지지 않게 하려면 어떻게 하나요?
타이머를 시작하는 순간 시작 시각을 데이터베이스에 저장하고, 실행 중인 시간은 그 저장된 시각으로부터 계산하세요. 그러면 탭을 닫거나 새로고침하거나 기기를 바꿔도 아무것도 잃지 않습니다.
시간을 반올림해야 하나요?
정확한 시작 시각과 종료 시각을 저장하고, 반올림은 보고서와 청구서에서만 적용하세요. 그래야 나중에 반올림 규칙을 바꿔도 과거 기록을 다시 쓸 필요가 없습니다.
시간 추적기를 직접 만들 가치가 있나요?
보통 규칙이 특이하거나, 이미 보관 중인 프로젝트, 고객, 청구서 같은 데이터와 시간을 연결하고 싶을 때만 그렇습니다. 단순한 타이머와 보고서라면 기존 추적 도구가 더 저렴하고 빠릅니다.