Skip to content

Commit 6acfd88

Browse files
SOIVclaude
andcommitted
docs(roadmap): Phase 1.95 Setup 설치 마법사 독립 Phase 추가
- Phase 1.5.2를 bypass 모드만 유지하도록 축소 (Setup은 1.95로 이관) - Phase 1.9에서 설치 마법사 백엔드 항목 제거 - Phase 1.95 신규 추가: installed.lock 기반 모드 전환, Setup API, Setup UI (4단계 + WebSocket), 부분/완전 초기화 - Phase 4.1을 Setup 고도화 항목만 남기도록 정리 - Phase 2 선행 조건에 1.9 → 1.95 순서 명시 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent a564100 commit 6acfd88

1 file changed

Lines changed: 135 additions & 26 deletions

File tree

docs/v2_FINANCIAL-LEDGER/roadmap/01-development-plan.md

Lines changed: 135 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)