본문으로 건너뛰기

전체 구조

시스템 구성도​

인터넷
│
▼
Route53 (DNS) + ACM (HTTPS/TLS)
│
▼
ALB (Application Load Balancer)
│
▼
EC2 ── Spring Boot (Docker 컨테이너)
├──▶ RDS (MySQL 8.0)
└──▶ S3 (로그 아카이브)

Frontend ──▶ Cloudflare Workers
Docs ──▶ Cloudflare Pages

외부 API
├── Ablecity (사주 계산)
├── OpenAI (AI 해석)
└── Kakao (로그인 · 장소 검색)

AWS 서비스 구성​

서비스용도
EC2Spring Boot 앱 서버 (Docker 컨테이너로 실행)
RDS (MySQL 8.0)영구 데이터 저장
S3로그 파일 아카이브
Route53도메인 DNS 관리
ACMHTTPS TLS 인증서 자동 갱신
ALB로드밸런서 (스케일아웃 대비)

백엔드 레이어 구조​

[HTTP 요청]
↓
api/ ← Controller, DTO, 유효성 검사
↓
application/ ← 유스케이스, Service 인터페이스
↓
domain/ ← 순수 도메인 모델, Repository 인터페이스
(Spring · JPA 의존 없음)
↓
infra/ ← JPA 엔티티, Repository 구현체, 외부 API 클라이언트

의존성 방향은 항상 바깥 → 안쪽(도메인) 으로만 흐릅니다. 도메인 레이어는 프레임워크에 의존하지 않습니다.


외부 연동 목록​

외부 서비스역할
Ablecity API사주 8자 계산, 일일 에너지 점수 산출
OpenAI GPT일일 운세 AI 해석 텍스트 생성
Kakao OAuth2소셜 로그인 (인가코드 플로우)
Kakao Local API장소 검색 — 프론트엔드에서 직접 호출