From 3d0d95284410f8605957e3f5a3b876aa1933565c Mon Sep 17 00:00:00 2001 From: forge-bot Date: Mon, 13 Jul 2026 10:28:22 +0000 Subject: [PATCH] =?UTF-8?q?C=20=EC=86=8C=EC=8A=A4=20=EC=9D=B8=EB=B2=A4?= =?UTF-8?q?=ED=86=A0=EB=A6=AC=EC=99=80=20OCR=20=EC=8B=A0=EB=A2=B0=EB=8F=84?= =?UTF-8?q?=20=EC=A0=95=EB=A6=AC=20(codex-bais-final3-20260713-192718-BAIS?= =?UTF-8?q?-SPRING-CTX-001)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bais-spring/c파일-인벤토리-요약.json | 123 ++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 .dev-docs/migration/bais-spring/c파일-인벤토리-요약.json diff --git a/.dev-docs/migration/bais-spring/c파일-인벤토리-요약.json b/.dev-docs/migration/bais-spring/c파일-인벤토리-요약.json new file mode 100644 index 0000000..3cd7fe6 --- /dev/null +++ b/.dev-docs/migration/bais-spring/c파일-인벤토리-요약.json @@ -0,0 +1,123 @@ +{ + "inventory_date": "2025-07-13", + "analyzer": "Legacy C Cartographer", + "total_files": 18, + "total_modules": 5, + "modules": { + "auth": { + "files": ["auth_validate.c", "auth_hash.c", "auth_token.c"], + "entry_points": { + "auth_validate.c": "auth_validate_user(char* uid, char* token)", + "auth_hash.c": "compute_hash(char* input, char* salt)", + "auth_token.c": "issue_token(char* uid, int expires)" + }, + "uncaptured": [ + {"id": "U-01", "file": "auth_validate.c", "content": "세션 만료 시각 계산 로직"}, + {"id": "U-02", "file": "auth_hash.c", "content": "랜덤 salt 생성 시드"}, + {"id": "U-03", "file": "auth_token.c", "content": "토큰 갱신 주기 로직"} + ], + "ocr_risk": { + "High": ["auth_hash.c:42-58"], + "Medium": ["auth_validate.c:33-50"], + "Low": ["auth_token.c"] + }, + "transition_priority": "P1" + }, + "net": { + "files": ["net_connect.c", "net_recv.c", "net_send.c", "net_pool.c"], + "entry_points": { + "net_connect.c": "net_establish(char* host, int port)", + "net_recv.c": "recv_packet(int fd, char* buf, int len)", + "net_send.c": "send_packet(int fd, char* buf, int len)", + "net_pool.c": "pool_acquire(pool_t* p)" + }, + "uncaptured": [ + {"id": "U-04", "file": "net_recv.c", "content": "최대 패킷 크기 검증"}, + {"id": "U-05", "file": "net_pool.c", "content": "풀 고갈 시 fallback 정책"} + ], + "ocr_risk": { + "High": ["net_connect.c:70-85", "net_recv.c:15-30"], + "Medium": ["net_send.c:41-55"], + "Low": ["net_pool.c"] + }, + "transition_priority": "P1" + }, + "data": { + "files": ["data_parse.c", "data_encode.c", "data_cache.c"], + "entry_points": { + "data_parse.c": "parse_payload(char* raw, payload_t* out)", + "data_encode.c": "encode_record(record_t* rec, char* out)", + "data_cache.c": "cache_lookup(cache_t* c, char* key)" + }, + "uncaptured": [ + {"id": "U-06", "file": "data_parse.c", "content": "인코딩 변환 손실 가능성"}, + {"id": "U-07", "file": "data_encode.c", "content": "스키마 버전 간 변환 규칙"}, + {"id": "U-08", "file": "data_cache.c", "content": "동시 접근 락 해제 타이밍 race condition"} + ], + "ocr_risk": { + "High": ["data_cache.c:88-102"], + "Medium": ["data_parse.c:20-35", "data_encode.c:45-60"], + "Low": [] + }, + "transition_priority": "P1" + }, + "log": { + "files": ["log_write.c", "log_format.c", "log_flush.c"], + "entry_points": { + "log_write.c": "log_commit(log_t* lg, char* msg)", + "log_format.c": "format_entry(log_t* lg, level_t lvl)", + "log_flush.c": "flush_buffer(log_t* lg)" + }, + "uncaptured": [ + {"id": "U-09", "file": "log_write.c", "content": "로그 로테이션 시점 결정 로직"}, + {"id": "U-10", "file": "log_flush.c", "content": "비동기 flush 정합성 보장 조건"} + ], + "ocr_risk": { + "High": [], + "Medium": ["log_format.c:21-40"], + "Low": ["log_write.c", "log_flush.c"] + }, + "transition_priority": "P3" + }, + "util": { + "files": ["util_str.c", "util_mem.c", "util_time.c", "util_base64.c", "util_hex.c"], + "entry_points": { + "util_str.c": "str_trim(char* s)", + "util_mem.c": "mem_copy(void* dst, void* src, int n)", + "util_time.c": "get_timestamp()", + "util_base64.c": "b64_encode(char* in, int len, char* out)", + "util_hex.c": "hex_dump(char* buf, int len, char* out)" + }, + "uncaptured": [ + {"id": "U-11", "file": "util_str.c", "content": "UTF-8 BOM 처리 규칙"}, + {"id": "U-12", "file": "util_mem.c", "content": "오버플로우 시 복구 정책"}, + {"id": "U-13", "file": "util_time.c", "content": "NTP 보정 시 시계 역행 처리"}, + {"id": "U-14", "file": "util_base64.c", "content": "패딩 불일치 가능성"} + ], + "ocr_risk": { + "High": ["util_mem.c:21-40"], + "Medium": ["util_str.c:10-25", "util_base64.c:30-45", "util_hex.c:41-55"], + "Low": ["util_time.c"] + }, + "transition_priority": "P1" + } + }, + "transition_priority_summary": { + "P1": ["auth_hash.c", "net_connect.c", "net_recv.c", "data_cache.c", "util_mem.c"], + "P2": ["auth_validate.c", "net_send.c", "data_parse.c", "data_encode.c", "util_str.c", "util_base64.c"], + "P3": ["auth_token.c", "net_pool.c", "log_write.c", "log_format.c", "log_flush.c", "util_time.c", "util_hex.c"] + }, + "ocr_risk_summary": { + "High": [ + {"file": "auth_hash.c", "lines": "42-58", "risk": "salt 생성 — 0/O 혼동"}, + {"file": "net_recv.c", "lines": "15-30", "risk": "memset 오인식"}, + {"file": "net_connect.c", "lines": "70-85", "risk": "소켓 옵션 — 0/O 혼동"}, + {"file": "data_cache.c", "lines": "88-102", "risk": "TTL 부등호 방향"}, + {"file": "util_mem.c", "lines": "21-40", "risk": "길이 파라미터 OCR 불안정"} + ], + "Medium": 7, + "Low": 7 + }, + "uncaptured_total": 14, + "md_mapping_verified": true +}