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 연동 가이드