← 01 THINK어떻게 생각하는가
검사기 여섯 개가 전부 초록불인데 세 군데가 깨져 있었다
검사기는 틀리지 않았습니다. 자기가 묻는 질문에만 답했을 뿐이고, 그 질문에 없던 것들이 깨졌습니다.
이 쪽은 원문을 쉬운 말로 다시 쓴 판입니다. 저자가 쓴 문장은 원문 쪽에 있습니다. 이 판의 문장은 사람이 쓰지 않았습니다.
이 글은 AI와 함께 작업한 한 번의 기록입니다. 아래 숫자는 전부 이 저장소에서 확인할 수 있습니다.
이 사이트에는 자동 검사기가 여섯 개 있습니다. 색이 잘 보이는지, 글 규칙이 맞는지, 꾸미기 순서가 맞는지, 움직임이 안전한지, 페이지가 너무 무겁지 않은지, 공개해도 되는 상태인지를 각각 검사합니다.
한 번의 작업에서 여러 언어 지원과 새 효과 여러 개를 넣었습니다. 여섯 개가 전부 초록불인 상태로 세 가지가 깨져 있었습니다.
1. 링크 공유용 그림이 전부 사라졌다
주소를 메신저에 붙이면 미리보기 그림이 뜹니다. 그게 모든 페이지에서 사라졌습니다.
그 그림은 파일을 정해진 자리에 두면 자동으로 붙는 방식입니다. 그런데 페이지가 자기 제목과 설명을 직접 정하면, 그림 설정까지 통째로 덮어써 버립니다.
첫 화면만 살아 있었습니다. 첫 화면만 제목을 직접 정하지 않았기 때문입니다.
에러도 경고도 없었습니다. 공유되는 모든 링크에서 그림이 빠져 있었습니다.
어느 검사기도 이걸 잡을 수 없었습니다. 공개 검사기는 제목과 설명은 확인하지만 미리보기 그림은 확인 목록에 없었습니다. 목록에 없는 것은 검사되지 않습니다.
2. 첫 화면 큰 제목이 안 보였다
주황색 띠가 글자 모양을 지나가는 효과를 넣었습니다. 이 효과는 글자를 투명하게 만들고, 그 자리로 뒤의 배경이 비쳐 보이게 하는 방식입니다.
같은 작업에서 줄마다 다른 박자로 나타나게 하려고 각 줄을 상자로 한 번 더 감쌌습니다. 그런데 그 상자는 투명한 글자색은 물려받고, 배경은 물려받지 못합니다. 비쳐 보일 배경이 없으니 아무것도 안 보였습니다.
여기서 중요한 건 검사기가 틀리지 않았다는 점입니다.
움직임 검사기가 묻는 질문은 "이 효과가 안전하게 막혀 있는가"입니다. 효과는 올바르게 막혀 있었습니다. 결과가 눈에 보이는지는 묻지 않습니다.
색 검사기도 마찬가지입니다. 정해 둔 색표를 재는 도구이지, 투명해진 글자는 검사 범위 밖입니다.
둘 다 자기가 약속한 일을 정확히 했습니다.
3. 그래프 막대를 누르면 없는 페이지로 갔다
기록을 막대로 보여 주는 화면이 있고, 막대를 누르면 그 글로 가야 합니다. 주소를 만드는 코드가 옛날 주소 모양으로 만들고 있었습니다.
그림은 제대로 그려졌고 데이터도 맞았습니다. 깨진 것은 방문자가 그 안에서 하는 단 하나의 동작이었습니다. 페이지에는 틀린 게 없었고 그다음에 일어나는 일만 틀렸습니다.
검사기 자신이 낡은 답을 하고 있었다
주소 구조를 바꾸면서 검사기 세 개가 조용히 망가졌고, 그중 하나는 적극적으로 틀린 답을 하고 있었습니다 — "미리보기 그림이 하나도 없다"고 보고했는데, 사실은 모든 페이지에 있었습니다.
틀린 경고는 없는 경고보다 나쁩니다. 다음에 같은 자리에서 진짜 경고가 나와도 무시하게 되기 때문입니다.
셋 다 손으로 적어 둔 경로를 직접 찾아내는 방식으로 바꿔서 고쳤습니다. 손으로 적은 경로는 결국 낡습니다.
반대로 검사기가 저를 잡은 적도 있다
같은 작업에서 세 번 막혔고, 세 번 다 검사기가 맞았습니다. 막혔던 코드는 애초에 없어도 되는 코드였거나, 다르게 써야 하는 코드였습니다.
그리고 제가 검사기를 무시했다
한 번은 검사가 이미 실패했는데 그대로 올렸습니다.
검사를 실행한 명령이 결과 화면을 몇 개 단어로만 훑어보고, 성공했는지 실패했는지는 안 보고 다음 단계로 넘어갔기 때문입니다. 걸러지지 않은 에러 줄이 그냥 화면 위로 지나갔습니다.
검사기가 실패했는데 통과한 것처럼 넘어가는 것이, 검사기가 아예 없는 것보다 나쁩니다. 없으면 손으로 확인하는데, 있으면 확인했다고 믿어 버립니다.
남는 것
세 가지 문제는 전부 다르게 발견됐습니다.
- 공유 그림 — 직접 표를 만들어 재다가
- 큰 제목 — 사이트를 쓰는 사람이 보고
- 막대 클릭 — 사이트를 쓰는 사람이 눌러 보고
셋 다 검사기가 잡을 수 있는 종류가 아니었습니다. 검사기는 자기가 묻는 질문에만 답합니다.
그래서 한 줄을 더 얻었습니다 —
검사기가 통과했다는 것은 그 검사기가 묻는 질문의 답일 뿐이고, 그 질문이 무엇인지는 검사기 밖에서 관리해야 한다.
이번에 새로 넣은 검사들은 전부 일부러 틀리게 만들어 보고, 실제로 걸리는지 확인한 다음에 남겼습니다. 통과만 확인한 검사는 여전히 아무것도 보장하지 않습니다.