
๊ธฐ์กด ์์ ๊ด๋ฆฌ ์์คํ ์ ์ฌ์ฉํ๋ฉด์ ํ ๊ฐ์ง ์์ฌ์์ด ์์๋ค. ํ์ฌ ์ํ๋ ๋ณด์ด๋๋ฐ, ๊ทธ ์ํ๊ฐ ์ด๋ป๊ฒ ๋ง๋ค์ด์ก๋์ง๋ ์ ๋ณด์ด์ง ์๋๋ค. ์ด๊ฒ ์๊ฐ๋ณด๋ค ํฐ ๋ฌธ์ ์๋ค. ์๋ฅผ ๋ค์ด,

์ด์ ๋ Task CRUD๊น์ง ๋ง๋ค์๋ค๋ฉด, ์ค๋์ flowbit์ ํต์ฌ ๊ตฌ์กฐ๋ฅผ ๋ง๋๋ ๋ ์ด์๋ค. ์ํ๋ฅผ ์ ์ฅํ๋ ๊ฒ ์๋๋ผ, ์ํ ๋ณํ๋ฅผ ๊ธฐ๋กํ๋ ๊ตฌ์กฐ ๊ธฐ์กด ๊ตฌ์กฐ๋ ๋จ์ํ๋ค. Task.status = TODO / IN_PROGRESS / DONE

์ด์ ๋ TaskEvent๋ฅผ ๋์ ํด์ ์ํ ๋ณํ๋ฅผ ๊ธฐ๋กํ๋ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค์๋ค. ์ค๋์ ๊ทธ ๋ค์ ๋จ๊ณ๋ค. ๊ธฐ๋กํ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ๋ณด์ฌ์ค ๊ฒ์ธ๊ฐ ๋จ์ํ ์ ์ฅํ๋ ๊ฑธ ๋์ด์ ์ด์ ๋ ์กฐํ ๊ตฌ์กฐ๋ฅผ ์ ๋๋ก ๋ง๋๋ ๋ ์ด์๋ค. ๊ธฐ์กด์๋ ์ด๋ฐ ์กฐํ๋ง ๊ฐ๋ฅํ๋ค.

์ด์ ๋ TaskEvent๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ ์ ์ํ ๋ณํ๋ฅผ ๊ธฐ๋กํ๊ณ , ๊ทธ๊ฑธ ์กฐํํด์ ํ๋ฆ์ ๋ณด์ฌ์ฃผ๋ ๋จ๊ณ๊น์ง ์๋ค. ๊ทผ๋ฐ ์ฌ๊ธฐ์ ๋ฑ ๊ฑธ๋ฆฐ ๊ฒ ์์๋ค.โญ ์์ ์ ํผ์ ์กด์ฌํ๋๊ฐ? ํ์ค์์๋ ๊ทธ๋ ์ง ์๋ค. ์์ ์ ํญ์ ์ด๋ค ๋จ์ ์์์ ์์ง์ธ๋ค. ๊ทธ๋์ ์ค๋ ๋ชฉํ๋ ์ด๊ฑฐ์๋ค.

์ด์ ๋ Project ๋๋ฉ์ธ์ ์ถ๊ฐํด์ ์์ ๋ค์ ํ๋์ ํ๋ฆ ์์ ๋ฃ์๋ค. ์ด์ ๊ตฌ์กฐ๋ ๊ฐ์ถฐ์ก๋ค. ๊ทผ๋ฐ ์ฌ๊ธฐ์ ๋ ํ๋ ๋ถ์กฑํ ๊ฒ ์์๋ค. ํ๋ก์ ํธ ๋จ์๋ก ํ๋ฆ์ด ์ ๋ณด์ธ๋ค ์ง๊ธ์ Task ํ๋์ ํ๋ฆ์ ๋ณผ ์ ์์ง๋ง Project ์ ์ฒด ํ๋ฆ์ ๋ณผ ์ ์๋ค

