์ ๋ฌธ์ ์ธ ์ฝ๋ ๋ฆฌํฉํ ๋ง ์๋น์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ธฐ๋ฅ ๋ณ๊ฒฝ ์์ด ์ฝ๋ ํ์ง, ๊ฐ๋ ์ฑ, ์ ์ง๋ณด์์ฑ์ ํฅ์์์ผ, ์ฆ๊ฒ๊ฒ ์์ ํ ์ ์๋ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๋ง๋ญ๋๋ค.
์์ํ๊ธฐ
๋์ ์ฝ๋๋ ๋ชจ๋ ๊ฒ์ ์ง์ฐ์ํต๋๋ค. ์๋ก์ด ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ๋ ์ค๋ ๊ฑธ๋ฆฌ๊ณ , ๋ฒ๊ทธ ์์ ์ ์ด๋ ค์์ง๋ฉฐ, ์๋ก์ด ๊ฐ๋ฐ์๋ฅผ ์จ๋ณด๋ฉํ๋ ๊ฒ์ ๊ณ ํต์ค๋ฝ์ต๋๋ค. ๋น์ฌ๋ ๊ธฐ๋ฅ์ ๋๋ฑ์ฑ์ ์ ์งํ๋ฉด์ ๊ตฌ์กฐ, ๋ช ๋ช , ํจํด, ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง๋ฅผ ๊ฐ์ ํ๋ ๋ฐฉ์์ผ๋ก ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ๋ฆฌํฉํ ๋งํฉ๋๋ค. ๊ทธ ๊ฒฐ๊ณผ: ๊ฐ๋ฐ ์๋ ํฅ์ ๋ฐ ๋ ํ๋ณตํ ์์ง๋์ด.
๋น์ฌ๋ ์ ์ ๋ถ์ ๋๊ตฌ(ESLint, SonarQube, TypeScript ์ปดํ์ผ๋ฌ)๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ์๋ณํ๊ณ , ์์ ํ ๋ณํ์ ์ํ ์๋ํ๋ ๋ฆฌํฉํ ๋ง ๋๊ตฌ, ๊ทธ๋ฆฌ๊ณ ๋์ ๋ณด์กด์ ๊ฒ์ฆํ๊ธฐ ์ํ ํฌ๊ด์ ์ธ ํ ์คํธ ์ค์ํธ๋ฅผ ํ์ฉํฉ๋๋ค. ๋ชจ๋ ๋ฆฌํฉํ ๋ง์ ์ง์์ ์ธ ํตํฉ ๊ฒ์ฆ๊ณผ ํจ๊ป ์ ์ง์ ์ผ๋ก ์ํ๋ฉ๋๋ค.
์๋ ๊ฐ์ ์ง๋ฆ๊ธธ, ๋ถ์ผ์น, ๋ณต์ก์ฑ์ด ์ถ์ ๋์ด ํ์ฌ ๊ฐ๋ฐ์ ๋ฆ์ถ๊ณ ์๋ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๊ฐ์ง ํ์ ์ํ ์๋น์ค์ ๋๋ค. ๋ง์ฝ ์์ง๋์ด๋ค์ด ์ฝ๋์ ํน์ ๋ถ๋ถ์์ ์์ ํ๋ ๊ฒ์ ๋๋ ค์ํ๊ฑฐ๋, ๊ธฐ๋ฅ ๊ฐ๋ฐ์ด ์์๋ณด๋ค ์ค๋ ๊ฑธ๋ฆฌ๊ฑฐ๋, ๋์ผํ ์์ญ์์ ๋ฒ๊ทธ๊ฐ ๊ณ์ ์ฌ๋ฐํ๋ค๋ฉด, ๋ฆฌํฉํ ๋ง์ ๋น ๋ฅด๊ฒ ๊ทธ ๊ฐ์น๋ฅผ ์ฆ๋ช ํ ๊ฒ์ ๋๋ค.
์ฝ๋ ํ์ง ์งํ๋ฅผ ๋ถ์ํ๊ณ , ํซ์คํ์ ์๋ณํ๋ฉฐ, ๋ณต์ก๋๋ฅผ ์ธก์ ํ๊ณ , ๋ฆฌํฉํ ๋ง ๋์์ ์ฐ์ ์์ํํฉ๋๋ค.
ํต์ฌ ๊ฒฝ๋ก์ ๋ํ ํน์ฑํ ํ ์คํธ๋ฅผ ์์ฑํ๊ณ , CI ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ๋ฉฐ, ๋ฆฌํฉํ ๋ง ์์๋ฅผ ๊ณํํฉ๋๋ค.
์๊ณ ๊ฒํ ๊ฐ๋ฅํ PRs๋ก ๋ฆฌํฉํ ๋ง์ ์ํํฉ๋๋ค. ๊ฐ PR์ ๋ณํฉ ์ ์ ํ ์คํธ ๋ฐ CI์ ์ํด ๊ฒ์ฆ๋ฉ๋๋ค.
๋ฆฐํ ๊ท์น์ ๊ตฌ์ฑํ๊ณ , ์ํคํ ์ฒ ํ ์คํธ๋ฅผ ์ถ๊ฐํ๋ฉฐ, ํ๊ท๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๊ท์น์ ๋ฌธ์ํํฉ๋๋ค.
ํ๊ณผ ํจํด์ ๊ฒํ ํ๊ณ , ๊ธฐ์ฌ ๊ฐ์ด๋๋ผ์ธ์ ์ ๋ฐ์ดํธํ๋ฉฐ, ์ฝ๋ ๋ฆฌ๋ทฐ ํ์ค์ ํ๋ฆฝํฉ๋๋ค.
ํ์ด ์ฆ๊ฒ๊ฒ ์์ ํ ์ ์๋ ์ฝ๋๋ฒ ์ด์ค๋ก ๋ฐ๊ฟ๋ณด์ธ์ โ ๋ ๋น ๋ฅธ ๊ธฐ๋ฅ, ๋ ์ ์ ๋ฒ๊ทธ.
์ ํฌ๋ ์ ์ง๋ณด์์ฑ๊ณผ ๊ฐ๋ฐ์ ์์ฐ์ฑ์ ํฅ์์ํค๊ธฐ ์ํด ํจ์ ๋ฐ ํด๋์ค ์ถ์ถ, ์์กด์ฑ ์ฃผ์ ๋ฆฌํฉํ ๋ง, ๋์์ธ ํจํด ๊ตฌํ, ๋ฐ๋ ์ฝ๋ ์ ๊ฑฐ, ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง ๊ฐ์ , ์ฝ๋๋ฒ ์ด์ค ๋ชจ๋ํ๋ฅผ ์ํํฉ๋๋ค.
MicrocosmWorks์ ์ฝ๋ ๋ฆฌํฉํ ๋ง ๋ฐ ์ ๋ฆฌ ์๋น์ค๋ ์๊ฐ๋น $10-$35๋ก ์ด์ฉ ๊ฐ๋ฅํ๋ฉฐ, ์ด๋ ์ฝ๋ ํ์ง์ ํฅ์์ํค๊ณ , ๋ฒ๊ทธ๋ฅผ ์ค์ด๋ฉฐ, ํฅํ ๊ฐ๋ฐ ์๋๋ฅผ ๋์ด๋ ํฉ๋ฆฌ์ ์ธ ๋ฐฉ๋ฒ์ ๋๋ค.
๋ค, ์ ํฌ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ๊ธฐ ์ ์ ํ ์คํธ๋ฅผ ์์ฑํ๊ฑฐ๋ ๊ฐ์ ํ ๋ค์, ์๊ณ ๊ฒ์ฆ ๊ฐ๋ฅํ ๋จ๊ณ๋ก ๋ฆฌํฉํ ๋งํ๋ ํ ์คํธ ์ฐ์ ๋ฆฌํฉํ ๋ง ์ ๊ทผ ๋ฐฉ์์ ๋ฐ๋ฆ ๋๋ค. ๊ฐ ๋จ๊ณ๋ ํ ์คํธ ์ค์ํธ๋ฅผ ํตํด ๊ฒ์ฆ๋์ด ํ๊ท๊ฐ ๋ฐ์ํ์ง ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
์ ํฌ๋ ๋ณ๊ฒฝ ๋น๋(ํซ์คํ), ์ฝ๋ ๋ณต์ก์ฑ ์งํ, ๋ฒ๊ทธ ๋ฐ๋, ๋น์ฆ๋์ค ์ํฅ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฆฌํฉํ ๋ง ์ฐ์ ์์๋ฅผ ์ ํฉ๋๋ค. ์์ฃผ ๋ณ๊ฒฝ๋๊ณ ๋ณต์ก๋๊ฐ ๋์ ์ฝ๋๋ ๊ฐ๋ฐ์ ์์ฐ์ฑ์ ๊ฐ์ฅ ํฐ ๊ฐ์น๋ฅผ ์ ๊ณตํ๋ฏ๋ก ๋จผ์ ๋ฆฌํฉํ ๋ง๋ฉ๋๋ค.
๋ค, ์ ํฌ๋ ESLint, Prettier ๋๋ ์ธ์ด๋ณ ๋ฆฐํฐ๋ฅผ ๋ง์ถคํ ๊ท์น ๊ตฌ์ฑ, ์ฌ์ ์ปค๋ฐ ํ (pre-commit hooks) ๋ฐ CI ๊ฒ์ฌ์ ํจ๊ป ์ค์ ํ์ฌ, ํฅํ ์ผ๊ด๋ ์ฝ๋ฉ ํ์ค์ ๊ฐ์ ํ๊ณ ์ฝ๋๋ฒ ์ด์ค๊ฐ ๋ค์ ์ ํ๋๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.