AI๊ฐ ์ค๋์ ๊ฒฝ์ ๋ด์ค๋ฅผ ์ด๋ณด์ ๋๋์ด๋ก ํ์ด ์ฃผ๊ณ ,
๊ทธ ๋ด์ค๊ฐ ์ค์ ์์ฅ์ ๋ฏธ์น ์ํฅ์ ๋ชจ์ํฌ์๋ก ์ง์ ํ์ธํ๋ฉฐ ๋ฐฐ์ฐ๋ ๊ฒฝ์ ํ์ต ์๋น์ค
|
|
|
|
DDD ๊ธฐ๋ฐ: ๋๋ฉ์ธ์ผ๋ก ๋จผ์ ๋๋๊ณ ๊ทธ ์์์ ๋ ์ด์ด๋ฅผ ๋๋๋๋ค. ๋น์ฆ๋์ค ๊ท์น์ ์๋น์ค๊ฐ ์๋๋ผ ์ํฐํฐ ์์ ๋ก๋๋ค.
// ์์กด ๋ฐฉํฅ
presentation โ application โ domain
์ง์
์ ํธ๋์ญ์
ยท์กฐ๋ฆฝ ๊ท์น ๋ณธ์ฒด
โ
infrastructure
์ธ๋ถ ์ฐ๋
// ํจํค์ง ๋ ์ด์ด ๊ตฌ์กฐ
com/muffin/investment/ โ ๋๋ฉ์ธ (news ยท quiz ยท sector ยท stats ยท ranking ยท auth ...)
โโโ presentation/ ์ปจํธ๋กค๋ฌ ยท ์ค์ผ์ค๋ฌ ยท DTO ยท Swagger
โโโ application/ CommandService(์ฐ๊ธฐ) ยท QueryService(์ฝ๊ธฐ)
โโโ domain/investment/ ์ ๊ทธ๋ฆฌ๊ฑฐํธ : Investment + InvestmentSector
โ userasset/ ์ ๊ทธ๋ฆฌ๊ฑฐํธ : UserAsset
โโโ infrastructure/ QueryDSL ยท ์ธ๋ถ API ยท AI ํด๋ผ์ด์ธํธ
| ๊ท์น | ๋ด์ฉ |
|---|---|
๐ซ @Setter ๊ธ์ง |
์ํ ๋ณ๊ฒฝ์ settle() ๊ฐ์ ๋์ฌ ๋ฉ์๋๋ก๋ง |
| ๐ฆ ์ ๊ทธ๋ฆฌ๊ฑฐํธ ๋จ์ | ๋ฃจํธ๋ง๋ค ๋ฆฌํฌ์งํ ๋ฆฌ 1๊ฐ, ์์ ์ ์ฉ ๋ฆฌํฌ์งํ ๋ฆฌ ์์ |
| ๐ ID ์ฐธ์กฐ | ์ ๊ทธ๋ฆฌ๊ฑฐํธ ๊ฒฝ๊ณ๋ FK ๋์ ID๋ก ์ฐธ์กฐ |
| ์ฐ๊ธฐ๋ ์ ๊ทธ๋ฆฌ๊ฑฐํธ ๋ฃจํธ๋ก, ์ฝ๊ธฐ๋ DTO๋ก ์ง์ projection | |
| โก๏ธ ๋จ๋ฐฉํฅ ์์กด | domain์ ์ปจํธ๋กค๋ฌยทDTO๋ฅผ ๋ชจ๋ฆ |
- ๐ฟ ๋ธ๋์น :
feat/#์ด์๋ฒํธโdev๋ก๋ง PR,main์๋devยทhotfix๋ง - ๐ ์ปค๋ฐ :
[ํ์ /#์ด์๋ฒํธ] ์ ๋ชฉ+ ๋ณธ๋ฌธ ๋ถ๋ฆฟ (featfixdocssettingrefactortestdeploychore) - ๐ PR : ์์ PR ๊ท์น ๋์ ; 1,000์ค ์ด๋ด๋ก ์ชผ๊ฐ๊ธฐ, approve 1์ธ + CI ํต๊ณผํด์ผ ๋จธ์ง
- ๐จ ํฌ๋งทํ
:
palantirJavaFormat+ Spotless, ๋น๋ ์ ์๋ ์คํํ๊ณ CI์์ ๊ฒ์ฌ - ๐๏ธ ์คํค๋ง : Flyway ๋ง์ด๊ทธ๋ ์ด์
์ผ๋ก๋ง ๋ณ๊ฒฝ, ์ด์์
ddl-auto: validate - โ
ํ
์คํธ : ํจ์๋ช
์ ์์ด๋ก ๊ฐ๊ฒฐํ๊ฒ,
@DisplayName์ ํ๊ตญ์ด๋ก ์ฝ๊ธฐ ์ข๊ฒ
|
@yeonthusiast ๐ ๋ฆฌ๋ ๐ ๋ชจ์ํฌ์ ยท ์ ์ฐ ๐ ํต๊ณ |
@skays1212 ํ์ ๐ฐ AI ยท ๋ด์ค โ๏ธ ์ธํ๋ผ |
@sekong11 ํ์ ๐ง AI ยท ํด์ฆ ๐ฐ ๋ด์ค |
@LeeJeongHeon02 ํ์ ๐ท๏ธ ์นํฐ ยท ETF ์์ธ ๐ ๋ญํน |
@Eugene-Shin ํ์ ๐ ์ธ์ฆ ยท ํ์ ๐ ์๋ฆผ |
muffin-back/
โโโ backend/ Spring Boot ์ ํ๋ฆฌ์ผ์ด์
(๋๋ฉ์ธ๋ณ โ ๋ ์ด์ด DDD ๊ตฌ์กฐ)
โโโ infra/
โ โโโ terraform/ AWS ์ธํ๋ผ (EC2 ยท RDS ยท ECR ยท IAM ยท ๋คํธ์ํฌ)
โ โโโ monitoring/ Grafana Alloy ์์ง๊ธฐ ์ค์
โโโ .github/ CI ยท CD ์ํฌํ๋ก
๐ง Muffin ยท Made with care by the money-pin team
2026. 08. 11. ver.
