my-backend-architecture
my-backend-architecture
사용자 개인의 백엔드 코드 구조 선호를 정리한 지식 스킬. SKILL.md는 라우팅 테이블 역할만 하고, 실제 내용은 references에 Progressive Disclosure로 분할되어 있다. 사용자 질문 유형에 따라 필요한 파일만 로드해 답한다.
핵심 원칙
- 기본 레이어 4개:
app/domain/infrastructure/shared. 그 사이에 사용자 정의 중간 레이어를 필요할 때만 삽입한다. 이름·개수는 팀이 결정. 빈 레이어는 세금. - 의존은 단방향. 상위 레이어의 module(resource)은 하위 레이어의 module만 참조 가능. 역방향 import 전면 금지. 단
infrastructure는domain인터페이스를 구현하므로 import 방향이 역전(DIP). app은 resource 단위, 나머지는 module 단위.domain은 프레임워크 의존 없는 순수 코드.- 같은 레이어 module 간 참조 금지 (
domain·shared제외). 해결책: 공통 로직을 하위 레이어로 추출하거나, 중간 레이어에 인터페이스를 두고 DIP 적용. - 규칙 판정은
domain에, 오케스트레이션·I/O·트랜잭션은app/ 중간 레이어에. Repository는 Application Service에만 주입, Domain Service에는 인자 전달.
의존 다이어그램
app (resource)
↓
(사용자 정의 중간 레이어)? module. 이름 자유. 선택.
↓
More from dev-goraebap/skills
claude-hook-notify-setup
>
23media-storage
파일 업로드·저장소·첨부 관리 패턴. Actions: 파일 업로드, 이미지 업로드, 파일 처리, 저장소 연동, 썸네일 첨부, 색상 추출, file upload, image upload, storage, attachment, thumbnail. Patterns: Active Storage, blobs 테이블, attachments 테이블, 다형적 첨부, 중복 파일 감지. Storage: Cloudflare R2, AWS S3, @aws-sdk/client-s3, UUID key, 2-level 디렉토리, CDN URL, presigned URL. DB: Drizzle ORM, blob, checksum, MD5, metadata JSON, MIME, byte_size. Color: 지배적 색상 추출, dominant color, Gemini API, hex, blobs.metadata. Query: 썸네일 조회, 서브쿼리, leftJoin, view-model, CDN URL 변환.
22sveltekit-progressive-architecture
SvelteKit 프로젝트 아키텍처·코드 규칙. Actions: 작성, 구현, 리뷰, 리팩터, 검토, 추가, 설계, 수정, write, implement, review, refactor, fix. Base Rules: 컴포넌트 재사용, $lib, 라우트 배치, 인라인 타입 금지, interface, type, script 섹션, 주석, 가독성, code style, TypeScript. Server Architecture: 서버 아키텍처, Active Record, Query Service, REST API, Drizzle, +server.ts, +page.server.ts, server/domain, server/infra, 뷰모델, view-model, form actions, ORM, schema, 레이어 분리, CUD, load.
18agent-wiki
>
15html-prototype
>
12mvp-preview
아이디어나 기능을 빠르게 만들어 링크로 공유하는 MVP 워크플로우. 사용자가 '프로토타입 만들어줘', '데모 페이지 필요해', '빠르게 만들어줘', '클라이언트한테 보여줄 거 만들어줘', '아이디어 구체화해줘', '링크 공유해야 해', '배포해줘', 'MVP 만들기', '기획 검토용 화면'처럼 말하면 반드시 이 스킬을 사용한다. 아이디어가 막연해도 괜찮다. 토론으로 범위를 좁히고, 최소 코드로 가치를 증명하고, 링크 하나로 전달하는 전 과정을 다룬다.
12