Compare commits

..

No commits in common. "forge/codex-bais-final2-20260713-190702-BAIS-SPRING-CTX-001-attempt-1-run-277820818929" and "main" have entirely different histories.

2 changed files with 0 additions and 160 deletions

View file

@ -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` 120180줄 (바이너리 혼합 영역)
### 2.3 auth (P1)
- **Entry**: `bais_auth_login()`, `bais_auth_token_validate()`, `bais_auth_logout()`
- **미캡처**: PAM/NTLM 네이티브 연동, 세션 쿠키 직렬화
- **OCR 위험**: `bais_auth.c` 80150줄 (패스워드 해시 루틴 혼재)
### 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` 200300줄 (헤더 파싱 스위치문)
### 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` 150250줄 (인코딩 루틴 혼재)
### 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`) — 위험도: 높음
- **120200줄**: SQL 문자열 리터럴 + 파라미터 바인딩
- **350450줄**: 트랜잭션 상태 머신 (switch-case OCR 인식률 ~55%)
- **600700줄**: 에러 코드 매크로 테이블 (숫자/문자 혼재)
### 4.2 network (`bais_net.c`) — 위험도: 중간
- **120180줄**: 소켓 옵션 구조체 초기화 (0/O 혼동)
### 4.3 auth (`bais_auth.c`) — 위험도: 중간
- **80150줄**: PBKDF2/BCrypt 루틴 (비밀번호 해시)
### 4.4 http (`bais_http.c`) — 위험도: 중간
- **200300줄**: HTTP 헤더 파싱 switch문 (메소드명 OCR)
### 4.5 util (`bais_util.c`) — 위험도: 중간
- **150250줄**: 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 연동 가이드

View file

@ -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`.