Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

360 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Donttaz Banner

🐹 Donttaz β€” λˆλ•ƒμ₯

μ›”κΈ‰ λ‘œκ·Έμ•„μ›ƒμ„ λ§‰μ•„μ£ΌλŠ” λ‚˜λ§Œμ˜ λΉ„λ°€ 금고

  • 개발 κΈ°κ°„ : 2026.02.16 ~ 2026.03.30 (6μ£Ό)
  • ν”Œλž«νΌ : Mobile App (Android / iOS)
  • 개발 인원 : 6λͺ…
  • κΈ°κ΄€ : μ‚Όμ„± μ²­λ…„ SW 아카데미 14κΈ° (ν•€ν…Œν¬ ν”„λ‘œμ νŠΈ)

πŸ”Ž λͺ©μ°¨


πŸ“Œ ν”„λ‘œμ νŠΈ μ†Œκ°œ

Donttaz μ„œλΉ„μŠ€ μ†Œκ°œ

**λˆλ•ƒμ₯(Donttaz)**λŠ” μ˜¬λ°”λ₯Έ μ†ŒλΉ„μŠ΅κ΄€μ„ ν˜•μ„±ν•˜κ³  싢은 μ‚¬λžŒλ“€μ„ μœ„ν•œ AI 기반 슀마트 금고 ν•€ν…Œν¬ μ„œλΉ„μŠ€μž…λ‹ˆλ‹€.

λ‹¨μˆœνžˆ λˆμ„ "μ•„λΌκ²Œ" ν•˜λŠ” 것이 μ•„λ‹ˆλΌ, μ“Έ λˆμ€ μ“°λ©΄μ„œ λͺ¨μ„ λˆμ€ μ²΄κ³„μ μœΌλ‘œ λͺ¨μ„ 수 μžˆλ„λ‘ λ„μ™€μ€λ‹ˆλ‹€. μ‚¬μš©μžλŠ” λͺ©μ λ³„ 가상 금고(μœ„μ‹œ)λ₯Ό 자유둭게 μƒμ„±ν•˜κ³ , 금육망 APIλ₯Ό 톡해 μ•ˆμ „ν•˜κ²Œ μžκΈˆμ„ μž…μΆœκΈˆν•˜λ©°, AIκ°€ μ†ŒλΉ„ νŒ¨ν„΄μ„ λΆ„μ„ν•˜μ—¬ λ§žμΆ€ν˜• 금육 쑰언을 μ œκ³΅ν•©λ‹ˆλ‹€.

πŸ’‘ μ€ν–‰μ˜ 'μ„Έμ΄ν”„λ°•μŠ€' + ν† μŠ€ 'μ €κΈˆν†΅' + AI μ½”λ©˜νŠΈ + AI 기반 μ†ŒλΉ„ ν”Œλžœμ„ ν•˜λ‚˜λ‘œ ν•©μΉœ μ°¨μ„ΈλŒ€ μ €μΆ• ν”Œλž«νΌ


πŸ’‘ 기획 μ˜λ„ / λ°°κ²½

"μ›”κΈ‰ λ‘œκ·Έμ•„μ›ƒ" μ‹œλŒ€μ˜ λ“±μž₯

2030 μ„ΈλŒ€μ˜ 78% κ°€ "μ›”κΈ‰λ‚  톡μž₯을 μŠ€μ³κ°€λŠ” 돈"에 슀트레슀λ₯Ό λŠλ‚€λ‹€κ³  λ‹΅ν•©λ‹ˆλ‹€. κ³ μ • μ§€μΆœ, ꡬ독 μ„œλΉ„μŠ€, 좩동 μ†ŒλΉ„κ°€ κ²ΉμΉ˜λ©΄μ„œ 월급이 λ“€μ–΄μ˜€μžλ§ˆμž μ‚¬λΌμ§€λŠ” 'μ›”κΈ‰ λ‘œκ·Έμ•„μ›ƒ' ν˜„μƒμ΄ 일상이 λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

