์๋ํ๋ธ(SonarQube)๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ๊ณผ์ ์์ ์ฝ๋ ํ์ง์ ๊ด๋ฆฌํ๊ณ ๊ฐ์ ํ๊ธฐ ์ํ ์คํ ์์ค ํ๋ซํผ์ ๋๋ค. ์๋ํ๋ธ๋ ์์ค ์ฝ๋๋ฅผ ๋ถ์ํ์ฌ ์ฝ๋์ ํ์ง๊ณผ ๋ณด์ ๋ฌธ์ ๋ฅผ ์ฐพ์๋ด๊ณ , ์ด๋ฅผ ์๋์ผ๋ก ๋ฆฌํฌํธํด ์ฃผ๋ ์ญํ ์ ํฉ๋๋ค. ์ด ๋๊ตฌ๋ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ง์ํ๋ฉฐ, ์ง์์ ์ธ ํตํฉ(Continuous Integration, CI) ๋ฐ ์ง์์ ์ธ ์ ๋ฌ(Continuous Delivery, CD) ํ์ดํ๋ผ์ธ์ ํตํฉ๋ ์ ์์ต๋๋ค.
- ์ ์ ์ฝ๋ ๋ถ์:
- ์๋ํ๋ธ๋ ์ ์ ์ฝ๋ ๋ถ์์ ํตํด ์ฝ๋ ๋ด์ ๋ฒ๊ทธ, ๋ณด์ ์ทจ์ฝ์ , ์ฝ๋ ์ค๋ฉ(Code Smell, ๋์ ์ฝ๋ ์ต๊ด), ๋ณต์ก์ฑ ๋ฑ์ ์ฐพ์๋ ๋๋ค. ์ด ๊ณผ์ ์์ ์ฝ๋๋ฅผ ์ค์ ๋ก ์คํํ์ง ์๊ณ ์์ค ์ฝ๋๋ฅผ ๋ถ์ํ์ฌ ๋ฌธ์ ๋ฅผ ์๋ณํฉ๋๋ค.
- ๋ค์ํ ์ธ์ด ์ง์:
- ์๋ํ๋ธ๋ Java, C#, JavaScript, Python, PHP, C/C++, Kotlin ๋ฑ ์๋ง์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ง์ํฉ๋๋ค. ์ด๋ ์ฌ๋ฌ ์ธ์ด๋ก ์์ฑ๋ ํ๋ก์ ํธ์์ ์ฝ๋ ํ์ง์ ํตํฉ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๊ฒ ํด์ค๋๋ค.
- ํ์ง ๊ฒ์ดํธ(Quality Gate):
- ์๋ํ๋ธ๋ ํ์ง ๊ฒ์ดํธ๋ผ๋ ๊ธฐ๋ฅ์ ํตํด ์ฝ๋ ํ์ง ๊ธฐ์ค์ ์ค์ ํ๊ณ , ๊ทธ ๊ธฐ์ค์ ์ถฉ์กฑํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ ๋น๋๋ฅผ ์คํจ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ์ด๋ ์ฝ๋ ํ์ง์ ์ ์งํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.
- CI/CD ํตํฉ:
- ์๋ํ๋ธ๋ Jenkins, GitLab CI, Azure DevOps ๋ฑ๊ณผ ๊ฐ์ CI/CD ๋๊ตฌ์ ์ฝ๊ฒ ํตํฉ๋ ์ ์์ต๋๋ค. ์ด๋ก ์ธํด ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ ๋๋ง๋ค ์๋์ผ๋ก ์ฝ๋ ํ์ง์ ๊ฒ์ฌํ๊ณ , ๋ฌธ์ ๋ฅผ ๋น ๋ฅด๊ฒ ๋ฐ๊ฒฌํ์ฌ ์์ ํ ์ ์์ต๋๋ค.
- ์ง์์ ์ธ ์ฝ๋ ํ์ง ๋ชจ๋ํฐ๋ง:
- ์๋ํ๋ธ๋ ํ๋ก์ ํธ์ ์ฝ๋ ํ์ง์ ์ง์์ ์ผ๋ก ๋ชจ๋ํฐ๋งํ๊ณ , ์๊ฐ์ ๋ฐ๋ฅธ ์ฝ๋ ํ์ง ๋ณํ๋ฅผ ์๊ฐ์ ์ผ๋ก ๋ณด์ฌ์ค๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐํ์ ์ฝ๋ ํ์ง์ด ์ด๋ป๊ฒ ๋ณํํ๊ณ ์๋์ง ์ฝ๊ฒ ํ์ ํ ์ ์์ต๋๋ค.
- ๋ณด์ ์ทจ์ฝ์ ๋ฐ๊ฒฌ:
- ์๋ํ๋ธ๋ OWASP Top 10 ๋ฐ SANS Top 25์ ๊ฐ์ ๋ณด์ ๊ธฐ์ค์ ๊ธฐ๋ฐ์ผ๋ก ์ฝ๋ ๋ด ๋ณด์ ์ทจ์ฝ์ ์ ์๋ณํ๊ณ ๊ฒฝ๊ณ ํด ์ค๋๋ค. ์ด๋ ๋ณด์์ฑ์ด ์ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋งค์ฐ ์ ์ฉํฉ๋๋ค.
์๋ํ๋ธ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐํ์ ์ฝ๋ ํ์ง์ ์๋์ผ๋ก ๋ชจ๋ํฐ๋งํ๊ณ ๊ฐ์ ํ ์ ์์ต๋๋ค. ์ด๋ ํนํ ๋๊ท๋ชจ ํ๋ก์ ํธ๋ ์ฌ๋ฌ ๊ฐ๋ฐ์๊ฐ ํ์ ํ๋ ํ๊ฒฝ์์ ์ฝ๋ ํ์ง๊ณผ ์ผ๊ด์ฑ์ ์ ์งํ๋ ๋ฐ ํฐ ๋์์ด ๋ฉ๋๋ค. ๋ํ, ์ฝ๋์ ์ ์ฌ์ ์ธ ๋ฒ๊ทธ์ ๋ณด์ ์ทจ์ฝ์ ์ ์กฐ๊ธฐ์ ๋ฐ๊ฒฌํ์ฌ ์์ ํ ์ ์์ด, ๋ฐฐํฌ ํ ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ๋ฅผ ๋ฏธ์ฐ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
๊ฒฐ๊ตญ ์๋ํ๋ธ๋ ์ฝ๋ ํ์ง์ ์ง์์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ , ํ๋ก์ ํธ์ ์ ๋ฐ์ ์ธ ์์ ์ฑ๊ณผ ์ ์ง ๋ณด์์ฑ์ ํฅ์์ํค๋ ์ค์ํ ๋๊ตฌ์ ๋๋ค.
์ข ๋ ํ๋์ ์ธ ์ฃผ์ ์ธ Linux์ Rust ์ธ์ด๊ฐ ๋์ ๋ ๊ฒ์ ๋ํด ํ ๋ฐ์ฆ๋ ๋ ๋นจ๋ฆฌ ์ฑํ๋์ง ์๋ ๊ฒ์ ์ค๋งํ๊ณ ์์ต๋๋ค. โ์ ๋ฐ์ดํธ๊ฐ ๋ ๋นจ๋ผ์ง ๊ฒ์ผ๋ก ๊ธฐ๋ํ์ง๋ง, ๊ธฐ์กด ์ปค๋ ๊ฐ๋ฐ์๋ค์ C์ ์ต์ํ๊ณ Rust๋ฅผ ๋ชจ๋ฅธ๋ค๋ ๊ฒ์ด ๋ฌธ์ ์ค ํ๋์ ๋๋ค. ์ด๋ค ๋ฉด์์๋ ๋งค์ฐ ๋ค๋ฅธ ์๋ก์ด ์ธ์ด๋ฅผ ๋ฐฐ์์ผ ํ๋ ๊ฒ์ ๋ํด ๊ทธ๋ค์ง ๋ฌ๊ฐ์ํ์ง ์์ต๋๋ค. ๊ทธ๋์ Rust์ ๋ํ ๋ฐ๋ฐ์ด ์์์ต๋๋ค.โ ๋ํ ํ ๋ฐ์ฆ๋ โ๋ ๋ค๋ฅธ ์ด์ ๋ Rust ์ธํ๋ผ ์์ฒด๊ฐ ๋งค์ฐ ์์ ์ ์ด์ง ์์๊ธฐ ๋๋ฌธ์ด๊ธฐ๋ ํฉ๋๋ค. ....โ๋ผ๊ณ ๋ง๋ถ์์ต๋๋ค.
{% embed url="https://linux.slashdot.org/story/24/08/25/0256228/linus-torvalds-talks-about-rust-adoption-and-ai" %}
{% embed url="https://www.contribution.ac/" %}
์ด ๋ฐ์ Typescript์ ํ๋ก๊ทธ๋๋ฐ ํ์ ์์คํ ์ ๊ดํ ์์ฃผ ๋ ํนํ ์ ๋จธ์ ๋๋ค. ๋ฐ์ ๋ฌธ๋งฅ๊ณผ ์ฃผ์ด์ง ์ฝ๋ ๋ธ๋ก์ ์ดํดํ๋ ค๋ฉด, ๋ค์๊ณผ ๊ฐ์ ๋ด์ฉ์ ์์์ผ ํฉ๋๋ค.
const ฯ = Symbol()
const ฮพ = Symbol()
const ฯ = Symbol()
const โต = Symbol()์ฌ๊ธฐ์ Symbol()์ ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์
์คํฌ๋ฆฝํธ์์ ์ ์ผ๋ฌด์ดํ ๊ฐ์ ์์ฑํ๋ ํจ์์
๋๋ค. ๊ฐ ์ฌ๋ณผ์ ๋ค๋ฅธ ์ฌ๋ณผ๊ณผ ์ ๋ ๊ฐ์ ์ ์์ผ๋ฏ๋ก, ๊ฐ ์ฌ๋ณผ์ ๊ณ ์ ํฉ๋๋ค.
- "TypeScript is duck typed...":
- TypeScript๋ ๋ ํ์ดํ(duck typing)์ ์ง์ํ๋๋ฐ, ์ด๋ ๊ฐ์ฒด์ ์์ฑ๊ณผ ๋ฉ์๋๊ฐ ๊ฐ์ฒด์ ํ์ ์ ๊ฒฐ์ ํ๋ ๋ฐฉ์์ ๋๋ค. "ํ ์ค๋ฆฌ๋ฅผ ๋ค๋ฅธ ์ค๋ฆฌ์ ํผ๋ํด์๋ ์ ๋๋ค"๋ ๋ง์ ๊ฐ ์ฌ๋ณผ์ด ๊ณ ์ ํด์ผ ํ๋ค๋ ๊ฒ์ ๋ํ๋ ๋๋ค.
- "structurally typed vs nominally typed":
- ๊ตฌ์กฐ์ ํ์ดํ(structural typing)๊ณผ ๋ช ๋ชฉ์ ํ์ดํ(nominal typing) ๊ฐ์ ์ฐจ์ด๋ฅผ ์ธ๊ธํ๊ณ ์์ต๋๋ค. ๊ตฌ์กฐ์ ํ์ดํ์์๋ ๊ฐ์ฒด์ ๊ตฌ์กฐ๊ฐ ์ค์ํ์ง๋ง, ๋ช ๋ชฉ์ ํ์ดํ์์๋ ๋ช ์์ ์ผ๋ก ํ์ ์ด ์ ์๋์ด์ผ ํฉ๋๋ค. Java๋ Haskell ๊ฐ์ ์ธ์ด๋ ๋ช ๋ชฉ์ ํ์ดํ์ ์ฌ์ฉํฉ๋๋ค.
- "Summon the void itself...":
- ์ด ๋ถ๋ถ์ ์ฌ๋ณผ์ ์ด์ฉํด ๊ณตํ(์ฆ, ์๋ฌด๊ฒ๋ ์๋ ๊ฒ)๋ฅผ ์ํํ๋ค๋ ๋ค์ ์ฒ ํ์ ์ธ ํํ์
๋๋ค. ์ด ์ฝ๋์์๋ ์ฌ๋ณผ์
Nilํ์ ์ผ๋ก ์ ์ํ์ฌ ๊ณตํ๋ฅผ ํํํ๋ ค๋ ์๋๋ฅผ ํฉ๋๋ค.
- ์ด ๋ถ๋ถ์ ์ฌ๋ณผ์ ์ด์ฉํด ๊ณตํ(์ฆ, ์๋ฌด๊ฒ๋ ์๋ ๊ฒ)๋ฅผ ์ํํ๋ค๋ ๋ค์ ์ฒ ํ์ ์ธ ํํ์
๋๋ค. ์ด ์ฝ๋์์๋ ์ฌ๋ณผ์
์ด ๋ฐ์ Typescript์ ํ์ ์์คํ ์ ๋ํ ๊น์ ์ดํด๋ฅผ ์๊ตฌํ๋ฉฐ, ์ด๋ฅผ ์ฒ ํ์ ์ด๊ณ ์ ๋จธ๋ฌ์คํ ๋ฐฉ์์ผ๋ก ํํํฉ๋๋ค. ์ด ๋ฐ์ ์ดํดํ๋ ค๋ฉด, ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ํ์ ์์คํ ์ ๋ํ ์ง์์ด ํ์ํ๋ฉฐ, ํนํ ์ฌ๋ณผ(Symbol)๊ณผ ํ์ ์คํฌ๋ฆฝํธ์ ๋ ํ์ดํ ๊ฐ๋ ์ ์๊ณ ์์ด์ผ ํฉ๋๋ค.
๋งํฌ๋ ๊ธ์ ๋ณด๋ฉด ์๋ง ์ด ์ฝ๋๊ฐ ๋ ํฐ ๋งฅ๋ฝ์์ ์ค๋ช ๋ ๊ฒ์ ๋๋ค. ์ด ๋ฐ์ ๋จ์ํ ์ฝ๋ ๊ทธ ์์ฒด๋ฟ๋ง ์๋๋ผ, ํ์ ์์คํ ์ ๋ณต์กํจ๊ณผ ๋ฉด์ ์์์ ๊ธฐ์ ์ ์ธ ์ง๋ฌธ๋ค์ ๋ํ ํ์๋ฅผ ๋ด๊ณ ์์ต๋๋ค.
Typesrcipt๋ก proofํ๋ ค๊ณ ํ๋ฉด ๋จผ์ N-queens๋ฅผ ๊ตฌํํ๋ ค๋ ๋ฉด์ ์์ ๋ฐ์ ๋ค๊ณ ๋ง์ค๋์ค๋ ์ด๊ฐ ์๋ค. ๋ ์ด ์ด์ผ๊ธฐ๋ฅผ ๋ฌด์ฒ ์ข์ํ๋ค ํ์ด์ ์ค๋ช ํด์ค
ChatGPT
์ด ๋ฐ์ Typescript์ ๊ฐ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ณต์ก์ฑ๊ณผ, ๊ธฐ์ ๋ฉด์ ์์ ํํ ์ ํ๊ฒ ๋๋ ๋์ ์ ์ธ ๋ฌธ์ ๋ค์ ํ์ํ๋ ๋ด์ฉ์ ๋๋ค. ์ด๋ฅผ ํ์ด์ ์ค๋ช ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- N-Queens ๋ฌธ์ :
- N-Queens ๋ฌธ์ ๋ ๋งค์ฐ ์ ๋ช ํ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ์ค ํ๋๋ก, NxN ์ฒด์คํ ์์ N๊ฐ์ ํธ(Queen)์ ์๋ก ๊ณต๊ฒฉํ ์ ์๊ฒ ๋ฐฐ์นํ๋ ๋ฐฉ๋ฒ์ ์ฐพ๋ ๋ฌธ์ ์ ๋๋ค. ์ด ๋ฌธ์ ๋ ๊ณ ๋์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ๊ณ ์ ๋ฐฑํธ๋ํน ๊ฐ์ ๊ธฐ์ ์ด ํ์ํฉ๋๋ค.
- TypeScript๋ก ์ฆ๋ช
(proof)ํ๊ธฐ:
- "TypeScript๋ก proofํ๋ ค๊ณ ํ๋ฉด"์ด๋ผ๋ ํํ์ TypeScript๋ฅผ ์ฌ์ฉํด์ ์ด๋ค ๋ ผ๋ฆฌ์ ์ธ ์ฆ๋ช ์ด๋ ๋ณต์กํ ๋ฌธ์ ํด๊ฒฐ์ ์๋ํ๋ ์ํฉ์ ๋ฌ์ฌํฉ๋๋ค. TypeScript๋ ์ ์ ํ์ ๊ฒ์ฌ๊ธฐ๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์, ๋ ผ๋ฆฌ์ ์ธ ์ฆ๋ช ์ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ํ์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ํ์ ์์คํ ์ ์ด์ฉํด ์ฆ๋ช ์ ํ๋ ๊ฒ์ ๋ณต์กํ๊ณ , ๋๋ก๋ TypeScript์ ํ๊ณ์ ๋ง์ฃผํ๊ฒ ๋ฉ๋๋ค.
- ๋ฉด์ ์์ ๋ฐ:
- "N-queens๋ฅผ ๊ตฌํํ๋ ค๋ ๋ฉด์ ์์ ๋ฐ"์ด๋ผ๋ ํํ์ ๊ธฐ์ ๋ฉด์ ์์ ๋ฉด์ ๊ด์ด ๊ฐ์๊ธฐ N-Queens ๊ฐ์ ์ด๋ ค์ด ๋ฌธ์ ๋ฅผ ๋ค๊ณ ๋์์ ๋์ ํ๋ ์ํฉ์ ๋น์ ์ ์ผ๋ก ํํํ ๊ฒ์ ๋๋ค. ๋ฉด์ ์์๋ ๋๋ก๋ ๊ธฐ๋์น๊ฐ ๋๊ฑฐ๋, ๋งค์ฐ ์ด๋ ค์ด ๋ฌธ์ ๊ฐ ๋์ค๊ธฐ๋ ํ๋๋ฐ, ์ด๊ฑธ ๋ฐ์ผ๋ก ํํํ ๊ฒ์ ๋๋ค.
- "๋ ์ด ์ด์ผ๊ธฐ๋ฅผ ๋ฌด์ฒ ์ข์ํ๋ค":
- ์ด ๋ฌธ์ฅ์ ๋ฐ์ ์ํฉ์ด ์ ๋จธ๋ฌ์คํ๋ฉด์๋, ํ์ค์ ์ผ๋ก ๊ณต๊ฐ์ด ๊ฐ๊ธฐ ๋๋ฌธ์ ์ด ์ด์ผ๊ธฐ๋ฅผ ์ข์ํ๋ค๋ ๊ฒ์ ํํํ ๊ฒ์ ๋๋ค. ์ด๋ ค์ด ๋ฌธ์ ๋ ๋ ผ๋ฆฌ์ ์ธ ์ฆ๋ช ์ TypeScript ๊ฐ์ ๋๊ตฌ๋ก ํด๊ฒฐํ๋ ค๊ณ ํ ๋ ๋๋ผ๋ ์ด๋ ค์๊ณผ ๊ทธ๊ฒ์ ๋ณด๋ ์ ๋จธ๋ฌ์คํ ์๊ฐ์ ํํํ ๊ฒ์ ๋๋ค.
๋น์ ์ด TypeScript๋ก ์ด๋ค ๋ณต์กํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ฑฐ๋ ์ฆ๋ช ํ๋ ค๊ณ ํ ๋, ๋ง์น ๊ธฐ์ ๋ฉด์ ์์ ์ด๋ ค์ด ๋ฌธ์ (N-Queens ๋ฌธ์ ์ ๊ฐ์)๋ฅผ ๋ง๋ฅ๋จ๋ฆฌ๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ง๋ค๋ ๊ฒ์ ๋น์ ์ ์ผ๋ก ํํํ ๊ฒ์ ๋๋ค. ์ฆ, TypeScript์ ํ์ ์์คํ ์ ์ด์ฉํด์ ๋ ผ๋ฆฌ์ ์ธ ์ฆ๋ช ์ ํ๋ ค๋ ๊ฒ์ ๋ง์น ๋ฉด์ ์์ ์ด๋ ค์ด ๋ฌธ์ ๋ฅผ ํ๋ ค๊ณ ์๋ํ๋ ๊ฒ๊ณผ ๋น์ทํ๊ฒ ๋๊ปด์ง ์ ์๋ค๋ ์ ๋จธ์ ๋๋ค. ์ด ์ํฉ์ ๋ฐ์ผ๋ก ๋ง๋ค์ด ์์์ ์ฃผ๋ฉด์๋, ํ๋ก๊ทธ๋๋ฐ์ ๋ณต์กํจ์ ํ์ํ๊ณ ์์ต๋๋ค.
์ด๋ฐ ๋งฅ๋ฝ์์, ์ด ์ด์ผ๊ธฐ๋ฅผ ์ข์ํ๋ค๋ ๊ฒ์ ํ๋ก๊ทธ๋จ๋ฐ์ ๋ณต์กํจ๊ณผ ๋ฉด์ ์ ๋์ ์ ์ธ ์ํฉ์ ๋ํ ๊ณต๊ฐ๊ณผ ์ ๋จธ๋ฅผ ์ฆ๊ธฐ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
verse ์ฒซ์ธ์์ ์ด๊ฒ ์ ํ์ดํ์ธ์ง ๋ชจ๋ฅด๊ฒ ์ ๋ฐ์ ํ๋ ๊ฑธ ๋ ๋ด์ผ์ง
๋น๋์ค ๊ฒ์ ๋ฐ ๊ฒ์๊ณผ ์ ์ฌํ ๊ฒฝํ์ ์ผ๋์ ๋๊ณ ์ค๊ณ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋๋ค. ๋ฐ๋ผ์ ๊ฒ์์ ํนํ๋ ์๊ตฌ ์ฌํญ์ ์ฒ๋ฆฌํ๋ ๋ฐ ๋ ์ ํฉํ๋
๊ฒฐ๋ก : ํธํด์๋ผ๋ ๋๊ธ์ด ์์์
Watchman์ ํ์ผ์ ๊ฐ์ํ๊ณ ๋ณ๊ฒฝ ์ ๊ธฐ๋กํ๊ธฐ ์ํด ์กด์ฌํฉ๋๋ค. ๋ํ ํ์ผ ๋ณ๊ฒฝ์ด ์ผ์นํ ๋ ์์ (์: ์์ฐ ์ฌ๊ตฌ์ถ)์ ํธ๋ฆฌ๊ฑฐํ ์๋ ์์ต๋๋ค. ํน์ ํด๋๋ ํ์ผ์ ๊ฐ์ํ๋ค๊ฐ ๋ณํ๊ฐ ์๊ธฐ๋ฉด, ํน์ ๋์์ผ๋ก ์คํํ๋๋ก ์ค์ ํ๋ ์ญํ ์ ํฉ๋๋ค.
- Watchman์ ํ๋ ์ด์์ ๋๋ ํ ๋ฆฌ ํธ๋ฆฌ(๋ฃจํธ๋ผ๊ณ ํจ)๋ฅผ ์ฌ๊ท์ ์ผ๋ก ๊ฐ์ํ ์ ์์ต๋๋ค.
- Watchman์ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๋ฐ๋ฅด์ง ์์ต๋๋ค. ์ฌ๋ณผ๋ฆญ ๋งํฌ๊ฐ ์กด์ฌํ๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง, ๋ณด๊ณ ์์ ๋ค๋ฅธ ํ์ผ๊ณผ ๋์ผํ๊ฒ ํ์๋ฉ๋๋ค.
- Watchman์ ์๋ฆผ์ด๋ ๋ช ๋ น ์คํ์ ์์ํ๊ธฐ ์ ์ ๋ฟ๋ฆฌ๊ฐ ์์ ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค.
- Watchman์ ๋ณด์์ ์ด๋ฉฐ, ์ ์ค์ ๊ธฐํ๋ ํธ์ ๋๋ค. ๊ฐ์๋ฅผ ์์ํ ๋๋ ๊ฐ์๋ฅผ ์์ํ ๋์ ๋ถํ์คํ ์์ ์๋ ํ์ผ์ด ์๋ก ๋ณ๊ฒฝ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค.
- ๋ง์ง๋ง์ผ๋ก ํ์ธํ ์ดํ์ ํ์ผ ๋ณ๊ฒฝ ์ฌํญ์ด๋ ํธ๋ฆฌ์ ํ์ฌ ์ํ๋ฅผ ๋ฃจํธ์์ ์ฟผ๋ฆฌํ ์ ์์ต๋๋ค.
- ๋ฃจํธ์์ ๋ฐ์ํ๋ ํ์ผ ๋ณ๊ฒฝ ์ฌํญ์ ๊ตฌ๋ ํ ์ ์์ต๋๋ค.
Watchman: https://facebook.github.io/watchman/
brew install watchman์ค์น๋ฅผ ์๋ฃํ๋ฉด,watchman --version- ์ ์์ ์ผ๋ก ์ค์น๊ฐ ๋์ด ์์ผ๋ฉด
4.9.0
์ด๋ฏธ์ง ์ ๋ฌธ๊ตฌ๋ "๋ด ๋ฐฉ๋ฐ๋ฅ์ ์์ฅ์ L1 ์บ์"๋ผ๋ ํํ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ด ๋ฌธ๊ตฌ๋ ์บ์์ ๊ฐ๋ ์ ์ฌ๋ฏธ์๊ฒ ๋น์ ํ ์ ๋จธ์ ๋๋ค. L1 ์บ์๋ CPU์์ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต์ผ๋ก, ๋น ๋ฅด๊ฒ ์ ๊ทผํ ์ ์๋ ์ ์ฅ ๊ณต๊ฐ์ ๋๋ค. ์ด๋ฅผ ์์ ์ ๋ฐฉ๋ฐ๋ฅ์ ๋น์ ํ ๊ฒ์ผ๋ก, ๋ฐฉ๋ฐ๋ฅ์ ๋ง์น CPU์ L1 ์บ์์ฒ๋ผ ์ค์ํ ๋ฌผ๊ฑด์ด๋ ์์ฃผ ์ฐ๋ ๋ฌผ๊ฑด์ ๊ฐ๊น์ด์ ๋๋ ์ํฉ์ ์์์ผ๋ก ํํํ ๊ฒ ๊ฐ์ต๋๋ค.
L1 ์บ์๋ CPU์ ์๋ ๊ฐ์ฅ ๋น ๋ฅด๊ณ ์์ ๋ฉ๋ชจ๋ฆฌ์ ๋๋ค. CPU๋ ์์ ์ ์ํํ ๋, ์์ฃผ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ฅผ RAM์์ ์ง์ ์ฝ์ด์ค๋ ๋์ , ์๋๊ฐ ํจ์ฌ ๋น ๋ฅธ L1 ์บ์์์ ๋จผ์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ต๋๋ค. L1 ์บ์๋ CPU ์ฝ์ด๋ง๋ค ๋ ๋ฆฝ์ ์ผ๋ก ์กด์ฌํ๋ฉฐ, ์ ๊ทผ ์๋๊ฐ ๋งค์ฐ ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ CPU์ ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์ํต๋๋ค.
์บ์๋ ๋ณดํต ๊ณ์ธต ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ ธ ์๋๋ฐ, CPU ๋ด๋ถ์ ์๋ ๊ฐ์ฅ ๋น ๋ฅธ ๋ฉ๋ชจ๋ฆฌ๋ถํฐ ์์ฐจ์ ์ผ๋ก ์ธ๋ถ์ ๋๋ฆฐ ๋ฉ๋ชจ๋ฆฌ๊น์ง ์ด์ด์ง๋๋ค.
- L1 ์บ์ (Level 1 Cache):
- CPU์์ ๊ฐ์ฅ ๊ฐ๊น์ด ์บ์.
- ์ฉ๋์ด ๋งค์ฐ ์์ง๋ง(๋ณดํต ์์ญ KB), ์๋๊ฐ ๊ฐ์ฅ ๋น ๋ฆ ๋๋ค.
- CPU ์ฝ์ด๋ง๋ค ๋ณ๋๋ก ์กด์ฌ.
- L2 ์บ์ (Level 2 Cache):
- L1 ์บ์๋ณด๋ค ์ฝ๊ฐ ๋๋ฆฌ์ง๋ง, ์ฉ๋์ ๋ ํฝ๋๋ค(๋ณดํต ์๋ฐฑ KB์์ ์ MB).
- L1 ์บ์์ ์๋ ๋ฐ์ดํฐ๋ L2 ์บ์์์ ์ฐพ๊ฒ ๋ฉ๋๋ค.
- ์ผ๋ถ CPU์์๋ ์ฝ์ด๋ง๋ค L2 ์บ์๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ์กด์ฌํ๋ฉฐ, ๋ค๋ฅธ CPU์์๋ ๊ณต์ ๋๊ธฐ๋ ํฉ๋๋ค.
- L3 ์บ์ (Level 3 Cache):
- L2 ์บ์๋ณด๋ค ๋ ๋๋ฆฌ๊ณ , ์ฉ๋์ ๋ ํฝ๋๋ค(๋ณดํต ์ MB์์ ์์ญ MB).
- ์ผ๋ฐ์ ์ผ๋ก ์ฌ๋ฌ CPU ์ฝ์ด๊ฐ ๊ณต์ ํ๋ ์บ์์ ๋๋ค.
- L1, L2 ์บ์์์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ง ๋ชปํ์ ๋, L3 ์บ์์์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ต๋๋ค.
- ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ (RAM):
- ์บ์์์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ง ๋ชปํ๋ฉด, CPU๋ ์๋์ ์ผ๋ก ๋๋ฆฐ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ(RAM)์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
- RAM์ ์บ์์ ๋นํด ํจ์ฌ ๋๋ฆฌ๊ธฐ ๋๋ฌธ์ ์บ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด CPU์ ์ฑ๋ฅ์ ๋งค์ฐ ์ค์ํฉ๋๋ค.
- ์คํ ๋ฆฌ์ง (HDD/SSD):
- ์บ์์ RAM์์๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ง ๋ชปํ๋ฉด, ๊ฐ์ฅ ๋๋ฆฐ ๊ณ์ธต์ธ ํ๋ ๋์คํฌ๋ SSD ๊ฐ์ ์คํ ๋ฆฌ์ง ์ฅ์น์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
- L1 ์บ์๋ CPU์ ๊ฐ์ฅ ๊ฐ๊น์ด, ๊ฐ์ฅ ๋น ๋ฅธ ๋ฉ๋ชจ๋ฆฌ์ ๋๋ค. ์ด ์บ์๋ฅผ ๋ฐฉ๋ฐ๋ฅ์ ๋น์ ํ ๊ฒ์ ์์ฃผ ์ฐ๋ ๋ฌผ๊ฑด์ ๊ฐ๊น์ด์ ๋๋ ์ํฉ์ ์ฌ๋ฏธ์๊ฒ ํํํ ์ ๋จธ์ ๋๋ค.
- ์บ์๋ CPU ์ฑ๋ฅ์ ๋์ด๊ธฐ ์ํ ํ์์ ์ธ ๋ฉ์ปค๋์ฆ์ผ๋ก, CPU๋ ์์ ํจ์จ์ฑ์ ๊ทน๋ํํ๊ธฐ ์ํด ๋น ๋ฅธ ์บ์ ๋ฉ๋ชจ๋ฆฌ๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ํ์ํ ํ, ์บ์์ ์๋ ๋ฐ์ดํฐ๋ ๋๋ฆฐ ๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต์์ ์ฐพ์์ค๋ ๋ฐฉ์์ผ๋ก ์๋ํฉ๋๋ค.
์ปค์๋ Cursor๋ Microsoft์ ์คํ ์์ค Visual Studio Code ์๋ํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ํฌํฌ(fork)์ด๋ฉฐ, ๊ฐ๋ฐ์๋ค์ด ์ฝ๋๋ฅผ ์์ฑํ๊ณ ๋๋ฒ๊น ํ๋ ๊ณผ์ ์ ๋ณด๋ค ํจ์จ์ ์ผ๋ก ๋ง๋ค๊ธฐ ์ํด OpenAI์ ๊ธฐ๋ฅ๋ค์ ํตํฉํ๊ณ ์์ต๋๋ค.
AI์ ํ์ ๋น์ด ๊ฐ๋ฐ์๋ ์ฝ๋ ๊ฐ์ ์ฌํญ์ ๋น ๋ฅด๊ฒ ํ์ ํ๊ณ ์ ์ฉํจ์ผ๋ก์จ, ์ ๋ฐ์ ์ธ ๊ฐ๋ฐ ๊ณผ์ ์ ์์ฐ์ฑ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
๋ํ, Cursor IDE๋ VSCode์ ํ์ฅ ๊ธฐ๋ฅ, ํ ๋ง, ํค๋ฐ์ธ๋ฉ ๋ฑ์ ์์ฝ๊ฒ ๋ง์ด๊ทธ๋ ์ด์ ํ์ฌ ์ฌ์ฉํ ์ ์๋๋ก ์ง์ํฉ๋๋ค.
์ฝ์ธ๋ผ๋ ์ธ๊ณ ์ ๋ช
๋ํ๋ค์ด ์ ๊ณตํ๋ ๊ฐ์๋ฅผ ๋ฌด๋ฃ๋ก ๋ค์ ์ ์๋ ํ๋ซํผ์. ์ธ๋ฌธํ, ๊ธฐ์ , ๋น์ฆ๋์ค, ๋ฐ์ดํฐ ๊ณผํ ๋ฑ ๋ค์ํ ๋ถ์ผ์์ ๊ฐ์ข๋ฅผ ์ ๊ณตํจ. ๊ฐ์ ๋๋๋ฉด ์ ๋ฃ๋ก ์ธ์ฆ์๋ ๋ฐ๊ธ๋ฐ์ ์ ์์.
์ถ์ฒ ๊ฐ์ข: ์์ผ๋ํ๊ต์ โํ๋ณต์ ๊ณผํโ, ๊ตฌ๊ธ์ โ๋ฐ์ดํฐ ๋ถ์โ
์นธ ์์นด๋ฐ๋ฏธ๋ ์ํ, ๊ณผํ, ๊ฒฝ์ ํ ๋ฑ ๊ธฐ๋ณธ์ ์ธ ๊ณผ๋ชฉ๋ค์ ๋ฌด๋ฃ๋ก ๋ฐฐ์ธ ์ ์๋ ๋น์๋ฆฌ ๊ต์ก ์ฌ์ดํธ์. ์ด์ค๊ณ ํ์๋ค์ ์ํ ๊ธฐ์ด ๊ต์ก๋ถํฐ ์์ํด์ ๋ํ ์์ค๊น์ง ์ปค๋ฒ๋จ. ์ถ์ฒ ๊ฐ์ข: ์ํ ๋จ๊ณ๋ณ ๊ฐ์ข, ๊ฒฝ์ ํ ๊ฐ๋ก
ํ๋ฒ๋์ MIT๊ฐ ๋ง๋ ํ๋ซํผ์. ๋ํ ์์ค์ ๊ฐ์๋ฅผ ๋ฌด๋ฃ๋ก ๋ค์ ์ ์์. ์ปดํจํฐ ๊ณผํ, ์ธ๋ฌธํ, ๊ณตํ ๋ฑ ๋ค์ํ ์ฃผ์ ๋ฅผ ๋ค๋ฃธ. ๊ณต์์ ์ธ ์๋ฃ์ฆ ๋ฐ๊ธ์ ์ ๋ฃ์.
์ถ์ฒ ๊ฐ์ข: MIT์ โ์ปดํจํฐ ๊ณผํ ๋ฐ ํ๋ก๊ทธ๋๋ฐโ, ํ๋ฒ๋๋ํ๊ต์ โ๋ฐ์ดํฐ ๊ณผํ: R ๊ธฐ์ดโ
์๊ตญ ์คํ ๋ํ๊ต์ BBC๊ฐ ๋ง๋ ์จ๋ผ์ธ ํ์ต ํ๋ซํผ์. ๋ค์ํ ์ฃผ์ ์ ๊ฐ์ข๊ฐ ๋ฌด๋ฃ๋ก ์ ๊ณต๋๋ฉฐ, ์๋ฃ ํ ์ธ์ฆ์๋ ์ ๋ฃ๋ก ๋ฐ๊ธ ๊ฐ๋ฅํจ. ์ถ์ฒ ๊ฐ์ข: โ๋์งํธ ๋ง์ผํ ๊ธฐ์ดโ, โ์ธ๊ฐ์ ๋ ์ดํดํ๊ธฐโ
10. ๋คผํผ
์๋ก์ด AI
Tamagui๋ฅผ ์ฌ์ฉํ๋ฉด ์ผ๋ฐ์ ์ผ๋ก ์ ํ๋๋ ๋ ๊ฐ์ง ์ธก๋ฉด, ์ฆ ์ฑ๋ฅ๊ณผ ์ฝ๋ ํ์ง์ ํฌ์ํ์ง ์๊ณ ๋ ์น ๋ฐ ๋ค์ดํฐ๋ธ ์ฑ ๊ฐ์ ๋ ๋ง์ ์ฝ๋๋ฅผ ๊ณต์ ํ ์ ์์ต๋๋ค.
์ด๋ ํ๋ซํผ๋ณ ์ต์ ํ๋ฅผ ์ถ๋ ฅํ๋ ์ต์ ํ ์ปดํ์ผ๋ฌ๋ฅผ ํตํด ์ํ๋ฉ๋๋ค. ๋ณต์กํ ๋
ผ๋ฆฌ๋ ๊ต์ฐจ ๋ชจ๋ ๊ฐ์ ธ์ค๊ธฐ๊ฐ ์๋ ์คํ์ผ์ด ์ ์ฉ๋ ๊ตฌ์ฑ ์์๋ฅผ div์น์์๋ ๊ฐ๋จํ๊ณ ์์์ ์ธ CSS๋ก, ๋ค์ดํฐ๋ธ์ ์คํ์ผ ๊ฐ์ฒด๋ฅผ ๋์ด์ฌ๋ฆฐ ๋ทฐ๋ก ๋ณํํฉ๋๋ค.
Tamagui์ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ปดํ์ผ ์์ ๊ณผ ๋ฐํ์์ ์๋ํ๋ฉฐ ์ ์ง์ ์ผ๋ก ์ค์ ํ ์ ์์ผ๋ฉฐ, ์ด๊ธฐ ์ฌ์ฉ์ ์ด๋ฅผ ๊ฐ์ ธ์์ ๊ธฐ๋ณธ ๋ทฐ์ ์คํ์ผ์ด ์ ์ฉ๋ ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋งํผ ๊ฐ๋จํฉ๋๋ค.
์คํํฐ๋ฅผ ํ์ธํด ๋ณด๋ ๊ฒ์ด ์ข์ต๋๋ค npm create tamagui@latest. ๊ฐ๋จํ ํ์ต ์์ ๋ถํฐ ํ๋ก๋์
์ ๋ฐ๋ก ์ ์ฉํ ์ ์๋ ๋ชจ๋
ธ๋ ํฌ๊น์ง ๋ค์ํฉ๋๋ค.
- vsc๊ฐ ๊ฐ์ฅ ๋ง๊ณ ์น์คํฐ์ด ๋ ๋ฒ์งธ
์ธ๋ฑ์ค ํ๊ณ ์ํ๊ณ ๋ ์๋ฒ ๋ฐฑ๋๋ฅผ ์ถ๊ฐํ๋ ๊ฒ๊ณผ ๊ฐ์ ์ฐจ์ด๋ฅผ ๋ณด์ผ ์ ์์ต์ฃ . ์ฌ์ค ๊ฑฐ์ ๋ชจ๋ ์ค์ผ์ผ๋ง์ ํต์ฌ์ ๋ถ์ฐ์ฒ๋ฆฌ๋ ๋๋ถ๋ถ ์ฟผ๋ฆฌ ์ฒ๋ฆฌ
{% embed url="https://csnote.net/" %}
{% embed url="https://missing-semester-kr.github.io/" %}
{% embed url="https://www.totaltypescript.com/how-to-create-an-npm-package" %}
๋ฒ๋ค๋ฌ๋ ์ฌ๋ฌ ๊ฐ์ ์์ค ํ์ผ(์๋ฐ์คํฌ๋ฆฝํธ, CSS, ์ด๋ฏธ์ง ๋ฑ)์ ํ๋์ ํ์ผ์ด๋ ์ ์ ์์ ํ์ผ๋ก ๋ฌถ์ด์ฃผ๋ ๋๊ตฌ์ ๋๋ค. ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ๋, ๋ค์ํ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ, CSS ํ์ผ, ์ด๋ฏธ์ง ํ์ผ, ๊ทธ๋ฆฌ๊ณ ๊ธฐํ ๋ฆฌ์์ค๋ค์ด ์ฌ์ฉ๋๋๋ฐ, ์ด๋ฅผ ๊ทธ๋๋ก ์๋ฒ์ ์ฌ๋ฆฌ๊ณ ํด๋ผ์ด์ธํธ(์ฌ์ฉ์์ ๋ธ๋ผ์ฐ์ )๋ก ์ ์กํ๋ฉด ์์ญ, ์๋ฐฑ ๊ฐ์ ํ์ผ ์์ฒญ์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ๋ง์ ํ์ผ ์์ฒญ์ด ์๊ธฐ๋ฉด ์๋ฒ ์ฑ๋ฅ์ ๋ถ๋ด์ด ๋๊ณ , ๋ก๋ฉ ์๊ฐ๋ ๊ธธ์ด์ง ์ ์์ต๋๋ค.
๋ฒ๋ค๋ฌ๋ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๊ฐ๋ฐ๋์์ต๋๋ค. ๋ฒ๋ค๋ฌ๋ ๋ค์ํ ํ์ผ์ ๋ถ์ํ์ฌ ์์กด ๊ด๊ณ๋ฅผ ํ์ ํ๊ณ , ์ด๋ฅผ ํ๋์ ํ์ผ ๋๋ ์ ์ ์์ ํ์ผ๋ก ๋ฌถ์ด์ค๋๋ค. ๊ทธ๋ผ์ผ๋ก์จ ํ์ผ ์์ฒญ ์๊ฐ ์ค์ด๋ค๊ณ , ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ด ํฅ์๋ฉ๋๋ค. ๋ํ์ ์ธ ๋ฒ๋ค๋ฌ๋ก๋ Webpack, Parcel, Rollup, Tsup ๋ฑ์ด ์์ต๋๋ค.
- ํ์ผ ๊ฒฐํฉ: ์ฌ๋ฌ ํ์ผ์ ํ๋์ ํ์ผ๋ก ๊ฒฐํฉํด ๋คํธ์ํฌ ์์ฒญ์ ์ต์ํํฉ๋๋ค.
- ์์กด์ฑ ๊ด๋ฆฌ: ๋ชจ๋ ๊ฐ์ ์์กด์ฑ์ ํ์ ํ์ฌ ํ์ผ์ ์ฌ๋ฐ๋ฅด๊ฒ ๊ฒฐํฉํฉ๋๋ค.
- ์ต์ ํ: ์ฝ๋ ์์ถ, ๋ถํ์ํ ์ฝ๋ ์ ๊ฑฐ(Tree Shaking), ์ด๋ฏธ์ง ์ต์ ํ ๋ฑ์ผ๋ก ํ์ผ ํฌ๊ธฐ๋ฅผ ์ค์ด๊ณ ์ฑ๋ฅ์ ๋์ ๋๋ค.
- ์ฝ๋ ๋ถํ : ํ์ํ ๊ฒฝ์ฐ ์ฝ๋ ๋ถํ (Chunking)์ ํตํด ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์ ์ผ๋ก ๋ก๋ํ ์ ์๋๋ก ์ง์ํฉ๋๋ค.
-
XiNiHa์ ๋ง:
XiNiHa๋
tsup์ด๋ผ๋ ๋น๋ ๋๊ตฌ๊ฐ **๋ชจ๋ ์์ํ(์ถ๋ ฅ ํ์ผ)**์ ํ๋์ ํฐ ํ์ผ๋ก ๋ฒ๋ค๋งํ๋ ๊ฒ์ ๋ํด ์์ฌ์์ ํํ๊ณ ์์ต๋๋ค.- "tsup์ด ์ข๊ธด ํ์ง๋ง ์์ํ์ ์ฃ๋ค ๋ฒ๋ค๋ง ํด๋ฒ๋ฆฐ๋ค๋ ์ธก๋ฉด์์":
tsup์ด๋ผ๋ ๋๊ตฌ๋ ๋น๋ ์ฑ๋ฅ์ด ์ข๊ณ ๊ฐํธํ์ง๋ง, ์ถ๋ ฅ๋๋ ๊ฒฐ๊ณผ ํ์ผ์ ๋ชจ๋ ํ๋์ ํฐ ํ์ผ๋ก ๋ฌถ์ด๋ฒ๋ฆฐ๋ค๋ ์ ์์ ๋ถํธํ๋ค๋ ์๊ฒฌ์ ๋๋ค. ์ฆ, ํ์ผ์ ๊ฐ๋ณ์ ์ผ๋ก ๋ถ๋ฆฌํด์ ์ ์งํ๋ ๊ฒ์ด ์๋๋ผ, ๋ชจ๋ ๊ฒ์ ํ๋์ ํ์ผ๋ก ๋ฒ๋ค๋งํด๋ฒ๋ฆฐ๋ค๋ ๊ฒ์ ๋๋ค.
- "mkdist ๋ด์ง ์ ์ฌํ ํธ๋์คํ์ผ ๊ธฐ๋ฐ ๋น๋ํด":
mkdist๋ ๋ฒ๋ค๋ฌ์๋ ๋ฌ๋ฆฌ, ๊ฐ ํ์ผ์ ๊ฐ๋ณ์ ์ผ๋ก ํธ๋์คํ์ผ(ํ์ ์คํฌ๋ฆฝํธ๋ ES6 ์ฝ๋๋ฅผ ๊ตฌ๋ฒ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ณํ)ํ์ฌ ํ์ผ๋ค์ ๊ฐ๋ณ์ ์ผ๋ก ์ ์งํ ์ ์๊ฒ ํด์ฃผ๋ ๋๊ตฌ์ ๋๋ค. XiNiHa๋ ๋ฒ๋ค๋ง๋ณด๋ค๋ ํธ๋์คํ์ผ๋ฌ ๋ฐฉ์์ผ๋ก ํ์ผ์ ๊ด๋ฆฌํ๋ ๊ฒ์ด ๋ ์ข๋ค๊ณ ์๊ฐํ๊ณ ์์ผ๋ฉฐ, mkdist ๊ฐ์ ๋๊ตฌ๊ฐ ๋ ๋ฐ์ ๋๊ธธ ๋ฐ๋ผ๊ณ ์์ต๋๋ค.
- "๋นจ๋ ๊ถค๋์ ์ฌ๋ผ์์ ์ข๊ฒ ๋ค":
mkdist๊ฐ์ ๋๊ตฌ๊ฐ ์ข ๋ ์ธ๊ธฐ๋ฅผ ์ป๊ณ , ๋์ฑ ๋ฐ์ ํด์ ๋น ๋ฅด๊ฒ ๋๋ฆฌ ์ฌ์ฉ๋์์ผ๋ฉด ์ข๊ฒ ๋ค๋ ๋ป์ ๋๋ค. ์ฆ, ๋ฒ๋ค๋ง๋ณด๋ค๋ ํ์ผ์ ๊ฐ๋ณ์ ์ผ๋ก ๋ถ๋ฆฌํ๋ ๋ฐฉ์์ด ๋ ๋๋ฆฌ ์ฐ์์ผ๋ฉด ์ข๊ฒ ๋ค๋ ์๋ฏธ์ ๋๋ค.
- "tsup์ด ์ข๊ธด ํ์ง๋ง ์์ํ์ ์ฃ๋ค ๋ฒ๋ค๋ง ํด๋ฒ๋ฆฐ๋ค๋ ์ธก๋ฉด์์":
-
Basix์ ๋ง:
Basix๋ XiNiHa์ ์๊ฒฌ์ ๊ณต๊ฐํ๋ฉฐ, ๋ค์๊ณผ ๊ฐ์ด ๋งํฉ๋๋ค.
- "๋ฒ๋ค๋ฌ ๊ธฐ๋ฐ์ผ๋ก ๋๊ตฌ๋ฅผ ๋ง๋ค์ด๋ ์ถฉ๋ถํ ํ์ผ ๋ถ๋ฆฌ ๋ฌ์ฑ์ด ๊ฐ๋ฅํ๋ฐ":
- Basix๋ ์ฌ์ค ๋ฒ๋ค๋ฌ๋ ์ ์ ํ ์ค์ ํ๋ฉด ๊ฐ ํ์ผ์ ๊ฐ๋ณ์ ์ผ๋ก ๋๋ ์ ๊ด๋ฆฌํ ์ ์๋ค๊ณ ์ง์ ํ๊ณ ์์ต๋๋ค. ๋ฒ๋ค๋ง ๋๊ตฌ๋ ์ ์ฌ์ฉํ๋ฉด ํ์ผ์ ๋ถ๋ฆฌํ๋ ๊ตฌ์กฐ๋ก ์ค์ ํ ์ ์์ง๋ง, ์ด๋ฅผ ์ฝ๊ฒ ์ง์ํ์ง ์๊ฑฐ๋, ์ผ๋ถ ์ค์ ์ด ๋ถํธํ๋ค๋ ์์ฌ์์ ํํํ ๊ฒ์ ๋๋ค.
- "์ข ์์ฌ์ด ์ผ์ด์ฃ ":
tsup๊ฐ์ ๋๊ตฌ๊ฐ ๊ฐ๋ ฅํ๊ณ ์ฑ๋ฅ์ด ์ข์ง๋ง, ํ์ผ์ ๋ ์ธ๋ถ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ ๊ธฐ๋ฅ์ด ๋ถ์กฑํ๊ฑฐ๋ ๋ถํธํ๋ค๋ ์ ์์ ์์ฝ๋ค๋ ๊ฒ์ ๋๋ค.
- "๋ฒ๋ค๋ฌ ๊ธฐ๋ฐ์ผ๋ก ๋๊ตฌ๋ฅผ ๋ง๋ค์ด๋ ์ถฉ๋ถํ ํ์ผ ๋ถ๋ฆฌ ๋ฌ์ฑ์ด ๊ฐ๋ฅํ๋ฐ":
- XiNiHa:
tsup์ ๊ฐ๋ ฅํ์ง๋ง, ๋ชจ๋ ํ์ผ์ ํ๋๋ก ๋ฒ๋ค๋งํ๋ ๋ฐฉ์์ด ์์ฝ๋ค. ๋์mkdist๊ฐ์ ํธ๋์คํ์ผ๋ฌ ๋๊ตฌ๊ฐ ๋นจ๋ฆฌ ์๋ฆฌ ์ก์ ๋ ๋ฐ์ ํ์ผ๋ฉด ์ข๊ฒ ๋ค. - Basix: ๋ฒ๋ค๋ฌ๋ ํ์ผ์ ๋ถ๋ฆฌํด์ ๊ด๋ฆฌํ ์ ์์ง๋ง, ๊ทธ๋ฐ ๊ธฐ๋ฅ์ด ์๋ฒฝํ๊ฒ ๊ตฌํ๋์ง ์์์ ์์ฌ์ด ์ ์ด ์๋ค๋ ์๊ฒฌ์ ์ ์.
์ด ๋ํ๋ ๋ฒ๋ค๋ง ๋๊ตฌ์ ํธ๋์คํ์ผ๋ฌ ๋ฐฉ์์ ์ฐจ์ด์ ๋ํด ํ ๋ก ํ๊ณ ์์ผ๋ฉฐ, ๋ฒ๋ค๋ง์ ์ฅ์ ๊ณผ ๋จ์ ์ ์ง์ ํ๋ฉฐ ๋ ๋ฐ์ ๋ ๋๊ตฌ์ ํ์์ฑ์ ์ธ๊ธํ๊ณ ์์ต๋๋ค.
{% embed url="https://openapi.tools/#documentation" %}
{% embed url="https://t.co/Ka7uSa6dEA" %}
{% embed url="https://sobrief.com/" %}
{% embed url="https://velog.io/@teo/frontend" %}
 (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png)
 (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png)
 (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png)
 (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png)