๐ YAS ํ๋ก์ ํธ ํ๊ธฐ
๐ ํ๋ก๊ทธ๋๋จธ์ค ๋ฐ๋ธ์ฝ์ค์ ๋ง์ง๋ง. ์ต์ข ํ๋ก์ ํธ๊ฐ 23์ผ ๋ถ๋ก ์๋ฃํ์ต๋๋ค. ํ๊ธฐ๋ฅผ ์๋ ๋ฐ๋ก ์์ฑ์ ํ๋ ค ํ๋๋ฐ.. ์ ๋ฆฌ๋ฅผ ํ๋ค๋ณด๋ ์ง๊ธ์์์ผ ์์ฑ์ ํฉ๋๋ค. ์ ๋ง ๋ง์ ๊ฒ๋ ์๊ฒ ๋์๊ณ , ์ด๋ค ๋ถ๋ถ์ ์๋ชปํ๊ณ ์๋์ง๋ ์์ ์์๋ ์๊ฐ์ด์์ต๋๋ค. ๊ทธ๋์ ๊ฒฝํํ๊ณ ์๊ฐํ ๊ฒ์ ๊ธ๋ก ๋จ๊ฒจ๋ณด๋ ค ํฉ๋๋ค.
๐ YAS ํ๋ก์ ํธ
๐ ์ฌ์ดํธ
๊นํ ์ฃผ์(๋ฐฑ์๋) : https://github.com/prgrms-web-devcourse/Team_WAS_YAS_BE
๋ฐฐํฌ๋ ์ฃผ์ : https://was-yas.netlify.app/
๐ ๊ธฐํ ๋ฐฐ๊ฒฝ
๋ฐ๋ณต๋๋ ์ผ์์ ๋ฌด๊ธฐ๋ ฅ์ฆ์ ํํํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก ๋ง์๋ ์์์ ๋จน๊ฑฐ๋, ์ฌํ์ ๋ค๋ ์ค๊ฑฐ๋, ์ด๋์ ํ๊ฑฐ๋ ๋ฑ๋ฑ ๋ค์ํ ๋ฐฉ๋ฒ์ด ์๊ฒ ์ง๋ง, ๋๋ ์ด๋ค ๊ฒ๋ค์ ํ๋ฉด ์คํธ๋ ์ค๊ฐ ํ๋ฆฌ๊ณ , ๋ค์ ์ถ์ ์ด์ ์ ๋ถ์ด๋ฃ์ ์ ์์๊น? ์ด๋ฐ ๊ณ ๋ฏผ๋ค์ด ๋ชจ์ฌ ๋ชจ๋ ์ฌ๋์ ์ผ์์ ํ๋ฒ ํน๋ณํ๊ฒ ๋ง๋ค์ด๋ณด๋ฉด ์ด๋จ๊น?๋ผ๋ ์์ ์์ด๋์ด์์ YAS(๋๋ ํน๋ณํด!)๋ฅผ ๊ธฐํํ๊ฒ ๋์ต๋๋ค
๐ ๊ธฐ๋ ํจ๊ณผ
- ๋ฐ๋ณต๋๋ ์ผ์ ์ ์ฃผ์ด์ง๋ ๋ฏธ์ ์ ํ๋์ฉ ํด๊ฒฐํ๋ฉด์ ์คํธ๋ ์ค ํด์
- ์๋ฌด ์๋ฏธ๊ฐ ์๋ค๊ณ ์๊ฐํ๋ ํ๋ฒํ ํ๋๋ค๋ ํน๋ณํ๊ฒ ๋๊ปด์ง
- ์ฌ๋๋ง๋ค ๋
ธ์ผ ์๊ธฐ๋ฅผ ์ด๋ป๊ฒ ๊ทน๋ณตํ๋์ง YAS๋ฅผ ํตํด ์๊ฒ ๋๊ณ , ์ฌ๋๋ค์ ๋ฏธ์
์ํ ์ ๋๋ฅผ ๋ณด๋ฉด์ YAS ๅ
ง ์์๊ฐ, ๊ณต๊ฐ๋ ํ์ฑ
๐ ๊ฐ๋ฐํ๊ฒฝ ๋ฐ ๊ธฐ์ ์คํ
• ์ธ์ด : Java 11
• ํ๋ ์์ํฌ : SpringBoot 2.6.1
• ๋น๋๋๊ตฌ : Gradle 7.3
• ๋ฐ์ดํฐ๋ฒ ์ด์ค : MySQL 8.0.22
• ํ์
ํด : Notion, Github Issue
• ๋ฌธ์ : Swagger
• ์ธํ๋ผ : AWS(EC2, RDS, S3, Route53, CodeDeploy)
๐ ERD
๐ ์ํคํ ์ณ / ํ๋ฆ๋
- ๊นํ readme์ ์์ฑ
๐ ํ๋ก์ ํธ ํ๊ธฐ
- ํ๋ก ํธ ์๋ ๊ฐ๋ฐ์ 3๋ช
, ๋ฐฑ์๋ ๊ฐ๋ฐ์ 4๋ช
(๋ ํฌํจ)์ด์ ์์ํ์ง๋ง ์ค๊ฐ์๋ ๋ฐฑ์๋ ๊ฐ๋ฐ์ 2๋ช
์ด ๋์๊ณ ๋ง์ง๋ง์๋ 3๋ช
์ผ๋ก ๋ง๋ฌด๋ฆฌ๊ฐ ๋์๋ค. ํ์๋ค์ด ์ทจ์ค์์ด๋ค ๋ณด๋ ๊ฐ์์ ์ผ์ ์ด ์์๊ณ ๋๋ ํ์ฅ์ ์์น์์ ํ์๋ค์ ์
์ฅ์ ์ดํดํด์ผ ํ๋ค. ๊ทธ๋์ ์ผ์ ์ด ๋ณํ๋จ์ ๋ฐ๋ผ ์ค๊ฐ ์ค๊ฐ์ ๊ฐ์ ๋งก์ ๋ถ๋ถ์ ๋ณ๊ฒฝํ๋ ๊ฒ์ ์ ๊ฒฝ์จ์ผ ํ๋ค...
- ์ด์ ํ๋ก์ ํธ์์๋ ๋ด๊ฐ ๋ฐฐํฌ๋ฅผ ๋งก์ง ์์๊ธฐ์ Github Action์ ํตํ CI/CD๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ฒ์์ด์๋ค. ๋ํ HTTPS๋ฅผ ์ ์ฉํ๊ธฐ ์ํด ๋ก๋๋ฐธ๋ฐ์๋ฅผ ์ด์ฉํ๋ ๊ฒ๋ ์ฒ์์ด์ด์ ๋ง์ด ํค๋งธ๋ค. ํค๋งค๋ ๊ณผ์ ์์ ํ์๋ถ์ด '๊ด์ฐฎ๋ค, ๊ด์ฐฎ์ผ๋๊น ์ฒ์ฒํ ํด๋ผ'๋ผ๊ณ ํด์คฌ๋๋ฐ ๊ทธ ๋ง์ด ์์์ผ๋ฉด ๋ง์ด ํ๋ค.. ๋ปํ๋ค ใ
ใ
ใ
- ํ๋ก์ ํธ๋ฅผ ํตํด ๋ด๊ฐ ์ป์ ๊ฒ
- ์ฒซ๋ฒ์งธ, ํ์ฅ์ ์ญํ ์ ๋ํด์ ๊ฒฝํํ๋ค. ์ฒซ๋ , ๋ฉํ ๋์ด ํ์ฅ์ ์ญํ ์ ๋ํด ์ด์ผ๊ธฐ ํด์ฃผ์
จ์ ๋๋ถํฐ ๋ด๊ฐ ์ด๋ป๊ฒ ํ๋ํด์ผ ํ๊ณ ์ด๋ป๊ฒ ๋ฆฌ๋ํด์ผํ ์ง ๋ง์ด ๊ณ ๋ฏผํ๋ค. ๋ํ ๋ฐฑ์๋ ๊ฐ๋ฐ์๊ฐ 4๋ช
์์ 2๋ช
์ด ๋์๊ณ , ํ๋ก ํธ ๊ฐ๋ฐ์๋ถ๋ค๊ณผ ํ์
์ ํ๋ฉฐ ๋ง์ ์์ ์ ๊ฑฐ์ณค๋ค.
๊ทธ๋ฐ ํผ๋์ค๋ฌ์ด ๊ณผ์ ์์ ๋ด๊ฐ ํ์ฅ์ธ๋ฐ ๋ด๊ฐ ํค๋งค๋ฉด ์ ๋ง ํฐ์ผ ๋ ๊ฒ ๊ฐ์๊ธฐ์ ์ ์ ์ ์ฐจ๋ฆฌ๋ ค๊ณ ๋ ธ๋ ฅํ๋ค. ๋ํ ๋ค๋ฅธ ํ์ ๋นํด ์ฐ๋ฆฌ ํ์ ์งํ์ด ๋ถ์กฑํ๊ฒ ์ฌ๊ฒจ์ง๊ณ , ํ๋ค์ดํ ๊น๋ด ํ์๋ค ์ค ๊ฐ์ฅ ๋ฆ๊ฒ๊น์ง ๋จ์ ๊ฐ๋ฐ์ ์ํ๋ค.(๊ทธ๋์.. ์ฝ 2์ฃผ? ์ ๋๋ ์๋ฒฝ 6์์ ์ค๋ค..)๊ทธ๋ฆฌ๊ณ ๊ณ์ ์ข์ ์ด์ผ๊ธฐ, ๊ธ์ ์ ์ธ ๋ง์ ํ๋ คํ๋๋ฐ ๋คํํ ์ข์ ํจ๊ณผ?๋ฅผ ๋ณธ๊ฒ ๊ฐ์..๋ฐ..? ๊ทธ๋ฌ๊ฒ ์ง..?!?
- ๋๋ฒ์งธ, ์๋ก์ด ๋ถ๋ถ์ ๋ํด ๊ฒฝํํ๋ค. Github Action์ ์ด์ฉํ CI/CD๋ ๋ก๋๋ฐธ๋ฐ์๋ฅผ ์ด์ฉํ์ฌ HTTPS๋ฅผ ์ ์ฉํ๋ ๊ฒ์ด๋ ๊ทธ์ธ์ ์ธํ๋ผ ๊ด๋ จ๋ ๊ฒ๋ค์ ๋ํด์ ๊ตฌํํ๊ธฐ ์ํด ๋ง์ ๊ณต๋ถ๋ฅผ ํ๋ค. ๋ํ, ์ด์ ํ๋ก์ ํธ์์ ์๊ฐํ ์์ธ์ฒ๋ฆฌ๋ฅผ ํ ๋ ํ์ค ์์ธ์ Custom Exception์ ๋ํ ์ ์ ํ ์ฌ์ฉ์ ๊ธฐ์ค, ์๋ต ๊ตฌ์กฐ๋ฅผ ์ด๋ป๊ฒ ํ๋ฉด ์ข์ ์ง ๋ฑ์ ๋ํ ์ ์ฒด์ ์ธ ๊ตฌ์กฐ์ ๋ํ ๊ณ ๋ฏผ๋ ๋ง์ด ํ๋ค.
(์ด ๊ณผ์ ์์ ๋ฉํ ๋์๊ฒ ERD๋ ๋ง์ด ์ฌ์ญค๋ณด๊ณ , ํ์๋ค๊ณผ ์๊ฒฌ ๊ณต์ ๋ฅผ ์ ๋ง ๋ง์ด ํ๋ค ๋คํํ ๋ฉํ ๋์ด ์ฐ๋ฆฌ๊ฐ ์ค์ค๋ก ์๊ฐํ ์ ์๋๋ก ์ด๋์ด ์ฃผ์ ์ ๋ ๋ง์ ๋์์ด ๋์๋ค.ใ ใ ) - ๋ง์ง๋ง์ผ๋ก, ์ด๋ ํ ๋ถ๋ถ์ด ๋ถ์กฑํ์ง ์ด๋ค ๊ฒ์ ๊ณต๋ถํด์ผ ํ ์ง ๋ฐฉํฅ์ ์ ํ ์ ์์๋ค. ์ด๋ฒ์ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ์ธํ๋ผ์ ๋ํ ๋ถ๋ถ๋, ๋ฐฐํฌ๋ฅผ ํ ๋ ๊นํ ์ก์
์ด์ธ์๋ ์ ํจ์ค์ ๋ํ ๊ถ๊ธ์ฆ๋, ์ฝ๋๋ฅผ ์์ฑํ๋ฉด์ ์์ฌ์ ๋ ๋ถ๋ถ๋ค์ ๋ณด์ํ๋ ๊ฒ์ ๋ํด์๋ ๊ณต๋ถ๋ฅผ ํด์ผ๊ฒ ๋ค๊ณ ์๊ฐ์ ํ๋ค.
๊ณต๋ถํด์ผํ ๊ฒ์ด ์ ๋ง ๋ง์ด ์๊ฒผ๋ค. 2์ฃผ์ฐจ ํ๋ก์ ํธ๋ฅผ ํ์ ๋ ๊ณต๋ถํด์ผ๊ฒ ๋ค๊ณ ์๊ฐํด์ ์ ์ด ๋๊ฒ 30๊ฐ ์ ๋ ๋์๋๋ฐ ์ด๋ฒ์๋ ๊ทธ๋งํผ ๋ง์ด ์๊ธด ๊ฒ ๊ฐ๋ค. ์ด๋ฒ ๊ธฐํ๋ฅผ ํตํด ๋ณด์ํ ์ ์์ด์ ์ ๋ง ๋คํ์ด๊ณ ๋ณด๋์๋ ํ๋ก์ ํธ์๋ค!!
- ์ฒซ๋ฒ์งธ, ํ์ฅ์ ์ญํ ์ ๋ํด์ ๊ฒฝํํ๋ค. ์ฒซ๋ , ๋ฉํ ๋์ด ํ์ฅ์ ์ญํ ์ ๋ํด ์ด์ผ๊ธฐ ํด์ฃผ์
จ์ ๋๋ถํฐ ๋ด๊ฐ ์ด๋ป๊ฒ ํ๋ํด์ผ ํ๊ณ ์ด๋ป๊ฒ ๋ฆฌ๋ํด์ผํ ์ง ๋ง์ด ๊ณ ๋ฏผํ๋ค. ๋ํ ๋ฐฑ์๋ ๊ฐ๋ฐ์๊ฐ 4๋ช
์์ 2๋ช
์ด ๋์๊ณ , ํ๋ก ํธ ๊ฐ๋ฐ์๋ถ๋ค๊ณผ ํ์
์ ํ๋ฉฐ ๋ง์ ์์ ์ ๊ฑฐ์ณค๋ค.