- 발행일
이동하는 자리라면 링크여야 한다
권한 그룹 편집 화면의 라벨이 하이퍼링크로 읽힌다는 제보에서 시작했습니다. 범인은 도움말이 달린 라벨 전부에 실선 밑줄을 주던 CSS 한 줄이었어요. 밑줄을 떼는 김에 반대 방향도 찾았습니다 — 링크처럼 생겼는데 링크가 아니라서 새 탭도 키보드 포커스도 죽어 있던 자리들이요. 이튿날에는 같은 화면들의 표 정렬을 잡으면서, 정렬을 정하는 건 값의 가짓수가 아니라 값의 성격이라는 규칙을 문서에 박았습니다.
권한 그룹 편집 화면의 라벨이 하이퍼링크로 읽힌다는 제보에서 시작했습니다. 범인은 도움말이 달린 라벨 전부에 실선 밑줄을 주던 CSS 한 줄이었어요. 밑줄을 떼는 김에 반대 방향도 찾았습니다 — 링크처럼 생겼는데 링크가 아니라서 새 탭도 키보드 포커스도 죽어 있던 자리들이요. 이튿날에는 같은 화면들의 표 정렬을 잡으면서, 정렬을 정하는 건 값의 가짓수가 아니라 값의 성격이라는 규칙을 문서에 박았습니다.
역할 배정 상세 화면에 2026-09-09 16:47:55.613497+00:00 이 그대로 찍혀 있었습니다. 반대로 설문 관리 화면은 제출일시를 서버 포맷으로 옮기자마자 9시간 앞선 값을 보여 줬어요. 증상이 반대인데 원인은 하나였습니다. 시간대를 서버가 바꾸는지 브라우저가 바꾸는지가 화면마다 달랐거든요. TIME_ZONE을 KST로 옮기고 화면 변환 경로를 전부 지운 뒤 표기를 두 형식으로 통일했습니다. 한 시간짜리 작업이었는데, 이 선택지는 11개월 전 글이 "검토하지 않았다"고 적어 둔 것이었습니다.
표준데이터 신청서는 메시지 한 건을 반드시 써야 제출됐습니다. 엘리먼트만, 프레임만 내는 신청도 있어서 조건을 "셋 중 최소 한 건"으로 풀었어요. 판정은 팀원이 한 입구로 묶어 둔 함수 안의 조건만 바꾸면 됐는데, 정작 어려웠던 건 안내를 어디에 두느냐였습니다. 조건이 세 단계를 가로지르는데 안내는 한 단계 조각 안에 있어서 다른 단계에서 항목을 넣어도 낡은 채 남았거든요. 그리고 같은 규칙을 말하는 자리가 네 곳이었는데, 한 곳이 75분 늦게 따라왔습니다.
이용안내는 화면 캡처 수십 장으로 설명하는 문서라, 화면을 고칠 때마다 통째로 낡습니다. 9월에 두 번, 이용안내만 34장을 다시 찍었어요. 촬영은 Playwright 스펙이 대신 하지만 자동화되는 건 셔터뿐이고 무엇을 찍을지·무엇이 찍히면 안 되는지는 사람이 정해야 했습니다. 사용자 안내에 싣는 역할을 넷으로 줄인 기준, 디버그 툴바가 그림에 찍힌 사고, 앞 촬영이 남긴 데이터가 다음 캡처를 오염시킨 일을 정리합니다.
심사 진행 띠의 "제출" 칸에 데이터 스튜어드가 적혀 있었습니다. 제출하는 사람은 신청자인데요. 칩을 그 단계로 들어오는 전이의 역할로 바꿨는데, 두 시간 뒤 팀원이 반대 방향으로 되돌렸습니다. 둘 다 맞는 읽기였고, 화면이 그 뜻을 말하지 않은 게 진짜 문제였어요. 결론을 낸 건 코드가 아니라 칸에 한 줄 더 붙인 설명과 회귀 테스트였습니다.