원클릭으로
fastapi-backend
FastAPI 백엔드 패턴 안내. 라우터·의존성·JWT 인증·에러 처리·SQLAlchemy 2·Pydantic v2·asyncpg 작성 시 사용.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
FastAPI 백엔드 패턴 안내. 라우터·의존성·JWT 인증·에러 처리·SQLAlchemy 2·Pydantic v2·asyncpg 작성 시 사용.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
NAVER API HUB 검색 스킬. 네이버 클라우드 NAVER API HUB로 블로그·뉴스·지역·웹·이미지 등 검색 및 검색어 트렌드 조회. "네이버 API HUB", "네이버 검색 API", "블로그 검색", "검색어 트렌드" 요청에 활성화.
Git Flow 브랜치·커밋 규칙(변경 요약은 한국어 필수). 커밋, 브랜치 생성, Git Flow, 커밋 메시지 작성 요청 시 사용.
UIKit MVVM에서 Combine 바인딩, @Published, PassthroughSubject, ObservableObject 역할, sink/cancellables 패턴. UI 상태는 @Published, 화면 이동/토스트/Alert 같은 일회성 이벤트는 PassthroughSubject. SwiftUI vs UIKit ObservableObject 차이, Combine 바인딩 설계 시 사용.
Swift Concurrency 경계 설정, @MainActor, Task 배치, UIKit MVVM async API 설계. ViewModel, @MainActor, Task, async await, Combine 바인딩, isLoading 처리 시 사용.
Swift/iOS MVVM 패턴 안내. Model·View·ViewModel 구조, 바인딩(Combine/@Published), 서비스/저장소 연동 시 사용.
SwiftUI MVVM에서 @Observable/ObservableObject 선택, @StateObject/@ObservedObject/@EnvironmentObject 사용 기준, .task/.refreshable와 취소 처리, @MainActor 상태 갱신 규칙 설계 시 사용.
| name | fastapi-backend |
| description | FastAPI 백엔드 패턴 안내. 라우터·의존성·JWT 인증·에러 처리·SQLAlchemy 2·Pydantic v2·asyncpg 작성 시 사용. |
app/api/v1/), include_router(router, prefix="/v1/app")app/api/deps.py) — get_current_user, get_db 등app/models/, app/schemas/, app/services/)router = APIRouter(prefix="/items", tags=["items"])
@router.get("/", response_model=ItemListOut, responses={401: {...}})
async def list_items(
user: User = Depends(get_current_user),
db: AsyncSession = Depends(get_db),
):
...
return ItemListOut(**data)
response_model=... — Pydantic 스키마로 자동 직렬화responses={401: {...}, 404: {...}} — Swagger 문서화user: User = Depends(get_current_user), user_id: UUID = Depends(get_current_user_id)db: AsyncSession = Depends(get_db)HTTPBearer(auto_error=True) → HTTPAuthorizationCredentialsdecode_access_token(token) → payload 검증type=="access", sub=user_id (UUID)HTTPException(status_code=401, detail="invalid_or_expired_access_token")HTTPException → 전역 핸들러로 일관된 JSON 포맷 변환detail에 클라이언트 분기용 문자열 사용 (예: user_not_found, invalid_token){ "error_code": "...", "message": "..." } 형태로 통일pydantic_settings.BaseSettings + .env, @lru_cache def get_settings()Field(alias="...", default=...) 으로 환경변수 매핑CORSMiddleware, allow_origins, allow_credentials=True@limiter.limit("10/minute")@asynccontextmanager for DB init, scheduler 등BaseModel, Field(description="..."), Field(default_factory=list)field_validator, model_validator, @classmethodSomeOut(**obj)AsyncSession, asyncpg / postgresql+asyncpgselect(Model).where(...), insert(Model).values(...)r.scalar_one_or_none(), r.scalars().all().on_conflict_do_nothing(index_elements=[...])delete(Model).where(...)async def / awaitdef f(x: str) -> int, list[str], str | None (3.10+)type UserId = UUID# noqa: F401 허용copy.deepcopy(obj)로 내부 수정 시 원본 보호