์ฐ์ํํ ํฌ์ฝ์ค ๋ ๋ฒจ3๋ ํ ํ๋ก์ ํธ๋ฅผ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ๋ก ์ ๋ฒ์ฃผ์ ๋ ๋ฒจ3๋ฅผ ๋ฌด์ฌํ,, ๋๋ง์ณค๋ค.
๋ ๋ฒจ3์์๋ ์ ๋ง ์์ ์ด์์ผ๋ก ๋ง์ ๊ฒ์ ๊ฒฝํํ๋ ๊ฒ ๊ฐ๋ค.
๊ทธ๋์ ๊ทธ๋ฐ์ง ๋ ๋ฌ์ด๋ผ๋ ์๊ฐ์ด ์ ๋ง ์ด๋ป๊ฒ ์ง๋๊ฐ์ง ๋ชจ๋ฅด๊ฒ ๋ค.
์๋ก์ด ๊ฒ๋ค์ ๋จธ๋ฆฌ์ ์ด๋ป๊ฒ๋ ๊ตฌ๊ฒจ๋ฃ์ผ๋ ค๊ณ ์ด์ฌํ ๋ชฐ์ ํ๋ ์๊ฐ์ด์๋ค.
๋ ๋ฌ ๋์ ๋ฌด์์ ํ๋์ง ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค ๐
ํ ๋น๋ฉ
์ด๋ฒ ํ ํ๋ก์ ํธ์์ ํ๋ ๊ฒฝํ๋ค ์ค ์ฌ๋ฐ๊ณ ์ ์ ํ๋ ๊ฒฝํ์ ํ ๋น๋ฉ์ด๋ค.
๋ ์ฌ์ฉ์ค๋ช ์๋ฅผ ์์ฑํด์ ์๋ก๋ฅผ ์๊ฐํ๊ณ , ํ ๋ฌธํ ๋ฐ ๊ทธ๋ผ์ด๋ ๋ฃฐ๋ ํจ๊ป ์ ํ๋ค.


์ง๊ธ ๋ค์๋ณด๋ ์ ์ง์ผ์ง๋ ๊ฒ๋ ๋ง์ง๋ง, ์ง์ผ์ง์ง ์๋ ๊ฒ๋ค๋ ์๋ค.
๋ค์ ์ฌ์ ๋นํ๋ ์๊ฐ๋ ํ์ํ ๊ฒ ๊ฐ๋ค.
๊ทธ๋ฆฌ๊ณ ํ๋ผ๋ฆฌ ์นํด์ง๋ผ๋ ์๋ฏธ๋ก ํ๋ณ๋ก ๊ฐ๋จํ ๊ฒ์์ ์งํํ๋๋ฐ, 1๋ฑํด์ ๋ฐฐ๋ฏผ ์ํ๊ถ๋ ๋ฐ์๋ค. ๐คฃ


ํ๋ก์ ํธ ๊ธฐํ
ํ๋ก์ ํธ ์ฃผ์ ๋ ๋ชจ๋ ํฌ๋ฃจ๊ฐ ๊ธฐํ์๋ฅผ ์ ์ถํ๊ณ , ๊ทธ ์ค์์ ๋ฝํ ๊ธฐํ ์ค์ ๋๋ค์ผ๋ก ๋ฐฐ์ ๋๋ค.
์ฐ๋ฆฌ ํ์ ์ฃผ์ ๋ '๊ด์ฌ์ฌ๊ฐ ๊ฐ์ ์ฌ๋๋ค๋ผ๋ฆฌ ๋ชจ์ฌ ๋ก๋๋งต์ ํจ๊ป ๋ฌ์ฑํ๋ ์๋น์ค'์ด๋ค.
2์ฃผ๊ฐ์ ๊ธฐํ ํ์๋ฅผ ํตํด ์๋น์ค์ ๋ฐฉํฅ์ฑ๊ณผ ๋ํ ์ผ๋ค์ ์ก์๋ค.
2์ฃผ๊ฐ ์ ๋ง ์ฝ๋ ํ ์ค ์น์ง ์๊ณ ๊ธฐํ ํ์๋ง ํ๋๋ฐ, ์๊ฐ๋ณด๋ค ํ๋ ์์ ์ด์๋ค.
์ฐ์ 7๋ช ๋ชจ๋์ ์๊ฐ์ ๋ง์ถ๋๊ฒ ๊ฐ์ฅ ์ด๋ ค์ ๋ค. ๊ฐ์ ๋จธ๋ฆฟ์์ ๊ทธ๋ ค์ง๋ ๊ทธ๋ฆผ์ด ๋ค๋ฅด๊ณ , ํ๊ณ ์ถ์ ๊ฒ์ด ๋ค๋ฅด๋ค๋ณด๋ ๊ทธ๊ฑธ ๋ง์ถ๋ ๊ณผ์ ์ด ๊ธธ์๋ ๊ฒ ๊ฐ๋ค.


