# OCR 위험 구간 상세 분석 ## 위험 분류 기준 - **높음**: 수동 리뷰 필수, 자동 전환 불가 - **중간**: 샘플 검증 후 전환 가능 - **낮음**: 자동 전환 권장 ## 위험 구간 목록 ### 높음 위험 (4개) #### 1. api_parser.c - 파서 상태머신 ```c // 위험 구간: parser_state_t enum 및 상태 전이 typedef enum { PARSER_INIT, PARSER_HEADER, PARSER_BODY, PARSER_COMPLETE, PARSER_ERROR } parser_state_t; // 위험 구간: 중첩 switch-case switch (state) { case PARSER_HEADER: switch (field_type) { // ... } } ``` #### 2. db_migrator.c - 스키마 diff 로직 ```c // 위험 구간: 테이블 비교 알고리즘 int compare_columns(column_t* a, column_t* b) { // 복잡한 비교 로직 } ``` #### 3. net_protocol.c - 프로토콜 상태머신 ```c // 위험 구간: 바이너리 프로토콜 파싱 switch (packet_type) { case PKT_HANDSHAKE: // ... case PKT_DATA: // ... } ``` #### 4. utils_string.c - 인코딩 변환 ```c // 위험 구간: 멀티바이트 문자 처리 size_t convert_encoding(char* out, const char* in, enc_t from, enc_t to) { // EUC-KR, UTF-8, ISO-2022-KR 변환 } ``` ### 중간 위험 (6개) | 파일 | 구간 | 위험 이유 | |------|------|-----------| | api_handler.c | 콜백 레지스트리 | 함수 포인터 배열 초기화 | | api_router.c | 동적 라우트 테이블 | 해시맵 구현체 | | db_query.c | 트랜잭션 처리 | 에러 코드 매핑 | | net_client.c | SSL 핸드셰이크 | OpenSSL 콜백 | | crypto_cipher.c | 키 관리 | 키 파생 함수 | | utils_config.c | 설정 파싱 | 토큰 파싱 로직 | ### 낮음 위험 (8개) | 파일 | 구간 | 비고 | |------|------|------| | api_validator.c | 스키마 검증 | 단순 검증 로직 | | db_connector.c | 연결 풀 관리 | 표준 인터페이스 | | net_server.c | 소켓 옵션 | 표준 소켓 API | | net_buffer.c | 메모리 풀 | 단순 할당 래퍼 | | crypto_hash.c | HMAC 처리 | 표준 OpenSSL | | crypto_random.c | 엔트로피 소스 | 단순 래퍼 | | utils_logger.c | 로그 로테이션 | 표준 파일 I/O | | utils_timer.c | 타이머 큐 | 단순链表 | ## OCR 리스크 완화 전략 1. **높음 위험**: 전문 리뷰어 수동 검토, 테스트 케이스 보강 2. **중간 위험**: 샘플 입력으로 검증, 커버리지 테스트 작성 3. **낮음 위험**: 자동 전환 후 기본 테스트만 수행