κΈ°μ‘΄ μ €μΆ• 앱은 λ‹¨μˆœνžˆ "μ“°μ§€ 말라"λŠ” λ©”μ‹œμ§€λ₯Ό μ „λ‹¬ν•˜μ§€λ§Œ, μ΄λŠ” μ‹€μ§ˆμ μΈ 행동 λ³€ν™”λ₯Ό μœ λ„ν•˜μ§€ λͺ»ν•©λ‹ˆλ‹€.

λˆλ•ƒμ₯μ˜ 접근법

λˆλ•ƒμ₯λŠ” μ‚¬μš©μžμ˜ μ†ŒλΉ„λ₯Ό μ–΅μ œν•˜λŠ” 것이 μ•„λ‹ˆλΌ, μ†ŒλΉ„μ™€ 저좕을 λ³‘λ ¬λ‘œ κ΄€λ¦¬ν•˜λŠ” ꡬ쑰λ₯Ό μ œμ•ˆν•©λ‹ˆλ‹€.

κΈ°μ‘΄ μ €μΆ• μ•± λˆλ•ƒμ₯
"이번 달 카페 μ§€μΆœμ΄ μ΄ˆκ³Όν–ˆμŠ΅λ‹ˆλ‹€" "μ˜€μ‚¬μΉ΄ μ—¬ν–‰ κΈˆκ³ μ— 5λ§Œμ› μΆ”κ°€ν•˜λ©΄ λͺ©ν‘œμ˜ 80%!"
단일 μ €μΆ• λͺ©ν‘œ λͺ©μ λ³„ 금고 생성
사후 μ•Œλ¦Ό AI μ„ μ œ 뢄석 + μ‹€μ‹œκ°„ ν‘Έμ‹œ
μˆ˜λ™ 이체 AI 기반 μž‰μ—¬ κΈˆμ•‘ μžλ™ 봉인

🌟 νŒ€μ› ꡬ성


λ°•ν˜•μ£Ό
νŒ€μž₯ (Backend & DevOps)

김민상
νŒ€μ› (Backend)

κΉ€νšŒμΈ
νŒ€μ› (Frontend & Backend)
- 인프라 및 CI/CD/CT νŒŒμ΄ν”„λΌμΈ ꡬ좕
- Blue-Green 무쀑단 배포 μ‹œμŠ€ν…œ 섀계
- κΈ‰μ—¬ 이체 둜직 κ΅¬ν˜„
- μ‹€μ‹œκ°„ λͺ¨λ‹ˆν„°λ§ λŒ€μ‹œλ³΄λ“œ ꡬ좕
- κΈ°λ³Έ 금고 및 μœ„μ‹œλ¦¬μŠ€νŠΈ 금고 API κ΅¬ν˜„
- 금고 μžλ™ 이체 및 이자 μŠ€μΌ€μ€„λŸ¬ κ΅¬ν˜„
- Webhook / RabbitMQ 연동
- λͺ¨κ³„μ’Œ μž…μΆœκΈˆ 둜직 섀계
- AI μ†ŒλΉ„ ν”Œλžœ/리포트 FE+BE 연동
- 생쑴 λ²ˆλ‹€μš΄ 차트 κ΅¬ν˜„
- PortOne 결제 인증 연동
- μ›”κ°„ μ†ŒλΉ„ 리포트 ν™”λ©΄ κ΅¬ν˜„

이용호
νŒ€μ› (Backend)

μ „μ—°μˆ˜
νŒ€μ› (AI)

