diff --git a/.dev-docs/migration/bais-spring/c파일-정리-인벤토리-세부사항.md b/.dev-docs/migration/bais-spring/c파일-정리-인벤토리-세부사항.md new file mode 100644 index 0000000..27b2243 --- /dev/null +++ b/.dev-docs/migration/bais-spring/c파일-정리-인벤토리-세부사항.md @@ -0,0 +1,147 @@ +# C 파일 상세 분석 + +## 파일별 상세 분석 + +### api_handler.c +- **모듈**: API +- **Entry Point**: `handle_api_request(request_t* req, response_t* res)` +- **Dependencies**: `api_parser.c`, `api_validator.c`, `api_router.c` +- **미캡처 구간**: 콜백 레지스트리 (`callback_registry[]` 배열) +- **OCR 위험**: 중간 - 함수 포인터 배열 초기화 부분 +- **전환 우선순위**: P1 + +### api_parser.c +- **모듈**: API +- **Entry Point**: `parse_api_payload(const char* data, size_t len)` +- **Dependencies**: `utils_string.c` +- **미캡처 구간**: 파서 상태머신 (`parser_state_t` enum 및 상태 전이) +- **OCR 위험**: 높음 - 중첩 switch-case 및 상태 열거형 +- **전환 우선순위**: P1 + +### api_validator.c +- **모듈**: API +- **Entry Point**: `validate_request(const request_t* req)` +- **Dependencies**: `utils_config.c` +- **미캡처 구간**: 스키마 검증 로직 (정규식 패턴 매칭) +- **OCR 위험**: 낮음 - 비교적 단순한 검증 로직 +- **전환 우선순위**: P2 + +### api_router.c +- **모듈**: API +- **Entry Point**: `route_request(const request_t* req)` +- **Dependencies**: `api_handler.c` +- **미캡처 구간**: 동적 라우트 테이블 (`route_table` 해시맵) +- **OCR 위험**: 중간 - 라우트 패턴 파싱 로직 +- **전환 우선순위**: P2 + +### db_connector.c +- **모듈**: DB +- **Entry Point**: `db_connect(const char* conn_str)` +- **Dependencies**: `net_client.c` (소켓 사용) +- **미캡처 구간**: 연결 풀 관리 (`connection_pool_t`) +- **OCR 위험**: 낮음 - 표준 libpq 인터페이스 +- **전환 우선순위**: P1 + +### db_query.c +- **모듈**: DB +- **Entry Point**: `execute_query(db_conn_t* conn, const char* sql)` +- **Dependencies**: `db_connector.c` +- **미캡처 구간**: 트랜잭션 처리 (isolation level, savepoint) +- **OCR 위험**: 중간 - 에러 코드 매핑 로직 +- **전환 우선순위**: P1 + +### db_migrator.c +- **모듈**: DB +- **Entry Point**: `run_migration(const char* migration_dir)` +- **Dependencies**: `db_query.c`, `utils_logger.c` +- **미캡처 구간**: 스키마 diff 로직 (테이블 비교 알고리즘) +- **OCR 위험**: 높음 - 복잡한 diff 알고리즘 +- **전환 우선순위**: P3 + +### net_server.c +- **모듈**: Network +- **Entry Point**: `start_server(uint16_t port)` +- **Dependencies**: `net_buffer.c` +- **미캡처 구간**: 소켓 옵션 설정 (SO_REUSEADDR 등) +- **OCR 위험**: 낮음 - 표준 소켓 API +- **전환 우선순위**: P1 + +### net_client.c +- **모듈**: Network +- **Entry Point**: `connect_remote(const char* host, uint16_t port)` +- **Dependencies**: `net_buffer.c`, `crypto_cipher.c` (TLS) +- **미캡처 구간**: SSL 핸드셰이크 로직 +- **OCR 위험**: 중간 - OpenSSL 콜백 인터페이스 +- **전환 우선순위**: P2 + +### net_protocol.c +- **모듈**: Network +- **Entry Point**: `process_packet(buffer_t* buf)` +- **Dependencies**: `net_buffer.c` +- **미캡처 구간**: 프로토콜 상태머신 (패킷 파싱 상태 전이) +- **OCR 위험**: 높음 - 바이너리 프로토콜 파싱 +- **전환 우선순위**: P2 + +### net_buffer.c +- **모듈**: Network +- **Entry Point**: `alloc_buffer(size_t size)` +- **Dependencies**: 없음 +- **미캡처 구간**: 메모리 풀 (`buffer_pool_t`) +- **OCR 위험**: 낮음 - 단순 메모리 할당 래퍼 +- **전환 우선순위**: P3 + +### crypto_hash.c +- **모듈**: Crypto +- **Entry Point**: `compute_hash(const void* data, size_t len, hash_algo_t algo)` +- **Dependencies**: 없음 +- **미캡처 구간**: HMAC 처리 (키 확장 로직) +- **OCR 위험**: 낮음 - 표준 OpenSSL 인터페이스 +- **전환 우선순위**: P1 + +### crypto_cipher.c +- **모듈**: Crypto +- **Entry Point**: `encrypt_data(const void* key, const void* iv, const void* data)` +- **Dependencies**: `crypto_random.c` +- **미캡처 구간**: 키 관리 (키 롤링, 스토어) +- **OCR 위험**: 중간 - 키 파생 함수 +- **전환 우선순위**: P2 + +### crypto_random.c +- **모듈**: Crypto +- **Entry Point**: `generate_random(void* buf, size_t len)` +- **Dependencies**: 없음 +- **미캡처 구간**: 엔트로피 소스 (`/dev/urandom` fallback) +- **OCR 위험**: 낮음 - 단순 래퍼 함수 +- **전환 우선순위**: P3 + +### utils_logger.c +- **모듈**: Utils +- **Entry Point**: `log_message(log_level_t level, const char* fmt, ...)` +- **Dependencies**: `utils_string.c` +- **미캡처 구간**: 로그 로테이션 (파일 크기 기반) +- **OCR 위험**: 낮음 - 표준 파일 I/O +- **전환 우선순위**: P2 + +### utils_config.c +- **모듈**: Utils +- **Entry Point**: `load_config(const char* path)` +- **Dependencies**: `utils_string.c` +- **미캡처 구간**: 설정 파싱 (INI/JSON 섹션 처리) +- **OCR 위험**: 중간 - 토큰 파싱 로직 +- **전환 우선순위**: P2 + +### utils_timer.c +- **모듈**: Utils +- **Entry Point**: `start_timer(uint32_t ms, timer_callback_t cb)` +- **Dependencies**: 없음 +- **미캡처 구간**: 타이머 큐 (우선순위 큐 구현) +- **OCR 위험**: 낮음 - 단순链表 기반 +- **전환 우선순위**: P3 + +### utils_string.c +- **모듈**: Utils +- **Entry Point**: `string_utils(const char* op, char* dest, const char* src)` +- **Dependencies**: 없음 +- **미캡처 구간**: 인코딩 변환 (UTF-8, EUC-KR, ISO-2022-KR) +- **OCR 위험**: 높음 - 멀티바이트 문자 처리 +- **전환 우선순위**: P3