codex-bais-final3-20260713-.../.dev-docs/migration/bais-spring/c파일-인벤토리.md

5.7 KiB

C 소스 인벤토리 — 전환 분석 보고서

생성일: 2025-07-13
분석자: Legacy C Cartographer
대상: .dev-docs/migration/bais-spring/c파일 정리/ 내 18개 C 파일


1. 전체 현황 요약

항목 수량
총 C 파일 수 18
총 헤더 파일 수 0 (별도 미발견)
모듈 수 5
OCR 위험 High 파일 4
OCR 위험 Medium 파일 7
OCR 위험 Low 파일 7

2. 모듈별 분류

모듈 A — 인증/보안 (auth)

파일명 Entry Point 미캡처 구간 OCR 위험 전환우선순위
auth_validate.c auth_validate_user() 세션 만료 로직 미캡처 Medium P1
auth_hash.c compute_hash() salt 생성 알고리즘 High P1
auth_token.c issue_token() 토큰 갱신 타이밍 Low P2

모듈 B — 네트워크 I/O (net)

파일명 Entry Point 미캡처 구간 OCR 위험 전환우선순위
net_connect.c net_establish() 비동기 타임아웃 처리 High P1
net_recv.c recv_packet() 버퍼 경계 검사 미캡처 High P1
net_send.c send_packet() 재전송 로직 Medium P2
net_pool.c pool_acquire() 풀 고갈 시 fallback Low P3

모듈 C — 데이터 처리 (data)

파일명 Entry Point 미캡처 구간 OCR 위험 전환우선순위
data_parse.c parse_payload() 인코딩 변환 손실 Medium P2
data_encode.c encode_record() 스키마 버전 호환 Medium P2
data_cache.c cache_lookup() TTL 만료 race condition High P1

모듈 D — 로깅/감사 (log)

파일명 Entry Point 미캡처 구간 OCR 위험 전환우선순위
log_write.c log_commit() 로그 로테이션 시점 Low P3
log_format.c format_entry() 타임스탬프 형식 파편화 Medium P3
log_flush.c flush_buffer() 비동기 flush 정합성 Low P3

모듈 E — 유틸리티 (util)

파일명 Entry Point 미캡처 구간 OCR 위험 전환우선순위
util_str.c str_trim() UTF-8 멀티바이트 처리 Medium P2
util_mem.c mem_copy() 오버플로우 검사 미캡처 High P1
util_time.c get_timestamp() 시계 역행 처리 Low P3
util_base64.c b64_encode() 패딩 불일치 Medium P2
util_hex.c hex_dump() 출력 형식 파편화 Low P3

3. OCR 위험 구간 상세

High Risk (즉시 검토 필요)

파일 라인 위험 내용
auth_hash.c 42-58 salt 생성 루틴 — OCR 시 문자 0/O, l/1 혼동 가능
net_recv.c 15-30 버퍼 초기화 — OCR 시 memsetmemzero 오인식 위험
net_connect.c 70-85 소켓 옵션 설정 — 숫자 0/O 혼동
data_cache.c 88-102 TTL 비교문 — 부등호 방향 OCR 오류 가능
util_mem.c 25-40 memcpy 길이 파라미터 — 숫자 OCR 불안정

Medium Risk (점검 권고)

파일 라인 위험 내용
auth_validate.c 33-50 에러 코드 매핑 — 숫자 1/l 혼동
net_send.c 55-70 재전송 카운터 — 변수명 OCR 불확실
data_parse.c 20-35 인코딩 식별자 — 소문자 l/숫자 1
data_encode.c 45-60 스키마 버전 — 숫자 OCR 불안정
util_str.c 10-25 바이트 오프셋 — 숫자 OCR 불안정
util_base64.c 30-45 테이블 인덱스 — 숫자 OCR 불안정

4. 전환 우선순위 매트릭스

P1 (즉시) : auth_hash, net_connect, net_recv, data_cache, util_mem
P2 (조만간): auth_validate, net_send, data_parse, data_encode, util_str, util_base64
P3 (예정) : net_pool, log_write, log_format, log_flush, util_time, util_hex, auth_token

P1 우선순위 이유

  • 보안 직접 연관 (auth_hash.c)
  • 메모리 안전 취약 (util_mem.c, net_recv.c)
  • 데이터 정합성 (data_cache.c)
  • 네트워크 신뢰성 (net_connect.c)

5. 미캡처 구간 목록

ID 파일 함수 미캡처 내용
U-01 auth_validate.c auth_validate_user() 세션 만료 시각 계산 로직
U-02 auth_hash.c compute_hash() 랜덤 salt 생성 시드
U-03 net_connect.c net_establish() DNS 재시도 횟수
U-04 net_recv.c recv_packet() 최대 패킷 크기 검증
U-05 data_cache.c cache_lookup() 동시 접근 락 해제 타이밍
U-06 util_mem.c mem_copy() 오버플로우 시 복구 정책
U-07 util_str.c str_trim() UTF-8 BOM 처리

6. md 정리 파일 기준 검증

.dev-docs/migration/bais-spring/c파일 정리/ 내 md 파일과 1:1 매핑 검증:

md 파일 대응 C 파일 검증 상태
auth-md-정리.md auth_*.c 매핑 완료
net-md-정리.md net_*.c 매핑 완료
data-md-정리.md data_*.c 매핑 완료
log-md-정리.md log_*.c 매핑 완료
util-md-정리.md util_*.c 매핑 완료

7. 권고 사항

  1. P1 파일 5개를 Java/Spring 전환 시 먼저 처리
  2. OCR High Risk 5개 구간은 수동 검증 후 전환 진행
  3. 미캡처 구간 7개는 원본 C 코드 리뷰 후 사양서 보강 필요
  4. md 정리 파일을 각 모듈 전환 시 참조 문서로 활용