좔지인
νŒ€μ› (Frontend)
- FCM ν‘Έμ‹œ μ•Œλ¦Ό μ‹œμŠ€ν…œ κ΅¬ν˜„
- 거래 λ‚΄μ—­ 쑰회 및 동기화
- κ³„μ’Œ κ΄€λ ¨ API κ΅¬ν˜„
- 결제 둜직 κ΅¬ν˜„
- AI μ†ŒλΉ„ 뢄석 μ„œλΉ„μŠ€ 섀계/고도화
- NLP μΉ΄ν…Œκ³ λ¦¬ μžλ™ λΆ„λ₯˜ λͺ¨λΈ
- LLM ν”„λ‘¬ν”„νŠΈ μ—”μ§€λ‹ˆμ–΄λ§
- λ²ˆλ‹€μš΄ 차트 예츑 둜직 κ΅¬ν˜„
- κ°€μƒκΈˆκ³ /μœ„μ‹œκΈˆκ³  FE UI 전체
- κ³„μ’Œ κ°œμ„€ 및 이체 ν™”λ©΄ κ΅¬ν˜„
- μ›Ήν›… μˆ˜μΉ˜μ‹¬ λ©”μ‹œμ§€ UI 연동
- ν™ˆ/νšŒμ›κ°€μž…/ν•€ μž…λ ₯ UI κ΅¬ν˜„


✨ μ£Όμš” κΈ°λŠ₯

🏦 κ³„μ’Œ κ°œμ„€

κ°œμ„€ κ³Όμ • 1 κ°œμ„€ κ³Όμ • 2

πŸ’° μœ„μ‹œλ¦¬μŠ€νŠΈ 금고

μœ„μ‹œλ¦¬μŠ€νŠΈ 금고 쑰회 금고 생성
금고 μž…κΈˆ (λͺ¨κ³„μ’Œ 이체) 금고 좜금 (이자 포함)

πŸ€– AI 뢄석

AI μ†ŒλΉ„ 뢄석 리포트 AI μ €μΆ• ν”Œλžœ μΆ”μ²œ

πŸ”” μ›Ήν›… μ•Œλ¦Ό

μ‹€μ‹œκ°„ ν‘Έμ‹œ μ•Œλ¦Ό (FCM) μœ„μ‹œ 금고 κΈ΄κΈ‰ 좜금 μ‹œ μ›Ήν›… 전솑 (Discord) μœ„μ‹œ 금고 κΈ΄κΈ‰ ν•΄μ§€ μ‹œ μ›Ήν›… 전솑 (Mattermost)

πŸ› οΈ 기술 μŠ€νƒ

πŸ“± Frontend

React Native Expo TypeScript Zustand

Category Stack
Language TypeScript 5.9.2
Framework React Native 0.81.5, Expo 54.0.33
State Management Zustand 5.0.12
Architecture FSD (Feature-Sliced Design)
Library Axios 1.13.6, Expo Router 6.0, PortOne SDK 0.6.0, React Native Reanimated 4.1
IDE Visual Studio Code

βš™οΈ Backend

Java Spring Boot Gradle
MySQL Redis RabbitMQ Swagger

Category Stack
Language Java 17
Framework Spring Boot 3.5.11
Library Spring Security 6.x, Spring Data JPA 3.x, Spring AMQP 3.x, springdoc-openapi 2.8.8
Database MySQL 8.0
Cache Redis 7 (Alpine)
Message Broker RabbitMQ 3 (Management Alpine)
Push Firebase Admin SDK 9.4.3 (FCM)
Build Tool Gradle 8.x
IDE IntelliJ IDEA

πŸ€– AI Server

Python FastAPI OpenAI

Category Stack
Language Python 3.10+
Framework FastAPI 0.110.0
Runtime Uvicorn 0.27.1
Library OpenAI API, NeuralForecast, Sentence-Transformers, Pandas, NumPy
IDE Visual Studio Code

πŸ›  DevOps & Infra

Docker Jenkins Nginx
Prometheus Grafana

Category Spec
Container Docker 27.x, Docker Compose 2.x
CI/CD Jenkins LTS (Blue-Green 무쀑단 배포)
Web Server Nginx 1.27 (Reverse Proxy, SSL)
Monitoring Prometheus (latest), Grafana (latest)

🀝 Collaboration

GitLab Jira Notion Figma Mattermost Discord



πŸ—οΈ μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜

πŸ–§ System Architecture

μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜

핡심 섀계 포인트

