개발 기록
Leva를 만들며 실제로 부딪힌 문제와 그 해결 과정을 기록합니다. 전부 겪은 일이고, 숫자는 실측값입니다.
-
통과하는 테스트와 검사하는 테스트는 다르다
가드를 만들고 통과를 확인했다. 그런데 통과했다는 사실만으로는 그게 무언가를 검사한다는 증거가 되지 않는다.
-
오지 않던 확인 메일, 그리고 원인을 감춘 내 코드
발송 코드가 아예 없었는데 화면은 "발송했다"고 말했다. 고친 뒤에도 실패했는데, 원인을 못 찾게 만든 건 내가 쓴 catch였다.
-
한 사이트에서 URL 규칙이 서로 반대로 적용되고 있었다
파일은 확장자를 떼고, 디렉터리는 슬래시를 붙인다. 그래서 canonical이 리다이렉트되는 주소를 가리키고 있었다.
-
빈 응답을 성공으로 보고하던 함수
기록되지 않은 신청이 사용자에게는 성공 화면으로 보였다. 한 줄짜리 폴백이 만든 조용한 유실.
-
Cloudflare에 API로 존을 만들면 DNS 레코드를 하나도 안 가져온다
대시보드 온보딩과 달리 자동 스캔이 없다. 모르고 네임서버를 바꿨다면 메일이 즉시 죽었다.
-
이모지 하나가 문서 562개를 깨뜨렸다
UTF-16 서로게이트 쌍을 코드유닛 인덱스로 자르면, 예외는 읽기가 아니라 쓰기에서 터진다.
-
테스트가 green인데 화면은 비어 있었다
신규 사용자에겐 값이 전부 0이라 막대 높이가 0이었다. 테스트는 그 0을 정확히 검증하고 통과했다.
-
배포 직후의 측정은 믿을 수 없다
엣지가 경로별로 옛 버전과 새 버전을 섞어 응답했다. 한 번 재고 판단했다면 두 번 오판할 뻔했다.
-
우리 앱은 심사가 평가할 공개 콘텐츠를 보여주지 못했다
캔버스에 그린 글자는 HTML 본문이 아니다. 그래서 심사에 낼 것이 없었다.