이 Rubber Duck은 디버깅하지 않는다 — 비난한다
Source: Dev.to
개요
Rubber Roast — VS Code 확장 프로그램으로, 당신의 고무 오리를 판단적인 코드 비평가로 바꿔줍니다. CS50의 고무‑오리 디버깅에서 영감을 얻은 이 오리는 단순히 듣는 것을 넘어 코드를 읽고, 냄새를 찾아내며, 그에 대해 비꼬아 줍니다.
파일을 저장할 때마다 Rubber Roast는 코드 냄새를 스캔하고, 문제 라인 바로 옆에 풍자적인 인라인 주석을 달아줍니다:
- 하드코딩된 API 키? “이 자격 증명은 잠수함의 스크린 도어만큼 안전합니다.”
- 빈
catch(e) {}? “포켓몬 예외 처리: 모두 잡아야 해… 그리고 모두 무시해.” console.log문이 47개? “이건 프로그램이 아니라 콘솔.log 배달 시스템이야.”- 3 년 전 TODO 주석? “이 TODO는 47번의 스프린트와 3명의 프로젝트 매니저를 거쳤어.”
각 풍자는 심각도에 따라 색상이 지정됩니다—연한 초록색은 가벼운, 노란색은 중간, 핑크색은 매운—그리고 오리 이모지가 포함돼 누가 당신을 평가하고 있는지 바로 알 수 있습니다.
두 가지 로스트 엔진이 포함됩니다:
- 템플릿 모드 (무료) – 수백 개의 사나운 한 줄짜리 문구, API 호출 없이 사용 가능.
- LM 모드 – VS Code의 Language Model API를 활용해 AI 코파일럿도 당신을 비꼴 수 있게 합니다.
Rubber Roast는 내장된 정규식으로 7가지 유형의 코드 냄새를 감지합니다 (TODO/HACK, 빈 catch, 주석 처리된 코드, console.log 스팸, 하드코딩된 비밀, 긴 함수, 반복되는 매직 문자열) 외에도 린터와 언어 서버가 이미 표시하는 모든 문제(타입 오류, 사용되지 않은 변수, 폐기된 API, 린트 위반 등)를 포착합니다. 농담 뒤에는 실제 코드‑냄새 탐지기가 숨어 있습니다.
Features
- Inline roast comments – 문제 있는 라인 옆에 이탤릭 주석 형태로 풍자적인 한 줄 코멘트가 표시되며, 심각도에 따라 색상으로 구분됩니다 (약함/보통/매운).
- Two roast engines – 무료 템플릿 기반 로스트와 VS Code Language Model API를 통한 AI 생성 로스트 (Copilot 등 필요).
- Auto‑roast – 파일 저장, 파일 전환, 진단 업데이트 시 자동으로 실행됩니다.
무엇이 로스팅되는가
Rubber Roast는 두 가지 소스에서 코드 냄새를 감지합니다:
내장 정규식 규칙 (린터 불필요)
| 냄새 | 감지 내용 |
|---|---|
| TODO/HACK 주석 | // TODO, // FIXME, // HACK, // WORKAROUND 등 |
| 빈 catch 블록 | catch(e) {} – 오류를 조용히 무시함 |
| 주석 처리된 코드 | 연속된 3줄 이상의 주석 처리된 코드 |
| 하드코딩된 비밀 | API 키, 토큰, 고엔트로피 문자열 등 |
| 콘솔 스팸 | 과도한 console.log 문 |
| 긴 함수 | 설정 가능한 라인 수를 초과하는 함수 |
| 반복되는 매직 문자열 | 여러 위치에서 동일하게 사용되는 리터럴 문자열 |
린터 및 언어 서버 진단
Rubber Roast는 또한 ESLint, TypeScript, Pyright, Ruff, rust-analyzer 등 기존 도구에서 보고된 문제들을 표시하며, 이를 로스팅 가능한 카테고리(타입 오류, 사용되지 않은 변수, 폐기된 API, 린트 위반 등)로 분류합니다.
Technical Details
- Implementation – TypeScript, 런타임 의존성 제로.
- VS Code Extension API – 인라인 텍스트 장식, 진단 리스너, 명령, 상태 표시줄 통합.
- Regex‑based scanner – 사용자 정의 패턴 매칭과 라인 분류(코드 vs. 주석 vs. 문자열)를 통해 오탐을 방지.
- Diagnostic scanner – 기존 언어 서버에 연결하고 출력 결과를 비판 가능한 카테고리로 매핑.
- VS Code Language Model API – Copilot을 통한 선택적 AI 기반 비판(템플릿 폴백 포함).
- Shannon entropy detection – 알려진 접두사와 일치하지 않는 하드코딩된 비밀을 탐지.
- Bundling –
esbuild가 모든 것을 단일 파일로 번들링. - Privacy – 외부 API 없음, 텔레메트리 없음; 모든 처리는 로컬에서 실행.
시작하기
- Marketplace: Rubber Roast on VS Code Marketplace
- Source code: GitHub repository
판사들이 적합하다고 판단하는 모든 카테고리에 열려 있습니다 — 이 오리는 편애하지 않으며, 모두에게 똑같이 구워줍니다.