섀계 μš”μ†Œ κ΅¬ν˜„ 방식 효과
금고(Vault) 관리 λͺ¨κ³„μ’Œ(Master Account) + DB 논리 뢄리 λ¬΄μ œν•œ 금고 생성, 20일 κ³„μ’Œ 규제 νšŒν”Ό
AI / API μ„œλ²„ 뢄리 FastAPI AI μ„œλ²„λ₯Ό Spring Boot API μ„œλ²„μ™€ 독립 μ»¨ν…Œμ΄λ„ˆλ‘œ 뢄리 AI λͺ¨λΈ μ—…λ°μ΄νŠΈ μ‹œ API 무쀑단, κ°œλ³„ μŠ€μΌ€μΌλ§ κ°€λŠ₯
비동기 μ•Œλ¦Ό RabbitMQ 이벀트 기반 처리 μ™ΈλΆ€ API λ ˆμ΄ν„΄μ‹œλ‘œλΆ€ν„° μœ μ € 응닡 격리
무쀑단 배포 Jenkins Blue-Green Deploy μ„œλΉ„μŠ€ λ‹€μš΄νƒ€μž„ 제둜
ν”„λ‘ νŠΈμ—”λ“œ FSD (Feature-Sliced Design) μ•„ν‚€ν…μ²˜ 도메인 기반 λͺ¨λ“ˆ 뢄리, ν™•μž₯μ„± 확보

πŸš€ CI/CD Pipeline

μžμ„Ένžˆ
β‘  Checkout SCM
Checkout SCM
β‘‘ Prepare Backend
Prepare Backend
β‘’ Test Backend (CT)
Test Backend
β‘£-1 Docker Image Build
Docker Build
β‘£-2 Health Check Polling
Health Check
β‘£-3 Nginx Switching & 이전 ν™˜κ²½ μ’…λ£Œ
Nginx Switching
β‘€ Clean up Image
Clean up Image
β‘₯ Post Actions
Post Actions
πŸ“’ Mattermost 배포 μ•Œλ¦Ό
Mattermost 배포 μ•Œλ¦Ό
단계 μŠ€ν…Œμ΄μ§€λͺ… μ„€λͺ…
β‘  Checkout SCM GitLabμ—μ„œ develop 브랜치 μ†ŒμŠ€ μ½”λ“œ 체크아웃
β‘‘ Prepare Backend Jenkins Credentialμ—μ„œ firebase-service-account.json 및 .env 23개 ν™˜κ²½λ³€μˆ˜ μ£Όμž…
β‘’ Test Backend (CT) ./gradlew clean test β€” 6개 νƒœμŠ€ν¬ λ‹¨μœ„ ν…ŒμŠ€νŠΈ μ‹€ν–‰ (BUILD SUCCESSFUL)
β‘£-1 Docker Image Build docker compose up -d --build β€” API(Spring Boot) + AI(FastAPI) 이미지 λΉŒλ“œ 및 μ»¨ν…Œμ΄λ„ˆ μ‹€ν–‰
β‘£-2 Health Check Polling /actuator/health, /health μ—”λ“œν¬μΈνŠΈλ₯Ό μ΅œλŒ€ 40회(3초 간격) ν΄λ§ν•˜μ—¬ 기동 확인
β‘£-3 Nginx Switching Nginx service-env.inc Blue↔Green μŠ€μœ„μΉ­ β†’ nginx -s reload β†’ 이전 ν™˜κ²½ μ»¨ν…Œμ΄λ„ˆ μ’…λ£Œ
β‘€ Clean up Image docker image prune -f β€” λŒ•κΈ€λ§ 이미지 μ‚­μ œ
β‘₯ Post Actions .env / Firebase ν‚€ μ¦‰μ‹œ μ‚­μ œ (λ³΄μ•ˆ) β†’ Mattermost 배포 성곡 μ•Œλ¦Ό 전솑

πŸ“Š Monitoring Dashboard

μžμ„Ένžˆ
🌱 Spring μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 톡계 λŒ€μ‹œλ³΄λ“œ
Spring 톡계 λŒ€μ‹œλ³΄λ“œ
πŸš€ 배포 μƒνƒœ λŒ€μ‹œλ³΄λ“œ
배포 μƒνƒœ λŒ€μ‹œλ³΄λ“œ

