Spring Boot 3.5.3 / Java 17 backend for Assu, a university partnership benefit platform for Soongsil University.
Application code lives under src/main/java/com/assu/server, grouped into domain/, global/, and infra/.
Domains: admin, appreview, auth, backoffice, certification, chat, common, deviceToken,
inquiry, map, member, notification, partner, partnership, qr, report, review, store, student, suggestion
Runtime configuration is in src/main/resources with profile files application-local.yml, application-dev.yml, application-prod.yml.
./gradlew build: compile, test, and build the application jar../gradlew test: run the full JUnit test suite../gradlew test --tests "com.assu.server.backoffice.BackofficeAuditAspectTest": run a single test class../gradlew bootRun --args='--spring.profiles.active=local': run the server locally.
Use Java 17 with 4-space indentation. Do not use wildcard imports.
- DTO: always use
record. Class name follows~~DTO. Include@Schema(description, example)on every field. - Converter: no separate Converter class. Put static factory methods directly in the DTO record.
- Service: annotate the implementation class with
@Transactional. UsereadOnly = truefor read-only services. - Enum: place domain-specific enums in
<domain>/entity/enums/package. - Field naming: names must reveal intent. e.g.,
hashedPasswordnotpassword. - No unused code: remove all unused imports, log statements, methods, and files.
- No unnecessary comments: only add a comment when the WHY is non-obvious.
- @BackofficeAudited: apply only to CUD (Create/Update/Delete) handler methods in backoffice controllers. Not for GET.
[TYPE/#issue-number] 한글로 간결하게
- 작업 내용 상세 1
- 작업 내용 상세 2
Types: FEAT, FIX, REFACTOR, STYLE, DOCS, TEST, CHORE, HOTFIX, MERGE
Example:
[FEAT/#123] 리뷰 생성 API 추가
- ReviewController에 POST /reviews 엔드포인트 추가
- ReviewServiceImpl에 createReview 메서드 구현
<type>/#<issue-number>-<brief-english-description>
Example: feat/#123-add-review-api
Follow .github/PULL_REQUEST_TEMPLATE.md. Link the issue with close #, summarize what changed and why, and include reviewer notes for risks, test gaps, or deployment concerns.
For every request, analyze before implementing:
- Explain the relevant process and current structure.
- Propose a direction and state key trade-offs.
- Do NOT write or modify code unless the user explicitly requests with wording like "개발해줘", "작성해줘", "구현해줘", or an equivalent.
- If the request is exploratory or ambiguous, provide analysis and recommendations only.
- When implementing from an issue with multiple items, process one item at a time with full analysis before moving to the next.
Never commit secrets, tokens, or credentials. Keep local configuration in application-local.yml or application-secret.yml (git-ignored). Be careful with deployment changes as the production environment runs on EC2.