"평범한 요청은 사적 텍스트가 아니라 해시랑 길이를 로깅해. 딱 하나의 예외, Studio 텍스트는 일부러 쓴 거고."
참견 안 하면서 디버그되게
사적인 말을 하는 엔진은 뭘 적어두는지 조심해야 해. Bellows는 요청을 알아보고 디버그할 만큼만 로깅해. 텍스트의 해시, 길이, 모델, 언어. 근데 전체 사적 텍스트 자체는 절대 안 남겨. "이게 어느 요청이었고 바뀌었나?"는 지문으로 답할 수 있거든. 그러자고 로그 파일에 실제 말이 있을 필요는 없고, 한번 로그에 들어가면 그 로그가 가는 데마다 같이 새.
이름 붙은 예외
Bellows가 텍스트를 내용째로 남기는 데는 딱 하나, Studio야. Studio 텍스트는 명시적으로 저작된 프로젝트 데이터거든. 문서에 타이핑하듯 일부러 프로젝트에 써넣은 거지. 그걸 기록하는 게 요점이지 프라이버시 구멍이 아니야. 규율은 '텍스트를 절대 저장 마'가 아니라, '사적 텍스트는 기본이 지문, 예외는 이름 붙고 의도적'이야.
키는 더 아래 살아
provider API 키는 모든 것 중 제일 엄격한 규칙을 받아. source에도, SQLite에도, plist에도, UI 응답에도, 로그 줄에도 안 들어가. 어디에도. 키는 가장자리에서 환경 변수로 읽혀서 쓰이고, 엔진 자체 상태로 저장되거나 에러에 되울려지지 않아. 전체 모양은 비밀성의 그라디언트야. 키는 어디에도 절대, 사적 텍스트는 지문으로만, 일부러 저작한 내용만 통째로 저장.