# 종량제 개발 작업 관리

> 이 파일은 개발 작업의 진행 상황을 추적합니다.
> 작업 시작/완료/중단 시 반드시 이 파일을 업데이트합니다.

---

## 현재 작업

> 현재 진행 중인 작업이 없습니다.

<!--
작업 진행 시 아래 형식으로 기록:

### [작업ID] 작업명
- **상태**: 진행중 | 중단 | 완료
- **시작**: YYYY-MM-DD
- **브랜치**: feature/xxx
- **설명**: 작업 내용 요약
- **진행 내역**:
  1. [x] 완료된 단계
  2. [ ] 다음 단계
- **중단 사유** (중단 시): 오류 내용 또는 사유
- **이어서 할 것** (중단 시): 재개 시 해야 할 작업
- **관련 파일**: 수정한/수정할 파일 목록
-->

---

## 대기 작업 (Backlog)

### Phase 2 — 기본정보관리 완성

| ID | 작업 | 우선순위 | 의존성 | 상태 |
|----|------|---------|--------|------|
| P2-01 | 기본코드 종류 관리 (CRUD) | 높음 | — | **완료** |
| P2-02 | 기본코드 하위 세부코드 관리 (CRUD) | 높음 | P2-01 | **완료** |
| P2-03 | 지자체별 봉투 단가 관리 + 이력 | 높음 | P2-01 | **완료** |
| P2-04 | 지자체별 봉투 단가 조회 (기간별) | 중간 | P2-03 | **완료** |
| P2-05 | 포장 단위 관리 (박스/팩/낱장) | 높음 | P2-01 | **완료** |
| P2-06 | 포장 단위 조회 (기간별) | 중간 | P2-05 | **완료** |
| P2-07 | 판매 대행소 관리 + 지자체 연결 | 중간 | — | 대기 |
| P2-08 | 판매 대행소 조회 | 낮음 | P2-07 | 대기 |
| P2-09 | 담당자 관리 (소속별 CRUD) | 중간 | — | 대기 |
| P2-10 | 담당자 조회 / 인쇄 | 낮음 | P2-09 | 대기 |
| P2-11 | 업체 관리 (협회/제작업체/회수업체) | 중간 | — | 대기 |
| P2-12 | 업체 조회 / 인쇄 | 낮음 | P2-11 | 대기 |
| P2-13 | 무료용 대상자 관리 (CRUD) | 중간 | — | 대기 |
| P2-14 | 무료용 대상자 조회 / 인쇄 | 낮음 | P2-13 | 대기 |
| P2-15 | 지정판매소 다조건 조회 + 엑셀 + 인쇄 | 중간 | — | 대기 |
| P2-16 | 지정판매소 바코드 출력 | 낮음 | P2-15 | 대기 |
| P2-17 | 지정판매소 지도 표시 | 낮음 | — | 대기 |
| P2-18 | 지정판매소 현황 (신규/취소) | 낮음 | — | 대기 |
| P2-19 | 지자체 수정/삭제 기능 | 중간 | — | 대기 |
| P2-20 | PASSWORD 변경 기능 | 중간 | — | 대기 |
| P2-21 | 로그인 5회 실패 lock | 중간 | — | 대기 |
| P2-22 | 카카오 주소 검색 API 연동 | 중간 | — | 대기 |

### Phase 3 — 발주/입고/재고

| ID | 작업 | 우선순위 | 의존성 | 상태 |
|----|------|---------|--------|------|
| P3-01 | 발주 등록 (UUID + SHA-256 + 블록) | 높음 | P2-03, P2-05 | 대기 |
| P3-02 | LOT 번호 생성 + PDF417 바코드 | 높음 | P3-01 | 대기 |
| P3-03 | 발주 변경 (버전 관리, 해시 체인) | 높음 | P3-01 | 대기 |
| P3-04 | 발주 삭제 (상태 변경) | 중간 | P3-01 | 대기 |
| P3-05 | 발주 현황 리포트 | 중간 | P3-01 | 대기 |
| P3-06 | 발주 입고 - 바코드 스캐너 연동 | 높음 | P3-02 | 대기 |
| P3-07 | 발주 입고 - 스캐너 입고 처리 | 높음 | P3-06 | 대기 |
| P3-08 | 일괄 입고 (LOT 단위) | 중간 | P3-01 | 대기 |
| P3-09 | 입고 현황 리포트 | 중간 | P3-07 | 대기 |
| P3-10 | 재고 조회 + 결재란 인쇄 | 높음 | P3-07 | 대기 |
| P3-11 | 실사 선별 / 등록 / 조회 | 중간 | P3-10 | 대기 |

