Project Summary
โ๏ธ ํ๋ก์ ํธ ๋ช
ํฌ๋ผ์ฐ๋ ํ๋ฉ ์ผํ๋ชฐ LOTDIZ
โ๏ธ ํ๋ก์ ํธ ๊ธฐ๊ฐ
2023.09.04 ~ 2023.11.03
โ๏ธ ํํ์ด์ง url
โ๏ธ ๊ด๋ฆฌ์ ํ์ด์ง url
https://admin.lotdiz.lotteedu.com/
โ๏ธ ํ๋ก์ ํธ ์ค๋ช
๋กฏ๋์ฆ ์๋น์ค๋ ํ๋ฉ ๊ฐ์ค์(๋ฉ์ด์ปค)์ ํ์์(์ํฌํฐ)๊ฐ์ ํ๋ฉ ๊ฑฐ๋๋ฅผ
์ค๊ฐํ๋ ์จ๋ผ์ธ ์ค๊ฐ ํ๋ซํผ์ ๋๋ค.
โ๏ธ ๊ธฐ์ ์คํ
โ๏ธ ํ โ OJJOK โ
์ด๋ฆ | ์ฃผ ํฌ์ง์ | ์ธ๋ถ ๋ด๋น | GITHUB ์ฃผ์ |
---|---|---|---|
์ด์์ | Leader Back Front Infra |
Project Service - ํ๋ก์ ํธ ๋ฑ๋กํ๊ธฐ Notification Service - ๋ฐฐ์ก ์์ ์๋ฆผ, ๋ชฉํ ๊ธ์ก ๋ฌ์ฑ ์๋ฆผ - event-bridge์ sqs๋ฅผ ์ด์ฉํ ์ฃผ๊ธฐ์ ์๋ฆผ ๊ตฌ์ฑ |
https://github.com/nowgnas |
์ด์ฐ์ฝ | Back Front |
Member Service - ํ์๊ฐ์ ๋ฐ ์ด๋ฉ์ผ ์ธ์ฆ, ๋ก๊ทธ์ธ (์ธ์ฆ, JWT ํ ํฐ ๋ฐ๊ธ), ๋ก๊ทธ์์ - ๋ง์ดํ์ด์ง (์ํฌํฐ ํ๋ ๋ด์ญ + ํ์ ์ ๋ณด ์กฐํ ๋ฐ ์์ ) - ์ฐ ์กฐํ, ์ญ์ APIGateway Service - JWT๋ฅผ ํตํ ์ธ๊ฐ ๋ก์ง ๊ตฌํ Payments Service - ๋ฉค๋ฒ์ญ ๊ฐ์ (๋จ๊ฑด ๊ฒฐ์ ) |
https://github.com/leewooyup |
์ด์ง์ฐ | Back Front |
Funding Service - ํ๋ฉํ๊ธฐ - ํ๋ฉ ๋ด์ญ ์กฐํ - ํ๋ฉ ์์ธ ๋ด์ญ ์กฐํ Payment Service - ํ๋ฉ ๊ฒฐ์ (๋จ๊ฑด ๊ฒฐ์ ) |
https://github.com/binarywoo27 |
์ด์ฑ๋ฏผ | Back Front Infra |
Admin Service - ํ์ ์ ๋ณด ์กฐํ, ๋ฉ์ด์ปค ์ ๋ณด ์กฐํ - ํ๋ก์ ํธ ์ ๋ณด ์กฐํ ๋ฐ ํ๋ก์ ํธ ์ธ์ฆ - ๊ฐ ์ ๋ณด ํตํฉ ๊ฒ์ Delivery Service - ๋ฐฐ์ก ์กฐํ Notification Service - ์๋ฆผ ์กฐํ, ํ๋ก์ ํธ ๋ง๊ฐ ๋ฐ ํ๋ก์ ํธ ๋ฏธ๋ฌ์ฑ ์๋ฆผ Infrastructure - MicroService ๋ณ, ๊ฐ๋ณ ์ปจํ ์ด๋ ํ๊ฒฝ AWS Fargate EKS๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ถ โ ์ด์๊ณผ ๊ด๋ฆฌ์ ํธ๋ฆฌํจ์ ๊ณ ๋ คํ์ฌ Serverless ํ๊ฒฝ ๋์ - MicroService ๋จ์์ DB ๋ ๋ฆฝ์ ์ผ๋ก ๊ตฌ์ถ โ ํ๋์ Pod์ App๊ณผ DB๋ฅผ ๋์ด ์๋ช ์ฃผ๊ธฐ๋ฅผ ํจ๊ปํ๋๋ก ๊ตฌ์ฑ - AWS EFS & Kubernetes Persistent Volume ๋ฐ Claim์ ์ฌ์ฉํ DB ์ ๋ณด ๋ ๋ฆฝ์ ์ผ๋ก ์๊ตฌ ์ ์ฅํ๊ฒฝ ๊ตฌ์ถ - Kubernetes Rolling Update ์ ๋ต์ผ๋ก Pod ์ฌ๋ฐฐํฌ์ Service์ Downtime์ ์ ๊ฑฐ - AWS NLB๋ฅผ ์ฌ์ฉํ์ฌ Spring Cloud API Gateway์ ์๋ํฌ์ธํธ๋ฅผ ์ธ๋ถ๋ก ๋ ธ์ถ - AWS Route 53 + AWS Certificate Manager + AWS NLB๋ฅผ ์ฐ๊ฒฐํด DNS โ Load Balancer๋ก ๋ผ์ฐํ - EventBridge + SQS๋ฅผ ์ฌ์ฉํ ์ด๋ฒคํธ ์ค์ผ์ค๋ฌ ๊ตฌ์ถ - SNS + SQS๋ฅผ ์ฌ์ฉํ ์ด๋ฒคํธ ๊ธฐ๋ฐ Pub/Sub ํ๊ฒฝ ๊ตฌ์ถ - Cloudfront + S3 ์น ํผ๋ธ๋ฆฌ์ฑ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ Vue App ๊ตฌ์ถ - Github Actions Workflows๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ๋ง์ดํฌ๋ก์๋น์ค ๋ฐ ํ๋ก ํธ์๋ CI/CD ๊ตฌ์ถ - ๊ฐ ๋ง์ดํฌ๋ก์๋น์ค ๋ก๊น ์ ์ํ CloudWatch์ ์ฐ๋ํ ๋ก๊ทธ ๋ชจ๋ํฐ๋ง |
https://github.com/CokeLee777 |
์ต์์ | Back Front |
Project Service - ๋ฉ์ธ ํ์ด์ง (๋ฐฐ๋, ๋ฒ ์คํธ ๋กฏ๋, ๋ง๊ฐ์๋ฐ์ ๋กฏ๋+) - ํ๋ก์ ํธ ๋ฆฌ์คํธ ์กฐํ (๋กฏ๋+, ๋กฏ๋, ๊ธฐํ์ ์กฐํ, ์ข์์ ์์ฑ/์ญ์ ) - ํ๋ก์ ํธ ๋ฆฌ์คํธ ์์ธ ์กฐํ (์์ธ ์ ๋ณด, ์ง์ง์๋ช , ํจ๊ป ํ๋ ์ํฌํฐ, ์ข์์ ์์ฑ/์ญ์ ) - ์ง์ง์๋ช ์์ฑ, ์์ |
https://github.com/cso6005 |
โ๏ธ ์ฃผ์ ์ ์ ๋ฐฉ์
โ ๋ง์ธ๋ ๋งต์ ํตํด ๊ธฐํ
โ๏ธ ์ฃผ์ ์ ์ ์ด์ ๋ฐ ๊ธฐํ ์๋
์จ๋ผ์ธ ์ผํ๋ชฐ ์น์ฌ์ดํธ ์ ์์ ์ํด ์ด์ปค๋จธ์ค์ ์ ์ฌํ ๊ฒฝ๋งค ์๋น์ค์ ํฐ์ผํ , ๊ณต๋๊ตฌ๋งค๋ฅผ ๋ ์ฌ๋ฆฌ๊ฒ ๋์์ต๋๋ค.
๋์์ฑ ์ฒ๋ฆฌ์ ํธ๋ํฝ์ ๊ณ ๋ คํด ํฐ์ผํ ๊ณผ ๊ณต๋๊ตฌ๋งค์์ ๋ง์ ์์ด๋์ด๊ฐ ๋์์ต๋๋ค.
ํฌ์์ ํ๋ฉ์์ ๋ค์ํ ๊ธฐ์ ์ ๊ฒฝํํ ์ ์๋ค๋ ์ ์์ ํ๋ฉ ํ๋ซํผ์ ์ ์ ํ๊ฒ ๋์์ต๋๋ค.
โ๏ธ ์ฃผ์ ๊ธฐ๋ฅ
- ํ์
- ํ์ ๊ฐ์ , ๋ก๊ทธ์ธ, ๋ก๊ทธ์์, ๊ฐ์ธ ์ ๋ณด ์กฐํ ๋ฐ ์์
- ์ํ ์ฐ ๋๋ฅด๊ธฐ, ์ฐ ์กฐํ, ์ฐ ์ญ์
- ํ๋ก์ ํธ
- ํ๋ก์ ํธ ๋ฆฌ์คํธ ํ์ด์ง
- ๋ฒ ์คํธ ๋กฏ๋+ ์กฐํ, ๋ง๊ฐ์๋ฐ์ ๋กฏ๋ ์กฐํ
- ์นดํ ๊ณ ๋ฆฌ ๋ณ, ๋กฏ๋+ ์กฐํ, ๊ธฐํ์ ๋กฏ๋+ ์กฐํ, ๋กฏ๋ ์กฐํ
- ํ๋ก์ ํธ ์์ธ ํ์ด์ง
- ํ๋ก์ ํธ ์์ธ ์กฐํ
- ์ง์ง์๋ช ์กฐํ, ์์ฑ, ์์
- ํจ๊ป ํ๋ ์ํฌํฐ ์กฐํ
- ํ๋ก์ ํธ ๋ฆฌ์คํธ ํ์ด์ง
- ๋กฏ๋ ํ๋ก์ ํธ
- ํน๊ฐ ํ ์ธ ์ ์ฉ ์ด๋ฒคํธ
- ํ๋ฉ
- ํ๋ก์ ํธ ํ๋ฉ ๋ฐ ์ทจ์ ํ๋ถ
- ํ๋ฉ ๋ด์ญ ์กฐํ, ํ๋ฉ ์์ธ ๋ด์ญ ์กฐํ
- ๋ฉค๋ฒ์ญ
- ๋ฉค๋ฒ์ญ(ํ๋ฉ ํ๋ ๋, ํ๋ฉ ํํธ๋) ๊ฐ์
- ์๋ฆผ
- ๋ชฉํ ํ๋ฉ ๊ธ์ก ๋ฌ์ฑ ์๋ฆผ
- ํ๋ก์ ํธ ๋ง๊ฐ ์๋ฆผ, ๋ชฉํ ํ๋ฉ๊ธ์ก ๋ฏธ๋ฌ์ฑ ์๋ฆผ
- ๋ฐฐ์ก ์์ ์๋ฆผ
๐โโ๏ธ Maker ์ ์ฉ ๊ธฐ๋ฅ
- ํ๋ก์ ํธ ๊ฐ์ค
- ํ๋ก์ ํธ ๋ฑ๋ก
- ํ๋ฉ ๊ด๋ฆฌ
- ๋ฑ๋กํ ํ๋ก์ ํธ ๋ชฉ๋ก, ์์ธ ์กฐํ
- ๊ฐ ํ๋ก์ ํธ์ ๋ํ ํ๋ฉ ๋ด์ญ ์กฐํ
- ํ๋ฉ ๋ด์ญ ๊ฑด์ ๋ํ ๋ฐฐ์ก ์์
- ์๋ฆผ
- ๋ชฉํ ํ๋ฉ ๊ธ์ก ๋ฌ์ฑ ์๋ฆผ
- ํ๋ก์ ํธ ๋ง๊ฐ ์๋ฆผ, ๋ชฉํ ํ๋ฉ๊ธ์ก ๋ฏธ๋ฌ์ฑ ์๋ฆผ
๐งโ๐ผ Back Office
- ํ์, ๋ฉ์ด์ปค, ํ๋ก์ ํธ ์กฐํ ๋ฐ ๊ฒ์
- ํ๋ก์ ํธ ๊ด๋ฆฌ
- ํ๋ก์ ํธ ์ธ์ฆ
โ๏ธ USE CASE
โ๏ธ ์์ด์ด ํ๋ ์
โ๏ธย ERD
โ๏ธ ์ํคํ ์ฒ
โ๏ธ ํ๋ก์ ํธ ์งํ ๋ฐ ํ์ ๋ฐฉ์
- ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- ๋งค์ผ ์ ํด์ง ์๊ฐ์ ์คํฌ๋ผ ๋ฏธํ ์ ํตํด ์งํ ์ํฉ์ ๊ณต์ ํ๊ณ ์ ๋ ์ ์ฑ๊ณผ์ ๊ทธ๋ ์ ๊ณํ, ๊ทธ๋ฆฌ๊ณ ๊ฒช๊ณ ์๋ ์ด๋ ค์์ ๊ณต์ ํ์์ต๋๋ค.
- ํ์๋ก ์์ฑ
- ๋ชจ๋ ํ์์ ๋ํ ๋ด์ฉ์ ์์ฑํ์ฌ ํ์๋ค ๊ฐ์ ๊ฒฐ์ ์ฌํญ์ ๊ธฐ๋กํ์์ต๋๋ค.
- ๋ฌธ์ํ
- ๋ ธ์
- ๋ง์ธ๋๋งต
- ์๊ตฌ์ฌํญ ๋ช ์ธ์
- ERD
- Use-Case diagram
- ์ํคํ ์ฒ
- API ๋ช ์ธ์
- ํฌ์คํธ๋งจ
- ์ค์ผ์ค ๋ฌ๋ ฅ
- ์ผ์ , ๊ณต์ง, ์ ๋ฌด ๋ง๊ฐ์ผ์ ์ค์ผ์ค ๋ฌ๋ ฅ์ ๊ธฐ๋กํ์ฌ ์ ์ฒด ํ๋ก์ ํธ ์ผ์ ์ ๊ด๋ฆฌํ์์ต๋๋ค.
โ๏ธ ๊ฐ๋ฐ ๋ฐ ๊ธฐ์ ๊ตฌํ ๊ฒฐ๊ณผ
-
ํ์
-
์ธ์ฆ ๋ฐ ์ธ๊ฐ(JWT) ์ธ๋ถ๋ก๋ถํฐ์ ์์ฒญ์ ๋จ์ผ ์ง์ ์ ์ธ Spring Cloud Gateway์ ๊ฑฐ์ณ (Authorization) Filter๋ฅผ ํ๋ค. ( ๋จ, ๋ก๊ทธ์ธ/ํ์๊ฐ์ ์์ฒญ๋ง Spring Cloud Gateway์ Filter ๊ฑฐ์น์ง ์์. )
Member-Service์์ ๋ก๊ทธ์ธ ์ DB์ ์ด๋ฉ์ผ ๋ฐ ๋น๋ฐ๋ฒํธ๊ฐ ์ ๋ ฅํ ๊ฐ๊ณผ ์ผ์นํ๋ค๋ฉด, JWT Token ๋ฐ๊ธ. ๋ธ๋ผ์ฐ์ ์ Local Storage์ TOKEN์ ์ ์ฅ.
์ดํ, ํ์๋ง ํ ์ ์๋ ์์ฒญ์ ๋ํด Spring Cloud Gateway์ ํํฐ์์ ํ ํฐ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ํ. ํ ํฐ์ด ์ ํจํ๋ค๋ฉด, ์ ๋ณด๋ฅผ ๊บผ๋ด โํ์(Member)โ์ ๊ณ ์ id์ธ memberId๋ฅผ Header์ ๋ฃ์ด์ค๋ค.
ํด๋น ๊ณผ์ ์ ๊ฑฐ์ณ ์ ํจํ ํ์๊ณผ ๋นํ์์ ๊ตฌ๋ถํ๊ณ , ์ด์ ๋ฐ๋ผ, ์ ๊ทผํ ์ ์๋ ํ์ด์ง์ ์ ํ์ ๋๋ค.
-
๋ฉค๋ฒ์ญ ๊ฐ์ Kakao Payments API(๋จ๊ฑด ๊ฒฐ์ )๋ฅผ ์ด์ฉํ์ฌ, ๋ฉค๋ฒ์ญ ๊ฐ์ ์ ์งํ. ๋จ๊ฑด ๊ฒฐ์ ๊ณผ์ ์ โ์ค๋น ์์ฒญโ๊ณผ โ์น์ธ ์์ฒญโ์ผ๋ก ๋๋๋ค.
์ค๋น ์์ฒญ์์, ๋ฉค๋ฒ์ญ ๋ช , ๋ฉค๋ฒ์ญ ๊ฐ๊ฒฉ, ๊ฐ๋งน์ ์ฝ๋, approval_url ๋ฑ์ ๊ฐ์
Kakao Payments Server๋ก ๋ณด๋ธ๋ค. ์ค๋น ์์ฒญ์ด ์๋ฃ๋๋ฉด Kakao Payments Server๊ฐ ๋ณด๋ด์ฃผ๋ ์๋ต ์ค ํ๋์ธ ๊ฐ์ธ โnext_redirect_pc_urlโ์ ํด๋ผ์ด์ธํธ๋ก ๋๊ฒจ ์นด์นด์ค ๊ฒฐ์ QR์ฝ๋๊ฐ ํ์ ์ฐฝ์ผ๋ก ๋จ๊ฒ ํ๋ค.
์ฌ์ฉ์๊ฐ ๊ฒฐ์ ์ ๋ณด๋ฅผ ์ ๋ ฅํ๊ณ , ๊ฒฐ์ ํ๊ธฐ ๋ฒํผ์ ๋๋ฅด๋ฉด, ์ค๋น ์์ฒญ ๋ ๋ณด๋ด์ฃผ์๋
approve_url๋ก ์์ฒญ์ด ๋ณด๋ด์ง๊ณ , Kakao Payments Server์ ์ต์ข ์ ์ธ ์น์ธ ์์ฒญ์ ๋ณด๋ด๊ฒ ๋๋ค. Kakao Payments Server์์ ์ ์์ ์ธ ์๋ต์ด ์ค๋ฉด, DB์ ์ต์ข ์ ์ธ ๊ฒฐ์ ์ ๋ณด๋ฅผ
๋ฃ๊ณ , ํธ๋์ญ์ ์ฒ๋ฆฌํ์ฌ ๊ฒฐ์ ์ฒ๋ฆฌ๋ฅผ ์๋ฃ๋ฉ
-
-
์๋ฆผ
- ๋ฉ์์ง ํ ์๋น์ค์ธ AWS SQS๋ฅผ ์ฌ์ฉํด์ ์๋ฆผ ์๋น์ค์ ๋ค๋ฅธ ๋ง์ดํฌ๋ก์๋น์ค๊ฐ์ ๊ฒฐํฉ๋๋ฅผ ์ต์ํํ์๋ค.
- AWS SQS๋ ๋ฉ์์ง ๊ฑด๋น ๋น์ฉ์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ๋น์ฉ ์ต์ ํ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๊ณ , ์๋์ผ๋ก ์ํ ์ค์ผ์ผ๋ง์ด ๊ฐ๋ฅํ๊ณ , ์คํจ์ DLQ ๋ฐ ๋ฆฌ๋๋ผ์ด๋ธ ์ ์ฑ ์ ์ ์ฉํ์ฌ ๊ด๋ฆฌ๊ฐ ์ฉ์ดํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉํ๊ฒ ๋์๋ค.
- ๊ฐ์ ์ด๋ฒคํธ์ ๋ํด์ ๊ตฌ๋ ํ๊ณ ์๋ ์ฌ๋ฌ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฉ์์ง๋ฅผ ๋ฐํํ๊ธฐ ์ํด์ SNS + SQS ๋ฅผ ์ฌ์ฉํ ํฌ์์ ํจํด์ ์ฌ์ฉํ์๋ค.
- ์ค์ผ์ค๋ง ๊ฐ์ ๊ฒฝ์ฐ Spring Batch ๋๋ ์ฌ๋ฌ ์ค์ผ์ค๋ง ์ ๋ต์ ์ฌ์ฉํ ์ ์์ง๋ง ์ง์ ์๋ฒ๋ฅผ ๊ด๋ฆฌํ๊ณ Cron Job์ ์ค์ผ์ผ๋ง์๋ ์ฌ๋ฐฐํฌ์ ๊ด๋ฆฌํด์ฃผ์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ํ์ฌ๋ ๊ด๋ฆฌ๊ฐ ๋ฐ๋ก ํ์์๋ AWS EventBridge๋ฅผ ์ฌ์ฉํ์๋ค.
-
๋ฐฐ์ก
- ํ๋ฉ์ด ์๋ฃ๋จ๊ณผ ๋์์ ๋ฐ๋์ ๋ฐฐ์ก ๋ ์ฝ๋๊ฐ ์์ฑ๋ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ํ๋ฉ์ด ์๋ฃ๋๋ฉด ํ๋ฉ ์๋น์ค์์ create-order topic์ Message๋ฅผ ๋ฐํํ๊ณ , ์ด๋ฅผ ๋ฐฐ์ก ์๋น์ค๊ฐ Polling ํ์ฌ ๋ฐฐ์ก ๋ ์ฝ๋๊ฐ ๋น๋๊ธฐ์ ์ผ๋ก ์์ฑ๋ ์ ์๋๋ก ํ์๋ค.
-
๊ด๋ฆฌ์
- ๊ด๋ฆฌ์ ์๋น์ค์์ ๋ค๋ฅธ ๋ง์ดํฌ๋ก์๋น์ค์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ค๋ฉด OpenFeign์ ์ฌ์ฉํ ์๋ ์์์ง๋ง, ๊ด๋ฆฌ์ ์๋น์ค์ DB๋ฅผ ๋ฐ๋ก ๊ตฌ์ฑํ์ฌ ๊ด๋ฆฌ์ ๋ฐ์ดํฐ ํ์์ ๋ง๊ฒ ํ ์ด๋ธ์ ๊ตฌ์ฑํ์๊ณ , ๊ด๋ฆฌ์๊ฐ ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ๊ฐ ์๋ ๋ค๋ฅธ ๋ง์ดํฌ๋ก์๋น์ค์์ ๋ฐ์ดํฐ ์์ฑ ์ด๋ฒคํธ๊ฐ ๋ฐํ๋๋ฉด Kafka๋ฅผ ํตํด์ ๊ด๋ฆฌ์ ์๋น์ค๊ฐ ์ด๋ฅผ ํด๋งํ์ฌ ๊ด๋ฆฌ์ ์๋น์ค DB์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ ์ ์๋๋ก ๊ตฌ์ฑํ์๋ค.
- ํ๋ก์ ํธ ์ธ์ฆ์ ๋ํ ๋ถ๋ถ์ Real time์ผ๋ก ์ธ์ฆ์ด ๋ ํ์๋ ์๊ธฐ ๋๋ฌธ์ ๊ด๋ฆฌ์๊ฐ ํ๋ก์ ํธ ์ธ์ฆ ์ด๋ฒคํธ๋ฅผ ๋ฐํํด์ Kafka๋ก ๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ฉด ํ๋ก์ ํธ ์๋น์ค์์ ์ด๋ฅผ Pollingํ์ฌ DB์์ ํ๋ก์ ํธ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ ๋ฐ์ดํธํ ์ ์๋๋ก ๊ตฌํํ์๋ค.
-
ํ๋ฉ
- ๋ก๊ทธ์ธํ ์ฌ์ฉ์๋ ํ๋ฉํ๊ธฐ ๋ฒํผ์ ํตํด ์ํ๋ ํ๋ก์ ํธ์ ์ํ์ ํ๋ฉํ ์ ์๋ค.
์ ํํ ์ํ์ ์นด์นด์คํ์ด API(๋จ๊ฑด ๊ฒฐ์ )๋ฅผ ํตํด ๊ตฌ๋งค๋ฅผ ์งํํ๋ค.
ํ๋ฉํ๊ธฐ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ๋ฐฑ์๋ ์๋ฒ์์ ์นด์นด์คํ์ด API๋ฅผ ํตํด ๊ฒฐ์ ์ค๋น ์์ฒญ์ ๋ณด๋ด๊ณ QR์ฝ๋๊ฐ ๋ด๊ธด redirect_url ์ฃผ์์ tid๋ฅผ ์ ๋ฌ๋ฐ๊ฒ ๋๋ค.
์ฌ์ฉ์์๊ฒ redirect_url๊ณผ tid๋ฅผ ๋ฐํํ์ฌ ์ฌ์ฉ์์๊ฒ QR์ฝ๋๋ฅผ ๋์์ค๋ค. ์ฌ์ฉ์๋ ํธ๋ํฐ์ผ๋ก QR๋ฅผ ์ฐ์ด ๊ฒฐ์ ๋ฅผ ์งํํ๋ฉด ์นด์นด์ค์์ ํ๋ก ํธ๋ก approval_url์ฃผ์๋ก redirectํ์ฌ ๊ฒฐ์ ์น์ธ์ ์งํํ๋ค. ์ด๋ url์ ํตํด ๋ฐ์ pg_token์ tid, ํ๋ฉ์ ๋ณด(ํ๋ฉ ์์ธ, ๊ฒฐ์ , ๋ฐฐ์ก์ ๋ณด)์ ํจ๊ป Funding-Service๋ก ๋ณด๋ด ์ต์ข ์ ์ผ๋ก ๋ง์ดํฌ๋ก์๋น์ค๊ฐ ๋ฐ์ดํฐ ์ ํฉ์ฑ์ ๋ง์ถ๊ณ ์นด์นด์ค ๊ฒฐ์ ์น์ธ์ ์ํ ๋ค์ ์์ ์ ์ํํ๋ค.
Funding-Service ๋ฐฑ์๋ ์๋ฒ์์ ์ฌ๊ณ ์ฐจ๊ฐ์ ์ํด Project-Service์์ ํ์ธ ํ(feign client) ์ฌ๊ณ ๊ฐ ์๋ค๋ฉด, ์นด์นด์ค์๋ฒ๋ก ์ต์ข ์ ์ผ๋ก ๊ฒฐ์ ์น์ธ ์์ฒญ์ ๋ณด๋ธ๋ค.
์ดํ ํฌ์ธํธ ์ฐจ๊ฐ์ ์ํด Member-Service ์ ์์ฒญ์ ๋ณด๋ด๊ณ ์ํ ๋ฐฐ์ก ์ ๋ณด๋ฅผ kafka๋ฅผ ํตํด Delivery-Service๋ก ์ ๋ฌํ๊ฒ ๋๋ค.
- ๋ก๊ทธ์ธํ ์ฌ์ฉ์๋ ํ๋ฉํ๊ธฐ ๋ฒํผ์ ํตํด ์ํ๋ ํ๋ก์ ํธ์ ์ํ์ ํ๋ฉํ ์ ์๋ค.
โ๏ธ ํ๊ณ
์ด๋ฆ | ๋ด์ฉ |
---|---|
์ด์์ | msa ํ๊ฒฝ์์ ์๋น์ค์ ์ ์ ํ ํ ์ด๋ธ ๋ถ๋ฆฌ์ ํด๋์ค ์ค๊ณ๊ฐ ์ ์ด๋ค์ก์ผ๋ฉฐ, ์ดํ ํ๋ก์ ํธ์์๋ ์ฑ๋ฅ์ ๋ํ ๊ณ ๋ฏผ๊ณผ ํจ๊ป ์ค๊ณ๋ฅผ ์งํํ๊ณ ์ถ์ต๋๋ค. jpa์ ์์์ฑ์ ๋ํ ๋ ๊น์ ์ดํด๊ฐ ํ์ํ๋ค๊ณ ๋๊ผ์ผ๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฑ๋ฅ์ ๋ํ ํ์ต๊ณผ ๊ณ ๋ฏผ์ ํตํด ํ๋ก์ ํธ์ ์ ์ฉํด ๋ณด๊ณ ์ถ์ต๋๋ค. ํ๋ก ํธ ๊ธฐ์ ์คํ์ ๋ํ ์ดํด๊ฐ ๋ถ์กฑํด ๊ธฐ์ ์ ์ ๋๋ก ์ฌ์ฉํ์ง ๋ชปํ ๊ฒ์ด ์์ฝ์ต๋๋ค. ์ดํ ํ๋ก์ ํธ์์๋ ํจ์จ์ ์ธ ํ์ ๊ณผ ์ฝ๋๋ฆฌ๋ทฐ๋ก ์ ์ค๊ณ๋ ํ๋ก์ ํธ๋ฅผ ์ํํ๊ณ ์ถ์ต๋๋ค. |
์ด์ฐ์ฝ | Spring Security์ JWT์ ๋ํด ๋ฐฐ์ฐ๊ณ ์ ์ฉํ๋ ๋ถ๋ถ์์ ๋์์๋ฆฌ์ ๋ํด ์ํ์ฐฉ์ค๋ฅผ ๋ง์ด ๊ฒช์ผ๋ฉด์, ๋ง์ด ๋ฐฐ์ธ ์ ์์์ต๋๋ค. ์ด ๊ณผ์ ์์ Spring Security์์ ๋ ๊น๊ฒ ์์๋ณด๊ณ ์ ํ๋ ์์ฌ๋ ์๊ฒจ์ ๋ ํ๋ณด๊ณ ์ถ์ต๋๋ค. ์ด๋ฒ ํ๋ก์ ํธ์์ github ํ์ฉ์ด๋ ํ์ ํ๋ ๋ฐฉ์์ ๋ํด ๊ฐ์ฅ ๋ง์ด ๋ฐฐ์ธ ์ ์์์ต๋๋ค. |
์ด์ง์ฐ | ๊ฒฐ์ ๊ณผ์ ์์ ํ์ํ API ์ค๊ณ์ ๋ฐ์ดํฐ ์ ํฉ์ฑ์ ๋ํด ๊ณ ๋ฏผํด๋ณผ ์ ์์์ต๋๋ค. ๋ํ MSA ๊ตฌ์กฐ์์ DB์ค๊ณ ๋ฐฉ๋ฒ๊ณผ Spring Data JPA์ ๋ํด ๊ณต๋ถํด๋ณผ ์ ์๋ ์์คํ ์๊ฐ์ด์์ต๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค์ ์ ์ง์ฌ์ง ์ฝ๋๋ฅผ ๋ณด๋ฉด์ ๋ง์ด ๋ฐฐ์ธ์ ์์์ต๋๋ค. ๊ฒฐ์ ์๋น์ค๋ฅผ ๊ตฌํํ๋ ๊ณผ์ ์์ ํ๋ก ํธ ๊ธฐ์ ์ ์์ ํ ์ดํดํ์ง ๋ชปํ ์ฑ๋ก ๊ตฌํํ ๊ฒ์ด ์์ฌ์ ์ต๋๋ค. ๋ค์ ํ๋ก์ ํธ์์ ๋ณด์ํ ์ ๋ค์ ๊นจ๋ฌ์ ์ ์์ด์ ์ข์์ต๋๋ค. |
์ด์ฑ๋ฏผ | ๊ธฐํ ๊ณผ์ ์์ ๊ธฐ๋ฅ์ ๋๋ฌด ๋ฐฉ๋ํ๊ฒ ์ก์๋จ๋๋ ๊ธฐ๋ฅ์ ๊ณ ๋ํ์ํค์ง ๋ชปํ ๋ถ๋ถ์ด ์ปธ๋๊ฒ ๊ฐ๋ค. ๋ค์๋ถํฐ๋ ๊ธฐ๋ฅ์ ๊ณ ๋ํ์ํฌ๋ถ๋ถ ์๊ฐํ๊ณ ๊ธฐ๋ฅ์ ์๊ฐํด์ผ๊ฒ ๋ค. ๋น๋ก ์์ฌ์์ด ๋จ์ง๋ง ์ ๋ง๋ ํ์๋ค์ ๋ง๋์ ์ฑ์ฅํ ์ ์์๋ ์๊ฐ์ด์๋ค. |
์ต์์ | MSA, VUE3, Kafka ๋ฑ ์ฒ์ ์๋ํ๋ ๊ธฐ์ ์คํ์ด ๋ง์ ๋งํผ ๋ฐฐ์ด ์ ์ด ๋ง์ ํ๋ก์ ํธ์์ต๋๋ค. ๋งก์ ๊ธฐ๋ฅ์ ๋ชจ๋ ๊ตฌํํ์์ง๋ง, ์ฝ๋ ๋ฆฌํํ ๋ง, ๋๋ฒจ๋กญ์ ํ์ง ๋ชปํด, ์์ฌ์์ด ์์ต๋๋ค. ์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ํตํด, ๊ฐ ์๋น์ค์ ์ ํฉํ ์ค๊ณ๋ฅผ ์ฐพ์ผ๋ฉฐ, ํํํ๊ฒ ์ค๊ณ๋ฅผ ํ๋ ๊ฒ์ด ์ผ๋ง๋ ์ค์ํ์ง ์๊ฒ ๋์์ต๋๋ค. ์ข์ ํ์์ ๋ง๋์ ์ข์ ๊ฒฐ๊ณผ๋ฌผ์ ์ป์ ์ ์์๊ณ , ๋, ์ฆ์ ํ์์ ์ํต์ ํตํด ์งง์ ๊ฐ๊ฐ์๋ ํ๋ก์ ํธ๋ฅผ ์ํํ๊ฒ ์งํํ ์ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. |