์ด๋์ ๋ ์๊ฐ์ด ๋ง์ถฐ์ง ํ์๋, ์๋น์ค์ ๋ํ ์ผ์ ์ก์๋ค.
๋ํ ์ผ์ ์ก์ผ๋ฉด์ ์ฐํ ์ฝ ํฌ๋ฃจ๋ค์๊ฒ ์ธํฐ๋ทฐ๋ ์์ฒญํ๊ณ , ์ค๋ฌธ๋ ์งํํ๋ค.
๋ ์ฌ์ฉ์ ํ๋ฅด์๋๋ฅผ ๋์ถํ๊ณ ์ฌ์ฉ์ ์๋๋ฆฌ์ค๋ฅผ ์์ฑํ๋ฉด์ ์ฐ๋ฆฌ๊ฐ ๋ง๋ค๋ ค๋ ์๋น์ค๊ฐ ๋ฌด์์ธ์ง ์กฐ๊ธ ๋ ํ์คํด์ก๋ค.
์ด ๊ณผ์ ์ด ์๋ ๊นํ๋ธ ์ํค์ ๊ธฐ๋ก๋์ด ์๋ค. ใ ใ
์ฌ์ฉ์ ์๋๋ฆฌ์ค
๐ ํจ๊ป ๋ชฉํ๋ฅผ ๋ฌ์ฑํด๊ฐ๋ ๋ก๋๋งต ๊ธฐ๋ฐ ๋ชจ์ ํ๋ซํผ, ์ฝ๋ผ๋ฆฌ๋ผ๋ฆฌ! ๐. Contribute to woowacourse-teams/2023-co-kirikiri development by creating an account on GitHub.
github.com
์คํ๋ฆฐํธ ์งํ
์คํ๋ฆฐํธ๋ ์ผ์ฃผ์ผ ๊ฐ๊ฒฉ์ผ๋ก ์งํํ๋ค. ๊ธฐํ๋จ๊ณ์์ ๊ธฐ๋ฅ ์ฐ์ ์์๋ฅผ ์ ํ๋๋ฐ, ์ฐ์ ์์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์คํ๋ฆฐํธ์ ์ถ๊ฐํ๋ค.
๋งค ์คํ๋ฆฐํธ ๋ง๋ค ์ฌ๋งํ๋ฉด ํ๊ณ ์ถ์ ๊ธฐ๋ฅ์ ๊ฐ์ ธ๊ฐ์ ๋ด๋นํ๋ค.
1, 2์ฐจ ์คํ๋ฆฐํธ
๊ธฐํ์ด ๋ชจ๋ ๋๋๊ณ , ๋ณธ๊ฒฉ์ ์ผ๋ก ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ๋ค์ด๊ฐ๋ค.
๊ณตํต์ผ๋ก ํด์ผํ๋ ๋๋ฉ์ธ๊ณผ ERD ์ค๊ณ๋ฅผ ๋จผ์ ํ๊ณ , ํ๋ก์ ํธ ์ธํ ๊ณผ ์ปจ๋ฒค์ ์ ๋ง์ถ๋ ์์ ๋ ํ๋ค.
1์ฐจ ์คํ๋ฆฐํธ ๋๋ ํ๋์ API๋ฅผ ๋งก์์์๋ ์กฐ๊ธ ๋ฒ๊ฑฐ์ ๋ ๊ธฐ์ต์ด ์๋ค.
๋จผ์ JPA๋ฅผ ์ฌ์ฉํ๊ฒ ๋์๋๋ฐ, ๋ถ๋ช JPA์ ๋ํด ๊ฐ์๋ ๋ฃ๊ณ ์์ ์ ๊ฐ๋จํ ๊ธฐ๋ฅ ๊ตฌํ ์ ๋๋ ํด๋ดค์๋๋ฐ, ์ง๊ธ ํ๋ก์ ํธ์ ๋๋ฉ์ธ ์ฐ๊ด๊ด๊ณ๊ฐ ๋งค์ฐ ๋ณต์กํ๊ธฐ ๋๋ฌธ์ ์ ์ํ๋๋ฐ ์ค๋๊ฑธ๋ ธ๋ค.
๊ทธ๋ฆฌ๊ณ RestDocs๋ก API ๋ฌธ์๋ฅผ ์์ฑํ๋ ๊ฒ๋ ์ฒ์์ด๋ผ ๋ฐฐ์ฐ๋ฉด์ ์์ฑํ๋ค.
๋ ํ์์ PR์ด ์ฌ๋ผ์ค๋ฉด ์ฝ๋๋ฆฌ๋ทฐ๋ฅผ ๋ฌด์กฐ๊ฑด ํด์ผํ๋๋ฐ, ์ด๋ฐ์๋ PR ๋ง๋ค ์ฝ๋๊ฐ ๊ฑฐ์ 2000์ค์ด์๊ณ ๊ทธ ๋ง์ ๋ ๊ณต๋ถํ๋ฉด์ ๋ฆฌ๋ทฐ๋ฅผ ํ์ด์ผ ํ๋ค. ํนํ QueryDsl์ ์์ ์ฒ์์ด๋ผ ๊ฑฐ์ ๋ฆฌ๋ทฐ๊ฐ ์๋๋ผ ๊ณต๋ถ๋ฅผ ํ๋ค ๐
๊ทธ๋ฌ๋ค๋ณด๋ ์ง๊ธ ๋น์ฅ ์ฝ๋๋ฅผ ๊ตฌํํ๋ ๊ฒ๋ ์ด๋ ค์ด๋ฐ, ์ฝ๋๋ฆฌ๋ทฐ๋ฅผ ํ๋ฉด์ ๊ณต๋ถ๋ ํด์ผํ๋ค๋ ์๋ฐ๊ฐ์ ๋ง์ด ๋ถ์ํ๋ ๊ฒ ๊ฐ๋ค.
๊ทธ๋ฆฌ๊ณ 3๋ช ์ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ๋ค๋ณด๋ ๋ฆฌ๋ทฐ ๋ฐ์ํ๋๋ฐ๋ ํ๋ฃจ๊ฐ ๊ฑธ๋ ธ๋ค.. ใ
๋ค๋ค ๋ฆฌ๋ทฐ๋ฅผ ๊ผผ๊ผผํ๊ฒ ํ๋ ํธ์ด๋ผ์ ๋ฆฌ๋ทฐ๋ ๋ง์๊ณ , ์ด๋ฐ์ด๋ผ ์ฝ๋ ์คํ์ผ์ ์๋ก ๋ง์ถฐ๊ฐ๋ ๊ณผ์ ์ด์ฌ์ ๋์ฑ ๊ทธ๋ฌ๋ ๊ฒ ๊ฐ๋ค.
๊ทผ๋ฐ ๊ทธ๋๋ ๋๊ผ์ง๋ง ์ฝ๋ ๋ฆฌ๋ทฐ ๊ณผ์ ์์ ์ ๋ง ๋ง์ด ๋ฐฐ์ ๋ค. ๋ค๋ค ๋๋ฌด ์ํ๋ค ๐

