You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/v2_FINANCIAL-LEDGER/technical/01-database.md
+14-14Lines changed: 14 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
# 데이터베이스 정책
2
2
3
3
> 📌 **핵심 아키텍처 결정:**
4
-
> → `architecture/decisions.md § 결정 #3: DB 추상화` - Multi-provider 지원 + 통일된 인터페이스
4
+
> → `architecture/01-decisions.md § 결정 #3: DB 추상화` - Multi-provider 지원 + 통일된 인터페이스
5
5
6
6
**최종 업데이트:** 2025-01-29
7
7
@@ -36,7 +36,7 @@ DB_PROVIDER를 'mongodb'로 설정하고, MONGODB_URI에 MongoDB의 연결 주
36
36
## DB 추상화
37
37
38
38
> 📌 **설계 결정:**
39
-
> → `architecture/decisions.md § 결정 #3: DB 추상화`
39
+
> → `architecture/01-decisions.md § 결정 #3: DB 추상화`
40
40
> - 단일 인터페이스로 모든 DB 지원
41
41
> - 모듈은 DB 종류를 신경쓰지 않음
42
42
> - Provider 패턴으로 확장 가능
@@ -50,7 +50,7 @@ DBProvider 인터페이스를 정의합니다. 모든 DB Provider는 동일하
50
50
### 모듈에서의 사용
51
51
52
52
> 📖 **모듈 개발 가이드:**
53
-
> → `modules/development-guide.md § Backend 개발 § service.ts`
53
+
> → `modules/01-development-guide.md § Backend 개발 § service.ts`
54
54
55
55
모듈에서는 Core의 db 객체를 가져와 사용합니다. 실제로 뒤에서 어떤 DB가 돌고 있는지와 관계없이 동일한 인터페이스로 쿼리를 실행할 수 있습니다. 예시로는 ledger_entries 테이블에 새 항목을 삽입하는 것을 보여줍니다.
56
56
@@ -59,7 +59,7 @@ DBProvider 인터페이스를 정의합니다. 모든 DB Provider는 동일하
59
59
## 모듈별 DB 테이블 격리
60
60
61
61
> 📖 **모듈 시스템:**
62
-
> → `modules/system-design.md § 데이터베이스 격리`
62
+
> → `modules/03-system-design.md § 데이터베이스 격리`
63
63
64
64
### 원칙
65
65
@@ -76,7 +76,7 @@ DBProvider 인터페이스를 정의합니다. 모든 DB Provider는 동일하
76
76
## 마이그레이션 전략 (자동화)
77
77
78
78
> 📖 **상세 설계:**
79
-
> → `technical/migrations.md` - 버전 관리 및 전처리기 상세
79
+
> → `technical/06-migrations.md` - 버전 관리 및 전처리기 상세
80
80
81
81
각 모듈은 `backend/migrations/` 폴더 내에 SQL 파일을 배치하여 자신의 스키마를 독립적으로 관리합니다.
82
82
@@ -85,7 +85,7 @@ Core는 모든 모듈의 마이그레이션을 자동으로 감지하고 실행
85
85
---
86
86
87
87
> 📖 **모듈 구조:**
88
-
> → `modules/development-guide.md § 프로젝트 구조`
88
+
> → `modules/01-development-guide.md § 프로젝트 구조`
89
89
90
90
각 모듈은 자체 마이그레이션 파일 관리:
91
91
@@ -134,7 +134,7 @@ MongoDBProvider는 mongodb 라이브러리의 MongoClient를 사용합니다. co
134
134
## Provider 팩토리
135
135
136
136
> 📌 **Provider 선택 로직:**
137
-
> → `architecture/decisions.md § 결정 #3`
137
+
> → `architecture/01-decisions.md § 결정 #3`
138
138
139
139
createDBProvider 함수는 환경 변수의 DB_PROVIDER 값에 따라 적절한 Provider 객체를 생성합니다. 기본값은 'sqlite'이며, 'postgres', 'sqlite', 'supabase', 'mongodb' 중 하나를 지정할 수 있습니다. 알 수 없는 Provider 이름이면 에러를 발생시킵니다.
140
140
@@ -145,7 +145,7 @@ getDB 함수는 전역 DB 인스턴스를 관리합니다. 처음 호출되면 c
@@ -160,7 +160,7 @@ transferFunds 함수는 한 계좌에서 다른 계좌로 금액을 이체하는
160
160
## 스키마 정의
161
161
162
162
> 📖 **모듈 구조:**
163
-
> → `modules/development-guide.md § schema.ts`
163
+
> → `modules/01-development-guide.md § schema.ts`
164
164
165
165
ledger_entries 테이블의 스키마를 정의합니다. 열 구성은 다음과 같습니다: id는 기본키인 UUID, user_id는 필수의 UUID, amount는 소수점 2자리까지 가능한 숫자, category는 최대 100자의 문자열, date는 필수의 날짜, created_at과 updated_at은 자동으로 현재 시간으로 설정됩니다.
166
166
@@ -229,24 +229,24 @@ checkDatabaseHealth 함수는 간단한 SELECT 1 쿼리를 실행하여 DB 연
229
229
## 📚 관련 문서
230
230
231
231
### 핵심 아키텍처
232
-
- 📌 `architecture/decisions.md § 결정 #3` - DB 추상화 설계 결정
232
+
- 📌 `architecture/01-decisions.md § 결정 #3` - DB 추상화 설계 결정
233
233
- 📖 `architecture/00-overview.md` - 전체 아키텍처
234
234
- 📖 `architecture/04-directory-structure.md` - 디렉터리 구조
235
235
236
236
### 모듈 개발
237
-
- 📖 `modules/development-guide.md § Backend 개발` - DB 사용 예시
238
-
- 📖 `modules/system-design.md § 데이터베이스 격리` - 격리 원칙
237
+
- 📖 `modules/01-development-guide.md § Backend 개발` - DB 사용 예시
238
+
- 📖 `modules/03-system-design.md § 데이터베이스 격리` - 격리 원칙
239
239
240
240
### 배포
241
241
- 📖 `deployment/01-installation.md` - DB 설정
242
-
- 📖 `deployment/configuration.md § 데이터베이스` - 설정 관리
242
+
- 📖 `deployment/03-configuration.md § 데이터베이스` - 설정 관리
0 commit comments