๊ฐ๋ฐ ํ์ด ํธ์ํ ํ๊ฒฝ์์ ์ฅ๊ธฐ์ ์ธ ์ฑ๊ณผ๋ฅผ ๋ผ ์ ์๋๋ก ๋
ธ๋ ฅํด์์ต๋๋ค.
Development ๊ฐ์ฅ ์ฝ๋ ์์ด ๋ง์ JavaScript, Python์ ์ค์ฌ์ผ๋ก Convention ํ๋ฆฝ์ ๋
ธ๋ ฅํ์ต๋๋ค. JavaScript, TypeScript Node.js ํ๋ก์ ํธ์ ์ ์ญ์ ์ผ๋ก ์ ์ฉํ ์ ์๋ ESLint Sharable Config ๋ฅผ https://github.com/sehyun-hwang/eslint-config-nextlab ์์ ์คํ์์ค๋ก ๊ด๋ฆฌํ๊ณ ์์ต๋๋ค. Python์์๋ Type checking๊ณผ Linting์ ๋์์ ๊ตฌ๋ํ๊ธฐ ์ํด์ mypy๋ฅผ Child process๋ก ์คํํ๋ pylint plugin์ ์ ์ํ ์ ์ด ์์ผ๋ฉฐ, ์ต๊ทผ์๋ ruff linter์ black formatter๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋ค์ํ ์ธ์ด๋ก ์ด๋ฃจ์ด์ง Monorepo์ ๋ํ Convention์ ๊ด๋ฆฌํ๊ธฐ ์ํด์ MegaLinter ์ ๊ทธ๊ฒ์ Github Action ์ ๋์
ํ์ต๋๋ค. Building ์ด๋ฏธ์ง ์ฒ๋ฆฌ ๋ฑ์ ํน์ํ ๊ธฐ๋ฅ์ด ์๋ ์ปจํ
์ด๋๋ค์ ๋ํด์๋ ๋ถํ์ํ ์ปดํ์ผ๋ฌ์ ์ธํฐํ๋ฆฌํฐ๋ฅผ ์ ๊ฑฐํ๋ Multi-stage build ๋ฅผ ์ํํ์ต๋๋ค. alpine ๊ธฐ๋ฐ์ ์ปจํ
์ด๋๋ก ์ปจํ
์ด๋์ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ์ค์ฌ ๋น๋ ์๊ฐ ๋จ์ถ, ๋ฐฐํฌ ์๋ ๊ฐ์ , ์ทจ์ฝ์ ๊ฐ์ ๋ฑ์ ํจ๊ณผ๋ฅผ ์ป์์ต๋๋ค. ๋ณต์์ Dockerfile์ ์ด์ฉํ Container build, ๋น๋ ์บ์ ๊ด๋ฆฌ ๋ฑ High-level build ๊ธฐ๋ฅ์ ๊ตฌํํด์ฃผ๋ buildx bake ๋ฅผ ๋์
ํ์ต๋๋ค. Makefile์ ์ด์ฉํด ์ง์ ๋ณ๋๋ก ์ปดํ์ผํด์ผ ํ๋ C++ ํ๋ก์ ํธ๋ ํ์ค์ ์ด์ง ์์ ํ๋ก์ ํธ์ ๊ฐ๋ฐ-๋น๋-ํ
์คํธ-๋ฐฐํฌ ๊ณผ์ ์ ๊ด๋ฆฌํฉ๋๋ค. ๋น๋๋ฅผ ์ํ ์ธํ๋ผ๋ฅผ ๊ด๋ฆฌํ ํ์๊ฐ ์๊ณ ๋์์ ์์
์ ๋ณ๋ ฌ์ ์ผ๋ก ์งํํ ์ ์๋ Serverless CI๋ฅผ ์ถ๊ตฌํฉ๋๋ค. AWS CodeBuild GitHub Action Testing Test runner๊ฐ ํ
์คํธ ์ผ์ด์ค๋ค์ ๋ณ๋ ฌ์ ์ผ๋ก ์ํํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์๋๋ก ํ๋ ์ ์์ ์ธ ๊ฐ์ฒด ์งํฅ ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค. ์๋น์ค ์ฝ๋์ Side effect๊ฐ ์๊ณ ๋ถ๋ถ ๋ณ๋ก ์ญํ ๊ตฌ๋ถ์ด ๋ช
ํํด์ผ ํ
์คํธ ์ฝ๋์์ class๋ฅผ ์์๋ฐ์์ ํ
์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ ์ ์์์ต๋๋ค. vitest , pytest ๋ก ํ
์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.