codex-bais-final4-20260713-.../.dev-docs/migration/bais-spring/c파일-정리-OCR-위험-구간.md
2026-07-13 10:57:52 +00:00

88 lines
2.4 KiB
Markdown

# 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. **낮음 위험**: 자동 전환 후 기본 테스트만 수행