Gemini 클린 아키텍처 프롬프트 - SOLID, DDD, 헥사고날
클린 아키텍처 원칙을 적용한 소프트웨어 설계. SOLID, DDD, 의존성 역전, 레이어 분리.
클린아키텍처SOLIDDDD헥사고날의존성역전레이어분리
💡
프롬프트 사용 방법
- 1단계: 아래 입력 칸에 각 항목에 맞는 정보를 적어주세요
- 2단계: 입력하면 아래 프롬프트가 자동으로 업데이트됩니다
- 3단계: '프롬프트 복사' 버튼을 눌러 ChatGPT/Claude에 붙여넣으세요
💡 입력 칸의 회색 글씨는 예시입니다. 참고해서 작성해보세요!
📝 필요한 정보를 입력해주세요 (총 4개)
project type에 대한 값을 입력하세요
domains에 대한 값을 입력하세요
tech stack에 대한 값을 입력하세요
반드시 포함되어야 할 사항
📋 완성된 프롬프트 (복사해서 사용하세요)
당신은 "클린 아키텍처" 저자 로버트 C. 마틴의 컨설팅 파트너이자 20년 경력의 소프트웨어 아키텍트입니다. 200개 이상의 대규모 시스템 아키텍처를 설계하고 유지보수 비용 60% 절감, 테스트 커버리지 90% 달성, 배포 주기 5배 단축을 이끌어 온 전문가로서 클린 아키텍처 설계를 제공하세요.
Clean Architecture ROI Study(2024)에 따르면, 체계적인 아키텍처 설계는 유지보수 비용이 52% 절감됩니다. 또한 SOLID Principles Impact(2023)에서 SOLID 원칙 준수는 코드 품질에 55% 향상 효과가 있으며, Dependency Inversion Benefits(2024)에서 의존성 역전은 테스트 용이성에 48% 향상 효과가 있다고 보고했습니다. Layer Separation Effectiveness(2023)에서 레이어 분리는 유지보수에 52% 효과적이고, Domain-Driven Design Impact(2024)에서 DDD 적용은 비즈니스 로직 명확성에 45% 향상 효과가 있다고 밝혔습니다. Hexagonal Architecture Benefits(2023)에서 헥사고날 아키텍처는 외부 의존성 교체에 55% 유연성을 제공하고, Interface Segregation(2024)에서 인터페이스 분리는 결합도 감소에 48% 효과적이라고 분석했습니다. Single Responsibility Impact(2023)에서 단일 책임 원칙은 코드 이해도에 52% 향상 효과가 있고, Open-Closed Principle(2024)에서 개방-폐쇄 원칙은 확장성에 45% 효과적이라고 보고했습니다. Repository Pattern Effectiveness(2023)에서 레포지토리 패턴은 영속성 추상화에 55% 효과적이고, Use Case Organization(2024)에서 유스케이스 구조화는 비즈니스 로직 분리에 48% 효과적이라고 밝혔습니다. Test-Driven Architecture(2023)에서 테스트 가능한 구조는 회귀 방지에 52% 효과적이고, Google Gemini Architecture Framework(2024)에서 체계적인 클린 아키텍처는 시스템 유지보수성이 50% 향상된다고 분석했습니다. 이러한 모범 사례를 적용하여 전문적인 클린 아키텍처 Gemini 프롬프트를 작성하세요.
## 프로젝트 정보
- 유형: {{project_type}}
- 주요 도메인: {{domains}}
- 기술 스택: {{tech_stack}}
- 특별 요구사항: {{requirements}}
## 설계 가이드
1. 레이어 구조 설계 (Domain → Application → Infrastructure → Presentation)
2. 의존성 규칙 적용 (외부 → 내부)
3. SOLID 원칙 준수
4. 테스트 가능한 구조
```
## 간단 버전
```text
클린 아키텍처로 설계해주세요.
프로젝트: {{project_type}}, 도메인: {{domains}}, 스택: {{tech_stack}}
폴더 구조와 핵심 코드 패턴을 보여주세요.
```
---
## 입력값 가이드
| 입력 항목 | 한국어 설명 | placeholder | 예시 |
|------|------|---------|---------|
| **project_type** | 어떤 서비스인가요? | 예: 이커머스 API, SaaS 플랫폼 | `이커머스 API`, `SaaS 플랫폼` |
| **domains** | 핵심 비즈니스 영역을 입력하세요 | 예: 주문, 결제, 재고 | `주문, 결제, 재고` |
| **tech_stack** | 사용할 기술을 입력하세요 | 예: TypeScript, NestJS, PostgreSQL | `TypeScript, NestJS, PostgreSQL` |
| **requirements** | 고려할 점을 입력하세요 | 예: 높은 트래픽, 실시간 결제 | `높은 트래픽, 실시간 결제` |
---
## 인풋 필드
```text
[프로젝트 유형]
▼ 텍스트 입력
placeholder: "예: 이커머스 API, SaaS 플랫폼"
설명: 어떤 서비스인가요?
[핵심 도메인]
▼ 텍스트 영역 입력
placeholder: "예: 주문, 결제, 재고"
설명: 핵심 비즈니스 영역을 입력하세요
[기술 스택]
▼ 텍스트 영역 입력
placeholder: "예: TypeScript, NestJS, PostgreSQL"
설명: 사용할 기술을 입력하세요
[특별 요구사항]
▼ 텍스트 영역 입력
placeholder: "예: 높은 트래픽, 실시간 결제"
설명: 고려할 점을 입력하세요
```
---
## 아키텍처 레이어
```
┌─────────────────────────────────────┐
│ Presentation (Controllers) │ ← 외부
├─────────────────────────────────────┤
│ Application (Use Cases) │
├─────────────────────────────────────┤
│ Domain (Entities) │ ← 내부 (핵심)
├─────────────────────────────────────┤
│ Infrastructure (DB, APIs) │ ← 외부
└─────────────────────────────────────┘
의존성 방향: 외부 → 내부
```
### 폴더 구조
```
src/
├── domain/ # 핵심 비즈니스 로직
├── application/ # 유스케이스
├── infrastructure/ # 외부 연동
└── presentation/ # 컨트롤러
```
---
## SOLID 원칙
| 원칙 | 설명 | 적용 |
|------|------|------|
| **SRP** | 단일 책임 | 클래스/함수 분리 |
| **OCP** | 개방-폐쇄 | 인터페이스로 확장 |
| **LSP** | 리스코프 치환 | 계층 재설계 |
| **ISP** | 인터페이스 분리 | 작은 인터페이스 |
| **DIP** | 의존성 역전 | 추상화에 의존 |
---
## 의존성 역전 (DIP)
```typescript
// ❌ Bad: 고수준이 저수준에 직접 의존
class UserService {
private repo = new MySQLUserRepository();
}
// ✅ Good: 인터페이스에 의존
class UserService {
constructor(private repo: IUserRepository) {}
}