← 목록
기타 2026-05-28 4KB 읽기 3분

CIF 라이브러리 v1.1 일관성 확장

개요

CIF 라이브러리 3종을 v1.0 → v1.1로 승격. 트릿/맵 입력 형식 자동 감지로 일관성 확보. 추가로 삽입정렬 버그 발견 및 수정. 219/219 통과.

v1.1 승격

CIF최적화 v1.1

  • 입력: 트릿/맵 자동 감지
  • 정규화: 트릿 → 맵
  • 영향 API: 중복제거, 인접병합, 투명제거, 정렬, 양자화

CIF필터 v1.1

  • 입력: 트릿/맵 자동 감지
  • 정규화: 맵 → 트릿
  • 영향 API: 밝기조절, 대비조절, 흑백, 반전, 세피아, 좌우반전, 상하반전, 회전90, 포스터화, 블러 (10개)

CIF합성 v1.1

  • 입력: 트릿/맵 자동 감지
  • 정규화: 트릿 → 맵
  • 영향 API: 레이어합성, 투명도조절, 색조이동, 밝기조절, 반전, 다중합성 (6개)

추가 발견 버그 — 삽입정렬 j=-1 오용

증상: 4개 같은색 인접 점 → 2개로만 압축 (정상 1개)

근본 원인 (libs/CIF최적화.한선:인접병합, 정렬):

javascript; 잘못된 패턴 — j를 break 신호로 사용
동안 (j >= 0) {
    만약 (비교키 > 현재키) {
        ; ...
        j = j - 1
    } 아니면 {
        j = -1    ; break 신호로 -1 설정
    }
}
정렬됨 = 설정(정렬됨, j + 1, 현재)
; ⚠ break일 때 j=-1 → 설정(_, 0, _)로 [0] 위치를 덮어씀

수정 — 별도 플래그 + 삽입위치 변수:

javascript변수 삽입위치 = i
변수 계속진행 = 1
동안 (j >= 0 그리고 계속진행 == 1) {
    만약 (비교키 > 현재키) {
        정렬됨 = 설정(정렬됨, j + 1, 비교)
        삽입위치 = j
        j = j - 1
    } 아니면 {
        계속진행 = 0
    }
}
정렬됨 = 설정(정렬됨, 삽입위치, 현재)

검증:

이전: 너비0×4 점 → 2개 압축
수정후: 너비0×4 점 → 1개 (너비=3) 완벽 압축
역순 [3,0,2,1] → [0,1,2,3] 정상 정렬

27 검증 단계

기존 25 + 신규 2:

  • 26. v1.1자동감지 — CIF필터/합성 양방향 입력
  • 27. 인접병합효율 — 정렬 버그 수정 검증

누적 버그 6건 수정 완료

#결함상태
1v10.0 nat round vs Euclid 혼동테스트 수정
2CIF최적화 트릿 입력 무시v1.1 정규화
3알파블렌드 배열 반환테스트 수정
4CIF_27색을RGB 음수 반환정수 계산
5CIF_9트릿을RGB G/B 비대칭곱셈 우선
6삽입정렬 j=-1 오용별도 플래그

통계

  • 테스트: 219/219 (100%)
  • 컴파일: 21회 (누적)
  • 실행: 19회 (누적)
  • 라이브러리 수정: 4개 파일 (CIF, CIF최적화, CIF필터, CIF합성)
  • 단계: 27 (목표 25 +2)

학습DB 등록

  • CIF_입력형식_자동감지패턴 (트릿/맵 자동 감지)
  • 한선씨_부동소수점_정수치환_패턴 (정수 계산)
  • 한선씨_삽입정렬_정확패턴 (j=-1 회피)

일관성 정책 — 모든 CIF 라이브러리

입력 정규화 패턴 (전 라이브러리 적용):

javascript함수 X_정규화(씨앗) {
    변수 x값 = 맵꺼내(씨앗, "x")
    만약 (x값 == -1) {
        ; 트릿 입력 — 디코딩 (CIF최적화/합성)
        만약 (길이(씨앗) == 36) {
            반환 CIF3_씨앗디코딩(씨앗)
        }
    } 아니면 {
        ; 맵 입력 — 트릿으로 인코딩 (CIF필터)
        반환 CIF3_씨앗인코딩(...)
    }
    반환 씨앗
}

각 라이브러리는 내부 처리 방식에 따라 트릿 또는 맵으로 정규화. 호출자는 형식 무관하게 호출 가능.

잔여 이슈

  • VM 누적 틱 한도(~8000) — 1000+ 스트레스 불가
  • 현재시간() ms 정밀도 한계
  • CIF애니메이션도 같은 패턴 적용 가능 (현재 단일 형식)

다음 단계 후보

  1. CIF애니메이션 v1.1 확장
  2. CIF변환 PPM/BMP 더 많은 라운드트립 테스트
  3. GUI 코드 (CIFStudio_GUI.한선) 결함 우회 코드 청소 — 이제 라이브러리가 자동 정규화하므로 GUI에서 수동 처리 불필요