글 목록

AI 코딩을 위한 3가지 규칙, AI Slop 방지하기

AI Slop, 쉬운길을 어렵게 돌아가고 거짓 완료를 보고하고 더 어렵게 설명하는 것을 이제 멈추세요. 당신이 AI를 활용하여 코딩할때 반드시 사용해야하는 3가지 규칙

목차

    요즘 많은 사람들이 코딩은 대부분 Claude Code나 Codex 등을 이용해서 진행하죠? 찾고, 고치고, 테스트하고, 커밋하고 배포하고. 편하긴 하지만 가장 큰 문제가 아무래도 AI 슬롭 아닐까요?? 일단 동작은 하지만 어떻게 동작하는지 모르고 불필요한 코드가 너무나 많이 쌓이는 현상. 또는 간단한걸 어렵게 돌아가는 문제 등 말이죠.

    또, 완료했다고 보고하지만 실제로 완료가 되지 않은 경우도 허다하죠. 결국 내가 다시 확인해보고 읽어보고 고치고 있어야하는 문제가 생기기 마련입니다. 그렇다면 이런 현상을 줄이려면 어떻게 해야할까요?

    AI 코딩을 위해 꼭 해야하는 3가지 규칙

    간단하게 설명해봅시다. 자 에이전트 한테 릴리즈 올렸어? 라고 질문했다고 가정합니다. 그러면 에이전트는 이렇게 답하겠죠.

    "네, 릴리스 과정에 대해 말씀드리겠습니다. 먼저 태그를 만들고 원격 저장소에 푸시했습니다. 그러면 GitHub Actions의 Release 워크플로가 실행되는데, Windows 작업과 Android 작업으로 나뉘어 있고, Android 작업은 서명 키를 복원한 뒤 APK를 빌드하고 서명을 검사합니다. 확인해 보니 워크플로가 성공적으로 끝났고, 릴리스 페이지에 파일이 올라간 것으로 보입니다. 더 궁금하신 점이 있으면 말씀해 주세요!"

    틀린 말은 없겠죠. 하지만 간단한 이야기 조차 너무 과하게 설명하는 경향이 있습니다. 이러면 내가 어느 순간부터 내용을 잘 안읽게 됩니다.

    Attention-span

    어텐션 스팬은 이것을 위한 규칙입니다. 결론을 첫 문장에 쓰게하고, 필요한 만큼만 쓰고 과하게 설명하지 않으며 그렇다고 경고 등을 줄이지 않습니다. 이때 자세히 더 설명해줘 라고 하면 원래 처럼 더 상세히 설명해줍니다.

    규칙을 넣고 나서 같은 질문에 온 답입니다.

    방금 다시 확인했는데 v1.6.0이 최신 릴리스이고, 정식 공개 상태예요.

    첫 줄에서 끝납니다. 제일 좋았던 건 "짧게"보다 "경고는 안 뺀다"는 부분입니다. 짧게만 쓰라고 하면 에이전트가 진짜로 중요한 걸 빼먹는데, 이 규칙을 쓰면 이 문제를 해소할 수 있게되는 것이죠.

    설치하기

    alexgreensh/attention-span: Make your agents talk human. ADHD-friendly output s…

    "됐습니다"를 못 믿겠다

    이게 제일 컸습니다.

    에이전트가 "고쳤습니다, 테스트도 통과할 거예요"라고 말하면 믿고 다음 일로 넘어가는 경우가 많죠. 그런데 나중에 보니 테스트를 안 돌렸거나, 일부만 돌렸거나, 아까 돌린 결과를 지금 결과처럼 말한 경우가 꽤 있었습니다. 하위 에이전트에게 일을 나눠 주었을 때는 더 심했습니다. 하위 에이전트가 "성공"이라고 하면 그대로 전달하니까요.

    verification-before-completion은 이걸 막습니다. 방금 새로 확인한 증거가 없으면 완료라고 말하지 않는다.

    "완료"라고 말하기 전에 그 증명을 다시 실행하고, 출력, 종료 코드, 실패 횟수를 모두 확인한 뒤에야 말하도록 합니다. "아마"나 "될 것 같습니다"는 증거로 인정하지 않습니다. 하위 에이전트의 보고도 신뢰하지 않고 직접 재실행합니다. 커밋이나 푸시, 릴리스 전에도 마찬가지입니다. 확인하지 못한 것은 확인하지 못했다고 명확히 말하게 하는 거죠.

    규칙을 넣은 뒤로 보고가 이렇게 바뀌었습니다.

    테스트 117개 통과(방금 실행, 실패 0), 빌드한 실행 파일로 실제 전송 테스트 통과, GitHub 빌드 3개 작업 모두 성공. 다만 탐색기 메뉴는 설치본에서 아직 눌러 보지 못했어요.

    superpower 스킬안에 들어있는 md인데 그냥 가져다 쓰세요 이것만.

    superpowers/skills/verification-before-completion/SKILL.md at main · obra/super…

    뭔가 묘하게 지저분하고 보기 싫은 코드

    slop은 대충 만든 티가 나는 결과물을 말합니다. AI가 쓴 코드를 보다 보면 돌아가기는 하는데 어딘가 찜찜한 패턴이 계속 나옵니다. anti-slop은 TypeScript·JavaScript에서 그런 패턴을 막는 규칙 묶음입니다.

    test.ts
    const names = users.filter((u) => u.active).map((u) => u.name);
    
    // 이렇게 쓰게 합니다
    const names: string[] = [];
    
    for (const u of users) {
      if (u.active) names.push(u.name);
    }

    dmmulroy/anti-slop: Opinionated Oxlint rules for rejecting low-evidence TypeScr…

    설치법

    Claude Code는 ~/.claude/CLAUDE.md에 verification-before-completion이랑 anti-slop을 적고, attention-span은 출력 스타일로 켰습니다. Codex는 ~/.codex/AGENTS.md 하나에 세 개를 다 넣었습니다. 두 도구에 같은 걸 넣어 두니 어느 쪽을 써도 비슷하게 일합니다.

    사용 후기

    이걸 한다고 AI가 더 똑똑해져서 더 멋진 작업물을 만들지는 않습니다. 다만 내가 검토해야하는 부분이 줄어든다는 겁니다. 그렇다고 이 역시 100% 정확한건 아니니 꼭 코드 리뷰는 해보시길 바랍니다.

    댓글 2

    1. 댓글을 불러오는 중이에요.