TechMoa App์ ์ฌ๋ฌ ๊ธฐ์ ๋ธ๋ก๊ทธ์ RSS๋ฅผ ์์งํด ์ํฐํด์ ํตํฉ ์ ๊ณตํ๊ณ , ์ ๊ท ๊ธ ๋ฐ์ ์ ์นํ ์ผ๋ก ์๋ฆผ์ ์ ๋ฌํ๋ Kotlin + Spring Boot ๊ธฐ๋ฐ ๋ฉํฐ๋ชจ๋ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค.
- ์ฌ๋ฌ ๊ธฐ์ ๋ธ๋ก๊ทธ RSS๋ฅผ ์์งํ๊ณ ์ค๋ณต ์์ด ์ํฐํด์ ์ ์ฅํฉ๋๋ค.
- ํ์ฌ๊น์ง ์ฝ 1,000๊ฐ์ ๋ธ๋ก๊ทธ ์ํฐํด์ ๋ณผ ์ ์์ต๋๋ค.
- ์๋ก์ด ๊ธ์ด ๋ฑ๋ก๋ ๋ Discord ์นํ ์ผ๋ก ์๋ฆผ์ ๋ฐ์ ์ ์์ต๋๋ค.
graph TD
boot["boot<br/>์คํ ์ง์
์ / ์ค์ ์กฐํฉ"]
presentation["presentation<br/>REST API / ์์ธ ์ฒ๋ฆฌ / ์น ์ค์ "]
application["application<br/>์ ์ค์ผ์ด์ค / ์๋น์ค / ํฌํธ"]
domain["domain<br/>๋๋ฉ์ธ ๋ชจ๋ธ / ์์ธ / ์ด๋ฒคํธ"]
batchRss["batch:rss<br/>RSS ์์ง ๋ฐฐ์น"]
batchSchedules["batch:schedules<br/>์ ๊ท ์ํฐํด ์ค์บ / ์์๋ฐ์ค ๋ฐํ"]
infraJpa["infrastructure:jpa<br/>JPA ์ด๋ํฐ / ์ํฐํฐ / ๋ฆฌํฌ์งํ ๋ฆฌ"]
infraMysql["infrastructure:mysql<br/>MySQL / Flyway ๋ง์ด๊ทธ๋ ์ด์
"]
infraRest["infrastructure:rest<br/>Webhook REST ๋ฐํ"]
presentation --> application
presentation --> domain
application --> domain
infraJpa --> application
infraJpa --> domain
infraJpa -. runtime .-> infraMysql
infraRest --> domain
batchRss -. runtime .-> infraMysql
batchSchedules --> domain
batchSchedules -. runtime .-> infraMysql
boot --> presentation
boot --> application
boot --> domain
boot --> batchRss
boot --> batchSchedules
boot --> infraJpa
boot --> infraMysql
boot --> infraRest