### Phase 4 — 주문/판매/불출

| ID | 작업 | 우선순위 | 의존성 | 상태 |
|----|------|---------|--------|------|
| P4-01 | 전화 주문 접수 (자동완성 검색) | 높음 | P2-05, P3-10 | 대기 |
| P4-02 | 주문 접수 관리 메인 화면 | 높음 | P4-01 | 대기 |
| P4-03 | 주문 수정 / 취소 | 중간 | P4-01 | 대기 |
| P4-04 | 지정판매소 판매 (바코드 스캔) | 높음 | P3-07, P4-01 | 대기 |
| P4-05 | 지정판매소 판매 취소 | 중간 | P4-04 | 대기 |
| P4-06 | 지정판매소 반품 | 중간 | P4-04 | 대기 |
| P4-07 | 지정판매소 반품 취소 | 낮음 | P4-06 | 대기 |
| P4-08 | 무료용 불출 현황 | 중간 | P3-10 | 대기 |
| P4-09 | 무료용 불출 처리 (바코드 스캔) | 높음 | P3-10 | 대기 |
| P4-10 | 무료용 불출 취소 | 중간 | P4-09 | 대기 |

### Phase 5 — 현황/리포트/수불

| ID | 작업 | 우선순위 | 의존성 | 상태 |
|----|------|---------|--------|------|
| P5-01 | 판매 대장 (일자별/기간별) | 높음 | P4-04 | 대기 |
| P5-02 | 일계표 (일계 + 월간 누계) | 높음 | P4-04 | 대기 |
| P5-03 | 기간별 판매현황 | 중간 | P4-04 | 대기 |
| P5-04 | 년 판매 현황 (월별/분기별) | 중간 | P4-04 | 대기 |
| P5-05 | 지정판매소별 판매현황 (수량/금액) | 중간 | P4-04 | 대기 |
| P5-06 | 홈택스 세금계산서 엑셀 생성 | 높음 | P4-04 | 대기 |
| P5-07 | 봉투 수불 현황 (전일재고/입고/출고/잔량) | 높음 | P3-10, P4-04 | 대기 |
| P5-08 | 반품/파기 현황 | 중간 | P4-06 | 대기 |
| P5-09 | 봉투 수급 계획 | 낮음 | P5-07 | 대기 |
| P5-10 | LOT 수불 조회 | 중간 | P3-02 | 대기 |
| P5-11 | 기타 입출고 | 낮음 | P3-10 | 대기 |
| P5-12 | 봉투 스캔 현황 (횟수/위치) | 낮음 | — | 대기 |

### Phase 6 — 모바일앱

| ID | 작업 | 우선순위 | 의존성 | 상태 |
|----|------|---------|--------|------|
| P6-01 | 앱 공통 (로그인, 2차인증, PII) | 높음 | P2-21 | 대기 |
| P6-02 | 발주 입고 (PDF417 카메라 스캔) | 높음 | P3-07 | 대기 |
| P6-03 | 불출 관리 (카메라 스캔) | 중간 | P4-09 | 대기 |
| P6-04 | 판매/반품 처리 (카메라 스캔) | 중간 | P4-04 | 대기 |
| P6-05 | 봉투 주문 / 수정 / 취소 | 중간 | P4-01 | 대기 |
| P6-06 | 봉투 정품 인증 | 높음 | P3-02 | 대기 |

### 공통 기술 과제

