소프트웨어 아키텍처 설계를 위한 효과적인 프롬프트 패턴을 알아봅니다.
아키텍처 프롬프트 구조
프로젝트 구조
폴더 구조 설계
React + TypeScript 프로젝트 폴더 구조를 설계해줘.
프로젝트: 전자상거래 웹앱
규모: 중규모 (50+ 페이지)
요구사항:
- 기능 기반 구조 (Feature-based)
- 공통 컴포넌트 분리
- 타입 정의 구조
- 테스트 파일 위치
- 환경 설정 파일
고려사항:
- 확장성
- 팀 협업
- 코드 네비게이션
모듈 구조
Node.js 백엔드 모듈 구조를 설계해줘.
패턴: Clean Architecture / Layered
레이어:
- Presentation (Controllers, Routes)
- Application (Use Cases, Services)
- Domain (Entities, Interfaces)
- Infrastructure (DB, External APIs)
각 레이어의 역할과 의존성 방향 설명 포함
시스템 설계
마이크로서비스
마이크로서비스 아키텍처를 설계해줘.
시스템: 음식 배달 플랫폼
서비스 분리:
- User Service
- Restaurant Service
- Order Service
- Delivery Service
- Payment Service
- Notification Service
포함 사항:
- 서비스 간 통신 방식
- 데이터 일관성 전략
- API Gateway
- 서비스 디스커버리
- 장애 처리
이벤트 드리븐
이벤트 드리븐 아키텍처를 설계해줘.
시스템: 실시간 재고 관리
이벤트:
- OrderPlaced
- InventoryUpdated
- LowStockAlert
- RestockRequested
포함 사항:
- 이벤트 브로커 (Kafka/RabbitMQ)
- 이벤트 스키마
- 이벤트 소싱
- CQRS 패턴
- 보상 트랜잭션
데이터 아키텍처
데이터베이스 설계
데이터베이스 아키텍처를 설계해줘.
요구사항:
- 읽기 많음 (100:1 비율)
- 실시간 분석 필요
- 다양한 쿼리 패턴
제안:
- Primary DB 선택
- 읽기 복제본
- 캐싱 레이어
- 분석용 DB (OLAP)
각 선택의 이유 설명
캐싱 전략
캐싱 아키텍처를 설계해줘.
시스템: 콘텐츠 관리 시스템
캐싱 레벨:
1. CDN (정적 자산)
2. Application Cache (Redis)
3. Database Query Cache
포함 사항:
- 캐시 무효화 전략
- TTL 설정
- 캐시 갱신 패턴
- 캐시 장애 대응
API 설계
RESTful API 설계
RESTful API를 설계해줘.
리소스: 블로그 시스템
엔드포인트:
- Posts
- Comments
- Users
- Categories
포함 사항:
- URL 구조
- HTTP 메서드
- 상태 코드
- 버저닝 전략
- 페이지네이션
- 필터링/정렬
- HATEOAS (선택)
GraphQL 스키마
GraphQL 스키마를 설계해줘.
시스템: 소셜 미디어
타입:
- User
- Post
- Comment
- Like
- Follow
포함 사항:
- 쿼리/뮤테이션/서브스크립션
- 관계 설계
- N+1 문제 해결
- 인증/인가
- 에러 처리
인증/보안
인증 아키텍처
인증 시스템을 설계해줘.
요구사항:
- 이메일/비밀번호 로그인
- 소셜 로그인 (Google, Apple)
- 2FA 지원
- 세션 관리
포함 사항:
- 토큰 전략 (JWT vs Session)
- 리프레시 토큰
- 권한 관리 (RBAC)
- 보안 고려사항
보안 체크리스트
웹 애플리케이션 보안 아키텍처를 검토해줘.
현재 구조:
[아키텍처 설명]
확인 사항:
- 인증/인가
- 데이터 암호화
- API 보안
- 입력 검증
- OWASP Top 10
개선 제안 포함
확장성
수평 확장 설계
수평 확장 가능한 아키텍처를 설계해줘.
현재 상태:
- 단일 서버
- 세션 기반 인증
- 로컬 파일 저장
목표:
- Auto-scaling 지원
- 무중단 배포
- 세션 공유
필요한 변경사항과 아키텍처 제안
성능 아키텍처
고성능 시스템 아키텍처를 설계해줘.
요구사항:
- 초당 10,000 요청
- 응답 시간 < 100ms
- 99.9% 가용성
포함 사항:
- 로드 밸런싱
- CDN 활용
- 데이터베이스 최적화
- 비동기 처리
- 모니터링
실전 프롬프트
전체 시스템 설계
다음 시스템의 전체 아키텍처를 설계해줘.
시스템: 온라인 학습 플랫폼
기능:
- 강의 영상 스트리밍
- 실시간 퀴즈
- 진도 추적
- 인증서 발급
- 결제 시스템
요구사항:
- 동시 사용자 10,000명
- 글로벌 서비스
- 모바일 앱 지원
제공해줘:
1. 시스템 다이어그램
2. 기술 스택 추천
3. 데이터베이스 설계
4. API 설계
5. 배포 아키텍처
레거시 현대화
레거시 시스템을 현대화하는 전략을 제안해줘.
현재 상태:
- 모놀리식 애플리케이션
- PHP + MySQL
- 서버 사이드 렌더링
- 단일 서버
목표:
- 마이크로서비스
- 컨테이너화
- CI/CD
- 클라우드 마이그레이션
점진적 마이그레이션 계획 포함
팁
| 팁 | 설명 |
|---|---|
| 요구사항 명확히 | 기능/비기능 구분 |
| 규모 명시 | 사용자, 트래픽 수치 |
| 제약 조건 | 예산, 팀 규모, 시간 |
| 기존 시스템 | 현재 상태 설명 |
| 다이어그램 요청 | 시각적 설계 포함 |
좋은 아키텍처는 좋은 질문에서 시작됩니다.