3, 4์ฐจ ์คํ๋ฆฐํธ
2์ฐจ ์คํ๋ฆฐํธ๊น์ง๋ ํ์ ๋ชจ๋์๊ฒ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ๊ณ , ๋ฆฌ๋ทฐ๋ฅผ ํด์ผํ๋ค.
์ฅ์ ์ ๋ค๋ฅธ ํ์์ ์ฝ๋๊น์ง ์ ๋๋ก ์ดํดํ๊ณ ์์ด์ ๋ชจ๋ ํ์์ด ๋ชจ๋ฅด๋ ์ฝ๋๊ฐ ์๋ค๋ ์ ์ด๋ค.
๋จ์ ์ ์๊ฐ์ด ๋๋ฌด ์ค๋๊ฑธ๋ฆฐ๋ค๋ ๊ฒ์ด๋ค. ๋ ๊ทธ ๋ง์ ์ฝ๋๋ฅผ ์ฝ๊ณ ์ดํดํด์ผ ํ๋ค๋ ๋ถ๋ด๊ฐ๋ ์๋นํ๋ค.
๊ทธ๋์ ์๊ฐ ๊ด๊ณ์ 3์ฐจ๋ถํฐ๋ ๊ฐ์ ํ ๋ช ์ผ๋ก ์ค์๋ค. ๋ ํต์ฌ ๊ธฐ๋ฅ์ 2์ฐจ๊น์ง ๋ง๋ฌด๋ฆฌ๋ฅผ ํ๋ํฐ๋ผ ๋ชจ๋ ํ์์ด ๋ฆฌ๋ทฐ๋ฅผ ํ๋ ๊ฒ์ด ๋ถํ์ํ๋ค.
3, 4์ฐจ ์คํ๋ฆฐํธ ๋๋ ์์ํ API๋ฅผ ์ฌ๋ฌ๊ฐ ๊ตฌํํ๋๋ผ ์ ๋ง ๋ฐ์๊ฒ ๋ณด๋๋ค.
๋ฐ๋ชจ๋ฐ์ด๋ฅผ 2์ฃผ ๊ฐ๊ฒฉ์ผ๋ก ์งํํ๋๋ฐ, 4์ฐจ ์คํ๋ฆฐํธ๊ฐ ๋๋๊ณ ์งํํ๋ ๋ฐ๋ชจ๋ฐ์ด์์ ์ค์ ์๋ฒ์ ๋์์ง ์๋น์ค๋ก ์์ฐ์ ํด์ผํ๋ค. ๊ทธ๋์ 3,4์ฐจ ์คํ๋ฆฐํธ ๋๋ ํนํ ๋ฐ๋นด๋ ๊ฒ ๊ฐ๋ค. ๋ฐ๋ชจ๋ฐ์ด ๋น์ผ๊น์ง API ์ฐ๋์ ๋ค ํด๋ณด์ง ๋ชปํ ์ํ์ฌ์ ๋น์ผ์๋ ๋ฒ๊ทธ ์์ ํ๊ณ API ์ฐ๋ํ๋ ์์ ๋ค์ ํ์๋ค.
๋ ์ด๋ฒ ์คํ๋ฆฐํธ ๋ ์ฐ๋ฆฌ ์๋น์ค์ ์์คํ ๊ตฌ์ฑ๋์ ๋ํด์ ๊ณต๋ถ๋ฅผ ํ๋ค.
์ฐ๋ฆฌ ํ์ ๋๋ถ๋ถ ๋ชจ๋ ์์ ์ ๋ํด์ ๊ณต์ ๋ฅผ ํด์ ์ ์๊ณ ์๋ ํธ์ด์ง๋ง, ์ธํ๋ผ์ ๋ํด์๋ ์ต์ํ์ง ์๊ณ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ๋จธ๋ฆฟ์์์ ๋ญ๊ฐ ํฉ์ด์ ธ์๋ ๋๋์ด ๊ณ์ ์์๋ค. ๊ทธ๋์ ํผ์์ ์์คํ ๊ตฌ์ฑ๋๋ฅผ ๊ทธ๋ ค๋ณด๋ฉด์ ์ ์ฒด์ ์ธ ๊ตฌ์กฐ๋ฅผ ํ์ ํ๋ ค๊ณ ํ๋ค.
5, 6์ฐจ ์คํ๋ฆฐํธ
5์ฐจ ์คํ๋ฆฐํธ ์์๊ณผ ๋์์ ๋ฒ๊ทธ๋ฆฌํฌํ ๋ฐ์ด๊ฐ ์์๋ค. ๋ช๋ช ํ๋ค๋ผ๋ฆฌ ํ์ ์ด๋ค์ ์๋ก์ ์๋น์ค๋ฅผ ์ฌ์ฉํด๋ณด๊ณ ๋ฒ๊ทธ ๋ฐ ๊ฐ์ ์ฌํญ์ ์ ๋ฌํ๋ ํ๋์ด๋ค. ์ฐ๋ฆฌ ์๋น์ค๊ฐ ์์ง ์์ ํ์ง ์๊ณ ๋ฒ๊ทธ๊ฐ ๋ง๋ค๋ ๊ฑธ ์ด๋ฏธ ์๊ณ ์์ด์ ๋ฒ๊ทธ๋ฆฌํฌํ ๋ฐ์ด๊ฐ ์ฉ ๋ดํค์ง ์์๋ค. ๐ฅฒ
์ ๋ฒ ๋ฐ๋ชจ๋ฐ์ด ๋ ์๋ก์ด ๊ธฐ๋ฅ์ ๋ถ์ด์ง ๋ง๊ณ ์ง๊ธ๊น์ง ๋์จ ๊ธฐ๋ฅ๋ค์ ๊ณ ๋ํ ํ๋ ๊ฒ ์ข์๊ฒ ๊ฐ๋ค๋ ํผ๋๋ฐฑ์ ๋ฐ์๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ง์ ๋์ํ๋ค. ์ด์ ๊น์ง๋ ๋ง์ ๊ธฐ๋ฅ์ ๋ถ์ด๊ณ ์ถ์ ๋ง์์ด ์ปธ๋๋ฐ, ๋ง๊ฐ์ด ๋ค๊ฐ์ค๊ณ ์๋น์ค์ ์์ฑ๋๋ฅผ ๋ณด๋ ์ ๋ง ์ง๊ธ ์ง์คํด์ผ ํ ๊ฒ ๋ฌด์์ธ์ง ๋๋ ทํ๊ฒ ๋ณด์๋ค.
๊ทธ๋์ ์ด๋ฒ 5, 6์ฐจ ์คํ๋ฆฐํธ ๋๋ ํ๋ก ํธ์์๋ ์์ํ ๋ฒ๊ทธ ์์ ๊ณผ UI/UX ๊ณ ๋ํ ์์ ์ ์งํํ๊ธฐ๋ก ํ๊ณ , ๋ฐฑ์๋์์๋ ์ ๋ง ํ์ํ ์ต์ํ์ API ๊ฐ๋ฐ๊ณผ API ์์ ์์ ์ ํ๋ค.
์ฒ์์๋ ์์ฌ์ ๋๋ฐ, ์ง๊ธ ์๊ฐํด๋ณด๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ง ์๊ธธ ์ ๋ง ์ํ๋ค. ๋๋ถ์ ์๋น์ค๊ฐ 2์ฃผ ์ ์ ๋นํด ๋ง์ด ๊ฐ์ ๋ ๊ฒ์ ๋๊ผ๋ค. ๊ทธ๋ฆฌ๊ณ ์์ง ๋ ๋ฒจ4๊ฐ ๋จ์์์ผ๋ ๊ทธ๋ ํ๊ณ ์ถ์๋ ๊ฑฐ ๋ค ํ๋ฉด ๋๋ค ๐
๋ค๋ฅธ ์คํ๋ฆฐํธ ๋๋ณด๋ค ๋น๊ต์ ์๊ฐ์ด ๋๋ํ๋ค. ๋ฐฑ์๋ ํ์๋ค๋ผ๋ฆฌ DB ๋ง์ด๊ทธ๋ ์ด์ ์ ๋ต์ผ๋ก Flyway๋ฅผ ๋ถ์ด๊ณ , AWS์ CloudWatch๋ก ๋ชจ๋ํฐ๋ง ์์คํ ๋ ๊ตฌ์ถํ๋ค. ๋ชจ๋ํฐ๋ง ์์คํ ์ ์์ ๋ถํฐ ํด๋ณด๊ณ ์ถ์๋๋ฐ, ์ด๋ฒ์ ๊ฒฝํํ ์ ์์ด์ ์ข์๋ค.