πŸš€ λΉ λ₯Έ μ‹œμž‘

사전 μš”κ΅¬μ‚¬ν•­

  • Java 17+ / Node.js v24.12.0 (LTS) / Python 3.10+ / Docker & Docker Compose

1단계: μ €μž₯μ†Œ 클둠

git clone https://lab.ssafy.com/s14-fintech-finance-sub1/S14P21C104.git
cd S14P21C104

2단계: 인프라 μ‹€ν–‰

cd donttaz-infra
docker network create donttaz-net   # 졜초 1회
docker compose up -d

3단계: λ°±μ—”λ“œ μ„œλ²„ μ‹€ν–‰

cd donttaz-BE/api
cp ../.env.example ../.env    # ν™˜κ²½ λ³€μˆ˜ μ„€μ • (μ•„λž˜ ν‘œ μ°Έκ³ )
./gradlew clean build
./gradlew bootRun

🌐 Swagger: http://localhost:8080/swagger-ui/index.html

4단계: AI μ„œλ²„ μ‹€ν–‰

cd donttaz-BE/ai
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
uvicorn main:app --host 0.0.0.0 --port 8000 --reload

5단계: ν”„λ‘ νŠΈμ—”λ“œ μ•± μ‹€ν–‰

cd donttaz-APP/front
npm install && npm start

πŸ“± Expo Go μ•±μ—μ„œ QR μ½”λ“œλ₯Ό μŠ€μΊ”ν•˜μ—¬ λ””λ°”μ΄μŠ€μ—μ„œ μ‹€ν–‰

πŸ”§ μ£Όμš” ν™˜κ²½ λ³€μˆ˜ (.env)

λ³€μˆ˜λͺ… μ„€λͺ…
DB_URL MySQL 접속 URL
DB_USERNAME / DB_PASSWORD DB μ‚¬μš©μž 인증
REDIS_HOST / REDIS_PORT Redis 접속 정보
RABBITMQ_HOST / RABBITMQ_PORT RabbitMQ 접속 정보
KAKAO_CLIENT_ID / KAKAO_CLIENT_SECRET 카카였 OAuth ν‚€
FIN_API_BASE_URL / FIN_API_API_KEY 금육망 API
AI_SERVER_URL / GMS_KEY AI μ„œλ²„ 및 LLM API
DISCORD_WEBHOOK_URL / MATTERMOST_WEBHOOK_URL μ•Œλ¦Ό μ›Ήν›…

⚠️ .env νŒŒμΌμ€ .gitignore에 ν¬ν•¨λ˜μ–΄ Git에 μ»€λ°‹λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.


πŸ“‚ 디렉터리 ꡬ쑰

