판례(Case Law)로 예외 처리 설계하기 — CanonCode에서 배운 패턴

코드에서 가장 무서운 건 catch 블록 안에 숨어있는 비즈니스 결정이다. “왜 여기서 422를 반환하지? 500이 아니라?” — 이유를 알려면 git blame → PR → 슬랙 스레드를 거슬러 올라가야 한다. 3개월 전 코드면 작성자 본인도 기억 못 한다. CanonCode의 판례(Case Law) 시스템은 이 문제를 정면으로 해결한다. 모든 예외 처리의 “왜"를 구조화된 형식으로 기록하는 것이다. 법원이 판례를 남기듯. 이 글에서는 LaunchCrew 프로젝트에서 작성한 6가지 판례와, 각각이 실제 코드에 어떻게 반영됐는지를 정리한다. 판례가 왜 필요한가 예외 처리 코드에는 3가지 정보가 필요하다: ...

2026-03-21 00:00 · 6분 소요 · Seunghan

코드 2,800줄을 명세 160줄로 — CanonCode로 실제 프로젝트를 변환해본 결과

코드가 커질수록 “이 기능이 왜 이렇게 동작하지?“를 알려면 파일 5개를 열어봐야 한다. 설계 문서는 3개월 전에 작성된 채로 방치되어 있고, 실제 코드와 일치하는지 아무도 모른다. 주석은 낡았고, 슬랙 스레드는 지워졌으며, 원래 기획자는 퇴사했다. 만약 설계 문서 자체가 실행 가능하고, 코드 대신 그 문서를 유지보수한다면? CanonCode라는 사이드 프로젝트에서 이 아이디어를 실험해봤다. 실제 프로덕션 수준 프로젝트에 적용한 결과와, 그 과정에서 마주친 현실적인 문제들을 기록한다. 아이디어: 법률 체계로 소프트웨어를 거버넌스한다 법률 시스템에서 영감을 받았다: ...

2026-03-18 00:00 · 6분 소요 · Seunghan
개인정보처리방침 이용약관 면책조항 문의