์ด๋ฒ ์คํ๋ฆฐํธ ๋๋ ํ๋ก ํธ ํ์๋ค์ด ์ ๋ง ๊ณ ์ํด์ฃผ์ จ๋ค.
์๊ฐ์ด ์์ด์ ๋ก ์นญ ํ์คํฐ๋ฒ ์ดํ์ ์ QA๋ฅผ ํ๊ฒ ๋์๋๋ฐ, ๋ฐฑ์๋ ์ชฝ์์ ์์ฒญ ๋ง์ด ์์ฒญํ๋๋ฐ๋,, ๋๋ถ๋ถ ๋ฐ์ํด์ฃผ์ จ๋ค.
๋ก ์นญ ํ์คํฐ๋ฒ
์ง์ง ์์๊ฐ์ ๋ ๋ฌ์ด ์ง๋๊ณ ๋ก ์นญ ํ์คํฐ๋ฒ ๋ ์ด ์๋ค.. ๐ซ
๋ค๋ฅธ ํ๋ค์ด ๋ง๋ ์๋น์ค๋ฅผ ์ง์ ์ฌ์ฉํด๋ณด๊ณ ํผ๋๋ฐฑ์ ์ฃผ๋ ํ๋์ ํ๋ค.
๋ชจ๋ ํ๋ค์ ์๋น์ค๋ฅผ ๋ณด์ง ๋ชปํ์ง๋ง, ๋ค๋ค ์ ๋ง ์ ๋ง ์ํ๋ค. ๋๊ฒ ์งง๋ค๊ณ ๋๋ ๋ ๋ฌ์ด์๋๋ฐ ๋ค๋ค ์ด๋ป๊ฒ ๊ทธ๋ ๊ฒ ์์ฑ๋๊ฐ ๋๊ฒ ๋ง๋ค์๋์ง ์ ๊ธฐํ๋ค. ๐ (์ฐ๋ฆฌ ํ๋ ๋ฌผ๋ก ์ํ๋ค ใ ใ )
๋ฐ๋ฉด์ ์์ฌ์๋ ๋ง์ด ๋จ์๋ค.
๋ก ์นญ ํ์คํฐ๋ฒ์ ํ๋ฉด์ ์ฐ๋ฆฌ ์๋น์ค์ ๊ฐ์ ์ ๋ค๋ ๋ง์ด ๋ณด์๊ณ , ์ฒ์ ๊ธฐํํ๋ ๊ฒ์ ๋ชจ๋ ๊ตฌํํ์ง ๋ชปํ๋ค๋ ์ฝ๊ฐ์ ๋ฏธ๋ จ์ด ๋จ์์์๋ ๊ฒ ๊ฐ๋ค.
๊ทธ๋๋ ๋ ๋ฌ๋์ ํํ์์ด ์ ๋ง ์ด์ฌํ ํ๊ณ , ๋ ์ฃผ๋ณ ํ์๋ค์๊ฒ ์ ๋ง ๋ง์ด ๋ฐฐ์ ๋ค!

