后端指南
diegosouzapw2026-10-28查看 463复制 114
Dog-Love Backend 的核心架构规则、编码约定和技术栈指南。所有后端代码变更均参考此内容。
📘如何使用这个技能
- 1复制技能内容·点击上方「Copy SKILL.md」复制全部内容,或 Download 下载到本地
- 2打开你的 AI 客户端·支持 Claude Code、Trae、Cursor、ChatGPT、DeepSeek、Kimi 等任意 AI 助手
- 3粘贴为系统提示/知识文件·Claude Code:放入 .claude/skills/ 目录;普通对话:作为首条消息发送并说「请严格按这份技能文档执行」
- 4直接提出你的需求·AI 会按技能定义的工作流、格式和约束来处理,无需再解释背景
💡 提示:技能生效后,每次对话只需一句需求,AI 会按 SKILL.md 的流程执行。
SKILL.md2274 chars
---
name: backend-guidelines
description: Core architectural rules, coding conventions, and tech stack guidelines for the Dog-Love Backend. Reference this for all backend code changes.
---
# Dog-Love Backend — Agent Instructions
## Tech Stack
- **Java 21** (LTS)
- **Spring Boot 3.5.10**
- **Gradle** (Groovy DSL)
- **MyBatis 3** (w/ PageHelper) — *No JPA*
- **Database**: PostgreSQL + Flyway (Migration)
- **Auth**: JWT (jjwt 0.12.6) + Spring Security
- **Utils**: MapStruct, Lombok, Jasypt (Encryption), Swagger (SpringDoc), Apache POI (Excel)
- **Logging**: Log4j2 (Logback Excluded)
## Commands
```bash
./gradlew build # 빌드 (테스트 포함)
./gradlew build -x test # 빌드 (테스트 제외, 빠른 검증)
./gradlew test # 유닛 테스트 실행
./gradlew bootRun # 로컬 서버 실행
```
## 코드 수정 후 필수 검증 절차
코드를 수정한 후 반드시 다음 순서로 검증할 것:
1. `./gradlew build -x test` — 컴파일 오류 없음 확인
2. `./gradlew test` — 유닛 테스트 통과 확인
## 커밋 규칙
- **커밋 시 해당 스크립트 사용 권장** (스코프 제한 커밋):
```bash
./backend/scripts/committer.sh "feat: add user api" src/main/java/com/example/springrest/domain/user/
```
- committer가 자동으로 수행하는 것:
1. conventional commit 메시지 형식 검증
2. 지정 파일만 스테이징
3. build + test 검증 (실패 시 차단)
## 코딩 컨벤션
- **Domain-Driven Packaging**: `com.example.springrest.domain.{feature}`
- 예: `domain/user`, `domain/auth`
- **MyBatis Mapper**:
- Interface: `Mapper.java` (@Mapper)
- XML: `src/main/resources/mapper` (namespace 일치 필수)
- **DTO 필수**: Entity/VO 직접 반환 금지. `MapStruct` 사용하여 변환.
- **Logging**: `@Slf4j` 대신 **Log4j2** 사용 권장 (설정 확인 필요)
- **API Spec**: Controller에 Swagger Annotation (`@Tag`, `@Operation`) 필수
## 디렉토리 구조
```
src/main/java/com/example/springrest/
├── Teacher.java (Main)
├── common/ # 공통 유틸/상수
├── global/ # 전역 설정 (Config, Exception, Security)
└── domain/ # 비즈니스 도메인 (기능별)
├── auth/
│ ├── controller/
│ ├── service/
│ └── mapper/
└── user/
├── controller/
├── service/
├── mapper/ # MyBatis Interface
├── dto/
└── vo/ # DB Value Object
```
## 주의사항
- **Lombok + MapStruct**: 빌드 시 Annotation Processor 순서 주의 (`build.gradle` 참조)
- **MyBatis XML**: 쿼리 수정 시 `resultMap` 매핑 주의
- **Flyway**: DB 스키마 변경 시 `V{version}__{description}.sql` 추가 필수