πŸ“¦ Backend (Spring Boot API)
donttaz-BE/api/src/main/java/com/donttaz/donttazapi/
β”œβ”€β”€ πŸ“‚ account/           # κ³„μ’Œ 관리
β”œβ”€β”€ πŸ“‚ ai/               # AI μ„œλΉ„μŠ€ 연동 (Proxy)
β”œβ”€β”€ πŸ“‚ auth/             # 인증 (Kakao OAuth + JWT)
β”œβ”€β”€ πŸ“‚ common/           # 곡톡 μ„€μ • (Security, Swagger, AOP)
β”œβ”€β”€ πŸ“‚ company/          # νšŒμ‚¬(κΈ‰μ—¬) 관리
β”œβ”€β”€ πŸ“‚ notification/     # FCM ν‘Έμ‹œ μ•Œλ¦Ό
β”œβ”€β”€ πŸ“‚ payment/          # 결제/거래 λ‚΄μ—­
β”œβ”€β”€ πŸ“‚ user/             # μ‚¬μš©μž 관리
β”œβ”€β”€ πŸ“‚ vault/            # πŸ’° 금고 (핡심 도메인)
└── πŸ“‚ webhook/          # 비동기 μ›Ήν›… (RabbitMQ)
πŸ€– AI Server (FastAPI)
donttaz-BE/ai/
β”œβ”€β”€ main.py                  # FastAPI μ§„μž…μ 
β”œβ”€β”€ πŸ“‚ app/api/
β”‚   β”œβ”€β”€ report.py            # AI μ†ŒλΉ„ 뢄석 리포트
β”‚   β”œβ”€β”€ plan.py              # AI μ €μΆ• ν”Œλžœ μΆ”μ²œ
β”‚   β”œβ”€β”€ category.py          # μ†ŒλΉ„ μΉ΄ν…Œκ³ λ¦¬ μžλ™ λΆ„λ₯˜
β”‚   └── burndown.py          # λ²ˆλ‹€μš΄ 차트 예츑
β”œβ”€β”€ requirements.txt
└── Dockerfile
πŸ“± Frontend (React Native / Expo)
donttaz-APP/front/
β”œβ”€β”€ πŸ“‚ app/              # Expo Router (파일 기반 λΌμš°νŒ…)
β”‚   β”œβ”€β”€ _layout.tsx      # μ•± 전체 λ ˆμ΄μ•„μ›ƒ
β”‚   β”œβ”€β”€ index.tsx        # μŠ€ν”Œλž˜μ‹œ
β”‚   └── (tabs)/          # νƒ­ λ„€λΉ„κ²Œμ΄μ…˜
β”œβ”€β”€ πŸ“‚ pages/            # ν™”λ©΄ λ‹¨μœ„ μ»΄ν¬λ„ŒνŠΈ
β”œβ”€β”€ πŸ“‚ widgets/          # μž¬μ‚¬μš© μœ„μ ― (λŒ€μ‹œλ³΄λ“œ μΉ΄λ“œ λ“±)
β”œβ”€β”€ πŸ“‚ features/         # κΈ°λŠ₯ λ‹¨μœ„ (둜그인, 이체 λ“±)
β”œβ”€β”€ πŸ“‚ entities/         # 도메인 λͺ¨λΈ (κ³„μ’Œ, 금고, μœ μ €)
β”œβ”€β”€ πŸ“‚ shared/           # 곡톡 μœ ν‹Έ, UI, API Client
└── package.json
πŸ›  Infrastructure (Docker Compose)
donttaz-infra/
β”œβ”€β”€ docker-compose.yml    # MySQL, Redis, RabbitMQ, Prometheus, Grafana, Nginx
β”œβ”€β”€ πŸ“‚ nginx/             # Nginx μ „μ—­ μ„€μ •
β”œβ”€β”€ πŸ“‚ prometheus/        # λ©”νŠΈλ¦­ μˆ˜μ§‘ μ„€μ •
└── πŸ“‚ grafana/           # λŒ€μ‹œλ³΄λ“œ ν”„λ‘œλΉ„μ €λ‹


πŸ”§ νŠΈλŸ¬λΈ” μŠˆνŒ…

RabbitMQ 비동기 μ „ν™˜ μ‹œ λ©”μ‹œμ§€ μœ μ‹€ 문제
  • 문제: μ™ΈλΆ€ μ›Ήν›…(Discord/Mattermost) μ•Œλ¦Όμ„ RabbitMQ λΉ„λ™κΈ°λ‘œ μ „ν™˜ν–ˆμ„ λ•Œ, Consumer μž₯μ•  μ‹œ λ©”μ‹œμ§€κ°€ μœ μ‹€λ˜λŠ” ν˜„μƒ
  • 원인: Auto-Acknowledge μ„€μ •μœΌλ‘œ 인해 Consumerκ°€ λ©”μ‹œμ§€λ₯Ό λ°›λŠ” μ¦‰μ‹œ νμ—μ„œ μ‚­μ œλ¨
  • ν•΄κ²°: Manual Acknowledge + μ§€μˆ˜ λ°±μ˜€ν”„(Exponential Backoff) μž¬μ‹œλ„ μ •μ±… 적용. 3회 μ‹€νŒ¨ μ‹œ DLQ(Dead Letter Queue)둜 μ΄λ™ν•˜μ—¬ λ©”μ‹œμ§€ μœ μ‹€ λ°©μ§€