๋ญ๊ฐ ์์ฒญ ๋ง์ ๊ฒ์ ํ๋๋ฐ ๋ง์ ์ ์ผ๋ ค๋ ์ ๋ฆฌ๊ฐ ์ ์๋๋ค.
๐ ๋ ๐
'์ฐ์ํํ ํฌ์ฝ์ค > ํ๊ณ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ฐํ ์ฝ ๋ ๋ฒจ2 ์ธํฐ๋ทฐ ํ๊ณ (3) | 2023.06.12 |
---|---|
ํ ์ฝํก ํ๊ณ ํ๊ธฐ(๋ผ๊ณ ํ๊ณ ์ผ๊ธฐ์ฐ๊ธฐ) ๐ซ (2) | 2023.05.28 |
์ฐํ ์ฝ ๋ ๋ฒจ2 ์น ์๋์ฐจ ๊ฒฝ์ฃผ ๋ฏธ์ ํ๊ณ (1) | 2023.05.06 |
์ฐํ ์ฝ ๋ ๋ฒจ1 ๋์๋ณด๊ธฐ (2) | 2023.04.10 |
์ฐ์ํํ ํฌ์ฝ์ค ๋ ๋ฒจ3๋ ํ ํ๋ก์ ํธ๋ฅผ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ๋ก ์ ๋ฒ์ฃผ์ ๋ ๋ฒจ3๋ฅผ ๋ฌด์ฌํ,, ๋๋ง์ณค๋ค.
๋ ๋ฒจ3์์๋ ์ ๋ง ์์ ์ด์์ผ๋ก ๋ง์ ๊ฒ์ ๊ฒฝํํ๋ ๊ฒ ๊ฐ๋ค.
๊ทธ๋์ ๊ทธ๋ฐ์ง ๋ ๋ฌ์ด๋ผ๋ ์๊ฐ์ด ์ ๋ง ์ด๋ป๊ฒ ์ง๋๊ฐ์ง ๋ชจ๋ฅด๊ฒ ๋ค.
์๋ก์ด ๊ฒ๋ค์ ๋จธ๋ฆฌ์ ์ด๋ป๊ฒ๋ ๊ตฌ๊ฒจ๋ฃ์ผ๋ ค๊ณ ์ด์ฌํ ๋ชฐ์ ํ๋ ์๊ฐ์ด์๋ค.
๋ ๋ฌ ๋์ ๋ฌด์์ ํ๋์ง ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค ๐
ํ ๋น๋ฉ
์ด๋ฒ ํ ํ๋ก์ ํธ์์ ํ๋ ๊ฒฝํ๋ค ์ค ์ฌ๋ฐ๊ณ ์ ์ ํ๋ ๊ฒฝํ์ ํ ๋น๋ฉ์ด๋ค.
๋ ์ฌ์ฉ์ค๋ช ์๋ฅผ ์์ฑํด์ ์๋ก๋ฅผ ์๊ฐํ๊ณ , ํ ๋ฌธํ ๋ฐ ๊ทธ๋ผ์ด๋ ๋ฃฐ๋ ํจ๊ป ์ ํ๋ค.


์ง๊ธ ๋ค์๋ณด๋ ์ ์ง์ผ์ง๋ ๊ฒ๋ ๋ง์ง๋ง, ์ง์ผ์ง์ง ์๋ ๊ฒ๋ค๋ ์๋ค.
๋ค์ ์ฌ์ ๋นํ๋ ์๊ฐ๋ ํ์ํ ๊ฒ ๊ฐ๋ค.
๊ทธ๋ฆฌ๊ณ ํ๋ผ๋ฆฌ ์นํด์ง๋ผ๋ ์๋ฏธ๋ก ํ๋ณ๋ก ๊ฐ๋จํ ๊ฒ์์ ์งํํ๋๋ฐ, 1๋ฑํด์ ๋ฐฐ๋ฏผ ์ํ๊ถ๋ ๋ฐ์๋ค. ๐คฃ


ํ๋ก์ ํธ ๊ธฐํ
ํ๋ก์ ํธ ์ฃผ์ ๋ ๋ชจ๋ ํฌ๋ฃจ๊ฐ ๊ธฐํ์๋ฅผ ์ ์ถํ๊ณ , ๊ทธ ์ค์์ ๋ฝํ ๊ธฐํ ์ค์ ๋๋ค์ผ๋ก ๋ฐฐ์ ๋๋ค.
์ฐ๋ฆฌ ํ์ ์ฃผ์ ๋ '๊ด์ฌ์ฌ๊ฐ ๊ฐ์ ์ฌ๋๋ค๋ผ๋ฆฌ ๋ชจ์ฌ ๋ก๋๋งต์ ํจ๊ป ๋ฌ์ฑํ๋ ์๋น์ค'์ด๋ค.
2์ฃผ๊ฐ์ ๊ธฐํ ํ์๋ฅผ ํตํด ์๋น์ค์ ๋ฐฉํฅ์ฑ๊ณผ ๋ํ ์ผ๋ค์ ์ก์๋ค.
2์ฃผ๊ฐ ์ ๋ง ์ฝ๋ ํ ์ค ์น์ง ์๊ณ ๊ธฐํ ํ์๋ง ํ๋๋ฐ, ์๊ฐ๋ณด๋ค ํ๋ ์์ ์ด์๋ค.
์ฐ์ 7๋ช ๋ชจ๋์ ์๊ฐ์ ๋ง์ถ๋๊ฒ ๊ฐ์ฅ ์ด๋ ค์ ๋ค. ๊ฐ์ ๋จธ๋ฆฟ์์ ๊ทธ๋ ค์ง๋ ๊ทธ๋ฆผ์ด ๋ค๋ฅด๊ณ , ํ๊ณ ์ถ์ ๊ฒ์ด ๋ค๋ฅด๋ค๋ณด๋ ๊ทธ๊ฑธ ๋ง์ถ๋ ๊ณผ์ ์ด ๊ธธ์๋ ๊ฒ ๊ฐ๋ค.


