@@ -152,22 +152,13 @@ Control 전체 목록과 상태 관리는 별도 문서에서 관리:
152152- [ ] Control 접근성 기준 체크 (focus ring, 명도 대비, aria role/label, tab 순서)
153153- [ ] ` apps/web ` View에서 ` @fieldstack/controls ` Control로 교체 검증
154154
155- #### 1.5.2 설치 마법사 (초기 설정)
156- ** 예상 기간: 4일**
155+ #### 1.5.2 설치 마법사 (개발용 bypass)
157156
158- > ** 향후 계획:** 현재 구현은 Phase 1.5 범위 내 기본 흐름 검증 목적이며, 완성 이후 별도 Setup 설치 시스템으로 분리 개발 예정.
159- > UX 방향은 Synology DSM 초기 설정 또는 Windows 설치 마법사 스타일을 참고할 예정.
157+ > Setup 설치 시스템은 ** Phase 1.95** 에서 별도 Phase로 독립 개발됩니다.
158+ > UX 방향은 Synology DSM 초기 설정 또는 Windows 설치 마법사 스타일을 참고.
159+ > Phase 1.5에서는 개발 편의를 위한 bypass 모드만 제공합니다.
160160
161161- [x] 개발용 bypass 실행 모드 제공 (` dev:bypass ` , ` dev:web:bypass ` , ` dev:api:bypass ` )
162- - [ ] Welcome 화면
163- - [ ] Configuration 화면 (관리자 계정, DB, 선택 옵션)
164- - [ ] Progress 화면 (단계/로그/오류 상태)
165- - [ ] Complete 화면 (로그인 진입)
166- - [ ] 첫 실행 감지 시 /install 강제 라우팅 정책 반영
167- - [ ] Configuration 단계 유효성 검증 UX 정의 (필수값, 형식 오류, 연결 테스트 결과)
168- - [ ] Progress 단계 실패 처리 UX 정의 (재시도/이전 단계 복귀/에러 요약)
169- - [ ] 설치 중 브라우저 새로고침/재접속 복구 정책 정의 (진행 상태 재동기화)
170- - [ ] Complete 이후 첫 진입 안내 UX 정의 (로그인 후 바로 할 일, 설정 이동)
171162
172163#### 1.5.3 로그인 (Auth & Access)
173164** 예상 기간: 3일**
@@ -246,6 +237,53 @@ Control 전체 목록과 상태 관리는 별도 문서에서 관리:
246237- [ ] UI 계약 동결 (Phase 2에서는 신규 Control 추가보다 모듈 기능 구현 우선)
247238- [ ] 신규 Control은 예외적으로 수요 기반 추가 (모듈 요구사항/커뮤니티 제안 시 배치 처리)
248239
240+ ---
241+
242+ ## Phase 1.9: 백엔드 기반 구축 (Phase 2 선행 필수)
243+
244+ > ** Phase 2 진입 전 반드시 완료해야 하는 작업입니다.**
245+ > Ledger/Subscription 모듈 개발은 실제로 동작하는 API 서버와 DB 연결 없이는 불가능합니다.
246+ > UI Shell(Phase 1.5)이 완료된 후, Phase 2 착수 전에 이 구간을 반드시 작업하고 넘어갑니다.
247+
248+ ### 목표
249+ 모든 시스템의 공통 기반이 되는 API 서버와 DB 레이어를 실제로 동작하는 상태로 만든다.
250+
251+ ### 주요 작업
252+
253+ #### 1.9.1 API 서버 부트스트랩
254+ ** 예상 기간: 3일**
255+
256+ - [ ] HTTP 서버 프레임워크 세팅 (Express 또는 Fastify — ` apps/api/src/index.ts ` 에 실제 서버 구동)
257+ - [ ] 라우터 구조 설계 및 기본 미들웨어 등록 (CORS, JSON 파싱, 에러 핸들러)
258+ - [ ] 모듈 로더와 HTTP 서버 연결 (스캔된 모듈 라우트를 실제 서버에 마운트)
259+ - [ ] 헬스체크 엔드포인트 (` GET /health ` )
260+ - [ ] 환경변수 스키마 검증 (Zod 기반, 시작 시 필수값 누락 시 즉시 실패)
261+
262+ #### 1.9.2 DB 레이어 구현
263+ ** 예상 기간: 1주**
264+
265+ - [ ] DB 프로바이더 1개 실제 구현 (SQLite 우선 — 설치 없이 로컬 개발 가능)
266+ - [ ] DB 연결 초기화 및 연결 실패 처리
267+ - [ ] 마이그레이션 러너 실제 동작 구현 (` packages/core/src/db/migrations/ ` )
268+ - [ ] DB 프로바이더 추상화 검증 (PostgreSQL 전환 시 코드 변경 최소화 확인)
269+
270+ #### 1.9.3 인증 백엔드 구현
271+ ** 예상 기간: 1주**
272+
273+ - [ ] 이메일/비밀번호 로그인 API (` POST /auth/login ` )
274+ - [ ] JWT 세션 발급 및 검증 미들웨어
275+ - [ ] Whitelist 검사 로직 연결
276+ - [ ] TOTP 2FA 검증 API (` POST /auth/totp/verify ` )
277+ - [ ] 관리자 PIN 검증 API (` POST /auth/pin/verify ` )
278+ - [ ] 임시 비밀번호 강제 변경 API (` POST /auth/password/change ` )
279+ - [ ] 비밀번호 복구 흐름 API (관리자 토큰 발급 / SMTP 연동은 Phase 2.3으로)
280+
281+ ### 마일스톤 1.9 완료 기준
282+ - ✅ ` pnpm dev ` 실행 시 API 서버가 실제로 기동되고 요청을 처리함
283+ - ✅ SQLite 기반 DB 연결 및 마이그레이션이 실제로 동작함
284+ - ✅ 로그인 → JWT 발급 → 인증 미들웨어 보호 라우트 접근이 실제로 동작함
285+ - ✅ 프론트엔드 Shell의 mock 인증이 실제 API 호출로 교체 가능한 상태
286+
249287### 🔄 Phase 1.5 진행 이력
250288
251289| 날짜 | 내용 |
@@ -258,12 +296,86 @@ Control 전체 목록과 상태 관리는 별도 문서에서 관리:
258296
259297---
260298
299+ ## Phase 1.95: Setup 설치 마법사
300+
301+ ### 목표
302+ 처음 실행하는 사용자가 관리자 계정·DB·초기 설정을 완료하고 메인 앱으로 진입할 수 있는 독립된 설치 경험을 제공한다.
303+
304+ > ** 선행 조건:** Phase 1.9 (API 서버 + DB 레이어 + 인증 백엔드) 완료 후 착수.
305+ > UX 레퍼런스: Synology DSM 초기 설정, Windows 설치 마법사 스타일.
306+
307+ ### 아키텍처 원칙
308+
309+ - ** 모드 분리** : ` installed.lock ` 파일 존재 여부로 Setup 모드 / 앱 모드를 구분
310+ - ** 같은 서버, 다른 모드** : 완전히 별도 프로세스가 아닌 동일 서버에서 모드 전환
311+ - ** 메인 앱은 설치 완료를 전제** : 앱 코드 전반에 "미설치 상태" 방어 코드 불필요
312+
313+ ```
314+ 첫 실행 (installed.lock 없음)
315+ └─ Setup 모드로 서버 기동 → Setup UI만 서빙
316+ └─ 설치 완료 → installed.lock 생성 → 서버 재시작
317+ └─ 앱 모드로 전환
318+
319+ 완전 초기화 (공장 초기화)
320+ └─ DB 초기화 + installed.lock 삭제 → 서버 재시작
321+ └─ Setup 모드로 자동 복귀 (설치 첫날과 동일한 흐름)
322+ ```
323+
324+ ### 주요 작업
325+
326+ #### 1.95.1 모드 전환 시스템
327+ ** 예상 기간: 2일**
328+
329+ - [ ] ` installed.lock ` 기반 Setup/앱 모드 감지 로직
330+ - [ ] Setup 모드일 때 메인 앱 라우트 전체 차단 (Setup UI만 응답)
331+ - [ ] 설치 완료 시 ` installed.lock ` 생성 후 서버 자동 재시작 처리
332+ - [ ] 완전 초기화 시 DB + ` installed.lock ` 삭제 → 서버 재시작 → Setup 모드 복귀
333+
334+ #### 1.95.2 Setup 백엔드 API
335+ ** 예상 기간: 3일**
336+
337+ - [ ] 설치 상태 조회 (` GET /setup/status ` )
338+ - [ ] 관리자 계정 생성 (` POST /setup/admin ` )
339+ - [ ] DB 연결 테스트 (` POST /setup/db/test ` )
340+ - [ ] 초기 설정 저장 및 설치 완료 처리 (` POST /setup/complete ` )
341+ - [ ] 설치 진행 중 상태 스트리밍 (WebSocket 또는 SSE)
342+ - [ ] 완전 초기화 API (` POST /admin/factory-reset ` ) — 관리자 PIN 재확인 필수
343+
344+ #### 1.95.3 Setup UI (프론트엔드)
345+ ** 예상 기간: 1주**
346+
347+ - [ ] Welcome 화면 (제품 소개, 시작하기)
348+ - [ ] Configuration 화면
349+ - [ ] 관리자 계정 설정 (이메일, 비밀번호, PIN)
350+ - [ ] DB 선택 및 연결 설정 (SQLite 기본 / PostgreSQL 선택)
351+ - [ ] 선택 옵션 (SMTP, 텔레메트리 동의 등)
352+ - [ ] Progress 화면 (실시간 설치 로그, 단계 표시)
353+ - [ ] Complete 화면 (로그인 진입 안내)
354+ - [ ] 설치 중 새로고침/재접속 복구 (진행 상태 재동기화)
355+ - [ ] 각 단계 유효성 검증 UX (필수값, 형식 오류, DB 연결 테스트 결과)
356+ - [ ] Progress 실패 처리 UX (재시도 / 이전 단계 복귀 / 에러 요약)
357+
358+ #### 1.95.4 부분 초기화 / 완전 초기화 UI
359+ ** 예상 기간: 2일**
360+
361+ - [ ] 관리자 설정 화면에 초기화 옵션 추가
362+ - [ ] 부분 초기화 (데이터만 삭제, 계정·설정 유지) — ` installed.lock ` 유지
363+ - [ ] 완전 초기화 (전체 삭제 + Setup 모드 복귀) — 관리자 PIN 재확인 + 2단계 경고
364+
365+ ### 마일스톤 1.95 완료 기준
366+ - ✅ 첫 실행 시 Setup 모드로 자동 진입, 설치 완료 후 앱 모드로 전환
367+ - ✅ 관리자 계정 / DB 설정 / 선택 옵션을 Setup에서 모두 처리
368+ - ✅ 완전 초기화 실행 시 Setup 모드로 자동 복귀
369+ - ✅ 설치 중 새로고침해도 진행 상태 유지
370+
371+ ---
372+
261373## Phase 2: 기본 모듈 개발 (2개월)
262374
263375### 목표
264376핵심 기능 모듈 2개 완성 (가계부, 구독 관리)
265377
266- > 선행 조건(권장): Phase 1.5의 Control/UI/UX 진입 게이트를 통과한 뒤 착수
378+ > 선행 조건(권장): Phase 1.5 → Phase 1.9 → Phase 1.95 완료 후 착수
267379
268380### 주요 작업
269381
@@ -473,19 +585,16 @@ Control 전체 목록과 상태 관리는 별도 문서에서 관리:
473585
474586### 주요 작업
475587
476- #### 4.1 웹 기반 설치 마법사
477- ** 예상 기간: 2주**
588+ #### 4.1 Setup 설치 마법사 고도화
589+ ** 예상 기간: 1주**
590+
591+ > Setup 설치 마법사 핵심 구현은 ** Phase 1.95** 에서 완료됩니다.
592+ > Phase 4에서는 배포 환경에 맞는 고도화 항목만 다룹니다.
478593
479- - [ ] 시작 화면
480- - [ ] 설정 입력 화면
481- - [ ] 관리자 계정
482- - [ ] 데이터베이스
483- - [ ] AI 설정 (선택)
484- - [ ] Google 연동 (선택)
485- - [ ] 모듈 선택
486- - [ ] 설치 진행 화면
487- - [ ] 완료 화면
488- - [ ] WebSocket 실시간 진행 상황
594+ - [ ] AI 설정 연동 옵션 추가 (Phase 1.95 Configuration 화면 확장)
595+ - [ ] Google 연동 옵션 추가
596+ - [ ] 모듈 선택 화면 추가 (마켓플레이스 연동, Phase 3 이후 가능)
597+ - [ ] Docker / Railway 등 배포 환경별 설치 흐름 검증
489598
490599#### 4.2 설정 관리 UI
491600** 예상 기간: 1주**
0 commit comments