๐Ÿฐ [flowbit] #8. ๋ฐฐํฌ ์ „ ์ค€๋น„ - ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ๋ถ™์ธ ๋‚ 

bean8080๐Ÿซ›ยท2026๋…„ 5์›” 3์ผ

flowbit ๐Ÿฐโ˜˜๏ธ

๋ชฉ๋ก ๋ณด๊ธฐ
9/15

โ˜˜๏ธ 1. ์˜ค๋Š˜ ๋ชฉํ‘œ

์ด์ œ Flowbit์€
๊ธฐ๋Šฅ์ ์œผ๋กœ๋Š” ์™„์„ฑ๋œ ์ƒํƒœ๋‹ค

Project
Task
TaskEvent
Timeline
Analysis
Workspace UI

์ „๋ถ€ ๋™์ž‘ํ•œ๋‹ค

ํ•˜์ง€๋งŒ ํ•œ ๊ฐ€์ง€๊ฐ€ ๋‚จ์•„ ์žˆ์—ˆ๋‹ค

์ด๊ฑธ ์‹ค์ œ๋กœ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ์ธ๊ฐ€?


โ˜˜๏ธ 2. ๋ฌธ์ œ: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๊ฐ€ ์—†๋‹ค

์ง€๊ธˆ๊นŒ์ง€๋Š”
๊ธฐ๋Šฅ ๊ตฌํ˜„์— ์ง‘์ค‘ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š” ์ „ํ˜€ ์—†๋Š” ์ƒํƒœ์˜€๋‹ค

์ด ์ƒํƒœ์—์„œ ๋ฐฐํฌ๋ฅผ ํ•˜๋ฉด

โ†’ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ๋„ ๋ง‰์„ ์ˆ˜ ์žˆ๋Š” ์žฅ์น˜๊ฐ€ ์—†๋‹ค


โ˜˜๏ธ 3. ํ•ด๊ฒฐ: ์ตœ์†Œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

์ด๋ฒˆ์— ์ž‘์„ฑํ•œ ํ…Œ์ŠคํŠธ๋Š”

๋ชจ๋“  ๋กœ์ง์„ ๊ฒ€์ฆํ•˜๋Š” ํ…Œ์ŠคํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ

๋ฐฐํฌ ์ „์— API๊ฐ€ ์ •์ƒ ๋™์ž‘ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ตœ์†Œ ํ…Œ์ŠคํŠธ

Controller ๊ธฐ์ค€์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค

GET /hello
GET /api/projects
POST /api/projects
GET /api/tasks
POST /api/tasks

โ†’ ์ฃผ์š” API๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์‘๋‹ตํ•˜๋Š”์ง€ ํ™•์ธ


โ˜˜๏ธ 4. MockMvc ๊ธฐ๋ฐ˜ ํ…Œ์ŠคํŠธ

Spring์—์„œ ์ œ๊ณตํ•˜๋Š” MockMvc๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค

์‹ค์ œ ์„œ๋ฒ„๋ฅผ ๋„์šฐ์ง€ ์•Š๊ณ 

HTTP ์š”์ฒญ์„ ๊ทธ๋Œ€๋กœ ํ‰๋‚ด๋‚ด์„œ
Controller ๋ ˆ๋ฒจ์—์„œ ๊ฒ€์ฆํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค

Service๋Š” ์‹ค์ œ ๊ฐ์ฒด ๋Œ€์‹  Mock์œผ๋กœ ๋Œ€์ฒดํ•ด์„œ

DB ์—†์ด ๋น ๋ฅด๊ฒŒ ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ตฌ์„ฑํ–ˆ๋‹ค


โ˜˜๏ธ 5. ํ…Œ์ŠคํŠธ ์‹คํ–‰ ๊ฒฐ๊ณผ

ํ…Œ์ŠคํŠธ ์ž‘์„ฑ ํ›„ ์‹คํ–‰ํ–ˆ๋‹ค.

./gradlew test

๊ฒฐ๊ณผ:

ํ…Œ์ŠคํŠธ ์‹คํ–‰ ๊ฒฐ๊ณผ

BUILD SUCCESSFUL

๋ชจ๋“  ํ…Œ์ŠคํŠธ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ํ†ต๊ณผํ–ˆ๋‹ค.

๊ธฐ๋ณธ์ ์ธ API ๋™์ž‘์— ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ๊ณ 
์ด์ œ ๋ฐฐํฌ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์†Œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.


โ˜˜๏ธ 5. ์™œ ์ด๊ฑธ ๋จผ์ € ํ–ˆ๋Š”๊ฐ€

CI/CD๋ฅผ ์ ์šฉํ•˜๋ ค๋ฉด

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๊ฐ€ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•˜๋‹ค

ํ…Œ์ŠคํŠธ๊ฐ€ ํ†ต๊ณผํ•ด์•ผ๋งŒ ๋ฐฐํฌ๊ฐ€ ๋˜๋„๋ก ๊ตฌ์„ฑํ•ด์•ผ

์•ˆ์ •์ ์ธ ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค


โ˜˜๏ธ 6. ์˜ค๋Š˜ ์ •๋ฆฌ

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ (Controller ๊ธฐ์ค€)
MockMvc ๊ธฐ๋ฐ˜ API ๊ฒ€์ฆ
CI/CD ์ค€๋น„ ๋‹จ๊ณ„ ์ง„์ž…


โ˜˜๏ธ 7. ํ˜„์žฌ ์ƒํƒœ

Flowbit์€ ์ด์ œ

๊ธฐ๋Šฅ ๊ตฌํ˜„ ๋‹จ๊ณ„๋ฅผ ๋„˜์–ด
๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ์— ๋“ค์–ด์™”๋‹ค


โ˜˜๏ธ 8. ๋‹ค์Œ ๋ชฉํ‘œ

์ด์ œ ์ง„์งœ ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„

โ†’ ์„œ๋ฒ„ ๋ฐฐํฌ + ๋„๋ฉ”์ธ ์—ฐ๊ฒฐ

๋กœ์ปฌ์ด ์•„๋‹Œ

์‹ค์ œ ํ™˜๊ฒฝ์—์„œ ๋Œ์•„๊ฐ€๋Š” Flowbit ๋งŒ๋“ค๊ธฐ

0๊ฐœ์˜ ๋Œ“๊ธ€