์ด๋์ ๋ ์๊ฐ์ด ๋ง์ถฐ์ง ํ์๋, ์๋น์ค์ ๋ํ ์ผ์ ์ก์๋ค.
๋ํ ์ผ์ ์ก์ผ๋ฉด์ ์ฐํ ์ฝ ํฌ๋ฃจ๋ค์๊ฒ ์ธํฐ๋ทฐ๋ ์์ฒญํ๊ณ , ์ค๋ฌธ๋ ์งํํ๋ค.
๋ ์ฌ์ฉ์ ํ๋ฅด์๋๋ฅผ ๋์ถํ๊ณ ์ฌ์ฉ์ ์๋๋ฆฌ์ค๋ฅผ ์์ฑํ๋ฉด์ ์ฐ๋ฆฌ๊ฐ ๋ง๋ค๋ ค๋ ์๋น์ค๊ฐ ๋ฌด์์ธ์ง ์กฐ๊ธ ๋ ํ์คํด์ก๋ค.
์ด ๊ณผ์ ์ด ์๋ ๊นํ๋ธ ์ํค์ ๊ธฐ๋ก๋์ด ์๋ค. ใ ใ
์ฌ์ฉ์ ์๋๋ฆฌ์ค
๐ ํจ๊ป ๋ชฉํ๋ฅผ ๋ฌ์ฑํด๊ฐ๋ ๋ก๋๋งต ๊ธฐ๋ฐ ๋ชจ์ ํ๋ซํผ, ์ฝ๋ผ๋ฆฌ๋ผ๋ฆฌ! ๐. Contribute to woowacourse-teams/2023-co-kirikiri development by creating an account on GitHub.
github.com
์คํ๋ฆฐํธ ์งํ
์คํ๋ฆฐํธ๋ ์ผ์ฃผ์ผ ๊ฐ๊ฒฉ์ผ๋ก ์งํํ๋ค. ๊ธฐํ๋จ๊ณ์์ ๊ธฐ๋ฅ ์ฐ์ ์์๋ฅผ ์ ํ๋๋ฐ, ์ฐ์ ์์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์คํ๋ฆฐํธ์ ์ถ๊ฐํ๋ค.
๋งค ์คํ๋ฆฐํธ ๋ง๋ค ์ฌ๋งํ๋ฉด ํ๊ณ ์ถ์ ๊ธฐ๋ฅ์ ๊ฐ์ ธ๊ฐ์ ๋ด๋นํ๋ค.
1, 2์ฐจ ์คํ๋ฆฐํธ
๊ธฐํ์ด ๋ชจ๋ ๋๋๊ณ , ๋ณธ๊ฒฉ์ ์ผ๋ก ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ๋ค์ด๊ฐ๋ค.
๊ณตํต์ผ๋ก ํด์ผํ๋ ๋๋ฉ์ธ๊ณผ ERD ์ค๊ณ๋ฅผ ๋จผ์ ํ๊ณ , ํ๋ก์ ํธ ์ธํ ๊ณผ ์ปจ๋ฒค์ ์ ๋ง์ถ๋ ์์ ๋ ํ๋ค.
1์ฐจ ์คํ๋ฆฐํธ ๋๋ ํ๋์ API๋ฅผ ๋งก์์์๋ ์กฐ๊ธ ๋ฒ๊ฑฐ์ ๋ ๊ธฐ์ต์ด ์๋ค.
๋จผ์ JPA๋ฅผ ์ฌ์ฉํ๊ฒ ๋์๋๋ฐ, ๋ถ๋ช JPA์ ๋ํด ๊ฐ์๋ ๋ฃ๊ณ ์์ ์ ๊ฐ๋จํ ๊ธฐ๋ฅ ๊ตฌํ ์ ๋๋ ํด๋ดค์๋๋ฐ, ์ง๊ธ ํ๋ก์ ํธ์ ๋๋ฉ์ธ ์ฐ๊ด๊ด๊ณ๊ฐ ๋งค์ฐ ๋ณต์กํ๊ธฐ ๋๋ฌธ์ ์ ์ํ๋๋ฐ ์ค๋๊ฑธ๋ ธ๋ค.
๊ทธ๋ฆฌ๊ณ RestDocs๋ก API ๋ฌธ์๋ฅผ ์์ฑํ๋ ๊ฒ๋ ์ฒ์์ด๋ผ ๋ฐฐ์ฐ๋ฉด์ ์์ฑํ๋ค.
๋ ํ์์ PR์ด ์ฌ๋ผ์ค๋ฉด ์ฝ๋๋ฆฌ๋ทฐ๋ฅผ ๋ฌด์กฐ๊ฑด ํด์ผํ๋๋ฐ, ์ด๋ฐ์๋ PR ๋ง๋ค ์ฝ๋๊ฐ ๊ฑฐ์ 2000์ค์ด์๊ณ ๊ทธ ๋ง์ ๋ ๊ณต๋ถํ๋ฉด์ ๋ฆฌ๋ทฐ๋ฅผ ํ์ด์ผ ํ๋ค. ํนํ QueryDsl์ ์์ ์ฒ์์ด๋ผ ๊ฑฐ์ ๋ฆฌ๋ทฐ๊ฐ ์๋๋ผ ๊ณต๋ถ๋ฅผ ํ๋ค ๐
๊ทธ๋ฌ๋ค๋ณด๋ ์ง๊ธ ๋น์ฅ ์ฝ๋๋ฅผ ๊ตฌํํ๋ ๊ฒ๋ ์ด๋ ค์ด๋ฐ, ์ฝ๋๋ฆฌ๋ทฐ๋ฅผ ํ๋ฉด์ ๊ณต๋ถ๋ ํด์ผํ๋ค๋ ์๋ฐ๊ฐ์ ๋ง์ด ๋ถ์ํ๋ ๊ฒ ๊ฐ๋ค.
๊ทธ๋ฆฌ๊ณ 3๋ช ์ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ๋ค๋ณด๋ ๋ฆฌ๋ทฐ ๋ฐ์ํ๋๋ฐ๋ ํ๋ฃจ๊ฐ ๊ฑธ๋ ธ๋ค.. ใ
๋ค๋ค ๋ฆฌ๋ทฐ๋ฅผ ๊ผผ๊ผผํ๊ฒ ํ๋ ํธ์ด๋ผ์ ๋ฆฌ๋ทฐ๋ ๋ง์๊ณ , ์ด๋ฐ์ด๋ผ ์ฝ๋ ์คํ์ผ์ ์๋ก ๋ง์ถฐ๊ฐ๋ ๊ณผ์ ์ด์ฌ์ ๋์ฑ ๊ทธ๋ฌ๋ ๊ฒ ๊ฐ๋ค.
๊ทผ๋ฐ ๊ทธ๋๋ ๋๊ผ์ง๋ง ์ฝ๋ ๋ฆฌ๋ทฐ ๊ณผ์ ์์ ์ ๋ง ๋ง์ด ๋ฐฐ์ ๋ค. ๋ค๋ค ๋๋ฌด ์ํ๋ค ๐

