Communitygithub.com

backupcompany/skill-cursor

프로덕션 데이터 접근을 위한 실제 지침서로 N+1 쿼리 문제를 해결합니다. 코드가 루프 안에서 데이터베이스를 쿼리하거나, ORM이 각 행마다 관계를 지연 로딩하거나, 목록 엔드포인트가 5개 행일 때는 빠르고 50개일 때는 느릴 때 사용하세요. HTTP 계약 설계나 Go/JavaScript 언어 스타일에는 사용하지 마세요.

skill-cursor란 무엇인가요?

이 스킬은 애플리케이션에서 흔히 발생하는 N+1 쿼리 문제를 진단하고 해결하기 위한 실용적인 지침입니다. ORM의 지연 로딩이나 루프 내 쿼리로 인해 불필요한 데이터베이스 라운드 트립이 발생하는 경우를 탐지하고, 이를 해결하기 위한 구체적인 패턴(즉시 로딩, 배치 쿼리, 조인 최적화 등)을 제시합니다. `references/bad-vs-good.md`에서 실제 사례를 통해 나쁜 예와 좋은 예를 비교할 수 있습니다. 이 스킬은 Claude Code, Cursor, Codex와 같은 AI 코딩 에이전트에서 사용할 수 있으며, 프로덕션 환경에서 데이터 접근 성능을 개선하는 데 초점을 맞춥니다. 특히 대규모 목록 처리에서 N+1 문제로 인한 성능 저하를 방지하고, 쿼리 로그나 트레이스를 통해 고정된 수의 쿼리문을 유지하도록 돕습니다.

지원 대상~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/backupcompany/skill-cursor/tree/HEAD/skills/data-access

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

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

문서

데이터 접근

규칙 03은 최소 요구사항입니다: N+1 없음, 핫 경로에서 SELECT * 없음, 인덱스 기반 쿼리, 큰 목록은 페이지네이션 처리. 이 스킬은 ORM이나 루프가 라운드 트립을 숨길 때 해당 규칙이 어떻게 실패하는지 다룹니다.

컬렉션에서 관계를 로드하거나, 매핑을 eager로 설정하거나, 일대다 관계를 페이지네이션된 목록에 조인하기 전에 references/bad-vs-good.md를 읽으세요.

완료 조건

  • N개의 부모 목록이 동일한 관계에 대해 N개의 쿼리를 발생시키지 않습니다.
  • 쿼리 로그나 트레이스가 행당 하나가 아닌 고정된 수의 명령문(1 또는 2, 또는 1 + N/배치)을 보여줍니다.
  • 부모 페이지가 요청한 부모 수를 반환하며, 조인된 행의 페이지를 반환하지 않습니다.

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

관련 스킬