์๋ ์ค๋์ ๋ฐฐํฌ๋ฅผ ์งํํ๋ ค๊ณ ํ๋ค.
๊ทธ๋ฐ๋ฐ ์์ํ์ง ๋ชปํ ๋ฌธ์ ๊ฐ ํ๋ ์๊ฒผ๋ค.
๊ธฐ์กด์ ์ฌ์ฉํ๋ AWS ๊ณ์ ์ด
90์ผ์ด ์ง๋๋ฉด์ ๋์ผํ ์ด๋ฉ์ผ๋ก ์ฌ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅํ ์ํ์๋ค.
์ฆ, ๊ธฐ์กด ์ด๋ฉ์ผ๋ก๋ ๊ณ์ ์ ๋ค์ ๋ง๋ค ์ ์์ด์
๋ค๋ฅธ ์ด๋ฉ์ผ์ ์ฌ์ฉํด์ผ ํ๋ ์ํฉ์ด ๋์๋ค.
๊ฒฐ๊ตญ ๊ณ์ ๋ฌธ์ ๋ก ์ธํด
๋ฐฐํฌ๋ ์ ์ ๋ฏธ๋ฃจ๊ฒ ๋์๋ค.
์ฒ์์๋ ํ๋ฆ์ด ๋๊ธด ๋๋์ด ๋ค์๋ค.
ํ์ง๋ง ๊ณง ์๊ฐ์ ๋ฐ๊ฟจ๋ค.
์ง๊ธ์ ๋ฐฐํฌ๋ณด๋ค ์ค์ํ ๊ฒ ์๋ค
์ง๊ธ Flowbit์
๊ธฐ๋ฅ ๊ตฌํ ์๋ฃ
API ๋์ ์๋ฃ
ํ
์คํธ ์ฝ๋ ์ต์ ๊ตฌ์ฑ ์๋ฃ
์ด๋ฏธ ๋์ํ๋ ์ํ์ ๊ฐ๊น์์ก๋ค.
๊ทธ๋์ ์ค๋์ ๋ฐฉํฅ์ ๋ฐ๊ฟจ๋ค.
๋ฐฐํฌ๋ฅผ ๋ฏธ๋ฃจ๊ณ , ํ๋ก์ ํธ๋ฅผ ์ ๋ฆฌํ์
์ค๋ ํ ์์ ์ ํ๋์๋ค.
โ README ์์ฑ
ํ๋ก์ ํธ๋ฅผ ์ฒ์ ๋ณด๋ ์ฌ๋์ด
์ด ๊ตฌ์กฐ๋ฅผ ์ดํดํ ์ ์๋๋ก ์ ๋ฆฌํ๋ ์์
์ด์๋ค.
๊ตฌ์ฑ์ ๋ค์๊ณผ ๊ฐ์ด ์ก์๋ค.
Overview
Problem
Solution
Architecture
Core Features
API Design
Key Design Decisions
ํนํ ๊ฐ์ฅ ์ ๊ฒฝ ์ด ๋ถ๋ถ์ ์ด๊ฒ์ด์๋ค.
์ ์ด ๊ตฌ์กฐ๋ฅผ ์ ํํ๋๊ฐ
๋จ์ํ ๋ฌด์์ ๋ง๋ค์๋์ง๊ฐ ์๋๋ผ
์ ์ด๋ ๊ฒ ๋ง๋ค์๋์ง๋ฅผ ์ค๋ช
ํ๋ ๋ฐ ์ง์คํ๋ค.

