diff --git a/.dev-docs/migration/bais-spring/c파일-인벤토리-세부.md b/.dev-docs/migration/bais-spring/c파일-인벤토리-세부.md new file mode 100644 index 0000000..7004382 --- /dev/null +++ b/.dev-docs/migration/bais-spring/c파일-인벤토리-세부.md @@ -0,0 +1,209 @@ +# C 파일 세부 인벤토리 — 라인 단위 분석 + +**생성일:** 2025-07-13 +**분석자:** Legacy C Cartographer + +--- + +## auth 模块 — 세부 + +### auth_validate.c +``` +Entry Point : auth_validate_user(char* uid, char* token) +라인 1-10 : 헤더 포함 구간 +라인 11-32 : 파라미터 검증 ✅ +라인 33-50 : 토큰 비교 로직 ⚠️ OCR Medium Risk (숫자 1/l 혼동) +라인 51-65 : 세션 조회 ✅ +라인 66-80 : 세션 만료 처리 ❌ 미캡처 (만료 시각 계산 로직 부재) +라인 81-100 : 성공 응답 구성 ✅ +``` + +### auth_hash.c +``` +Entry Point : compute_hash(char* input, char* salt) +라인 1-15 : 헤더 포함 +라인 16-41 : 입력 전처리 ✅ +라인 42-58 : Salt 생성 ⚠️ OCR High Risk (0/O 혼동) +라인 59-75 : 해시 계산 ✅ +라인 76-90 : 결과 인코딩 ✅ +``` + +### auth_token.c +``` +Entry Point : issue_token(char* uid, int expires) +라인 1-20 : 초기화 ✅ +라인 21-45 : 토큰 생성 ✅ +라인 46-60 : 갱신 타이밍 ❌ 미캡처 (갱신 주기 로직 부재) +라인 61-80 : 서명 ✅ +``` + +--- + +## net 模块 — 세부 + +### net_connect.c +``` +Entry Point : net_establish(char* host, int port) +라인 1-25 : 소켓 생성 ✅ +라인 26-50 : 주소 해석 ✅ +라인 51-69 : 연결 시도 ✅ +라인 70-85 : 소켓 옵션 설정 ⚠️ OCR High Risk (0/O 혼동) +라인 86-100 : 에러 처리 ✅ +``` + +### net_recv.c +``` +Entry Point : recv_packet(int fd, char* buf, int len) +라인 1-14 : 헤더 포함 ✅ +라인 15-30 : 버퍼 초기화 ⚠️ OCR High Risk (memset 오인식) +라인 31-50 : 수신 루프 ✅ +라인 51-65 : 길이 검증 ❌ 미캡처 (최대 패킷 크기 미정의) +라인 66-80 : 체크섬 검증 ✅ +``` + +### net_send.c +``` +Entry Point : send_packet(int fd, char* buf, int len) +라인 1-20 : 준비 ✅ +라인 21-40 : 전송 ✅ +라인 41-55 : 재전송 카운터 ⚠️ OCR Medium Risk +라인 56-70 : 타임아웃 ✅ +``` + +### net_pool.c +``` +Entry Point : pool_acquire(pool_t* p) +라인 1-15 : 초기화 ✅ +라인 16-35 : 슬롯 할당 ✅ +라인 36-50 : 풀 고갈 처리 ❌ 미캡처 (fallback 정책 부재) +``` + +--- + +## data 模块 — 세부 + +### data_parse.c +``` +Entry Point : parse_payload(char* raw, payload_t* out) +라인 1-19 : 헤더 포함 ✅ +라인 20-35 : 인코딩 식별 ⚠️ OCR Medium Risk (l/1 혼동) +라인 36-55 : 필드 파싱 ✅ +라인 56-70 : 인코딩 변환 ❌ 미캡처 (변환 손실 가능성) +``` + +### data_encode.c +``` +Entry Point : encode_record(record_t* rec, char* out) +라인 1-20 : 준비 ✅ +라인 21-44 : 스키마 버전 확인 ⚠️ OCR Medium Risk +라인 45-60 : 인코딩 ✅ +라인 61-75 : 스키마 호환 ❌ 미캡처 (버전 간 변환 규칙) +``` + +### data_cache.c +``` +Entry Point : cache_lookup(cache_t* c, char* key) +라인 1-20 : 해시 계산 ✅ +라인 21-45 : 버킷 탐색 ✅ +라인 46-65 : 값 반환 ✅ +라인 66-87 : TTL 갱신 ✅ +라인 88-102 : TTL 비교 ⚠️ OCR High Risk (부등호 방향) +라인 103-120: 락 해제 ❌ 미캡처 (race condition) +``` + +--- + +## log 模块 — 세부 + +### log_write.c +``` +Entry Point : log_commit(log_t* lg, char* msg) +라인 1-15 : 준비 ✅ +라인 16-35 : 버퍼 기록 ✅ +라인 36-50 : 로테이션 ❌ 미캡처 (로테이션 시점 결정 로직) +``` + +### log_format.c +``` +Entry Point : format_entry(log_t* lg, level_t lvl) +라인 1-20 : 포맷 준비 ✅ +라인 21-40 : 타임스탬프 생성 ⚠️ OCR Medium Risk (형식 불일치) +라인 41-60 : 메시지 포맷 ✅ +``` + +### log_flush.c +``` +Entry Point : flush_buffer(log_t* lg) +라인 1-15 : 플러시 트리거 ✅ +라인 16-30 : 비동기 flush ❌ 미캡처 (정합성 보장 조건) +``` + +--- + +## util 模块 — 세부 + +### util_str.c +``` +Entry Point : str_trim(char* s) +라인 1-15 : 초기화 ✅ +라인 10-25 : 바이트 오프셋 ⚠️ OCR Medium Risk +라인 26-40 : 트리밍 로직 ✅ +라인 41-55 : UTF-8 BOM ❌ 미캡처 (BOM 처리 규칙) +``` + +### util_mem.c +``` +Entry Point : mem_copy(void* dst, void* src, int n) +라인 1-20 : 헤더 포함 ✅ +라인 21-40 : 복사 로직 ⚠️ OCR High Risk (길이 파라미터) +라인 41-55 : 오버플로우 검사 ❌ 미캡처 (복구 정책) +``` + +### util_time.c +``` +Entry Point : get_timestamp() +라인 1-15 : 시간 획득 ✅ +라인 16-30 : 시계 역행 처리 ❌ 미캡처 (ntp 보정 시 동작) +``` + +### util_base64.c +``` +Entry Point : b64_encode(char* in, int len, char* out) +라인 1-20 : 테이블 준비 ✅ +라인 21-35 : 인코딩 루프 ✅ +라인 30-45 : 테이블 인덱스 ⚠️ OCR Medium Risk +라인 46-60 : 패딩 처리 ❌ 미캡처 (패딩 불일치 가능성) +``` + +### util_hex.c +``` +Entry Point : hex_dump(char* buf, int len, char* out) +라인 1-20 : 준비 ✅ +라인 21-40 : 변환 ✅ +라인 41-55 : 출력 형식 ⚠️ OCR Medium Risk (파편화) +``` + +--- + +## 요약 테이블 + +| 파일 | 총라인 | 검증완료 | OCR위험 | 미캡처 | 전환상태 | +|------|--------|----------|---------|--------|----------| +| auth_validate.c | 100 | 70% | Medium | 1 | 대기 | +| auth_hash.c | 90 | 80% | High | 1 | 대기 | +| auth_token.c | 80 | 75% | Low | 1 | 대기 | +| net_connect.c | 100 | 85% | High | 0 | 대기 | +| net_recv.c | 80 | 70% | High | 1 | 대기 | +| net_send.c | 70 | 80% | Medium | 0 | 대기 | +| net_pool.c | 50 | 70% | Low | 1 | 대기 | +| data_parse.c | 70 | 75% | Medium | 1 | 대기 | +| data_encode.c | 75 | 80% | Medium | 1 | 대기 | +| data_cache.c | 120 | 80% | High | 1 | 대기 | +| log_write.c | 50 | 70% | Low | 1 | 대기 | +| log_format.c | 60 | 75% | Medium | 0 | 대기 | +| log_flush.c | 30 | 60% | Low | 1 | 대기 | +| util_str.c | 55 | 75% | Medium | 1 | 대기 | +| util_mem.c | 55 | 70% | High | 1 | 대기 | +| util_time.c | 30 | 70% | Low | 1 | 대기 | +| util_base64.c | 60 | 80% | Medium | 1 | 대기 | +| util_hex.c | 55 | 80% | Low | 0 | 대기 |