| ID | 작업 | 우선순위 | 상태 |
|----|------|---------|------|
| CT-01 | 페이지네이션 공통 구현 | 높음 | 대기 |
| CT-02 | 엑셀 저장 공통 컴포넌트 | 높음 | 대기 |
| CT-03 | 인쇄 공통 컴포넌트 (결재란 포함) | 높음 | 대기 |
| CT-04 | 바코드 스캐너 연동 (Electron + serialport) | 중간 | 대기 |
| CT-05 | CRUD 로깅 (전체 데이터 변경 이력) | 중간 | 대기 |
| CT-06 | 대시보드 실 데이터 연동 | 낮음 | 대기 |
| CT-07 | 2차 인증 적용 | 중간 | 대기 |

---

## 완료 작업

| ID | 작업 | 완료일 | 커밋 |
|----|------|--------|------|
| INIT-01 | 프로젝트 초기 세팅 (CI4, DB 스크립트) | 2026-01 | `4e557d4` |
| INIT-02 | 로그인/로그아웃 + 세션 관리 | 2026-01 | `4e557d4` |
| INIT-03 | 회원가입 + 승인 워크플로우 | 2026-01 | `4e557d4` |
| INIT-04 | 회원 관리 CRUD (Admin) | 2026-01 | `4e557d4` |
| INIT-05 | 로그인 이력 조회 | 2026-01 | `4e557d4` |
| INIT-06 | 역할 기반 접근 제어 (RBAC 4단계) | 2026-01 | `4e557d4` |
| INIT-07 | 멀티테넌시 (지자체 선택) | 2026-01 | `4e557d4` |
| INIT-08 | 메뉴 관리 (트리 CRUD + 역할별 노출) | 2026-01 | `4e557d4` |
| INIT-09 | 지정판매소 관리 CRUD | 2026-01 | `4e557d4` |
| INIT-10 | PII 암호화 (이메일/전화번호) | 2026-01 | `4e557d4` |
| DOC-01 | README 개발현황 정리 + CLAUDE.md | 2026-03-25 | `c07261a` |
| TEST-01 | Playwright E2E 테스트 환경 + 테스터 계정 + 23개 테스트 | 2026-03-25 | — |

---

## 작업 로그

> 최신 항목이 위에 옵니다.

### 2026-03-25

- **P2-05/06** 포장 단위 관리 CRUD + 이력 + 기간별 조회 (`acc9e47`)
- **P2-03/04** 봉투 단가 관리 CRUD + 이력 + 기간별 조회 (`6949227`)
- **P2-01/02** 기본코드 종류/세부코드 관리 CRUD (`41442c2`)
- **FIX** DB 한글 이중인코딩 수정 (`34cecad`)
- **DOC-02** 스크린샷 22개 + docs/SCREENSHOTS.md + Notion 진행상황 업데이트 + README 연동
- **TEST-01** Playwright E2E 테스트 환경 구성 (Chromium)
- **TEST-01** 테스터 계정 4개 생성 (admin/local/shop/user, 비밀번호: test1234!)
- **TEST-01** E2E 테스트 23개 작성 및 전체 통과 (auth 9, admin 10, public 4)
- **DOC-01** README.md 개발현황 상세 정리 (63개 웹 + 15개 앱 항목별 분석)
- **DOC-01** CLAUDE.md 생성 (Claude Code 프로젝트 가이드)
- **DOC-01** jobs.md 생성 (작업 관리 파일)

---

## 사용법

### 작업 시작 시
1. "현재 작업" 섹션에 작업 정보 기록
2. 해당 Backlog 항목 상태를 `진행중`으로 변경
3. 작업 로그에 시작 기록 추가

### 작업 완료 시
1. **테스트 작성 및 실행** (`vendor/bin/phpunit`) — 테스트 통과 확인 필수
2. "현재 작업" 섹션 비우기
3. "완료 작업" 테이블에 추가
4. Backlog 항목 상태를 `완료`로 변경
5. 작업 로그에 완료 기록 추가

### 작업 중단 시 (오류/컨텍스트 유실 등)
1. "현재 작업"에 **중단 사유**와 **이어서 할 것** 반드시 기록
2. 수정한 파일 목록과 현재 브랜치 명시
3. Backlog 항목 상태를 `중단`으로 변경
4. 작업 로그에 중단 사유 기록

### 새 세션에서 이어서 작업 시
1. "현재 작업" 섹션 확인 → 중단된 작업이 있으면 이어서 진행
2. 없으면 Backlog에서 우선순위 높은 대기 작업 선택
