Front End CI CD - TEAM-ARK/inflearn-clone-front GitHub Wiki
CSR( Cliend Side Rendering)
- CSR์ ๊ฒฝ์ฐ ํ๋ก ํธ์๋ฒ๊ฐ ์๊ธฐ ๋๋ฌธ์ CI๋ง ๊ตฌ์ถ
- ๊ตฌ์ถ ์ ์ฐจ
- github action์ ์ฌ์ฉํ๊ณ eslint๋ฅผ ์ ์ฉํ์ฌ push ์ ์ eslint ๊ท์ฝ์ ๋ง์ง ์์ผ๋ฉด push๊ฐ ๋์ง ์๋๋ก ํจ
- ํ
์คํธ ์งํ
- ์ ๋ํ ์คํธ( JEST)
- ํตํฉํ ์คํธ( JEST)
- E2E ํ ์คํธ( Cypress)
- ํ๋ก์ ํธ ๋น๋
- AWS S3์ ์
๋ก๋
- ์ ๋ก๋ ํ S3์์ index.html์ ์ ๊ทผํ์ฌ ์ฝ๋๊ฐ ์คํ๋๋๋ก ์ค์
SSR( Server Side Rendering)
- SSR์ ๊ฒฝ์ฐ ํ๋ก ํธ์๋ฒ๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ๋ฐฑ์๋์ ๊ฐ์ด CI/CD๊น์ง ๊ตฌ์ถ( Nextjs ๊ธฐ์ค)
- ๊ตฌ์ถ ์ ์ฐจ
- github action์ ์ฌ์ฉํ๊ณ eslint๋ฅผ ์ ์ฉํ์ฌ push ์ ์ eslint ๊ท์ฝ์ ๋ง์ง ์์ผ๋ฉด push๊ฐ ๋์ง ์๋๋ก ํจ
- ํ
์คํธ ์งํ
- ์ ๋ํ ์คํธ( JEST)
- ํตํฉํ ์คํธ( JEST)
- E2E ํ ์คํธ( Cypress)
- ํ๋ก์ ํธ ๋น๋
- AWS EC2์ ๋ฐฐํฌ
- ์ฐ๋ถํฌ์๋ฒ์์ ๋น๋ํ๊ณ ๋น๋ ๋ ์ฝ๋๋ฅผ PM2์ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์คํ
๋น๋
๋น๋๋ ๋ณดํต webpack๊ณผ ๊ฐ์ ๋ชจ๋ ๋ฒ๋ค๋ง์ ์ฌ์ฉํด์ ํธ๋์ค ์ปดํ์ผ๋ง ์์ ์ ๋น๋๋ผ๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด, ES5 ํน์ ํ์ ์คํฌ๋ฆฝํธ์ ๊ฐ์ ์ธ์ด๋ ๋ธ๋ผ์ฐ์ ์์ ๋ฐ๋ก ์ฝ์ด์ ์ฒ๋ฆฌ๊ฐ ๋ถ๊ฐ๋ฅํ๋ฏ๋ก ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ณํ์ด ์ด๋ฃจ์ด์ ธ์ผ ํ๋ค. ์ด๋ฐ๊ฒ๋ค์ webpack ํน์ tsc๋ฅผ ์ฌ์ฉํ์ฌ ํธ๋์ค์ปดํ์ผ์ ์งํํ๋๊ฒ์ ๋น๋๋ผ๊ณ ํ๋ค
ํ ์คํธ
์ ๋, ํตํฉ, e2e ํ ์คํธ๋ ๊ฐ๊ฐ ๋ฒ์๊ฐ ๋ค๋ฅด๋ฉฐ ๋ชฉ์ ๋ ์กฐ๊ธ์ฉ ๋ค๋ฅด๋ค. ํ ์คํธ๋ก์ง์ ๊ตญ์๋ถ๋ถ์ ์ ๋ํ ์คํธ๋ฅผ ๊ด๋ฆฌํ๊ฑฐ๋ e2e ํ ์คํธ๋ฅผ ๋์ ํ ์ฌ๋ ฅ์ด ์๋ ํ์์ ๋์ ์ ๊ณ ๋ คํ๋๊ฒ์ ์ถ์ฒํ๋ค. ์ ๋, ํตํฉ์ ๋ํด์๋ ์ค์ํ ๋น์ง๋์ค ๋ก์ง์๋ง ์ ํ์ ์ผ๋ก ์ ์ฉํ๊ณ ๋ชจ๋ ๋ถ๋ถ์ ์ ์ฉํ ํ์๋ ์๋ค๊ณ ์๊ฐํ๋ค. ๊ฐ ํ์์ด ์ปค๋ฐํ๋ ์์ ์ ํ ์คํธ๋ฅผ ๋๋ฆฐ๋ค๋ฉด ๋น๊ต์ ๊ฐ๋จํ๊ณ ๋น ๋ฅด๊ฒ ํ ์คํธ ํ ์ ์๋ ํ์ ํ ์คํธ๋ง ๋๋ฆฌ๊ณ e2e์ ๊ฒฝ์ฐ ํ ์คํธ ์๊ฐ๋ ์ค๋ ๊ฑธ๋ฆฌ๊ณ ๋ฒ์๋ ๋๊ธฐ ๋๋ฌธ์ ์คํ ์ด๋ฉ ๋ฐฐํฌ์ ์ค์ํ๋๊ฒ ๋ซ๋ค๊ณ ๋ณธ๋ค. ์ ๋ํ ์คํธ์ ๊ฒฝ์ฐ๋ ๋ฒ์์ ๋ฐ๋ผ ํ ์คํธ ์์ ์ด ๋ฌ๋ผ์ ธ์ผ ํ๋ค๊ณ ๋ณด๊ณ ์ค์ํ๊ฑด ๋๋ฌด ๋น๋ฒํ ํ ์คํธ ๋๋ฌธ์ ์์ ์ ๋๋ ์ด๊ฐ ์๊ฒจ์ ์๋๋ค๊ณ ๋ณด๋ฉฐ ๊ฐ๋จํ๊ณ ํ์์ ์ธ ๋ถ๋ถ์ commit ์์ ์ ์ฒดํฌํ๊ณ ๋ฒ์๊ฐ ๋๋ค๋ฉด ๋ธ๋ฐ์น๋จ์๋ก ๋ณํฉ์์ ์ ํ๋๊ฒ ๋ซ๋ค๊ณ ๋ณธ๋ค.( ์๋์ด ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ์๊ฒฌ)