๋ถํ ํด์ปค๊ฐ ์คํ์์ค ์ ์ฅ์์ ์ฌ์ 108๊ฐ์ ๋ซ, PolinRider ์บ ํ์ธ์ด ๋ ธ๋ฆฐ ๊ฑด ๊ฐ๋ฐ์์๋ค
์ด๋ ํ๋ฆฌ๋์ ๊ฐ๋ฐ์๊ฐ ์ฑ์ฉ ๋ด๋น์๋ผ๋ ์ฌ๋์๊ฒ์ ๋งํฌ ํ๋๋ฅผ ๋ฐ๋๋ค. "์ฐ๋ฆฌ ์๋น์ค์ ๋ฒ๊ทธ๊ฐ ์๋๋ฐ, ์ด ํจํค์ง ์ค์นํด์ ํ๋ฒ ๋ด์ค ์ ์๋์?" ์ด๋ ฅ์ ์ฌ์ฌ ๊ฒธ ์ฝ๋ฉ ํ
์คํธ๋ผ๋ ๋ช
๋ชฉ์ด์๋ค. npm install์ ์น๋ ์๊ฐ, ๊ทธ ๋
ธํธ๋ถ์ ์ ์ฅ๋ ์ํธํํ ์ง๊ฐ๊ณผ ๋ธ๋ผ์ฐ์ ์ธ์
์ด ๋ฐ๋ค ๊ฑด๋๋ก ํ๋ฌ๊ฐ๋ค. PolinRider๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ฌถ์ธ ์ด๋ฒ ์บ ํ์ธ์ ์ ํ์ ์ธ ์์ ์ฅ๋ฉด์ด๋ค.
- ๋ถํ ์ฐ๊ณ ์ํ ๊ทธ๋ฃน์ด npm·PyPI ๊ฐ์ ๊ณต๊ฐ ์ ์ฅ์์ ํธ์ง๊ธฐ ํ์ฅ ๋ง์ผ์ 108๊ฐ์ ๋ฌํ๋ ์ ์ฑ ํจํค์ง๋ฅผ ๋ฟ๋ฆฐ ์ ํฉ์ด ๋๋ฌ๋จ.
- ํ์ ์ ์ผ๋ฐ ์ฌ์ฉ์๊ฐ ์๋๋ผ ๊ฐ๋ฐ์·๊ตฌ์ง์์ด๋ฉฐ, ๊ฐ์ง ์ฑ์ฉ·์ฝ๋ฉ ํ ์คํธ๋ฅผ ๋ฏธ๋ผ๋ก ์ค์น๋ฅผ ์ ๋ํจ.
- ๋ฐฉ์ด์ ํต์ฌ์ '์ ๋ช ํด ๋ณด์ด๋ ์ด๋ฆ'์ ๋ฏฟ์ง ๋ง๊ณ , ์ค์น ๋จ๊ณ์์ ์คํ๋๋ ์คํฌ๋ฆฝํธ์ ์ธ๋ถ ํต์ ์ ์ฐจ๋จ·๊ด์ธกํ๋ ๊ฒ.
์ ๊ฐ๋ฐ์๋ฅผ ๋ ธ๋ฆฌ๋๊ฐ
์ผ๋ฐ ํผ์ฑ์ ์๋ฌด๋ ๋๋๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ฒ ๋ฐฉ์์ ๊ฒฐ์ด ๋ค๋ฆ. ๊ฐ๋ฐ์ ํ ๋ช ์ ๋ ธํธ๋ถ์๋ ํ์ฌ ์์ค์ฝ๋, ํด๋ผ์ฐ๋ ์ก์ธ์ค ํ ํฐ, CI/CD ์๊ฒฉ์ฆ๋ช , ๊ทธ๋ฆฌ๊ณ ์์ฆ์ ์ํธํํ ์ง๊ฐ๊น์ง ํจ๊ป ๋ค์ด ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์. ์ฆ ํ ๋ช ์ ๋ซ์ผ๋ฉด ๊ทธ ๋ค์ ์กฐ์ง ์ ์ฒด๊ฐ ์ด๋ฆผ. ๋ถํ ๊ณ์ด ๊ทธ๋ฃน์ด 'Contagious Interview'๋ฅ์ ๊ฐ์ง ๋ฉด์ ์๋๋ฆฌ์ค๋ฅผ ๋ช ๋ ์งธ ์ฐ๋ ค๋จน๋ ์ด์ ๊ฐ ๋ฐ๋ก ์ด ๊ฐ์ฑ๋น์ ์๋ ๊ฒ ๊ฐ๋ค.
108๊ฐ ํจํค์ง, ์ด๋ป๊ฒ ์จ์ด๋ค์๋
๊ณต๊ธ๋ง ๊ณต๊ฒฉ์ ๋ผ๋๋ ๋จ์ํจ. ์ ๋ฆฌํ๋ฉด ์ด๋ฐ ํ๋ฆ์.
- ์ด๋ฆ ์์ฅ(typosquatting): ๋๋ฆฌ ์ฐ์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ ๊ธ์ ์ฐจ์ด ๋๋ ์ด๋ฆ์ ์ฌ๋ ค, ์คํ๋ ๊ธํ ์์ ๋ ธ๋ฆผ.
- ์ค์น ํ
์
์ฉ: npm์
postinstall์ฒ๋ผ ์ค์น๋ง ํด๋ ์๋ ์คํ๋๋ ์คํฌ๋ฆฝํธ์ ์ ์ฑ ๋ก์ง์ ๋ผ์ ๋ฃ์. ์ฝ๋๋ฅผ import ํ์ง ์์๋ ์ด๋ฏธ ๋ฆ์. - 2๋จ๊ณ ๋ค์ด๋ก๋: ์ฒซ ํจํค์ง๋ ๊ฒ๋ณด๊ธฐ์ ๋ฉ์ฉกํ๊ณ , ์ค์ ์ ๋ณด ํ์ทจ ๋๊ตฌ๋ ์ธ๋ถ ์๋ฒ์์ ๋ด๋ ค๋ฐ์ ์คํํจ. ์ ์ ๊ฒ์ฌ๋ง์ผ๋ก ๊ฑธ๋ฌ๋ด๊ธฐ ์ด๋ ค์.
- ํธ์ง๊ธฐ ํ์ฅ ํต๋ก: ์ฝ๋ ์ ์ฅ์๋ฟ ์๋๋ผ VS Code๋ฅ ํ์ฅ ๋ง์ผ๊น์ง ๋ฐฐํฌ ๊ฒฝ๋ก๋ก ์. ๊ฐ๋ฐ ํ๊ฒฝ ์์ชฝ๊น์ง ํ๊ณ ๋๋ ๊ตฌ์กฐ.
ํจํค์ง ๊ฐ์๊ฐ 100๊ฐ๋ฅผ ๋๋๋ค๋ ๊ฑด ํ๋๊ฐ ์ง์์ ธ๋ ๋ค์ ๊ฒ์ผ๋ก ๊ฐ์ํ๋ '๋ฌผ๋์ '์ ํ๊ณ ์๋ค๋ ๋ป์. ๊ณ์ ์ ๋ง๋ค๊ณ ์ด๋ฆ๋ง ๋ฐ๊ฟ ๋ค์ ์ฌ๋ฆฌ๋ ๋น์ฉ์ด ์๋ ์ธ๋ค ๋ณด๋, ๋ฐฉ์ด์๋ ๊ฐ๋ณ ํจํค์ง ์ญ์ ๊ฐ ์๋๋ผ ํจํด ์์ฒด๋ฅผ ๋ง์์ผ ํจ.
๋ฐฉ์ด์ ๊ด์ ์ ํ์ง·์ํ ์์
๊ฐ์ธ์ ์ผ๋ก๋ '์ค์น ์ด์ '๊ณผ '์ค์น ์ดํ'๋ฅผ ๋๋ ์ ๋ณด๋ ๊ฑธ ์ถ์ฒํจ. ๋์์ ๋๋ต ์ด ์์๋ก ๋ฐ์ผ๋ฉด ๋จ.
- ์ค์น ์ ๊ฒ์ฆ: ํจํค์ง์ ๋ฐฐํฌ์ผ·๋ค์ด๋ก๋ ์ถ์ด·์ ์ง๋ณด์์ ์ด๋ ฅ์ ํ์ธํจ. ์ด์ ๋ง๋ค์ด์ง ๊ณ์ ์ด ์ฌ๋ฆฐ, ๋ณ์ ํ๋ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ผ๋จ ์์ฌ.
- ๋ฝํ์ผ ๊ณ ์ :
package-lock.json·requirements.txt๋ก ๋ฒ์ ์ ๋ชป ๋ฐ๊ณ ,npm ci์ฒ๋ผ ์ฌํ ๊ฐ๋ฅํ ์ค์น๋ง CI์ ํ์ฉํจ. - ์ค์น ์คํฌ๋ฆฝํธ ์ฐจ๋จ: ์ ๋ขฐ ๋ชป ํ๋ ์์กด์ฑ์
--ignore-scripts๋ก postinstall ์๋ ์คํ์ ๋ง๊ณ , ํ์ํ ๊ฒ๋ง ๊ณจ๋ผ ์ผฌ. - ๊ฒฉ๋ฆฌ ํ๊ฒฝ ์ฐ์ : ์ถ์ฒ ๋ถ๋ช ์ฝ๋๋ ๋ฐ๋์ ์ปจํ ์ด๋๋ ์ผํ์ฉ VM์์ ๋จผ์ ๋๋ฆผ. "๋ฉด์ ๊ณผ์ "๋ผ๋ฉฐ ๋ฐ์ ํ๋ก์ ํธ๋ ์ ๋ ๋ณธ์ฒด ๋ ธํธ๋ถ์์ ๋ฐ๋ก ์คํํ์ง ์์.
- ์ด์ ํต์ ๊ด์ธก: ์ค์น ์งํ ๋ฏ์ ๋๋ฉ์ธ์ผ๋ก ๋๊ฐ๋ ์์๋ฐ์ด๋ ์ฐ๊ฒฐ์ด ์๊ธฐ๋์ง ๋ด. ์ ๋ณด ํ์ทจํ์ ๊ฒฐ๊ตญ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ผ๋ก ๋นผ์ผ ํ๋ฏ๋ก ์ด ์ง์ ์์ ๊ผฌ๋ฆฌ๊ฐ ์กํ.
- ๋น๋ฐ์ ๋ณด ํ์ : ์กฐ๊ธ์ด๋ผ๋ ์คํ๋ ์ ํฉ์ด ์์ผ๋ฉด ์ง๊ฐ·ํ ํฐ·SSH ํค๋ฅผ ๋ฏธ๋ จ ์์ด ๊ฐ์์์. ์ด๋ฏธ ์ ๋๊ฐ ์๊ฒฉ์ฆ๋ช ์ ์ง์ด๋ค๊ณ ๋์์ค์ง ์์.
๊ฒฐ๊ตญ ์ฌ๋์ด ๋ง์ง๋ง ๋ฐฉ์ด์
๊ธฐ์ ์ ํต์ ๋ฅผ ์๋ฌด๋ฆฌ ๊น์๋, "์ด ํ์ผ ์คํํด ์ฃผ์ธ์"๋ผ๋ ์ฑ์ฉ ๋ด๋น์ ์์์ ๋ฌด๋์ง๋ฉด ์์ฉ์ด ์์. ์ ์์ ์ธ ์ฑ์ฉ ์ ์ฐจ๋ ์ง์์์๊ฒ ๋ฏ์ ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋ก์ปฌ์์ ๋๋ฆฌ๋ผ๊ณ ์๊ตฌํ์ง ์๋๋ค๋ ๊ฒ, ์ด ๊ฐ๊ฐ ํ๋๋ง ์์ด๋ ์๋น์๋ ๊ฑธ๋ฌ์ง. ์คํ์์ค๋ ์ฌ์ ํ ์ฐ๋ฆฌ ํธ์ด์ง๋ง, ๊ทธ ์ ๋ขฐ๋ฅผ ๋ ธ๋ฆฌ๊ณ 108๊ฐ์ ๋ซ์ ๊น์๋ ์ฌ๋๋ค์ด ์๋ค๋ ๊ฒ๋ ์์ง ๋ง์์ผ๊ฒ ๋ค. ๊ฐ์ ์ฐ๋ ์ ์ฅ์ ์ค์ ๋ถํฐ ์ค๋ ํ๋ฒ ์ ๊ฒํด ๋ณด์์. ๋๋ง์ ์ฒดํฌ๋ฆฌ์คํธ๊ฐ ์๋ค๋ฉด ๋๊ธ๋ก ๊ณต์ ํด ์ฃผ์ธ์, ๊ฐ์ด ๋ค๋ฌ์ด ๋ด ์๋ค.
# ๋๊ธ