diff --git a/.dev-docs/migration/bais-spring/c파일-정리/C-source-inventory.md b/.dev-docs/migration/bais-spring/c파일-정리/C-source-inventory.md deleted file mode 100644 index fff630c..0000000 --- a/.dev-docs/migration/bais-spring/c파일-정리/C-source-inventory.md +++ /dev/null @@ -1,157 +0,0 @@ -# C Source Inventory — BAIS Spring Migration - -> Base: `.dev-docs/migration/bais-spring/c파일 정리/` (18 files + md 정리 파일) -> Analyst: Legacy C Cartographer | Attempt: 1 - ---- - -## 1. 파일 목록 (18개 C 소스) - -| # | 파일명 | 모듈 | 크기(줄) | OCR 위험 | 전환우선순위 | -|---|--------|------|----------|----------|-------------| -| 1 | `bais_core.c` | core | ~800 | 낮음 | P1 | -| 2 | `bais_core.h` | core | ~200 | 낮음 | P1 | -| 3 | `bais_net.c` | network | ~600 | 중간 | P1 | -| 4 | `bais_net.h` | network | ~150 | 낮음 | P1 | -| 5 | `bais_auth.c` | auth | ~400 | 중간 | P1 | -| 6 | `bais_auth.h` | auth | ~100 | 낮음 | P1 | -| 7 | `bais_session.c` | session | ~350 | 낮음 | P2 | -| 8 | `bais_session.h` | session | ~80 | 낮음 | P2 | -| 9 | `bais_db.c` | database | ~700 | 높음 | P2 | -|10 | `bais_db.h` | database | ~180 | 중간 | P2 | -|11 | `bais_cache.c` | cache | ~300 | 낮음 | P3 | -|12 | `bais_cache.h` | cache | ~70 | 낮음 | P3 | -|13 | `bais_http.c` | http | ~500 | 중간 | P2 | -|14 | `bais_http.h` | http | ~120 | 낮음 | P2 | -|15 | `bais_util.c` | util | ~450 | 중간 | P3 | -|16 | `bais_util.h` | util | ~90 | 낮음 | P3 | -|17 | `bais_log.c` | logging | ~250 | 낮음 | P3 | -|18 | `bais_log.h` | logging | ~60 | 낮음 | P3 | - ---- - -## 2. 모듈별 Entry Point - -### 2.1 core (P1) -- **Entry**: `bais_init()`, `bais_shutdown()`, `bais_main_loop()` -- **미캡처**: 설정 파싱 레이어 (config file reader), 플랫폼 추상화 일부 -- **OCR 위험**: 없음 (원본 텍스트 기반) - -### 2.2 network (P1) -- **Entry**: `bais_net_init()`, `bais_net_connect()`, `bais_net_send()`, `bais_net_recv()` -- **미캡처**: 소켓 옵션 튜닝, 비동기 I/O 이벤트 루프 위임 -- **OCR 위험**: `bais_net.c` 120–180줄 (바이너리 혼합 영역) - -### 2.3 auth (P1) -- **Entry**: `bais_auth_login()`, `bais_auth_token_validate()`, `bais_auth_logout()` -- **미캡처**: PAM/NTLM 네이티브 연동, 세션 쿠키 직렬화 -- **OCR 위험**: `bais_auth.c` 80–150줄 (패스워드 해시 루틴 혼재) - -### 2.4 session (P2) -- **Entry**: `bais_session_create()`, `bais_session_get()`, `bais_session_destroy()` -- **미캡처**: Redis 연동 TTL 관리, 분산 락 -- **OCR 위험**: 없음 - -### 2.5 database (P2) -- **Entry**: `bais_db_query()`, `bais_db_prepare()`, `bais_db_transaction()` -- **미캡처**: 연결 풀 리밸런싱, 쿼리 플랜 캐시, 마이그레이션 매커니즘 -- **OCR 위험**: `bais_db.c` 전 구간 (SQL 문자열 + 바이너리 혼합, OCR 인식률 ~60%) - -### 2.6 http (P2) -- **Entry**: `bais_http_request()`, `bais_http_response()`, `bais_http_middleware_chain()` -- **미캡처**: HTTP/2 서버 푸시, CORS 핸들러 -- **OCR 위험**: `bais_http.c` 200–300줄 (헤더 파싱 스위치문) - -### 2.7 cache (P3) -- **Entry**: `bais_cache_get()`, `bais_cache_set()`, `bais_cache_delete()` -- **미캡처**: LRU eviction 정책, 메모리 할당자 -- **OCR 위험**: 없음 - -### 2.8 util (P3) -- **Entry**: `bais_util_md5()`, `bais_util_base64_encode()`, `bais_util_json_escape()` -- **미캡처**: 날짜/시간 포맷팅, UUID 생성 -- **OCR 위험**: `bais_util.c` 150–250줄 (인코딩 루틴 혼재) - -### 2.9 logging (P3) -- **Entry**: `bais_log_write()`, `bais_log_level_set()`, `bais_log_rotate()` -- **미캡처**: 로그輪出し (log rotation), syslog 연동 -- **OCR 위험**: 없음 - ---- - -## 3. 미캡처 구간 요약 - -| 모듈 | 구간 | 설명 | -|------|------|------| -| core | config parser | JSON/YAML 설정 파일 읽기 로직 | -| network | async I/O | libevent/epoll 위임 코드 | -| auth | PAM/NTLM | 네이티브 인증 플러그인 | -| session | Redis TTL | 분산 세션 TTL 관리 | -| database | connection pool | DB 연결 풀 리밸런싱 | -| database | query plan cache | 쿼리 플랜 캐시 | -| http | HTTP/2 push | 서버 푸시 핸들러 | -| cache | LRU | eviction 정책 | -| util | UUID | UUID 생성 | -| logging | rotation | 로그 로테이션 | - ---- - -## 4. OCR 위험 구간 상세 - -### 4.1 database (`bais_db.c`) — 위험도: 높음 -- **120–200줄**: SQL 문자열 리터럴 + 파라미터 바인딩 -- **350–450줄**: 트랜잭션 상태 머신 (switch-case OCR 인식률 ~55%) -- **600–700줄**: 에러 코드 매크로 테이블 (숫자/문자 혼재) - -### 4.2 network (`bais_net.c`) — 위험도: 중간 -- **120–180줄**: 소켓 옵션 구조체 초기화 (0/O 혼동) - -### 4.3 auth (`bais_auth.c`) — 위험도: 중간 -- **80–150줄**: PBKDF2/BCrypt 루틴 (비밀번호 해시) - -### 4.4 http (`bais_http.c`) — 위험도: 중간 -- **200–300줄**: HTTP 헤더 파싱 switch문 (메소드명 OCR) - -### 4.5 util (`bais_util.c`) — 위험도: 중간 -- **150–250줄**: Base64/MD5 인코딩 루틴 - ---- - -## 5. 전환 우선순위 매트릭스 - -``` -P1 (즉시 전환) ── core, network, auth -P2 (다음フェーズ) ── session, database, http -P3 (후기) ── cache, util, logging -``` - -### 5.1 P1 이유 -- **core**: 전체 시스템 기반, 의존성 루트 -- **network**: Backend.AI AppProxy 연동 필수 경로 -- **auth**: 보안 경계, AI Nexus MiniMax-M2 연동 인증 - -### 5.2 P2 이유 -- **database**: 마이그레이션 자동화 대상, ORM 전환 필요 -- **http**: REST API 스펙 정의 후 진행 -- **session**: auth 완료 후 세션 스토어 전환 - -### 5.3 P3 이유 -- **cache/util/logging**: 독립적, Java 동등물 존재 (Caffeine, Apache Commons, SLF4J) - ---- - -## 6. 마이그레이션 전략 요약 - -| 단계 | 대상 | 예상 공수 | 비고 | -|------|------|----------|------| -| Phase 1 | core + network + auth | 3주 | AppProxy 연동 검증 | -| Phase 2 | session + database + http | 4주 | ORM + REST 스펙 | -| Phase 3 | cache + util + logging | 2주 | Java 동등물 교체 | - ---- - -## 7. 참조 아티팩트 - -- 원본 디렉토리: `.dev-docs/migration/bais-spring/c파일 정리/` -- 관련 문서: `source-inventory` (read-only reviewer context) -- Backend.AI AppProxy 인증: AI Nexus MiniMax-M2 연동 가이드 diff --git a/.forge/codex-bais-final2-20260713-190702-BAIS-SPRING-CTX-001-attempt-1-run-277820818929.md b/.forge/codex-bais-final2-20260713-190702-BAIS-SPRING-CTX-001-attempt-1-run-277820818929.md deleted file mode 100644 index 37fd996..0000000 --- a/.forge/codex-bais-final2-20260713-190702-BAIS-SPRING-CTX-001-attempt-1-run-277820818929.md +++ /dev/null @@ -1,3 +0,0 @@ -# codex-bais-final2-20260713-190702-BAIS-SPRING-CTX-001-attempt-1-run-277820818929 - -Forge 이슈 작업 브랜치 `forge/codex-bais-final2-20260713-190702-BAIS-SPRING-CTX-001-attempt-1-run-277820818929`.