ํด๊ทผํ๊ณ ์งํ์ฒ ์ ํ๋ค. ์์ฆ์ ๊ฐ๋งํ ์๋ ์๊ฐ์ด ๊ฑฐ์ ์๋ค. ๊ฐ๋งํ ์์ผ๋ฉด ์์ฐ์ค๋ฝ๊ฒ ํ๋ก๋น ์๊ฐ์ ํ๊ฒ ๋๋ค. ์งํ์ฒ ์ ์์์๋ ๊ณ์ ํ๋ก๋น ์๊ฐ์ ํ๊ณ ์์๋๋ฐ, ๊ฐ์๊ธฐ ๋๋ฉ์ธ ์๊ฐ์ด ๋ฌ๋ค. ์ด ์ด๋ฆ ๊ด์ฐฎ์๋ฐ, ์ด๊ฑฐ ๋๊ฐ ๋จผ์ ๊ฐ์ ธ๊ฐ๋ฉด ์ข ์์ฌ์ธ ๊ฒ ๊ฐ๋ค๋ ๋๋

์ด์ ๋ Project Timeline์ ๋ง๋ค์ด์ ํ๋ก์ ํธ ๋จ์์ ํ๋ฆ์ ๋ณผ ์ ์๊ฒ ๋ง๋ค์๋ค. ์ด์ ๋ ํ๋ฆ์ด ๋ณด์ธ๋ค. ๊ทผ๋ฐ ์ฌ๊ธฐ์ ๋ ํ๋ ๋ถ์กฑํ ๊ฒ ์์๋ค. ํ๋ฆ์ ๋ณด์ด๋๋ฐ, ํด์์ ์๋๋ค ์ง๊ธ์ ์ด๋ฒคํธ๋ฅผ ๋์ดํ๋ ๋จ๊ณ๋ค. ๊ทธ๋์ ์ค๋ ๋ชฉํ๋ ์ด๊ฑฐ์๋ค.

์ด์ ๊น์ง๋ ์ด๋ฒคํธ๋ฅผ ๊ธฐ๋กํ๊ณ ๊ทธ ์ด๋ฒคํธ๋ฅผ ํด์ํด์ ํ๋ก์ ํธ ์ํ๋ฅผ ๋์ถํ๋ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค์๋ค. ์ฆ, ๋ฐ์ดํฐ๋ ์์ฑ๋ ์ํ ๋ฐฑ์๋ ๊ธฐ์ค์์๋ ์ด๋ฏธ ๋ชจ๋ ์ ๋ณด๊ฐ ๊ณ์ฐ ๊ฐ๋ฅํ ์ํ์๋ค. ๊ทผ๋ฐ ๋ฌธ์ ๋ ํ๋์๋ค. ์ด๊ฒ ๋์ ์ ๋ณด์ธ๋ค. ๊ทธ๋์ ์ค๋ ๋ชฉํ๋ ๋ช ํํ๋ค.

์ด์ Flowbit์ ๊ธฐ๋ฅ์ ์ผ๋ก๋ ์์ฑ๋ ์ํ๋คProject Task TaskEvent Timeline Analysis Workspace UI์ ๋ถ ๋์ํ๋ค ํ์ง๋ง ํ ๊ฐ์ง๊ฐ ๋จ์ ์์๋ค ์ด๊ฑธ ์ค์ ๋ก ๋ฐฐํฌํ ์ ์๋ ์ํ์ธ๊ฐ? ์ง๊ธ๊น์ง๋ ๊ธฐ๋ฅ ๊ตฌํ์ ์ง์คํ๊ธฐ ๋๋ฌธ์

์ด์ ๋ ๋ฐฐํฌ๋ฅผ ์ค๋นํ๊ธฐ ์ํด Controller ๊ธฐ์ค์ ์ต์ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ค. ์ ์ ์์ฒญ์ ๋ณด๋ด๋ฉด ์ ์ ์๋ต์ด ์ค๋์ง ํ์ธํ๋ ํ ์คํธ์๋ค. ํ์ง๋ง ํ ์คํธ ์ฝ๋๋ ์ฑ๊ณตํ๋ ๊ฒฝ์ฐ๋ง ํ์ธํ๋ฉด ๋ถ์กฑํ๋ค. ์ค์ ์๋น์ค์์๋ ์๋ชป๋ ์์ฒญ๋ ๋ค์ด์ค๊ณ ์กด์ฌํ์ง ์๋ ๋ฐ์ดํฐ๋ฅผ