๋๋์ด ๋ฆฌ๋๋ฏธ๊ฐ ์๊ฒผ๋ค!
์ค๋์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๋ ์ ์๋์๋ค.
๋์
ํ๋ก์ ํธ๋ฅผ ์ค๋ช ํ ์ ์๋ ํํ๋ก ๋ง๋ ๋ ์ด์๋ค
์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ๊ณผ
๊ทธ ๊ตฌ์กฐ๋ฅผ ์ ๋ฆฌํ๋ ๊ฒ์ ๋ค๋ฅธ ์์ญ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ์ค๋์ ๊ทธ ์ฐจ์ด๋ฅผ ๋๋ ๋ ์ด์๋ค.
Flowbit์ ์ด์
๋์ํ๋ ๊ธฐ๋ฅ์ด ์๊ณ
ํ
์คํธ ์ฝ๋๊ฐ ์กด์ฌํ๋ฉฐ
README๋ฅผ ํตํด ๊ตฌ์กฐ ์ค๋ช
์ด ๊ฐ๋ฅํ ์ํ๊ฐ ๋์๋ค
๋ฐฐํฌ๋ ์ด๋ฒ ์ฃผ๋ง์ ํ ๋ฒ์ ์งํํ๊ธฐ๋ก ํ๋ค.
๊ทธ ์ดํ์๋ ๋จ์ํ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๊ฒ์ด ์๋๋ผ,
์ด๋ฒคํธ ๊ธฐ๋ฐ ๊ตฌ์กฐ๋ฅผ ์ค์ฌ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ํ ๋จ๊ณ ๋ ํ์ฅํด๋ณด๋ ค๊ณ ํ๋ค.
์์ผ๋ก๋ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉํฅ์ผ๋ก ์ฌํ ๊ฐ๋ฐ์ ์ด์ด๊ฐ ์์ ์ด๋ค.
ํน์ ์์ ๊ธฐ์ค ์ํ ์ฌ๊ตฌ์ฑ ๊ธฐ๋ฅ
์ด๋ฒคํธ ํ์
ํ์ฅ (์ํ ๋ณ๊ฒฝ ์ธ ๋ค์ํ ์ด๋ฒคํธ ์ฒ๋ฆฌ)
โ ๋จ์ ๊ธฐ๋ก์ ๋์ด ์ด๋ฒคํธ๋ฅผ ํ์ฉํ๋ ๊ตฌ์กฐ๋ก ํ์ฅ
์ํ๋ณ ์ฒด๋ฅ ์๊ฐ ๊ณ์ฐ
์ด๋ฒคํธ ํ๋ฆ ๊ธฐ๋ฐ ๋ฐ์ดํฐ ๋ถ์
โ ์ด๋ฒคํธ ๋ฐ์ดํฐ๋ฅผ ์ค์ ์๋ฏธ ์๋ ์ ๋ณด๋ก ๋ณํ
ํ์ฌ Spring Cache ๊ตฌ์กฐ ๊ฒ์ฆ
Redis ๊ธฐ๋ฐ ์บ์ฑ ๊ตฌ์กฐ๋ก ํ์ฅ
โ ๋ฐ์ดํฐ ์ฆ๊ฐ ์ํฉ์ ๊ณ ๋ คํ ์ฑ๋ฅ ์ค๊ณ
User / ํ์
๊ตฌ์กฐ ํ์ฅ ๊ณ ๋ ค
Task์ ์ฌ์ฉ์ ๊ด๊ณ ์ค๊ณ
โ ๋จ์ผ ์ฌ์ฉ์ ๋๊ตฌ โ ํ์ ์์คํ ์ผ๋ก ํ์ฅ ๊ฐ๋ฅ์ฑ ํ๋ณด
์ํ๋ณ ์๊ฐ์ ๊ตฌ๋ถ (์์, UI ๊ตฌ์กฐ)
ํ์๋ผ์ธ UI ์ ๋ฆฌ
๋ถ์ ํ๋ฉด ๊ตฌ์ฑ ๊ฐ์
๋ก๋ฉ/๋น๋๊ธฐ ์ฒ๋ฆฌ UX ๊ฐ์
โ ๋์ํ๋ ํ๋ฉด์์ ์ฌ์ฉ ๊ฐ๋ฅํ UI๋ก ๊ฐ์
์ด ์์
๋ค์ ๋จ๊ธฐ๊ฐ์ ๋๋ด๋ ๊ฒ์ด ์๋๋ผ
์์ผ๋ก ํ ๋ฌ ๋์ ์ง์์ ์ผ๋ก ๋ฐ์ ์์ผ ๋๊ฐ ํต์ฌ ์์ญ์ด๋ค
๋ค์ ์์ ๋ถํฐ๋ ๊ธฐ๋ฅ ์ถ๊ฐ๋ณด๋ค ๋ฐฑ์๋ ๊ตฌ์กฐ๋ฅผ ๋ ๋จ๋จํ๊ฒ ๋ง๋๋ ๋ฐฉํฅ์ผ๋ก ์งํํ๋ค.
๋จผ์ ํธ๋์ญ์ ๊ฒฝ๊ณ๋ฅผ ์ ๋ฆฌํ ์์ ์ด๋ค.
Flowbit์์๋ Task ์์ฑ๊ณผ ๋์์ TaskEvent๊ฐ ์์ฑ๋๊ณ ,
์ํ ๋ณ๊ฒฝ ์์๋ Task์ TaskEvent๊ฐ ํจ๊ป ๋ณ๊ฒฝ๋๋ค.
์ด๋ฐ ์์
์ ํ๋์ ํ๋ฆ์ผ๋ก ์ฑ๊ณตํ๊ฑฐ๋ ์คํจํด์ผ ํ๊ธฐ ๋๋ฌธ์
@Transactional์ ์ ์ฉํด ๋ฐ์ดํฐ ์ ํฉ์ฑ์ ๋ณด์ฅํ๋ ๊ตฌ์กฐ๋ก ๊ฐ์ ํ ์์ ์ด๋ค.
์ดํ์๋ ํ์ฌ Spring Cache ๊ธฐ๋ฐ์ผ๋ก ์ก์๋ ์บ์ฑ ๊ตฌ์กฐ๋ฅผ
Redis์ ์ฐ๊ฒฐํ์ฌ ์ค์ ์บ์ ์ ์ฅ์๋ก ํ์ฅํ ๊ณํ์ด๋ค.