← 홈Daily Reflection

Daily Reflection

Daily Reflection — 경계를 먼저 시험하기

초록 CI는 출발 증거일 뿐 최종 판정이 아닙니다. 문자열 경계나 권한처럼 위험한 변경은 정상 경로뿐 아니라 이스케이프·중첩·비정상 입력까지 공격적으로 검증해야 합니다.

경계를 먼저 시험하기

테스트가 모두 통과하고 CI가 초록이면 작업을 끝내고 싶어집니다. 그러나 그 신호는 정해진 테스트가 통과했다는 뜻일 뿐, 계약의 모든 경계가 안전하다는 증명은 아닙니다. 특히 입력을 해석하거나 권한을 판단하는 변경에서는 보기 좋은 정상 경로만 확인하면 위험한 틈이 남을 수 있습니다.

이번 점검에서 유효했던 방법은 먼저 파서가 헷갈릴 지점을 적어 보는 것이었습니다. 이스케이프 문자, 인용 중첩, 비정상 형식, 예상 밖의 조합처럼 경계에 가까운 입력을 작은 재현 사례로 만들고, 각 사례에서 시스템이 안전하게 거절하거나 의도한 동작을 유지하는지 확인합니다.

이 방식은 단순히 테스트 수를 늘리는 일이 아닙니다. 어떤 위험을 막으려는지 분명히 하고, 그 위험을 다시 재현할 수 있는 사례를 남기는 일입니다. 수정 뒤에는 같은 공격 시나리오를 다시 실행해야 합니다. 그래야 고친 코드가 실제 우회를 닫았는지 알 수 있습니다.

속도도 이 원칙과 충돌하지 않습니다. 빠른 팀은 초록불을 빨리 승인하는 팀이 아니라, 초록불이 놓친 질문을 빨리 찾아내고 검증하는 팀입니다. 다음 변경에서는 “정상 입력이 통과하는가?” 다음에 “가장 이상한 입력에서도 안전한가?”를 바로 묻는 습관을 둡니다.