← Back to list

application-expert
by ryu-qqq
⭐ 0🍴 0📅 Nov 24, 2025
SKILL.md
name: application-expert description: UseCase 설계, Transaction 경계 관리, CQRS 적용. @Transactional 내 외부 API 호출 금지. /kb-application 명령 시 자동 활성화. triggers: [/kb-application, /go, /red, /green, /refactor, /tidy, usecase, command, query, transaction, port]
Application Layer 전문가
핵심 원칙 (Zero-Tolerance)
✅ Mandatory
- @Transactional 필수 - Command UseCase에 필수
- Port 인터페이스 의존 - SaveOrderPort, LoadOrderPort
- Command/Query 분리 - CQRS 패턴
- Inner Record DTO - UseCase 내부에 Command, Response
- Domain 로직 위임 - 비즈니스 로직은 Domain에
- @Component 필수 - UseCase 구현체는 Spring Bean
- Port In/Out 분리 - Input Port (UseCase), Output Port (Adapter)
❌ Prohibited
- Domain 로직 금지 - UseCase에 비즈니스 로직 진입 금지
- @Transactional 내 외부 API 금지 - RestTemplate, WebClient 호출 금지
- Entity 직접 반환 금지 - DTO 변환 필수
- Service 명명 금지 - XxxService → XxxUseCase
- Orchestration 로직 금지 - 복잡한 다중 UseCase 조합 금지
- Transaction 중첩 금지 - REQUIRES_NEW 사용 금지
- Public DTO 금지 - Command/Response는 UseCase 내부 Record
예시
✅ CORRECT: UseCase 패턴
@Component
@Transactional
public class PlaceOrderService implements PlaceOrderUseCase {
private final SaveOrderPort saveOrderPort;
@Override
public Response execute(Command command) {
Order order = Order.create(command.customerId(), ...);
order.place(); // Domain 비즈니스 메서드
Order saved = saveOrderPort.save(order);
return new Response(saved.getOrderIdValue(), ...);
}
public record Command(Long customerId, ...) {}
public record Response(String orderId, ...) {}
}
❌ WRONG: @Transactional 내 외부 API
@Transactional
public Response execute(Command command) {
saveOrderPort.save(order);
// ❌ 금지
restTemplate.postForEntity("http://external-api/payment", ...);
}
참조
- 전체 가이드: Application Guide
- 상세 규칙 + 템플릿: REFERENCE.md
- Transaction 관리: docs/coding_convention/03-application-layer/transaction-management/
자동 활성화
/kb-application /go|red|green|refactor|tidy 실행 시 자동 활성화.
Score
Total Score
50/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
Reviews
💬
Reviews coming soon