Repository navigation
Upstream 54 UUID KO
이 작업은 공개 후보 go53-uuid-canonical-parse를 실제 검사할 수 있는 작은 코드 작업으로 준비한 개발 기록입니다. 모델이 이 작업을 풀었거나 난이도를 알아냈다는 기록은 아닙니다. 120개 원천 조사의 원래 후보를 정답·학습 자료로 바꾸지 않습니다.
원천은 google/uuid의 고정 revision입니다. 원본 uuid.go의 Parse와 ParseBytes는 하이픈이 있는 문자열, 대문자, 32자리 원시 16진수, URN을 허용합니다. 38바이트 입력에서는 앞뒤 문자를 직접 검사하지 않아 [...] 같은 포장도 허용합니다. 일부 뒤쪽 오류에서는 이미 읽은 UUID의 일부와 오류를 함께 반환할 수 있습니다.
새 작업은 원본을 그대로 둔 채 ParseCanonical(s string) (UUID, error) 하나를 추가하는 것입니다. 이 API는 소문자 ASCII 16진수와 지정된 네 하이픈으로 이루어진 정확한 36바이트 입력만 허용합니다. 잘못된 입력에서는 어느 위치에서 실패하든 오류와 0 UUID를 반환합니다. 정상 입력의 버전·variant 비트는 제한하지 않아 모두 0인 값과 모두 1인 값도 받습니다. 원래 API를 엄격하게 바꾸는 작업이 아닙니다.
| 항목 | 이번에 고정한 범위 |
|---|---|
| 원천 revision | 2d3c2a9cc518326daf99a383f07c4d3c44317e4d |
| 파일 | 원본 Go 파일 23개(원본 테스트 파일 7개 포함), go.mod, LICENSE: 합계 25개 |
| 무결성 | 각 파일의 SHA-256과 공개 Git blob 식별자를 모두 확인 |
| 외부 의존성 | 이 코드 패키지의 imports는 표준 라이브러리뿐 |
| 라이선스 | 원본 BSD-3-Clause LICENSE |
| NOTICE | 확인한 revision의 전체 원천 tree에 없음. 임의 NOTICE를 만들지 않음 |
원본 LICENSE와 파일에 있던 Google 저작권 표기는 복사본에 보존합니다. LICENSE의 저작권 연도는 2009·2014이며 uuid.go의 표기는 2018입니다. time_test.go와 version6_test.go에는 별도 파일 헤더가 없다는 점도 확인했습니다. 선택한 파일에서 별도 라이선스나 다른 프로젝트 복사 표시는 발견하지 못했지만, 이것은 저장소 전체·미래 dependency·미래 모델 배포에 대한 일괄 법적 보증이 아닙니다. 소스 재배포 때 원본 저작권·조건·면책 조항을 보존하고, 바이너리 배포 때도 해당 조건에 맞는 고지를 제공해야 합니다.
원본 go.mod는 모듈 선언만 있습니다. 원본 바이트는 고정하고, 격리 시험용 복사본에는 신뢰한 모듈 이름 github.com/google/uuid와 Go 1.27.1을 명시한 최소 실행 레시피를 씁니다. 원천 저장소를 수정하거나 새로운 의존성을 내려받지 않습니다.
이번 검증기는 원본 uuid.go 10,254바이트 또는 신뢰한 Go 1.27.1 gofmt가 정규화한 10,251바이트 복사본을 정확한 앞부분으로 보존하고, 끝에 새 함수 하나만 추가하는 구현을 지원합니다. 원본이 최신 formatter와 공백 형식이 달라, 구조체 공백과 문서 주석의 줄바꿈·들여쓰기만 정규화한 두 번째 앞부분을 별도로 고정했습니다. 기존 코드의 의미와 저작권 표기는 그대로입니다. 새 함수는 로컬 값·반복문, 원본의 순수한 Parse/xtob, 일부 순수 표준 함수와 변환만 사용할 수 있습니다. 난수·전역 상태 쓰기, 전역 배열의 별칭, 함수 별칭을 통한 호출, 함수 리터럴, 포인터, 동시성, 별도 helper, 원본 API·헤더 편집은 지원 범위 밖입니다.
지원 범위 밖 코드는 verifier_unknown으로 남깁니다. 동작이 맞는 범용 구현도 이 범위를 벗어나면 모델의 실패로 세지 않습니다. 이는 Go 전체를 분석하는 범용 효과 검증기가 아니라, 작은 공개 작업에서 검증하지 못한 구현을 안전하게 구분하는 제한입니다. 로컬 변수 검사는 이름만 비교하지 않고 선언 객체를 추적하여, 안쪽 블록의 같은 이름으로 전역 상태 쓰기를 숨기는 경우도 거부합니다.
후보가 쓴 테스트는 수용 근거로 사용하지 않습니다. 원본 테스트와 별도로 다음 여섯 검사를 신뢰한 외부 테스트 패키지에서 공급합니다.
- 0·최댓값·일반 값·비트 제약이 없는 고정 입력의 정확한 16바이트 결과.
- 36개 위치 각각에서 가능한 바이트 256개를 바꾸는 9,216가지 검사. 기대값은 직접 정의한 문자 규칙과 표준
encoding/hex로 계산. - 대문자·URN·원시 형식·포장·공백·유니코드·잘못된 길이 거부.
- 뒤쪽 잘못된 바이트에서도 오류와 0 UUID 반환.
- 기존
Parse/ParseBytes의 허용 형식과 오류 종류 보존. - 반복·동시 호출의 결과, 설정한 난수 reader 보존, random pool의 내용·위치·사용 설정 보존.
난수 reader 관측만으로 모든 가능한 난수 접근을 증명한다고 주장하지 않습니다. crypto/rand.Read 직접 호출 같은 경로는 좁은 구현 형태 검사에서도 거부합니다. 이중 확인의 범위는 이번 지원 형태와 시험한 입력입니다.
Go 1.27.1 / macOS arm64에서 격리·네트워크 차단 환경으로 실제 확인한 개발 결과는 다음과 같습니다.
- 고정 원본의 전체 Go 테스트는 terminal pass 212개를 기록했습니다. 현재 호스트가 선택한 build 파일 범위의 실행이며, 모든 플랫폼·외부 통합 시험이 통과했다는 뜻은 아닙니다.
- 그대로인 원본에는 새 API가 없어 독립 계약이 실패합니다.
- 직접 작성한 정답 대조 구현은 원본 212개와 독립 검사 6개를 모두 통과했습니다.
- 지원 형태 안에서 잘못된 구현 14종은 각각 독립 검사 6개가 실제 종료하고 오류를 검출했습니다. 컴파일 실패를 의미 검사 성공으로 세지 않습니다.
- 지원 형태 밖의 대조군 21종은 별도로 검사해 거부했습니다. 원본 표기 삭제, 직접 난수 접근, 전역 변경, 함수 별칭 호출, helper 추가와 블록 shadow를 이용한 전역 쓰기 등을 포함합니다. 이들은 난이도·성공률 라벨이 아닙니다.
- 중앙 검증기를 통한 통합 시험에서 후보가 쓴 잘못된 테스트를 무시하고 정답을 수용했습니다. 별도의 검토자가 독립 구현으로 CLI를 실행한 5개 대조군에서도 정답 수용, 대문자를 허용하는 오류 검출, 직접 난수·블록 shadow 전역 쓰기·저작권 헤더 삭제의 unknown 구분을 확인했습니다.
- 이 작업의 전체 race 검사, 정적 검사, 기존 작업 명세 해시 보존 검사도 로컬에서 통과했습니다. 공개 CI와 실제 모델 실행은 별도 기록으로 확인해야 합니다.
9,216개 입력 검사와 여러 대조군은 서로 다른 모델 작업 수가 아닙니다. 이 계약의 의미상 작업은 하나이며 모델 실행은 0회입니다. 120개 전체를 실행·학습·최종 평가에 사용 가능하다고 선언하지 않습니다. 실제 모델 시험은 계약·원천·실행 방식이 고정된 뒤 별도 계획과 결과로 기록해야 합니다.
riidolaya is experimental. No demonstrated Codex cost savings; repository selection is preview-only.
riidolaya는 실험 단계입니다. Codex 절감은 미입증이며 저장소 선택은 preview입니다.
English README · 한국어 README · Versioned Wiki sources / Wiki 원본
이전 연구 안내 펼치기 / Earlier research
- 실제 이어 학습 V3 · 한국어 · Actual V3 training · English
- 진행·완료 보고·질문100건 결과 KO · 100-case results EN
- 라벨·이모지·상태 힌트 KO · Content/state hints EN
- 개발 진행·완료 보고·질문 pilot KO · Development pilot EN
- 작은 검증 기록 KO · Compact evidence EN
- 현재 개발 자료 35개·다음 학습 조건 · 35-row data and next training gates
- 개발용 학습 자료 2개 · Two qualified training requests
- 첫 두 과제 실제 관측 · First two actual observations
- 전체 사용법 KO · Full usage EN
- 작은 동작 힌트 KO · Small hints EN
- 설명 보강 비교76 · Caption diagnostic76
- Go 압축 가중치78 · Packed Go weights78
- 공개 함수 동작 검증 · Public function verification
- 다음 학습 자료 준비 · Training data preparation
- 동작에서 학습 정답·실제 학습79 · Grounded labels and actual fit79
- 소스 동작 관찰 · Source observations
- 저장 크기와 RAM · Storage and RAM
- 라이선스 · Licensing
- 시점별 기록 원문 / Chronological history
- 전체 연구 링크 / Full research index
- 문서 목록 / Documentation