홈페이지 작업 중 연결할 영상이나 VR 자료가 없다면 해당 메뉴도 만들지 말라는 요청을 받았다. 방문자에게 누를 곳을 보여주고 빈 화면이나 깨진 연결로 보내는 대신, 실제 제공할 자료에 맞춰 메뉴를 구성하려는 결정이었다. 하지만 파일을 지금 찾지 못한 것까지 자료가 없는 것으로 확정하면 다른 오류가 생긴다.

공통 사용안내에는 자료 상태를 확인됨, 없음, 확인 대기로 나누는 규칙이 남아 있다. 화면에서는 둘 다 숨겨질 수 있는 없음과 확인 대기가 작업 기록에서는 다른 상태로 남는다. 나는 이 차이를 작은 CLI로 다시 구현해 공개했다. 홈페이지 전체를 검사하는 도구가 아니라, 선언한 자료 상태를 잃지 않고 다음 단계를 결정하는 예시다.

메뉴는 기능의 약속이기도 하다

메뉴에 영상이나 가상 체험이 적혀 있으면 방문자는 그 버튼 뒤에 볼 것이 있다고 기대한다. 실제 실행 자료가 없는데 이름만 남겨두면 설명보다 실패가 먼저 보인다. 원래 대화에는 모델하우스 관련 연결이 없으니 관련 내용을 빼 달라는 요청도 있다. 화면을 채우는 것보다 제공할 수 있는 내용의 범위를 맞추는 일이 우선이었다.

이때 자료 목록을 확인하고 제공하지 않기로 한 항목은 없음을 선언할 수 있다. 아직 담당자의 답을 기다리거나 다른 폴더를 확인해야 한다면 확인 대기다. 둘 다 당장 방문자에게 보이지 않게 할 수 있지만, 담당자가 다음에 할 일은 달라진다. 숨긴다는 화면 결과만 저장하면 아직 해야 할 확인이 사라진다.

표시와 작업 진행을 두 개의 질문으로 나눈다

원래 사용안내는 확인된 자료를 표시하고, 없는 자료를 메뉴와 관련 영역에서 제거하며, 확인 대기는 미리보기에서 숨기되 운영용 빌드를 막는 규칙을 적었다. 이 글에서 소개하는 새 코드는 그 상태 판단만 작게 떼어냈다. 미리보기를 허용하는 것과 운영으로 내보낼 수 있는 것은 같은 판단이 아니다.

미리보기에서는 확인된 자료만으로 읽기 흐름을 계속 다듬을 수 있다. 다만 대기 항목은 계속 기록에 남겨야 한다. 운영 단계에 들어가기 전에는 대기가 실제 자료로 확인되거나, 적절한 확인을 거쳐 제공하지 않을 항목으로 정리되어야 한다. 편의를 위해 대기를 없음으로 바꾸면 빌드는 지나가도 판단의 이유가 사라진다.

한 상태가 홈페이지의 모든 영역을 대신하지 않는다

홈페이지 첫 화면의 시설 영역을 숨겼다고 상세 메뉴까지 반드시 없애야 하는 것은 아니다. 소개 사진은 아직 준비되지 않았지만 상세 안내 문서는 있을 수 있다. 반대로 홈 사진은 있어도 실제 VR 실행 묶음은 없을 수 있다. 공통 안내도 홈 영역과 상세 메뉴의 상태를 별도로 명시하게 한다. 정보의 역할이 다른 만큼 상태도 따로 다뤄야 한다.

모든 하위 메뉴를 숨겼다면 남은 상위 그룹과 사이트맵도 함께 살펴야 한다. 그러나 이번 작은 CLI는 메뉴를 수정하거나 사이트맵을 생성하지 않는다. visible, declared_absent, pending 같은 결과를 돌려줄 뿐이다. 실제 페이지에 적용하려면 사이트의 메뉴 구조와 각 자료의 연결을 읽는 별도 코드가 필요하다.

확인됨은 파일과 사실 검사의 끝이 아니다

상태를 confirmed라고 적는 것만으로 파일이 열리고 사실이 정확하며 사용 권한이 확보됐다는 증거가 생기지는 않는다. 새 프로그램은 입력한 선언을 믿고 결과를 계산한다. 따라서 그 앞에서 실제 자료를 확인해야 한다. 특히 도면, 사업 안내, 생성 사진의 역할은 상태 이름 하나보다 더 구체적인 검토를 필요로 한다.

없음이라는 선언도 현실에 시설이나 시공사가 없다는 뜻으로 읽혀서는 안 된다. 여기서 다루는 것은 화면에 제공할 자료의 상태다. 자료가 없어 소개 행을 숨기는 것과 실제 사업의 구성에 관해 단정하는 문장은 별개다. 이 경계를 놓치면 조용히 메뉴를 정리한 작업이 근거 없는 설명으로 바뀐다.

공유한 CLI에서 직접 확인할 수 있는 범위

공유 모듈에는 새 Python 코드와 합성 입력, 실행 검사와 사용 설명을 넣었다. 확인된 도면, 제공하지 않는 영상, 확인 대기인 체험 자료라는 가상의 입력을 넣으면 미리보기는 허용하고 운영 모드에서는 대기를 유지한 채 막는다. 잘못된 상태와 중복 ID, 중복 JSON 키도 검사했다. 스물네 개 검사는 원래 고객 사이트를 재현한 검사가 아니다.

독자는 이 모듈을 복사해 자신의 자료 구조를 명시적으로 연결할 수 있다. 상태 이름을 바꾸거나 다른 조건을 붙이려면 어떤 책임이 더 생기는지 먼저 정한다. 이 글에서 얻어갈 핵심은 메뉴를 적게 만드는 방법보다, 화면을 숨겨도 아직 확인할 일을 잃지 않는 방법이다. 그 기록이 있어야 다음 작업자와 다른 컴퓨터에서도 같은 판단을 이어갈 수 있다.