C 소스 인벤토리 분석 보고서
개요
- 분석 기준:
.dev-docs/migration/bais-spring/c파일 정리/ 디렉토리 내 18개 C 파일 및 md 정리 파일
- 분석 일시: 2025-07-13
- 분석자: Legacy C Cartographer
모듈별 분류
1. API 모듈 (4개 파일)
| 파일명 |
역할 |
Entry Point |
미캡처 구간 |
OCR 위험 |
전환우선순위 |
api_handler.c |
REST API 요청 처리 |
handle_api_request() |
콜백 레지스트리 |
중간 |
P1 |
api_parser.c |
JSON/XML 파싱 |
parse_api_payload() |
파서 상태머신 |
높음 |
P1 |
api_validator.c |
요청 검증 |
validate_request() |
스키마 검증 로직 |
낮음 |
P2 |
api_router.c |
경로 라우팅 |
route_request() |
동적 라우트 테이블 |
중간 |
P2 |
2. DB 모듈 (3개 파일)
| 파일명 |
역할 |
Entry Point |
미캡처 구간 |
OCR 위험 |
전환우선순위 |
db_connector.c |
DB 연결 관리 |
db_connect() |
연결 풀 관리 |
낮음 |
P1 |
db_query.c |
쿼리 실행 |
execute_query() |
트랜잭션 처리 |
중간 |
P1 |
db_migrator.c |
마이그레이션 |
run_migration() |
스키마 diff |
높음 |
P3 |
3. Network 모듈 (4개 파일)
| 파일명 |
역할 |
Entry Point |
미캡처 구간 |
OCR 위험 |
전환우선순위 |
net_server.c |
서버 리스닝 |
start_server() |
소켓 옵션 설정 |
낮음 |
P1 |
net_client.c |
클라이언트 연결 |
connect_remote() |
SSL 핸드셰이크 |
중간 |
P2 |
net_protocol.c |
프로토콜 처리 |
process_packet() |
프로토콜 상태머신 |
높음 |
P2 |
net_buffer.c |
버퍼 관리 |
alloc_buffer() |
메모리 풀 |
낮음 |
P3 |
4. Crypto 모듈 (3개 파일)
| 파일명 |
역할 |
Entry Point |
미캡처 구간 |
OCR 위험 |
전환우선순위 |
crypto_hash.c |
해시 계산 |
compute_hash() |
HMAC 처리 |
낮음 |
P1 |
crypto_cipher.c |
암호화/복호화 |
encrypt_data() |
키 관리 |
중간 |
P2 |
crypto_random.c |
난수 생성 |
generate_random() |
엔트로피 소스 |
낮음 |
P3 |
5. Utils 모듈 (4개 파일)
| 파일명 |
역할 |
Entry Point |
미캡처 구간 |
OCR 위험 |
전환우선순위 |
utils_logger.c |
로깅 |
log_message() |
로그 로테이션 |
낮음 |
P2 |
utils_config.c |
설정 관리 |
load_config() |
설정 파싱 |
중간 |
P2 |
utils_timer.c |
타이머 관리 |
start_timer() |
타이머 큐 |
낮음 |
P3 |
utils_string.c |
문자열 처리 |
string_utils() |
인코딩 변환 |
높음 |
P3 |
Entry Point 인벤토리 (총 12개)
P1 (전환 우선순위 1):
- api_handler.c: handle_api_request()
- api_parser.c: parse_api_payload()
- db_connector.c: db_connect()
- db_query.c: execute_query()
- net_server.c: start_server()
- crypto_hash.c: compute_hash()
P2 (전환 우선순위 2):
- api_validator.c: validate_request()
- api_router.c: route_request()
- net_client.c: connect_remote()
- net_protocol.c: process_packet()
- crypto_cipher.c: encrypt_data()
- utils_logger.c: log_message()
- utils_config.c: load_config()
P3 (전환 우선순위 3):
- db_migrator.c: run_migration()
- net_buffer.c: alloc_buffer()
- crypto_random.c: generate_random()
- utils_timer.c: start_timer()
- utils_string.c: string_utils()
OCR 위험 구간 분석 (총 7개)
| 위험도 |
파일 |
구간 설명 |
권장 조치 |
| 높음 |
api_parser.c |
파서 상태머신 (switch-case 중첩) |
수동 리뷰 필수 |
| 높음 |
db_migrator.c |
스키마 diff 로직 |
수동 리뷰 필수 |
| 높음 |
net_protocol.c |
프로토콜 상태머신 |
수동 리뷰 필수 |
| 높음 |
utils_string.c |
인코딩 변환 로직 |
수동 리뷰 필수 |
| 중간 |
api_handler.c |
콜백 레지스트리 |
샘플 검증 |
| 중간 |
api_router.c |
동적 라우트 테이블 |
샘플 검증 |
| 중간 |
db_query.c |
트랜잭션 처리 |
샘플 검증 |
| 중간 |
net_client.c |
SSL 핸드셰이크 |
샘플 검증 |
| 중간 |
crypto_cipher.c |
키 관리 |
샘플 검증 |
| 중간 |
utils_config.c |
설정 파싱 |
샘플 검증 |
미캡처 구간 인벤토리
| 파일 |
미캡처 구간 |
영향도 |
api_handler.c |
콜백 레지스트리 매핑 로직 |
중간 |
api_parser.c |
파서 상태머신의 상태 전이 테이블 |
높음 |
api_router.c |
동적 라우트 테이블 빌드 로직 |
중간 |
db_query.c |
트랜잭션 격리 수준 처리 |
중간 |
net_client.c |
비동기 연결 재시도 로직 |
낮음 |
net_protocol.c |
프로토콜 버전 협상 로직 |
높음 |
utils_config.c |
설정 파일 핫리로딩 |
낮음 |
전환 우선순위 매트릭스
┌─────────────────────────────────────────────────────────────┐
│ 우선순위 │ 파일 수 │ 핵심 이유 │
├───────────┼─────────┼───────────────────────────────────────┤
│ P1 │ 6개 │ 핵심 비즈니스 로직, 즉시 전환 필요 │
│ P2 │ 7개 │ 중요 인프라, 점진적 전환 가능 │
│ P3 │ 5개 │ 지원 유틸리티, 후순위 │
└─────────────────────────────────────────────────────────────┘
권장 전환 순서
- 1단계 (P1): API + DB + Network 서버 + Crypto 해시
- 2단계 (P2): 나머지 API + Network 클라이언트 + Crypto 암호화 + Utils 로깅/설정
- 3단계 (P3): DB 마이그레이션 + Network 버퍼 + Crypto 난수 + Utils 타이머/문자열