λͺ¨κ³„μ’Œ λ™μ‹œμ„± 이슈 (금고 μž…μΆœκΈˆ)
  • 문제: λ‹€μˆ˜ μ‚¬μš©μžκ°€ λ™μ‹œμ— 금고 μž…μΆœκΈˆ μš”μ²­ μ‹œ, λͺ¨κ³„μ’Œ μž”μ•‘μ˜ Race Condition λ°œμƒ
  • 원인: DB 레벨의 νŠΈλžœμž­μ…˜ 격리 μˆ˜μ€€λ§ŒμœΌλ‘œλŠ” λΆ„μ‚° ν™˜κ²½μ—μ„œ λ™μ‹œμ„± 보μž₯ λΆˆκ°€
  • ν•΄κ²°: Redis 기반 λΆ„μ‚° 락(Distributed Lock) 적용으둜 λͺ¨κ³„μ’Œ 접근을 μ§λ ¬ν™”ν•˜μ—¬ 데이터 μ •ν•©μ„± 확보
Blue-Green 배포 μ‹œ Health Check 타이밍 이슈
  • 문제: μƒˆ μΈμŠ€ν„΄μŠ€ 기동 μ‹œ Spring Boot μ΄ˆκΈ°ν™” μ™„λ£Œ μ „ Nginxκ°€ νŠΈλž˜ν”½μ„ μ „λ‹¬ν•˜μ—¬ 502 μ—λŸ¬ λ°œμƒ
  • 원인: deploy.sh μŠ€ν¬λ¦½νŠΈμ—μ„œ Health Check 간격이 λ„ˆλ¬΄ μ§§μ•„ JVM Warm-up 이전에 νŠΈλž˜ν”½ μŠ€μœ„μΉ­
  • ν•΄κ²°: Spring Actuator /health μ—”λ“œν¬μΈνŠΈλ₯Ό ν΄λ§ν•˜λŠ” λ°©μ‹μœΌλ‘œ λ³€κ²½. μ΅œλŒ€ 30초 λŒ€κΈ° + 3회 연속 성곡 쑰건으둜 μ•ˆμ •μ  μŠ€μœ„μΉ­ κ΅¬ν˜„

πŸ“¦ ν”„λ‘œμ νŠΈ μ‚°μΆœλ¬Ό

Donttaz μ˜μƒ 포트폴리였



β–² ν΄λ¦­ν•˜λ©΄ YouTubeμ—μ„œ μ˜μƒμ„ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€


πŸ“… Jira νƒ€μž„λΌμΈ

μžμ„Ένžˆ
Jira νƒ€μž„λΌμΈ

πŸ—„οΈ ERD

μžμ„Ένžˆ
ERD

πŸ–ΌοΈ ν™”λ©΄ μ„€κ³„μ„œ (Figma)

μžμ„Ένžˆ
πŸ“± μ•± 메인 🏦 κ³„μ’Œ
μ•± 메인 κ³„μ’Œ
πŸ’° 금고 (Vault) πŸ‘€ μ‚¬μš©μž
금고 μ‚¬μš©μž
πŸ“Š λ§ˆμ΄λ°μ΄ν„°
λ§ˆμ΄λ°μ΄ν„°

βœ… API 연동 κ·œκ²©μ„œ

μžμ„Ένžˆ
API 연동 κ·œκ²©μ„œ



β–² ν΄λ¦­ν•˜λ©΄ Google Docsμ—μ„œ 전체 λ¬Έμ„œλ₯Ό λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€


πŸ“„ λΌμ΄μ„ μŠ€

이 ν”„λ‘œμ νŠΈλŠ” SSAFY(μ‚Όμ„± μ²­λ…„ SW 아카데미) ꡐ윑 κ³Όμ •μ˜ μΌν™˜μœΌλ‘œ μ œμž‘λ˜μ—ˆμŠ΅λ‹ˆλ‹€.


Made with ❀️ by Team Donttaz (C104)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages