Gemini 클린 아키텍처 프롬프트 - SOLID, DDD, 헥사고날
클린 아키텍처 원칙을 적용한 소프트웨어 설계. SOLID, DDD, 의존성 역전, 레이어 분리.
수정
💡
프롬프트 사용 방법
- 1단계: 아래 입력 칸에 각 항목에 맞는 정보를 적어주세요
- 2단계: 입력하면 아래 프롬프트가 자동으로 업데이트됩니다
- 3단계: '프롬프트 복사' 버튼을 눌러 ChatGPT/Claude에 붙여넣으세요
💡 입력 칸의 회색 글씨는 예시입니다. 참고해서 작성해보세요!
📝 필요한 정보를 입력해주세요 (총 4개)
project type에 대한 값을 입력하세요
domains에 대한 값을 입력하세요
tech stack에 대한 값을 입력하세요
반드시 포함되어야 할 사항
📋 완성된 프롬프트 (복사해서 사용하세요)
클린 아키텍처 설계를 제공하세요.
## 프로젝트 정보
- 유형: {{project_type}}
- 주요 도메인: {{domains}}
- 기술 스택: {{tech_stack}}
- 특별 요구사항: {{requirements}}
## 설계 가이드
1. 레이어 구조 설계 (Domain → Application → Infrastructure → Presentation)
2. 의존성 규칙 적용 (외부 → 내부)
3. SOLID 원칙 준수
4. 테스트 가능한 구조 입력하지 않은 항목은 원래 표시를 유지합니다.
자동 복사를 사용할 수 없습니다. 아래 선택된 내용을 Ctrl+C 또는 ⌘C로 복사하거나, 길게 눌러 복사하세요.
간단 버전
클린 아키텍처로 설계해주세요.
프로젝트: {{project_type}}, 도메인: {{domains}}, 스택: {{tech_stack}}
폴더 구조와 핵심 코드 패턴을 보여주세요.
입력값 가이드
| 입력 항목 | 한국어 설명 | placeholder | 예시 |
|---|---|---|---|
| project_type | 어떤 서비스인가요? | 예: 이커머스 API, SaaS 플랫폼 | 이커머스 API, SaaS 플랫폼 |
| domains | 핵심 비즈니스 영역을 입력하세요 | 예: 주문, 결제, 재고 | 주문, 결제, 재고 |
| tech_stack | 사용할 기술을 입력하세요 | 예: TypeScript, NestJS, PostgreSQL | TypeScript, NestJS, PostgreSQL |
| requirements | 고려할 점을 입력하세요 | 예: 높은 트래픽, 실시간 결제 | 높은 트래픽, 실시간 결제 |
인풋 필드
[프로젝트 유형]
▼ 텍스트 입력
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)
// ❌ Bad: 고수준이 저수준에 직접 의존
class UserService {
private repo = new MySQLUserRepository();
}
// ✅ Good: 인터페이스에 의존
class UserService {
constructor(private repo: IUserRepository) {}
}
DDD 개념
| 개념 | 설명 |
|---|---|
| Entity | 고유 식별자, 상태 변경 가능 |
| Value Object | 불변, 식별자 없음 |
| Aggregate | 관련 객체 그룹 |
| Repository | 영속성 추상화 |
체크리스트
- 의존성이 내부로 향하는가?
- Domain이 외부 의존성이 없는가?
- 인터페이스로 추상화했는가?
- 유스케이스가 테스트 가능한가?
🚀 AI 바로 열기
🔗 관련 프롬프트
gemini
Gemini 백엔드 개발 프롬프트 - RESTful API, DB, 인증
백엔드 서버 개발, RESTful API 설계, 데이터베이스 설계, 인증/인가 시스템을 구현합니다.
백엔드개발서버개발
프롬프트와 사용 가이드 gemini
Gemini 리팩토링 프롬프트 - 코드 품질 개선, 클린 코드
코드 리팩토링, 품질 개선, 클린 코드 변환, 성능 최적화를 수행합니다.
리팩토링코드개선
프롬프트와 사용 가이드 gemini
Gemini API 통합 프롬프트 - REST API, GraphQL, 웹훅
외부 API와 서비스를 통합하는 코드를 작성합니다. 인증, 요청 처리, 에러 핸들링 포함.
API통합RESTAPI
프롬프트와 사용 가이드 gemini
Gemini 데이터베이스 설계 프롬프트 - 정규화, 인덱싱, 파티셔닝
확장 가능하고 효율적인 DB 아키텍처를 설계합니다. 정규화, 인덱싱, 파티셔닝, 쿼리 최적화 포함.
데이터베이스설계DB설계
프롬프트와 사용 가이드