Claude Code에 SOLID 원칙 가르치되 과설계는 막는 스킬 'solidifier'

Claude Code가 멀쩡히 작동하는 코드를 리팩터링하면서, 문법적으로는 맞지만 오히려 수정하기 어려운 구조로 바꿔버리는 문제가 자주 발생했다. 예를 들어 구현체가 하나뿐인데도 인터페이스를 만들거나, 생성자 하나를 감싸는 팩토리 패턴을 적용하거나, 실제로 풀어야 할 문제가 없는데도 을 끼워 넣는 식이다. 이를 해결하기 위해 'solidifier'라는 스킬을 만들었는데, 을 적용하도록 지시하면서도 과설계(over-ering) 자체를 하나의 결함으로 취급하게 만드는 것이 핵심이다.

가장 어려웠던 부분은 두 목표 사이의 긴장 관계였다. SOLID를 적용하라고 하면 에이전트는 추상화를 최대한 늘리려 하고, 과설계를 피하라고 하면 실제 SOLID 위반 사항까지 무시해버린다. 이 스킬은 '절제'를 통해 이 문제를 해결한다.

기본 지침은 SOLID는 목적이 아니라 도구라는 것이며, 모든 추상화는 현재 존재하는 구체적 문제에 대한 근거가 있어야 하고 '미래의 유연성'은 근거로 인정하지 않는다. 판단이 애매한 경우에는 스스로 결정하지 않고 사용자에게 물어보도록 설계했다. 엄격도는 4단계로 나뉜다: y(코드 수정 없이 검토만), conservative(기본값, 명백한 위반만 수정), (실제로 마찰을 일으키는 곳에 SOLID 적용), thorough(포괄적 리팩터링).

핵심 포인트

  • Claude Code가 멀쩡한 코드를 문법적으로만 맞고 유지보수는 더 어려운 구조로 바꾸는 문제를 해결하려는 스킬
  • 핵심 원칙: 모든 추상화는 현재의 구체적 문제에 근거해야 하며 '미래 유연성'은 근거로 인정 안 함
  • 판단이 애매하면 임의로 결정하지 않고 사용자에게 질문하도록 설계
  • 엄격도 4단계: y(검토만) → conservative(기본값) → → thorough(전체 리팩터링)
원문 보기