์ด์ Flowbit์
๊ธฐ๋ฅ์ ์ผ๋ก๋ ์์ฑ๋ ์ํ๋ค
Project
Task
TaskEvent
Timeline
Analysis
Workspace UI
์ ๋ถ ๋์ํ๋ค
ํ์ง๋ง ํ ๊ฐ์ง๊ฐ ๋จ์ ์์๋ค
์ด๊ฑธ ์ค์ ๋ก ๋ฐฐํฌํ ์ ์๋ ์ํ์ธ๊ฐ?
์ง๊ธ๊น์ง๋
๊ธฐ๋ฅ ๊ตฌํ์ ์ง์คํ๊ธฐ ๋๋ฌธ์
ํ ์คํธ ์ฝ๋๋ ์ ํ ์๋ ์ํ์๋ค
์ด ์ํ์์ ๋ฐฐํฌ๋ฅผ ํ๋ฉด
โ ๋ฌธ์ ๊ฐ ์๊ฒจ๋ ๋ง์ ์ ์๋ ์ฅ์น๊ฐ ์๋ค
์ด๋ฒ์ ์์ฑํ ํ ์คํธ๋
๋ชจ๋ ๋ก์ง์ ๊ฒ์ฆํ๋ ํ ์คํธ๊ฐ ์๋๋ผ
๋ฐฐํฌ ์ ์ API๊ฐ ์ ์ ๋์ํ๋์ง ํ์ธํ๋ ์ต์ ํ ์คํธ
Controller ๊ธฐ์ค์ผ๋ก ํ ์คํธ๋ฅผ ์์ฑํ๋ค
GET /hello
GET /api/projects
POST /api/projects
GET /api/tasks
POST /api/tasks
โ ์ฃผ์ API๊ฐ ์ ์์ ์ผ๋ก ์๋ตํ๋์ง ํ์ธ
Spring์์ ์ ๊ณตํ๋ MockMvc๋ฅผ ์ฌ์ฉํ๋ค
์ค์ ์๋ฒ๋ฅผ ๋์ฐ์ง ์๊ณ
HTTP ์์ฒญ์ ๊ทธ๋๋ก ํ๋ด๋ด์
Controller ๋ ๋ฒจ์์ ๊ฒ์ฆํ๋ ๋ฐฉ์์ด๋ค
Service๋ ์ค์ ๊ฐ์ฒด ๋์ Mock์ผ๋ก ๋์ฒดํด์
DB ์์ด ๋น ๋ฅด๊ฒ ํ ์คํธ ๊ฐ๋ฅํ๋๋ก ๊ตฌ์ฑํ๋ค
ํ ์คํธ ์์ฑ ํ ์คํํ๋ค.
./gradlew test
๊ฒฐ๊ณผ:

BUILD SUCCESSFUL
๋ชจ๋ ํ ์คํธ๊ฐ ์ ์์ ์ผ๋ก ํต๊ณผํ๋ค.
๊ธฐ๋ณธ์ ์ธ API ๋์์ ๋ฌธ์ ๊ฐ ์๋ค๋ ๊ฒ์ ํ์ธํ๊ณ
์ด์ ๋ฐฐํฌ๋ฅผ ์งํํ ์ ์๋ ์ต์ ์กฐ๊ฑด์ ๋ง์กฑํ๊ฒ ๋์๋ค.
CI/CD๋ฅผ ์ ์ฉํ๋ ค๋ฉด
ํ ์คํธ ์ฝ๋๊ฐ ๋ฐ๋์ ํ์ํ๋ค
ํ ์คํธ๊ฐ ํต๊ณผํด์ผ๋ง ๋ฐฐํฌ๊ฐ ๋๋๋ก ๊ตฌ์ฑํด์ผ
์์ ์ ์ธ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํ๋ค
ํ
์คํธ ์ฝ๋ ์์ฑ (Controller ๊ธฐ์ค)
MockMvc ๊ธฐ๋ฐ API ๊ฒ์ฆ
CI/CD ์ค๋น ๋จ๊ณ ์ง์
Flowbit์ ์ด์
๊ธฐ๋ฅ ๊ตฌํ ๋จ๊ณ๋ฅผ ๋์ด
๋ฐฐํฌ ๊ฐ๋ฅํ ์ํ์ ๋ค์ด์๋ค
์ด์ ์ง์ง ๋ง์ง๋ง ๋จ๊ณ
โ ์๋ฒ ๋ฐฐํฌ + ๋๋ฉ์ธ ์ฐ๊ฒฐ
๋ก์ปฌ์ด ์๋
์ค์ ํ๊ฒฝ์์ ๋์๊ฐ๋ Flowbit ๋ง๋ค๊ธฐ