Skip to content

Commit 9bd6d93

Browse files
committed
docs: 로컬 로그인 우선 인증 아키텍처로 문서 정합성 업데이트
1 parent 17ec131 commit 9bd6d93

2 files changed

Lines changed: 23 additions & 19 deletions

File tree

docs/v2_FINANCIAL-LEDGER/architecture/00-overview.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
Client (Web / App)
1414
1515
Core Layer
16-
├ Auth (Google OAuth + Whitelist)
16+
├ Auth (Email/Password + TOTP + Passkey + Optional OAuth)
1717
├ DB Connector (Multi-provider)
1818
├ Module Loader (런타임 동적 로드) ← 📖 decisions.md #1
1919
├ Event Bus
@@ -294,7 +294,10 @@ cors 미들웨어를 사용하여 CORS_ORIGIN 환경 변수의 값만 허용된
294294
#### Auth
295295
> 📖 → `technical/02-authentication.md`
296296
297-
- **Google OAuth 인증** - 일반 로그인
297+
- **이메일/비밀번호 로그인** - 기본 로그인
298+
- **TOTP 2FA** - 추가 보안(관리자 필수 권장)
299+
- **Passkey/WebAuthn** - Passwordless 옵션
300+
- **Google OAuth** - 선택 로그인
298301
- **Whitelist 기반 접근 제어** - 허용된 사용자만
299302
- **관리자 PIN** - 중요 설정 보호
300303

@@ -487,7 +490,7 @@ Module → Core Integration → External API
487490
### 계층별 보안
488491

489492
**Core Layer**
490-
- 인증/인가 처리 (OAuth + PIN)
493+
- 인증/인가 처리 (로컬 로그인 + 선택 OAuth + 관리자 PIN)
491494
- API Key 암호화
492495
- 세션 관리
493496

docs/v2_FINANCIAL-LEDGER/architecture/01-decisions.md

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -148,9 +148,9 @@ reloadModule 메서드는 개발 모드에서 사용되는 Hot Reload 기능입
148148

149149
## 결정 #2: 관리자 인증 방식
150150

151-
### ✅ 결정 사항
152-
153-
**Google OAuth + 4~6자리 PIN** 방식을 채택합니다.
151+
### ✅ 결정 사항
152+
153+
**이메일/비밀번호 로그인 우선 + 선택적 OAuth + 4~6자리 관리자 PIN** 방식을 채택합니다.
154154

155155
### 📖 배경
156156

@@ -160,7 +160,7 @@ reloadModule 메서드는 개발 모드에서 사용되는 Hot Reload 기능입
160160

161161
### 🔍 고려했던 옵션
162162

163-
#### Option A: OAuth + 복잡한 비밀번호
163+
#### Option A: OAuth 중심 로그인 + 복잡한 비밀번호
164164
```
165165
장점:
166166
- 높은 보안
@@ -181,7 +181,7 @@ reloadModule 메서드는 개발 모드에서 사용되는 Hot Reload 기능입
181181
- 관리자 설정 보호 안 됨
182182
```
183183

184-
#### Option C: OAuth + PIN ⭐ (선택)
184+
#### Option C: 로컬 로그인 + 관리자 PIN ⭐ (선택)
185185
```
186186
장점:
187187
- 간단하면서 적절한 보안
@@ -192,7 +192,7 @@ reloadModule 메서드는 개발 모드에서 사용되는 Hot Reload 기능입
192192
- 복잡한 비밀번호보다는 보안 낮음
193193
```
194194

195-
#### Option D: OAuth + 2FA
195+
#### Option D: OAuth + 2FA
196196
```
197197
장점:
198198
- 매우 높은 보안
@@ -204,10 +204,10 @@ reloadModule 메서드는 개발 모드에서 사용되는 Hot Reload 기능입
204204

205205
### 💡 선택 이유
206206

207-
**Option C**를 선택한 이유:
207+
**Option C**를 선택한 이유:
208208

209209
1. **적절한 보안 수준**
210-
- 홈서버 환경: 물리적 보안 + OAuth + PIN으로 충분
210+
- 홈서버 환경: 물리적 보안 + 로컬 로그인 + PIN으로 충분
211211
- 4~6자리로도 충분한 보호
212212
- 30분 세션으로 재입력 최소화
213213

@@ -226,11 +226,12 @@ reloadModule 메서드는 개발 모드에서 사용되는 Hot Reload 기능입
226226
#### 사용자 플로우
227227

228228
```
229-
일반 사용:
230-
Google 로그인 → 앱 사용 (가계부 입력 등)
231-
232-
관리자 설정 접근:
233-
Google 로그인 (이미 됨)
229+
일반 사용:
230+
이메일/비밀번호 로그인 (기본) → 앱 사용 (가계부 입력 등)
231+
또는 선택 로그인(OAuth/Passkey)
232+
233+
관리자 설정 접근:
234+
1차 로그인 완료 (이메일/비밀번호 또는 선택 로그인)
234235
235236
관리자 설정 메뉴 클릭
236237
@@ -413,7 +414,7 @@ MongoDBProvider는 Query Builder를 MongoDB Query Object로 변환합니다. 예
413414
| 결정 | 선택 | 핵심 이유 | 상태 |
414415
|------|------|----------|------|
415416
| #1 Module Loader | 런타임 동적 Import | VSCode 방식 UX | ✅ 확정 |
416-
| #2 관리자 인증 | OAuth + PIN | 간단하면서 안전 | ✅ 확정 |
417+
| #2 관리자 인증 | 로컬 로그인 우선 + PIN | 간단하면서 안전 | ✅ 확정 |
417418
| #3 DB 추상화 | Query Builder | 적절한 레벨 | ✅ 확정 |
418419

419420
---
@@ -434,7 +435,7 @@ MongoDBProvider는 Query Builder를 MongoDB Query Object로 변환합니다. 예
434435

435436
### 문서 정리 (Step 3)
436437
1. `architecture/00-overview.md` - Frontend 서빙 로직 명확화
437-
2. `technical/02-authentication.md` - OAuth + PIN으로 수정
438+
2. `technical/02-authentication.md` - 로컬 로그인 우선 + 선택 OAuth + PIN으로 수정
438439
3. `modules/01-development-guide.md` - 교차 참조 추가
439440

440441
### 구현 시작 (Step 2)
@@ -444,4 +445,4 @@ MongoDBProvider는 Query Builder를 MongoDB Query Object로 변환합니다. 예
444445

445446
> 💡 **중요:**
446447
> 이 문서의 결정사항은 프로젝트 전반에 영향을 미칩니다.
447-
> 변경이 필요한 경우 반드시 문서를 업데이트하고 버전을 올립니다.
448+
> 변경이 필요한 경우 반드시 문서를 업데이트하고 버전을 올립니다.

0 commit comments

Comments
 (0)