Community코딩 & 개발github.com

HeadLightEM/lean-code-paths

코드를 작성, 수정, 리팩토링 또는 검토할 때 사용합니다. 호출자의 작업 경로를 API, 애플리케이션 코드, 미들웨어, 데이터베이스까지 추적하여 중복된 검증, 왕복 요청, 데이터 이동을 제거합니다.

lean-code-paths란 무엇인가요?

이 스킬은 개발자가 코드 경로를 최적화하여 애플리케이션 성능을 향상시키는 데 도움을 줍니다. 실제 작업(operation) 하나를 시작점으로 삼아, 해당 작업이 API, 서비스, 미들웨어, ORM, 그리고 실행된 SQL을 통해 어떻게 전달되는지 추적합니다. 그 과정에서 불필요한 작업을 조기에 제거하고, 데이터 재사용, 적절한 자료 구조 선택, 외부 입력의 조기 검증, 소유권 기반 접근 제어, 원자적 쓰기(atomic write) 등의 원칙을 적용합니다. 또한 데이터베이스 접근, 트랜잭션, API 미들웨어 등 관련 참조 문서를 읽도록 안내하며, 최적화 전후를 실제 측정값으로 비교하여 검증할 것을 강조합니다. Cursor, Claude Code 등 다양한 AI 에이전트 플랫폼에서 활용할 수 있습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/HeadLightEM/lean-code-paths/tree/HEAD

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Lean Code Paths

하나의 실제 작업부터 시작하세요. 호출자가 표시하거나 동작을 수행하는 대상은 무엇인가요? 그 요구를 API, 서비스, 미들웨어, ORM, 실행된 SQL까지 따라가 보세요. 영향 받는 경로 상에서 가장 이른 시점에 불필요한 작업을 제거하세요. 일상적인 개발에서는 간단하고 저렴한 코드를 사용하세요. 더 복잡한 최적화를 도입하기 전에 먼저 병목 지점을 찾아내세요.

구현 규칙

  • 요청에 이미 사용 가능한 데이터를 재사용하세요. 작업이 지원하는 경우 쿼리, 쓰기, 원격 호출을 일괄 처리(batch)하세요. 실제 한도에서 배치를 분할하세요. 벌크 API가 내부적으로 어떻게 동작하는지 확인하세요. 항목별 병렬 호출은 여전히 항목당 한 번의 왕복 요청을 발생시킵니다.
  • 접근 패턴에 맞는 자료 구조를 선택하세요. 단일 조회를 위해 기존 컬렉션을 스캔하세요. 반복적인 일치를 위해 한 번 키가 있는 맵을 구축하세요. 루프 밖으로 불변 구문 분석과 계산을 이동하세요. 핫 경로(hot path)에서는 반복적인 정렬, 큰 복사본, 사용되지 않는 중간 컬렉션을 제거하세요. 동일한 형태 간 변환을 위해 JSON을 통해 왕복하지 말고 프로세스 내에서 기존 값을 전달하세요.
  • 외부 입력은 입력되는 지점에서 구문 분석하고 검증하세요. 내부 함수는 진입점에서 이미 존재 여부, 타입, 범위를 확인한 값을 사용할 수 있습니다. 방어적 분기를 추가하기 전에 도달 가능한 입력과 해당 분기가 방지하는 실패를 식별하세요. 코드가 복구할 수 있는 곳, 유용한 컨텍스트를 추가할 수 있는 곳, 또는 다른 오류 계약으로 변환할 수 있는 곳에서 오류를 잡으세요.
  • 가능한 경우 읽기 또는 쓰기 조건에 소유권을 포함시키세요. 검증된 작업 ID, 소유권, 인수를 신뢰할 수 있는 모듈, 스케줄러, 실행자에게 전달하세요. 동일한 작업 내에서의 핸드오프, 콜백, 위임은 그 자체만으로 추가 검사나 조회를 필요로 하지 않습니다. 새로운 입력이나 독립적인 신뢰 경계가 관련된 경우, 수신자가 상속할 수 없는 보증을 검증하세요. 잔액, 이전 상태, 멱등성과 같은 가변 조건을 이에 의존하는 쓰기에서 원자적으로 시행하세요.
  • 적절한 프레임워크 기본값을 사용하거나 한 번 고정 규칙을 정의하세요. 실제 배포 차이, 독립적인 튜닝 필요성, 또는 명시적인 사용자 요청이 있는 경우에만 설정을 추가하세요. 기존 설정이나 비밀 저장소를 먼저 사용하세요. 기존 메커니즘이 요구 사항을 충족할 수 없는 경우에만 파일을 생성하세요. 요청이 있을 때만 기능 전환(feature switch)을 추가하세요.
  • 고유 제약 조건, 조건부 쓰기, 원자적 증가, 짧은 트랜잭션을 선호하세요. 애플리케이션 잠금을 추가하기 전에 경쟁하는 작업, 잘못된 결과, 그리고 기존 메커니즘이 이를 방지할 수 없는 이유를 식별하세요. 가장 작은 리소스를 가장 짧은 간격으로 잠그세요. 기존 잠금을 제거하기 전에 모든 작성자와 지연된 결과를 확인하세요.
  • 접근 규칙, 정렬, 페이지네이션, 부분 성공 의미, 출력 품질, 복구를 유지하세요. 동작이나 비용의 실질적인 변경은 사용자와 논의하세요. 프로젝트의 미들웨어, 테스트 진입점, 승인 기준을 재사용하세요.

관련 참조 읽기

검증

  • 변경된 API를 인가된 테스트 환경에서 실제 애플리케이션 진입점을 통해 실행하세요. 응답, 영향 받는 호출자, 최종 비즈니스 상태를 확인하세요. 필드를 트리밍할 때는 실제 페이로드와, 데이터베이스 기반 경로의 경우 실행된 SQL을 검사하세요. 배치 처리의 경우 작은 배치와 전체 배치에 대한 쿼리 수를 비교하세요. 부작용이 관련된 경우 관련 레이스, 중복 요청, 또는 복구 경로를 테스트하세요. 백그라운드 작업과 로컬 계산은 정상적인 진입점을 통해 검증하고 출력을 검사하세요. 필요한 프로젝트 검사와 CI를 따르세요.
  • 사용자는 시각적 및 수동 웹 승인을 담당합니다. 페이지, 동작, 예상 결과를 전달하고 해당 승인을 보류 중으로 표시하세요. 프론트엔드 변경의 경우 관련 빌드, 타입, 상호작용 검사를 실행하세요. 사용자가 브라우저 테스트를 위임한 경우 요청된 범위를 다루세요.
  • 속도 향상 주장은 동일한 환경에서 동등한 데이터와 동시성 하에 전후 측정으로 뒷받침하세요. 샘플 수와 캐시 상태를 기록하세요. 조사 중인 비용을 노출하는 메트릭(예: 꼬리 지연 시간, 처리량, 쿼리 수, 스캔된 행, 전송된 바이트, 최대 메모리)을 선택하세요. 비동기 작업의 경우 수락, 큐 지연, 완료를 구분하세요. 단일 실행은 단일 실행으로 보고하세요. 비교 가능한 기준선이 없으면 측정된 것만 보고하세요. 검증은 변경 사항에 비례하게 유지하세요.

관련 스킬