← 문서 목록

우리매장 기능 가이드

우리매장 앱 — 기능 가이드

최종 업데이트: 2026-08-10 (v5.41) Android / Kotlin + Jetpack Compose


앱 개요

우리매장은 소상공인을 위한 매장 관리 앱입니다.
직원 등록부터 출퇴근 기록, 스케줄 관리, 급여 계산까지 한 앱에서 처리합니다.

앱은 사장 앱직원 앱 두 모듈로 구성됩니다.


빌드 플레이버

사장 앱 (app 모듈)

플레이버 IS_DEV MOCK_PRO 용도
devDebug true true 개발·목업 데이터, Firebase 우회, PRO 전체 오픈
prodDebug false false Firebase 연동 디버그
prodRelease false false 스토어 배포
prodPro false true PRO 기능 전체 오픈, 광고 없음

직원 앱 (staff-app 모듈)

플레이버 IS_DEV 용도
devDebug true 개발용 (Firebase 우회, mock 매장 자동 연결)
prodRelease false 스토어 배포

사장 앱 화면 구성 (5개 탭 + 시트 레이어)

아이콘 설명
🏡 오늘 현황 · 직원 목록 · 주간 리포트
직원 🪪 직원 등록·수정·퇴직 관리
스케줄 🗓️ 월간 달력 중심 근무 일정 관리
출퇴근 🕐 출근/퇴근 처리 · 상세 수정
급여 🧾 인건비 계산 · 지급 관리 · 히스토리

🚀 온보딩 (최초 1회)

prod 플레이버(IS_DEV=false) 신규 유저 첫 로그인 시 OnboardingScreen 표시


🏠 홈 탭

상단 헤더

오늘 현황 카드

빠른 실행 타일 (4개)

타일 동작
➕ 직원 추가 직원 추가 시트 열기
📅 스케줄 등록 일정 추가 시트 열기
💰 급여 계산 급여 탭으로 이동
🎙 음성 조회 음성 인식 기능 실행

급여일 D-day 배너

오늘의 직원 목록

주간 리포트


🪪 직원 탭

직원 목록

직원 추가 버튼 (헤더 우상단)

직원 추가/수정 시트 (AddStaffSheet)

아바타 설정

기본 정보

급여 정보

고정 근무 패턴 설정 (자동채우기 기능 연동)

직원 상세 시트 (StaffDetailSheet)

퇴직 처리


📅 스케줄 탭

뷰 구성

상단 토글로 두 가지 뷰 전환:


📅 월간 달력 뷰

달력 그리드

DayPanel (날짜 탭 시 하단 표시)

근무 추가/수정 시트 (ScheduleSheet) 헤더 우상단 "+ 근무 추가" 버튼 또는 ✏️ 버튼으로 열기

항목 내용
근무 유형 오픈 / 마감 / 오후 / 기타 칩 선택
시작/종료 시간 탭 → Material3 TimePicker
반복 (추가 모드만) 주기: 없음 / 매일 / 매주 / 격주 → 기간: 이번달 / 다음달 / 2개월 / 직접지정
직원 선택 활성 직원 2열 그리드 (멀티 선택)

반복 등록

근무 유형별 자동 설정

유형 기본 시간 색상
오픈 09:00~18:00 주황 #FF6B35
마감 14:00~22:00 보라 #8B5CF6
오후 12:00~20:00 파랑 #2563EB
기타 09:00~18:00 회색 #6B7280

📊 주간 보드 뷰 (읽기 전용)

직원 × 7일 그리드 — 한 주 흐름 파악용

헤더 영역

그리드

시프트 블록 색상 규칙 | 키워드 | 배경 | 텍스트 | |--------|------|--------| | "오픈" 포함 | 연주황 | 주황 | | "오후" 포함 | 연파랑 | 파랑 | | "마감" 포함 | 연보라 | 보라 | | 그 외 | 연초록 | 초록 | | 없음 (휴무) | 연회색 | 회색 |


⏱ 출퇴근 탭

오늘 근무 현황

근무 현황 상세 시트 (AttendDetailSheet)


💰 급여 탭

직원 급여 카드

급여 상세 시트 (PayrollDetailSheet)

급여 히스토리 (PayHistorySheet)


⚙️ 프로필 시트

프로필 버튼(홈 우상단) 탭으로 진입

내 정보

내 매장

매장 설정

앱 설정

로그아웃


📱 직원 앱 (staff-app)

직원 전용 별도 앱. 초대코드로 매장에 연결 후 사용.

앱 정보

인증 흐름

  1. 스플래시 → 로그인 상태 확인
  2. 미로그인: 로그인 화면 (이메일/비밀번호 또는 Google 로그인)
  3. 로그인 후 매장 미연결: 초대코드 입력 화면
  4. 연결 완료: 메인 4탭 화면 진입

초대코드 연결 (InviteCodeScreen)

4탭 구성

내용
시간대 인사말, 오늘 출퇴근 카드, 스케줄 카드, 이번 달 급여 요약
스케줄 월간 달력 뷰 + 리스트 뷰 토글, 자신의 근무 일정 조회
출퇴근 출퇴근 버튼(Canvas 파티클 이펙트), 월별 이력
급여 이번 달 다크 카드(금액·시간·시급·지급여부), 월별 이력

☁️ Firestore 동기화


아바타 & 색상 시스템

그라디언트 팔레트 (9가지)

인덱스 이름 색상
0 orange #FF6B35 → #FF9A6C
1 teal #2EC4B6 → #5EEAD4
2 purple #8B5CF6 → #A78BFA
3 pink #EC4899 → #F472B6
4 blue #3B82F6 → #60A5FA
5 green #10B981 → #34D399
6 amber #F59E0B → #FBBF24
7 red #EF4444 → #F87171
8 indigo #6366F1 → #818CF8

색상 결정 규칙

아바타 타입


계좌번호 하이픈 패턴

은행 자릿수 패턴
국민 14 6-2-6
신한 12 3-3-6
우리 13 4-3-6
하나 14 / 11 3-6-5 / 3-2-6
기업 14 3-6-5
농협 13 / 11 3-4-4-2 / 3-4-4
카카오 13 4-2-7
토스 12 4-4-4
씨티 12 3-6-3
SC제일 12 3-4-5
우체국 14 6-2-6

패턴 없는 은행은 숫자 그대로 표시 (fallback)


빌드 & 설치

# 사장 앱 — 빌드만 (devDebug 기본)
.\scripts\build.ps1

# 사장 앱 — prodPro 빌드만
.\scripts\build.ps1 -Flavor prodPro -BuildType release

# 사장 앱 — 빌드 + ADB 설치
.\scripts\build-install.ps1 -Target <ip:port>
.\scripts\build-install.ps1 -Target <ip:port> -Flavor prodPro -BuildType release

# 직원 앱 — 빌드 + ADB 설치
.\scripts\build-install-staff.ps1 -Target <ip:port>

주의: ADB 포트는 세션마다 변경됩니다. 매번 사용자에게 직접 받아서 사용하세요.


주요 기술 스택

항목 내용
언어 Kotlin
UI Jetpack Compose (Material3)
아키텍처 MVVM (ViewModel + Repository)
로컬 DB Room (SQLite)
클라우드 Firebase Auth + Firestore
광고 AdMob (FREE 플랜 배너+전면)
이미지 로딩 Coil (AsyncImage)
내비게이션 HorizontalPager (5탭) + BottomNavigationBar
빌드 플레이버 devDebug (목업) / prodRelease / prodPro
빌드 스크립트 scripts/build.ps1, scripts/build-install.ps1, scripts/build-install-staff.ps1