회사에 맞춘 프로그램에는 화면과 코드만 있는 것이 아니다. 실제 업체와 품목, 금액과 계정, 시행착오와 대화가 함께 쌓인다. 이런 자료를 깊은 제작기로 공개하고 싶어도 원문 전체를 올리는 방법은 적절하지 않다. 이번 작업은 실데이터를 제외한 프로그램·채팅·양식 사본을 글의 재료로 쓰는 요청에서 시작했다. 나는 보존할 원본, 집필 근거와 공개할 새 콘텐츠를 다르게 다루면서도 왜 그렇게 만들었는지 충분히 설명하는 방법을 택했다.
자료의 이름보다 포함 범위를 먼저 확인한다
실데이터 제외라고 적힌 파일도 무엇을 지웠고 무엇이 남았는지 읽어야 한다. 내보내기 설명과 검사 결과는 유용하지만 그것만으로 모든 텍스트를 그대로 공개할 수 있다고 판단하지 않았다. 이번 자료에서도 텍스트 연락처 후보가 일부 남아 있음을 확인했다. 의존성 저자 정보와 실제 연락처 후보를 같은 것으로 단정하지 않으면서, 원문 파일은 공개하지 않는 경계를 유지했다.
운영 데이터베이스가 없다고 모든 업무 정보가 사라지는 것도 아니다. 설명 문서와 예제 설정, 대화 안에 상대 이름이나 주소가 남을 수 있다. 파일 하나의 확장자로 공개 여부를 정하기보다 내용과 목적을 확인해야 한다. 원본은 비공개로 보관하고 공개할 글은 별도로 다시 작성하면 검토할 범위가 명확해진다. 깊은 설명을 남기는 일과 실제 상대의 식별 정보를 남기는 일을 같은 요구로 보지 않는 것이다.
많은 파일을 읽었다는 말의 단위를 나눈다
현재 소스와 빌드 결과, 이전 버전의 중복 제거 저장소가 함께 있으면 파일 수가 크게 늘어난다. 대화도 사용자 요청과 어시스턴트 설명, 반복된 문맥이 섞여 있다. 나는 추출한 수와 실제로 읽어 판단한 범위를 구분했다. 목록을 만들고 해시를 계산했다고 모든 파일의 의미를 정독한 것은 아니다. 글마다 선택한 질문과 관련 코드, 요청과 검사 기록을 연결하는 방식으로 근거를 좁혔다.
특히 성공했다는 대화 문장만으로 실제 실행을 증명하지 않는다. 이번 대화 사본에는 원래 도구 출력과 첨부 원본이 제외돼 있었다. 당시 검사 보고서는 당시 상태의 기록이고 지금 확인한 파일은 보관본의 구현이다. 이를 현재 운영에서 직접 재현한 결과라고 바꾸어 말하지 않았다. 독자는 설명을 읽으면서 무엇이 실제 경험의 기록이고 무엇이 새로 발전시킨 방법인지 알 수 있어야 한다.
빈 양식과 독립 예제는 목적이 다르다
빈 양식은 업무에서 어떤 항목을 다뤘는지 이해하는 재료가 된다. 그렇다고 열 이름만 남은 표를 원래 엑셀의 수식과 서식까지 복원한 것으로 소개해서는 안 된다. 이전 버전 소스가 있다고 운영 장부까지 복구할 수 있는 것도 아니다. 자료마다 남은 범위와 빠진 범위를 설명해야 다음 사람이 다른 목적에 잘못 사용하지 않는다. 개발 참조용 사본과 업무 복구용 백업은 다른 산출물이다.
공유 구현은 원래 회사의 코드를 그대로 잘라 내기보다 필요한 원리를 독립적으로 다시 만들 수 있다. 이번 상태 해석 도구와 반응형 입력 표가 그런 예제다. 합성 값과 새 파일로 작게 만들고 실제 확인한 검사 범위를 남겼다. 원래 프로그램의 모든 기능과 권한을 가진 모듈로 설명하지 않았으며, 사용하는 곳에서 추가해야 할 계약도 적었다. 공유의 깊이는 파일 크기보다 적용 조건과 실패 경계를 얼마나 설명했는지에서 나온다.
현재 요청과 과거의 명령을 구별한다
보관 자료 안에는 예전 실행 명령과 계정 연결, 배포 지시가 들어 있을 수 있다. 그 문장은 당시 작업의 재료이지 지금 다시 실행하라는 요청은 아니다. 글을 쓰기 위해 프로그램을 몰래 켜거나 운영 자료에 접속할 필요도 없다. 이번 작업의 범위는 보관 자료를 읽어 새 글과 예제를 만들고 이 사이트에 발행하는 것이었다. 회사의 장부나 외부 발급 서비스를 수정하는 작업으로 확대하지 않았다.
공개 전에는 이름과 연락처, 내부 경로와 주소가 본문·코드·다운로드에 남지 않았는지 검토한다. 발행 뒤에는 실제 본문과 파일이 검토한 내용인지 확인하고 원본과 근거, 수정 이력은 따로 보존한다. 이 방식이면 직원과 대표에게 도움이 되는 깊은 노하우를 공개하면서도 회사의 실제 업무 정보는 보호할 수 있다. 독자에게 필요한 것은 특정 거래의 비밀이 아니라 같은 문제를 만났을 때 스스로 판단하고 구현하고 확인할 수 있는 방법이다.