본문으로 건너뛰기

전체 구조

시스템 구성도

인터넷


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장소 검색 — 프론트엔드에서 직접 호출