3, 4์ฐจ ์คํ๋ฆฐํธ
2์ฐจ ์คํ๋ฆฐํธ๊น์ง๋ ํ์ ๋ชจ๋์๊ฒ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ๊ณ , ๋ฆฌ๋ทฐ๋ฅผ ํด์ผํ๋ค.
์ฅ์ ์ ๋ค๋ฅธ ํ์์ ์ฝ๋๊น์ง ์ ๋๋ก ์ดํดํ๊ณ ์์ด์ ๋ชจ๋ ํ์์ด ๋ชจ๋ฅด๋ ์ฝ๋๊ฐ ์๋ค๋ ์ ์ด๋ค.
๋จ์ ์ ์๊ฐ์ด ๋๋ฌด ์ค๋๊ฑธ๋ฆฐ๋ค๋ ๊ฒ์ด๋ค. ๋ ๊ทธ ๋ง์ ์ฝ๋๋ฅผ ์ฝ๊ณ ์ดํดํด์ผ ํ๋ค๋ ๋ถ๋ด๊ฐ๋ ์๋นํ๋ค.
๊ทธ๋์ ์๊ฐ ๊ด๊ณ์ 3์ฐจ๋ถํฐ๋ ๊ฐ์ ํ ๋ช ์ผ๋ก ์ค์๋ค. ๋ ํต์ฌ ๊ธฐ๋ฅ์ 2์ฐจ๊น์ง ๋ง๋ฌด๋ฆฌ๋ฅผ ํ๋ํฐ๋ผ ๋ชจ๋ ํ์์ด ๋ฆฌ๋ทฐ๋ฅผ ํ๋ ๊ฒ์ด ๋ถํ์ํ๋ค.
3, 4์ฐจ ์คํ๋ฆฐํธ ๋๋ ์์ํ API๋ฅผ ์ฌ๋ฌ๊ฐ ๊ตฌํํ๋๋ผ ์ ๋ง ๋ฐ์๊ฒ ๋ณด๋๋ค.
๋ฐ๋ชจ๋ฐ์ด๋ฅผ 2์ฃผ ๊ฐ๊ฒฉ์ผ๋ก ์งํํ๋๋ฐ, 4์ฐจ ์คํ๋ฆฐํธ๊ฐ ๋๋๊ณ ์งํํ๋ ๋ฐ๋ชจ๋ฐ์ด์์ ์ค์ ์๋ฒ์ ๋์์ง ์๋น์ค๋ก ์์ฐ์ ํด์ผํ๋ค. ๊ทธ๋์ 3,4์ฐจ ์คํ๋ฆฐํธ ๋๋ ํนํ ๋ฐ๋นด๋ ๊ฒ ๊ฐ๋ค. ๋ฐ๋ชจ๋ฐ์ด ๋น์ผ๊น์ง API ์ฐ๋์ ๋ค ํด๋ณด์ง ๋ชปํ ์ํ์ฌ์ ๋น์ผ์๋ ๋ฒ๊ทธ ์์ ํ๊ณ API ์ฐ๋ํ๋ ์์ ๋ค์ ํ์๋ค.
๋ ์ด๋ฒ ์คํ๋ฆฐํธ ๋ ์ฐ๋ฆฌ ์๋น์ค์ ์์คํ ๊ตฌ์ฑ๋์ ๋ํด์ ๊ณต๋ถ๋ฅผ ํ๋ค.
์ฐ๋ฆฌ ํ์ ๋๋ถ๋ถ ๋ชจ๋ ์์ ์ ๋ํด์ ๊ณต์ ๋ฅผ ํด์ ์ ์๊ณ ์๋ ํธ์ด์ง๋ง, ์ธํ๋ผ์ ๋ํด์๋ ์ต์ํ์ง ์๊ณ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ๋จธ๋ฆฟ์์์ ๋ญ๊ฐ ํฉ์ด์ ธ์๋ ๋๋์ด ๊ณ์ ์์๋ค. ๊ทธ๋์ ํผ์์ ์์คํ ๊ตฌ์ฑ๋๋ฅผ ๊ทธ๋ ค๋ณด๋ฉด์ ์ ์ฒด์ ์ธ ๊ตฌ์กฐ๋ฅผ ํ์ ํ๋ ค๊ณ ํ๋ค.
5, 6์ฐจ ์คํ๋ฆฐํธ
5์ฐจ ์คํ๋ฆฐํธ ์์๊ณผ ๋์์ ๋ฒ๊ทธ๋ฆฌํฌํ ๋ฐ์ด๊ฐ ์์๋ค. ๋ช๋ช ํ๋ค๋ผ๋ฆฌ ํ์ ์ด๋ค์ ์๋ก์ ์๋น์ค๋ฅผ ์ฌ์ฉํด๋ณด๊ณ ๋ฒ๊ทธ ๋ฐ ๊ฐ์ ์ฌํญ์ ์ ๋ฌํ๋ ํ๋์ด๋ค. ์ฐ๋ฆฌ ์๋น์ค๊ฐ ์์ง ์์ ํ์ง ์๊ณ ๋ฒ๊ทธ๊ฐ ๋ง๋ค๋ ๊ฑธ ์ด๋ฏธ ์๊ณ ์์ด์ ๋ฒ๊ทธ๋ฆฌํฌํ ๋ฐ์ด๊ฐ ์ฉ ๋ดํค์ง ์์๋ค. ๐ฅฒ
์ ๋ฒ ๋ฐ๋ชจ๋ฐ์ด ๋ ์๋ก์ด ๊ธฐ๋ฅ์ ๋ถ์ด์ง ๋ง๊ณ ์ง๊ธ๊น์ง ๋์จ ๊ธฐ๋ฅ๋ค์ ๊ณ ๋ํ ํ๋ ๊ฒ ์ข์๊ฒ ๊ฐ๋ค๋ ํผ๋๋ฐฑ์ ๋ฐ์๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ง์ ๋์ํ๋ค. ์ด์ ๊น์ง๋ ๋ง์ ๊ธฐ๋ฅ์ ๋ถ์ด๊ณ ์ถ์ ๋ง์์ด ์ปธ๋๋ฐ, ๋ง๊ฐ์ด ๋ค๊ฐ์ค๊ณ ์๋น์ค์ ์์ฑ๋๋ฅผ ๋ณด๋ ์ ๋ง ์ง๊ธ ์ง์คํด์ผ ํ ๊ฒ ๋ฌด์์ธ์ง ๋๋ ทํ๊ฒ ๋ณด์๋ค.
๊ทธ๋์ ์ด๋ฒ 5, 6์ฐจ ์คํ๋ฆฐํธ ๋๋ ํ๋ก ํธ์์๋ ์์ํ ๋ฒ๊ทธ ์์ ๊ณผ UI/UX ๊ณ ๋ํ ์์ ์ ์งํํ๊ธฐ๋ก ํ๊ณ , ๋ฐฑ์๋์์๋ ์ ๋ง ํ์ํ ์ต์ํ์ API ๊ฐ๋ฐ๊ณผ API ์์ ์์ ์ ํ๋ค.
์ฒ์์๋ ์์ฌ์ ๋๋ฐ, ์ง๊ธ ์๊ฐํด๋ณด๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ง ์๊ธธ ์ ๋ง ์ํ๋ค. ๋๋ถ์ ์๋น์ค๊ฐ 2์ฃผ ์ ์ ๋นํด ๋ง์ด ๊ฐ์ ๋ ๊ฒ์ ๋๊ผ๋ค. ๊ทธ๋ฆฌ๊ณ ์์ง ๋ ๋ฒจ4๊ฐ ๋จ์์์ผ๋ ๊ทธ๋ ํ๊ณ ์ถ์๋ ๊ฑฐ ๋ค ํ๋ฉด ๋๋ค ๐
๋ค๋ฅธ ์คํ๋ฆฐํธ ๋๋ณด๋ค ๋น๊ต์ ์๊ฐ์ด ๋๋ํ๋ค. ๋ฐฑ์๋ ํ์๋ค๋ผ๋ฆฌ DB ๋ง์ด๊ทธ๋ ์ด์ ์ ๋ต์ผ๋ก Flyway๋ฅผ ๋ถ์ด๊ณ , AWS์ CloudWatch๋ก ๋ชจ๋ํฐ๋ง ์์คํ ๋ ๊ตฌ์ถํ๋ค. ๋ชจ๋ํฐ๋ง ์์คํ ์ ์์ ๋ถํฐ ํด๋ณด๊ณ ์ถ์๋๋ฐ, ์ด๋ฒ์ ๊ฒฝํํ ์ ์์ด์ ์ข์๋ค.

