DnDn-App은 DnDn의 메인 서비스 코드를 담는 모노레포입니다.
이 저장소에는 아래 제품 기능이 함께 들어 있습니다.
- 운영 대시보드 및 문서 UI
- 인증, 조직, 문서, 워크스페이스, 연동 API
- AWS 변경 이력 수집 Worker
- 보고서 / 계획서 / Terraform 초안 생성 서비스
- 서비스 간 공유 스키마(
contracts)
실제 Kubernetes 배포 선언, 환경별 GitOps 값, Argo CD 애플리케이션 정의는 이 레포가 아니라
DnDn-Infra에서 관리합니다.
- 제품 기능 코드 관리
- 로컬 개발 / 테스트
- 서비스별 Docker 이미지 빌드
- GitHub Actions 기반 ECR 푸시
- 배포 대상 앱 이미지 태그 생산
- Terraform / CloudFormation 기반 인프라 생성
- Argo CD 애플리케이션 정의
- 환경별 Secret / Ingress / GitOps 소스 관리
- EKS 런타임 직접 운영
| 경로 | 역할 | 주요 기술 |
|---|---|---|
apps/web |
운영 대시보드, 문서 뷰어, 워크스페이스 UI | React, TypeScript, Vite |
apps/api |
인증, 문서, 워크스페이스, 연동 API | FastAPI, SQLAlchemy, MariaDB |
apps/worker |
AWS 데이터 수집 및 정규화 | Python, boto3, jsonschema |
apps/report |
보고서 / 계획서 생성 API + SQS worker | FastAPI, Bedrock, S3, MariaDB |
contracts |
Worker / Report 공통 스키마와 샘플 | JSON Schema |
docs |
운영 메모, 트러블슈팅 | Markdown |
flowchart LR
A[AWS Accounts] --> B[Worker]
B --> C[Canonical / Event JSON]
C --> D[S3 / MariaDB]
D --> E[API]
D --> F[Report Service]
E --> G[Web Dashboard]
F --> H[Report / Plan / Terraform Draft]
cd apps/web
npm ci
npm run dev- 기본 개발 주소:
http://localhost:3000 - 프록시 기준:
/api→http://localhost:8000/report-api→http://localhost:8001
apps/api는 import 경로가 apps.api.src.* 형식이므로 레포 루트에서 실행하는 편이 안전합니다.
python3 -m venv .venv
source .venv/bin/activate
pip install -r apps/api/requirements.txt
cp apps/api/.env.example apps/api/.env
set -a
source apps/api/.env
set +a
PYTHONPATH=. uvicorn apps.api.src.main:app --host 0.0.0.0 --port 8000 --reload- Health check:
GET http://localhost:8000/health - 대부분의 비즈니스 API는
/apiprefix 사용(예외:/health,/,/internal)
cd apps/report
cp .env.example .env
uv sync
uv run uvicorn src.main:app --host 0.0.0.0 --port 8001 --reload- Health check:
GET http://localhost:8001/health - 웹 연동 기준 포트:
8001
uv를 사용하지 않는다면pip install -e .후uvicorn src.main:app ...으로도 실행할 수 있습니다.
python3 -m venv .venv
source .venv/bin/activate
pip install -e apps/worker
python apps/worker/tools/run_payload.py \
--payload contracts/payload/weekly.payload.sample.json \
--repo-root . \
--out /tmp/dndn-out| 서비스 | 포트 | 설명 |
|---|---|---|
| Web | 3000 |
사용자 대시보드 / 문서 / 워크스페이스 |
| API | 8000 |
인증, 조직, 문서, 워크스페이스, 연동 API |
| Report | 8001 |
보고서 생성 / Terraform 초안 생성 |
| Worker | 파일 기반 / 워커 실행 | AWS 수집 및 정규화 엔진 |
- 대시보드
- 문서 목록 / 뷰어
- 워크스페이스
- 보고서 설정
- GitHub / Slack 콜백 처리
- 인증
- 대시보드 데이터
- 문서 / 결재
- 조직 정보
- GitHub / Slack 연동
- 보고서 요청
- HR 연동 API
- 내부용 엔드포인트
WEEKLY/EVENT실행 모드- CloudTrail 수집
- AWS Config 상태 확인 및 before/after 보강
- AWS Health / Security Hub 계열 이벤트 보강
raw/,normalized/산출물 업로드
- 운영 보고서 생성
- 계획서 생성
- Terraform 초안 생성 / 검증 / 수정
- SQS 기반 비동기 처리
- S3 / MariaDB 저장
/login/dashboard/documents/viewer/:id/workspace/workspace/create/report-settings/pending/plan/mypage/auth/github/callback/auth/slack/callback
/api/auth/api/dashboard/api/documents/api/org/api/github/api/report-settings/api/reports/api/workspaces/api/hr/users/api/hr/departments/api/hr/company/api/admin/companies/api/slack/internal
POST /api/report/eventPOST /api/report/health-eventPOST /api/report/weeklyPOST /api/report/renderPOST /report-api/documents/generate/planPOST /report-api/documents/generate/terraformGET /report-api/documents/generate/{job_id}POST /report-api/documents/generate/terraform/validatePOST /report-api/documents/generate/terraform/fix
자주 보는 항목만 빠르게 정리하면 아래와 같습니다.
SQLALCHEMY_DATABASE_URLAWS_REGIONS3_BUCKETS3_PUBLIC_BUCKETCOGNITO_USER_POOL_IDCOGNITO_CLIENT_IDSTS_ROLE_NAMESTS_EXTERNAL_IDPLATFORM_ACCOUNT_IDCFN_TEMPLATE_URLEVENT_BUS_ARNSCHEDULER_GROUP_NAMESCHEDULER_ROLE_ARNSCHEDULER_TARGET_ARNREPORT_REQUEST_QUEUE_URLINTERNAL_API_KEY
DATABASE_URLAWS_REGIONBEDROCK_MODEL_IDS3_BUCKETGITHUB_TOKENGITHUB_REPOSQS_QUEUE_URLPOLL_INTERVALDNDN_API_URLINTERNAL_API_KEYALLOWED_ORIGINS
main 브랜치 push 또는 수동 workflow_dispatch로 앱별 빌드가 수행됩니다.
dndn-prd-webdndn-prd-apidndn-prd-workerdndn-prd-report
- 변경된 앱을 감지합니다.
- API 변경이 있으면 단위 테스트를 수행합니다.
- 대상 앱 이미지를 ECR에 push 합니다.
DnDn-Infra의 GitOps manifest 이미지 태그를 갱신합니다.- Argo CD가 변경을 감지해 rollout 합니다.
기본 ECR Registry:
387721658341.dkr.ecr.ap-northeast-2.amazonaws.com
.
├── apps/
│ ├── api/
│ ├── report/
│ ├── web/
│ └── worker/
├── contracts/
├── docs/
└── .github/workflows/deploy-app.yml
apps/web/README.mdapps/api/README.mdapps/report/README.mdapps/worker/README.mdapps/worker/IAM_ONBOARDING.mdcontracts/README.mddocs/TROUBLESHOOTING.md
ACS-DnDn/.github— 조직 프로필 / 공통 GitHub 설정ACS-DnDn/DnDn-Infra— Terraform / CloudFormation / GitOps / RunbookACS-DnDn/DnDn-HR— HR 포털 프론트엔드
DnDn application monorepo for dashboard, API, AWS collectors, and AI-driven report services.
react vite fastapi python aws cloudtrail devops monorepo reporting terraform