사용 시나리오
네 사람이 하나의 방문을 각자의 자리에서 겪는 사흘입니다. 지금 동작하는 화면과 경로를 그대로 따라갑니다. 무엇을 어떻게 하는지 찾아보시려면 매뉴얼을, 같은 흐름을 실제 화면으로 넘겨 보시려면 둘러보기를 보세요.
배경
고객사 오이사공, 사업장 판교 R&D센터, 방문 유형 협력사 작업. 호스트 1단계 승인, 승인 처리 기한 24시간(초과하면 대체 승인자에게 이관), 증표는 QR, 전자서명 요구, 동반자는 각자 등록(상한 4명), 최대 체류시간 8시간, 방문 2시간 전 안내, 일정 변경 2회·전날 18시 마감, 보안요원 운영.
김서연고객사 관리자
설정과 양식, 계정을 맡는다. 입·퇴실 단추는 그의 화면에 없다.
정민아 책임호스트
박지훈을 부르고 승인한다. 다음 날 오전에는 출장이 잡혀 있다.
박지훈방문자
협력사 엔지니어. 두 번째 방문이라 이전 정보를 불러 쓴다. 동료 두 명과 함께 간다.
오세훈보안요원
판교 R&D센터 입구 담당. 태블릿 한 대로 하루를 돈다.
8/24 관리자가 설정을 손본다 → 8/25 호스트가 부르고 방문자가 신청하고 승인이 난다 → 8/26 현장에서 입실하고 퇴실한다.
사흘의 흐름 한눈에 보기
8/24 (월) · 고객사 관리자 김서연
판을 깔다
이번 분기부터 협력사 작업 방문이 늘었다. 승인이 며칠씩 묵는 일이 있어 기한을 걸고, 반입 장비를 미리 받아 두기로 한다. 여기서 정해 두는 값이 나머지 세 사람의 화면을 결정한다.
1방문 유형 설정을 손본다/admin/settings
이때 시스템이 하는 일
- 바뀐 값은 이후 접수되는 신청부터 적용된다. 이미 들어와 있는 건의 규칙은 그대로다.
- 누가 무엇을 바꿨는지 감사 기록에 남는다.
2신청서에 「반입 장비」 칸을 만든다/admin/forms
이때 시스템이 하는 일
- 이전 양식 버전은 내려가고, 이미 접수된 신청은 제출 당시 양식을 그대로 가리킨다.
- 새 칸은 그 뒤로 열리는 신청 화면에 바로 나타난다.
3보안서약 문구를 새 버전으로 올린다/admin/consents
이때 시스템이 하는 일
- 게시본을 고치면 v2가 새로 생기고 v1은 내려간다. 이미 받아 둔 서명은 v1을 그대로 가리킨다.
- 서명 기록에는 그때 문구의 원문 해시가 함께 박혀 있어, 나중에 문구가 바뀌어도 무엇에 서명했는지가 남는다.
4새 보안요원 계정을 만든다/admin/accounts
이때 시스템이 하는 일
- 초대 메일이 나가고 링크는 72시간 유효하다. 비밀번호는 본인이 정한다.
- 담당 사업장이 없으면 입구 화면 자체가 열리지 않는다.
5사흘 뒤, 방문 당일 아침/admin
8/25 (화) · 호스트 정민아 책임
부르고, 승인하고, 자리를 비우다
내일 설비 점검이 잡혀 있다. 협력사 엔지니어를 부르고, 신청이 오면 승인하고, 다음 날 오전 출장에 대비해 대리 승인자를 세워 둔다.
1초대 링크를 만들어 보낸다/host/invite
이때 시스템이 하는 일
- 링크에 호스트가 박혀 있어, 방문자는 호스트 코드를 묻지 않고 바로 신청서를 연다.
- 토큰은 해시로만 저장된다. 회수하면 그 링크는 즉시 닫힌다.
2승인 요청이 온다/host
이때 시스템이 하는 일
- 승인 요청 메일이 나가고, 그 순간부터 24시간 기한이 돌기 시작한다.
3첨부를 열어 보고 승인한다/host/[id]
이때 시스템이 하는 일
- 마지막 승인 단계가 끝나므로 방문증(QR)이 발급되고 방문자에게 메일이 나간다.
- 두 사람이 동시에 눌러도 한 번만 반영되고, 나중 사람에게는 이미 처리되었다고 알려 준다.
4내일 오전 출장에 대비한다/host
이때 시스템이 하는 일
- 부재 기간에 새로 접수되는 방문의 승인 요청이 대리 승인자에게 간다. 이미 접수된 건은 그대로 내 목록에 남는다.
- 방문 건의 호스트 표기는 바뀌지 않는다. 바뀌는 것은 승인 단계의 담당자뿐이다.
8/25 (화) · 방문자 박지훈
계정 없이, 링크 하나로
문자로 받은 링크를 연다. 5월에도 같은 곳을 다녀갔고 그때 재사용 비밀번호를 정해 뒀다. 이번에는 동료 두 명과 함께 간다.
1링크를 열자 신청서가 바로 열린다/apply/[token]
2이전 정보를 불러온다
이때 시스템이 하는 일
- 불러오는 값은 이름·휴대전화·소속 셋뿐이다. 방문 일시와 목적은 매번 달라지므로 불러오지 않는다.
- 비밀번호를 5회 틀리면 30분 잠긴다. 등록되지 않은 주소를 넣어도 같은 안내가 나와, 이 화면으로 남의 방문 여부를 알아낼 수 없다.
3신청서를 채운다
이때 시스템이 하는 일
- 작성 중인 내용은 이 브라우저에만 24시간 남는다. 서버로는 아무것도 가지 않는다.
- 동의 체크와 서명, 첨부는 되살리지 않는다 — 확인했다는 기록의 근거가 흐려지지 않게.
4동료 두 명을 적고 제출한다
이때 시스템이 하는 일
- 동반자마다 독립된 등록 링크가 만들어진다. 이메일을 적은 사람에게는 시스템이 메일을 보낸다.
- 동반자의 연락처는 그 사람이 등록을 마치면 그 자리에서 파기된다.
5승인 메일과 방문증/pass/[token]
이때 시스템이 하는 일
- 증표는 발급된 값이 서버에 저장되어 대조된다. 취소·반려·일정 변경이 생기면 그 자리에서 무효가 된다.
6전날 저녁, 확인해 본다/status
7당일 정오, 안내 메일
8/26 (수) · 보안요원 오세훈
입구에서
태블릿 한 대로 하루를 돈다. 오늘 이 사업장의 방문 건만 보이고, 다른 사업장 건은 검색해도 나오지 않는다.
1출근해서 로그인한다/guard/login
이때 시스템이 하는 일
- 입구 계정은 15분 조작이 없으면 자동 로그아웃된다. 로그아웃하면 단말에 담아 둔 방문자 정보도 함께 지워진다.
2오늘 목록을 훑는다/gate
314시, 박지훈이 도착한다/gate/[id]
이때 시스템이 하는 일
- 남은 확인 항목이 하나라도 있으면 입실 처리가 되지 않는다.
- 입실 시각과 처리한 사람이 현장 기록에 남는다.
4동료 한 명의 QR이 읽히지 않는다
518시 30분, 미퇴실 묶음이 붉게 뜬다/gate
이때 시스템이 하는 일
- 종료 예정 + 사업장 유예시간이 지나면 미퇴실로 계산된다. 미퇴실은 따로 저장되는 상태가 아니라 그때그때 계산되는 조건이다.
- 자동 종료와 관리자 종료는 퇴실이 아니어서 퇴실 시각을 만들지 않는다.
6근무를 마치며 로그아웃한다
변형 · 네 가지
잘 안 풀리는 날
위 이야기는 순조롭게 흘러간 하루입니다. 실제로 자주 생기는 네 가지 어긋남을, 관련된 두 사람의 시점을 오가며 봅니다.
1예약 없이 온 사람/gate/new
정민아 — 승인 요청 메일을 받고 바로 승인한다. 오세훈이 화면을 새로고침하니 입실 처리 단추가 살아난다.
이때 시스템이 하는 일
- 현장 등록도 방문자가 낸 신청과 같은 경로를 탄다. 등록만으로는 입실되지 않는다.
- 중복을 넘긴 사실은 사유와 함께 기록에 남는다.
2신분증을 두고 왔다/admin/exceptions
김서연 — 예외 요청 화면에서 사유를 보고 허용한다. 나중에 통계 탭을 열어 보니 "신분증 미소지"가 이번 달에만 아홉 번이다. 같은 사유가 묶여 보이니 정책을 손볼 자리라는 게 드러난다.
이때 시스템이 하는 일
- 허용된 항목은 체크 없이 통과하고, 요청 사유와 처리 사유가 모두 기록에 남는다.
3전날 저녁, 일정이 밀렸다/status/reschedule/[id]
정민아 — 변경 전 일시가 취소선으로, 변경 후가 굵게 표시된 화면에서 승인한다. 곧바로 세 사람에게 새 방문증이 나가고, 함께 갈 수 없게 된 한 명은 안내 메일에서 묶음에서 빠지기를 골라 자기 일정만 남긴다.
이때 시스템이 하는 일
- 요청만으로는 아무것도 바뀌지 않는다 — 일시도 상태도 증표도 그대로다.
- 실제로 옮겨지면 승인대기로 돌아가고 이전 증표는 무효가 된다. 재승인은 새 회차로 남아 이력이 지워지지 않는다.
4입구 인터넷이 끊겼다/gate
이때 시스템이 하는 일
- 단말에는 최소 정보만 담긴다 — 연락처는 뒷 4자리뿐이고 이메일과 전체 번호는 없다.
- 연결이 돌아오면 서버가 차단 항목을 다시 판정한다. 오프라인이라고 봐주지 않는다.
인물과 고객사는 설명을 위해 지어낸 것입니다. 설정값(승인 기한·증표·체류시간 등)은 고객사와 사업장마다 다르게 정할 수 있습니다. 매뉴얼