์๋ ์ค๋์ ๋ฐฐํฌ๋ฅผ ์งํํ๋ ค๊ณ ํ๋ค. ๊ทธ๋ฐ๋ฐ ์์ํ์ง ๋ชปํ ๋ฌธ์ ๊ฐ ํ๋ ์๊ฒผ๋ค. ๊ธฐ์กด์ ์ฌ์ฉํ๋ AWS ๊ณ์ ์ด 90์ผ์ด ์ง๋๋ฉด์ ๋์ผํ ์ด๋ฉ์ผ๋ก ์ฌ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅํ ์ํ์๋ค. ์ฆ, ๊ธฐ์กด ์ด๋ฉ์ผ๋ก๋ ๊ณ์ ์ ๋ค์ ๋ง๋ค ์ ์์ด์ ๋ค๋ฅธ ์ด๋ฉ์ผ์ ์ฌ์ฉํด์ผ ํ๋ ์ํฉ์ด ๋์๋ค.

์๋ ๋ค์ ์์ ์ ํธ๋์ญ์ ๊ณผ Redis ์ชฝ์ผ๋ก ๋์ด๊ฐ๋ ค๊ณ ํ๋ค. ์ด์ ๊ธ์์๋ Task์ TaskEvent๊ฐ ํจ๊ป ๋ณ๊ฒฝ๋๋ ๊ตฌ์กฐ์ด๊ธฐ ๋๋ฌธ์ ํธ๋์ญ์ ๊ฒฝ๊ณ๋ฅผ ์ ๋ฆฌํ๊ณ , ํ์ฌ ์ก์๋ ์บ์ฑ ๊ตฌ์กฐ๋ฅผ Redis์ ์ฐ๊ฒฐํด๋ณด๊ฒ ๋ค๊ณ ์ ๋ฆฌํ์๋ค.

โ๏ธ 1. ์ค๋ ๋ชฉํ ์ด์ ๋ Flowbit์ ์ค์ ๋๋ฉ์ธ์ ๋ฐฐํฌํ๋ค. ์ด์ ๋ก์ปฌ์์๋ง ๋์ํ๋ ํ๋ก์ ํธ๊ฐ ์๋๋ผ, flowbit.kr์์ ์ง์ ์ ๊ทผํ ์ ์๋ ์ํ๊ฐ ๋์๋ค. ๋ฐฐํฌ๊น์ง ๋ง์น๊ณ ๋๋ ๋ค์ ์๋ ๊ณํํ๋ ๋ฐฑ์๋ ์ฌํ ์์ ์ผ๋ก ๋์๊ฐ ์ฐจ๋ก์๋ค.

์ด์ ์์ ์์๋ Flowbit์ ์ํ ๋ณ๊ฒฝ ๊ตฌ์กฐ๋ฅผ ๋ค์ ์ ๊ฒํ๋ค. Flowbit์ ๋จ์ํ Task์ ํ์ฌ ์ํ๋ง ์ ์ฅํ๋ ์์คํ ์ด ์๋๋ผ, ์ํ๊ฐ ์ด๋ป๊ฒ ๋ฐ๋์๋์ง๋ฅผ TaskEvent๋ก ํจ๊ป ๊ธฐ๋กํ๋ ๊ตฌ์กฐ๋ค.

์ด์ ์์ ์์๋ ํ์๊ฐ์ , ๋ก๊ทธ์ธ, JWT ๋ฐ๊ธ๊น์ง ๊ตฌํํ๋ค. ๋ก๊ทธ์ธ์ ์ฑ๊ณตํ๋ฉด accessToken์ ๋ฐ๊ธ๋ฐ์ ์ ์์๊ณ , ์ธ์ฆ์ ์ฒซ ๋จ๊ณ๋ ์์ฑ๋ ์ํ์๋ค. ํ์ง๋ง ์์ง ํ ๊ฐ์ง ๋ฌธ์ ๊ฐ ๋จ์ ์์๋ค. ๋ก๊ทธ์ธ์ ์ฑ๊ณตํ๋ค๋ ์ฌ์ค์ ์๋ฒ๋ ์๊ณ ์์์ง๋ง,