01-슬롭-PR-실패-사례
예시 01 — 슬롭 PR이 머지된 후 무슨 일이 벌어졌는가
섹션 제목: “예시 01 — 슬롭 PR이 머지된 후 무슨 일이 벌어졌는가”상황(가상이지만 전형적)
섹션 제목: “상황(가상이지만 전형적)”한 팀이 LLM이 작성한 PR을 그대로 머지한다. 제목은 다음과 같다.
feat: comprehensively refactor authentication module with robust error handlingPR 설명에는 12개의 불릿이 있고, 각 불릿이 “Improved X by leveraging Y”의 형태다. 변경 파일 14개. 테스트 23개 추가. 모두 통과.
무슨 일이 일어났는가
섹션 제목: “무슨 일이 일어났는가”머지 1주일 후, 인증 우회 버그가 보고된다. 추적해 보니:
validatePassword라는 새 함수가 추가되었다 — 이름은 검증인데, 실제로는password.length > 0만 확인한다. 시그니처 #1(이름–행위 불일치).- 23개 테스트 중 19개는
assert result is not None형태였다. 시그니처 #5(의미 없는 테스트). - PR 설명의 12 불릿 중 4개는 코드에 존재하지 않는 변경을 묘사했다. LLM이 PR 설명을 쓰면서 환각한 것. 시그니처 #3(출처 없는 단정).
진단 점수
섹션 제목: “진단 점수”5분 진단을 돌리면: 출처 1점 + 이름-행위 1점 + 불릿 1점 + 테스트 1점 + 자기 칭찬 1점 = 5점/5점. 압도적 슬롭.
- 머지 전에 5분 진단을 했다면 막을 수 있었다.
- LLM이 만든 PR 설명을 그대로 신뢰하지 말 것. PR 설명도 생성된 텍스트 다.
- “테스트 23개 추가”는 신호가 아니다. 의미 있는 테스트 1개 가 신호다.
- DataTalks.Club 사례 — 슬롭과 권한 사고가 결합된 실제 케이스.