codex-bais-final4-20260713-.../.dev-docs/migration/bais-spring/c파일-정리-인벤토리-세부사항.md

147 lines
5.2 KiB
Markdown

# 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