์ด๋ฒ ์คํ๋ฆฐํธ ๋๋ ํ๋ก ํธ ํ์๋ค์ด ์ ๋ง ๊ณ ์ํด์ฃผ์ จ๋ค.
์๊ฐ์ด ์์ด์ ๋ก ์นญ ํ์คํฐ๋ฒ ์ดํ์ ์ QA๋ฅผ ํ๊ฒ ๋์๋๋ฐ, ๋ฐฑ์๋ ์ชฝ์์ ์์ฒญ ๋ง์ด ์์ฒญํ๋๋ฐ๋,, ๋๋ถ๋ถ ๋ฐ์ํด์ฃผ์ จ๋ค.
๋ก ์นญ ํ์คํฐ๋ฒ
์ง์ง ์์๊ฐ์ ๋ ๋ฌ์ด ์ง๋๊ณ ๋ก ์นญ ํ์คํฐ๋ฒ ๋ ์ด ์๋ค.. ๐ซ
๋ค๋ฅธ ํ๋ค์ด ๋ง๋ ์๋น์ค๋ฅผ ์ง์ ์ฌ์ฉํด๋ณด๊ณ ํผ๋๋ฐฑ์ ์ฃผ๋ ํ๋์ ํ๋ค.
๋ชจ๋ ํ๋ค์ ์๋น์ค๋ฅผ ๋ณด์ง ๋ชปํ์ง๋ง, ๋ค๋ค ์ ๋ง ์ ๋ง ์ํ๋ค. ๋๊ฒ ์งง๋ค๊ณ ๋๋ ๋ ๋ฌ์ด์๋๋ฐ ๋ค๋ค ์ด๋ป๊ฒ ๊ทธ๋ ๊ฒ ์์ฑ๋๊ฐ ๋๊ฒ ๋ง๋ค์๋์ง ์ ๊ธฐํ๋ค. ๐ (์ฐ๋ฆฌ ํ๋ ๋ฌผ๋ก ์ํ๋ค ใ ใ )
๋ฐ๋ฉด์ ์์ฌ์๋ ๋ง์ด ๋จ์๋ค.
๋ก ์นญ ํ์คํฐ๋ฒ์ ํ๋ฉด์ ์ฐ๋ฆฌ ์๋น์ค์ ๊ฐ์ ์ ๋ค๋ ๋ง์ด ๋ณด์๊ณ , ์ฒ์ ๊ธฐํํ๋ ๊ฒ์ ๋ชจ๋ ๊ตฌํํ์ง ๋ชปํ๋ค๋ ์ฝ๊ฐ์ ๋ฏธ๋ จ์ด ๋จ์์์๋ ๊ฒ ๊ฐ๋ค.
๊ทธ๋๋ ๋ ๋ฌ๋์ ํํ์์ด ์ ๋ง ์ด์ฌํ ํ๊ณ , ๋ ์ฃผ๋ณ ํ์๋ค์๊ฒ ์ ๋ง ๋ง์ด ๋ฐฐ์ ๋ค!

๋ญ๊ฐ ์์ฒญ ๋ง์ ๊ฒ์ ํ๋๋ฐ ๋ง์ ์ ์ผ๋ ค๋ ์ ๋ฆฌ๊ฐ ์ ์๋๋ค.
๐ ๋ ๐
'์ฐ์ํํ ํฌ์ฝ์ค > ํ๊ณ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ฐํ ์ฝ ๋ ๋ฒจ2 ์ธํฐ๋ทฐ ํ๊ณ (3) | 2023.06.12 |
---|---|
ํ ์ฝํก ํ๊ณ ํ๊ธฐ(๋ผ๊ณ ํ๊ณ ์ผ๊ธฐ์ฐ๊ธฐ) ๐ซ (2) | 2023.05.28 |
์ฐํ ์ฝ ๋ ๋ฒจ2 ์น ์๋์ฐจ ๊ฒฝ์ฃผ ๋ฏธ์ ํ๊ณ (1) | 2023.05.06 |
์ฐํ ์ฝ ๋ ๋ฒจ1 ๋์๋ณด๊ธฐ (2) | 2023.04.10 |