repo๋ฅผ ๋ณต์ ํ์ง ์๊ณ @types/X
ํจํค์ง์ ๋ํ .d.ts๋ฅผ ๋ณด๊ณ ์ถ์ต๋๋ค.
๊ทธ๋ฌ๋ github์์ types ํด๋๋ฅผ ์ด๋ฉด ๋ค์ ์ค๋ฅ๊ฐ ํ์๋๊ณ X
ํด๋๊ฐ ๋์ด๋์ง ์์ต๋๋ค.
Sorry, we had to truncate this directory to 1,000 files. 3,413 entries were omitted from the list.
@types/X
๋ํด ์ด๋ฏธ ์ ์ถ๋ ๋ฌธ์ ๋ฅผ ํ์ธํ๊ณ ์ ๋ฌธ์ ๋ฅผ ์ ์ถํ๊ณ ์ถ์ต๋๋ค.
ํ์ง๋ง ๋ฌธ์ ํญ์ ์ด๋ฉด ๋ชจ๋ ํจํค์ง์ ๋ํด >2k ํญ๋ชฉ์ด ํ์๋ฉ๋๋ค... ๊ธฐ์ฌ์๊ฐ ์ ์๋ฅผ ์ํด ์ ์ถ๋ ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ์ฐพ์ ์ ์๋์ง ๊ถ๊ธํฉ๋๋ค(๋๋ ๊ทธ๋ ์ง ์์ต๋๊น?).
์ ๋ ฅ์ด ๋ณ๋์ ์ ์ฅ์์ ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๋ชจ๋ ธ๋ ํฌ ์์ ์๋ง ์๋๊ฐ์?
types
์๋์ ํด๋๋ก ์ง์ ์ด๋ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด jquery
์ ์ ํ์ ๋ณด๋ ค๋ฉด https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/jquery ๋ก ์ด๋ lodash
์ ๊ด๋ จ๋ ๋ฏธํด๊ฒฐ ๋ฌธ์ ๋ฅผ ๊ฒ์ํ๋ ค๋ฉด https://github.com/DefinitelyTyped/DefinitelyTyped/issues?utf8=%E2%9C%93&q=is% ๋ก ์ด๋ ๋ชจ๋ ธ๋ ํฌ ์์ ์๋ง ์๋๊ฐ์?
๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ TypeSearch ๋ฅผ ์ฌ์ฉํ๋
Non-monorepo๋ nonstarter์
๋๋ค. ์ข
์ข
ํ๋์ @types
ํจํค์ง์์ ๋ฌด์ธ๊ฐ๋ฅผ ์์ ํ๋ ๊ธฐ์ฌ์๋ ์ค๋จ์ ์์ ํ๊ฑฐ๋ ์๋ก์ด ๊ธฐ๋ฅ์ ํ์ฑํํ๊ธฐ ์ํด ์ฌ๋ฌ ๋ค์ด์คํธ๋ฆผ ํจํค์ง๋ฅผ ์์ ํด์ผ ํฉ๋๋ค. ์ด๋ ๋ชจ๋ PR์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋ฆฌ์ ์ธ CI ๋น๋๋ฅผ ์คํํ๋ฉด์ ์์์ ๋ฐฉ์์ผ๋ก ํด๋น PR์ ๋ณํฉํ๋ ํตํฉ๋ ๋ฐฉ๋ฒ์ด ์๊ธฐ ๋๋ฌธ์ GitHub์ ์ํฌํ๋ก์ ๋ํ ์ ๋์ ์ธ ์ฐ๋ ๊ธฐ ์๊ฑฐํต ํ์ฌ์
๋๋ค. ๋น์ ์ด 4000 ๊ฐ ํด๋๋ฅผ๋ณด๊ณ ์๊ฐํ๋ ๋ฌธ์ ์ ๊ฒฝ์ฐ, ์ฐ๋ฆฌ๊ฐ 4000 ๊ฐ์ repos์์ ๋๊ธฐํ GitHub์ ์ค์ ์ ์ ์งํ๊ธฐ ์ํด ๋
ธ๋ ฅํ๊ณ ์์ํ๋ค.
์ข ์ข ํ๋์ @types ํจํค์ง์์ ๋ฌด์ธ๊ฐ๋ฅผ ์์ ํ๋ ๊ธฐ์ฌ์๋ ์ค๋จ์ ์์ ํ๊ฑฐ๋ ์๋ก์ด ๊ธฐ๋ฅ์ ํ์ฑํํ๊ธฐ ์ํด ์ฌ๋ฌ ๋ค์ด์คํธ๋ฆผ ํจํค์ง๋ฅผ ์์ ํด์ผ ํฉ๋๋ค.
@types/
ํจํค์ง๋ฅผ ์์ฑํ๋ ๋ฐ ์ต์ํ์ง ์์ผ๋ฏ๋ก ๋๋ฝ๋ ๊ฒ์ด ์์ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ด semver ๋ฅผ ์ํ ๊ฒ ์๋๋๊น?
npm์ ๋ค๋ฅธ ํจํค์ง์ ๋น๊ตํ์ฌ @types/
ํจํค์ง๋ฅผ ๊ตฌํํ๋ ๊ฒ์ด ํน๋ณํ ์ด์ ๋ ๋ฌด์์
๋๊น?
๋๋ ๊ทธ๊ฒ์ด ๋์ผํ๊ฒ ์๋ํ๊ธฐ๋ฅผ ๊ธฐ๋ํฉ๋๋ค : ๋น์ ์ด ๊ฐ์ง๊ณ ์๋ ์์กด์ฑ ๊ทธ๋ํ. ํจํค์ง @types/X
๋ฐ @types/Y
๋ฅผ ์ฌ์ฉํ๋ ๋ค์ด์คํธ๋ฆผ ํจํค์ง @types/X
. ๋ ๋ค ๋ค๋ฅธ ์ฌ๋๋ค์ด ๊ด๋ฆฌํฉ๋๋ค. @types/X
๋ณ๊ฒฝ๋๋ฉด ๋ค๋ฅธ ๋ฒ์ ์ผ๋ก ๊ฒ์๋๋ฏ๋ก @types/Y
์ฆ์ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค. @types/Y
๊ธฐ๊ณ ์๋ ๋์ค์ @types/X
์ ์ต์ ๋ฒ์ ์ผ๋ก ์
๋ฐ์ดํธํ๊ธฐ๋ก ๊ฒฐ์ ํ๊ณ ๋ชจ๋ ์ฃผ์ ๋ณ๊ฒฝ์ผ๋ก ์ธํ ๋ฌธ์ ๋ฅผ ์์ ํฉ๋๋ค.
์๋ง ๊ทธ ์์ DefinitelyTyped
meta-repository๊ฐ ์์ ๊ฒ์
๋๋ค. ์ด๋ type-repos์ ๋ํ ๋งํฌ ๋ชฉ๋ก๋ง ์ ์ง ๊ด๋ฆฌํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ํด๋น ๋ชฉ๋ก์ ์ดํด๋ณด๊ณ @types/
npm-namespace ์๋์ ๋ชจ๋ ํจํค์ง๋ฅผ ๊ฒ์ํ๋ publisher
์คํฌ๋ฆฝํธ๊ฐ ์์ต๋๋ค.
๋๋ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ๊ตฌํ์๊ฐ @types
๋ค์์คํ์ด์ค ๋ฐ๋ก ์๋์ ๊ฒ์ํ๋๋ก ํ์ฉํฉ๋๋ค. ๋ฐ๋ผ์ DefinitelyTyped
meta-repo๊ฐ โโ์ ํ ํ์ํ์ง ์์ต๋๋ค.
https://github.com/npm/npm ๋ 2k ๋ฌธ์ ์
๋๋ค.
https://github.com/moby/moby ๋.
๊ฐ์ฅ ์ข์ ํด๊ฒฐ์ฑ ์ ์ ์๊ฐ ํญ์ ๊ถ์ฅํ๋ ์ ์๋ฅผ ์ ์งํ๋ ๊ฒ์ ๋๋ค.
@franklinyu ๋ฌธ์ ์ ์๋ ๋ฌธ์ ์ ๋์์ด ์๋๋๋ค. ์ด ๋ฆฌํฌ์งํ ๋ฆฌ๊ฐ >4k ํ์ดํ์ ์ง๊ณํ๋ค๋ ์ ์ ๊ณ ๋ คํ๋ฉด ์์ฒญ๋ ์์ ๋ฌธ์ ๊ฐ ๋ฌธ์ ๊ฐ ๋์ง ์์ต๋๋ค.
์ง์ง ์ง๋ฌธ์ DefinitelyTyped
๊ฐ ํ๋์ ์ ์ฅ์์ ๋ชจ๋ ํ์ดํ์ ์ง๊ณํ์ฌ ํด๊ฒฐํ๋ ค๋ ๋ฌธ์ ๋ ๋ฌด์์
๋๊น?
๋ถํํ๋ semver๋ ํ์ดํ ํจํค์ง์ ์ ์๋ํ์ง ์์ต๋๋ค. ์ ํ ํจํค์ง์ major.minor
๋ฒ์ ์ ์๋ฐ์คํฌ๋ฆฝํธ ํจํค์ง์ major.minor
์ ์ผ์นํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ฌ๋๋ค์ ์ฃผ์ด์ง ์๋ฐ์คํฌ๋ฆฝํธ ํจํค์ง ๋ฒ์ ์ ์ด๋ค @types
๋ฒ์ ์ ์ฌ์ฉํ ์ง ๋ชจ๋ฆ
๋๋ค.
์๋ฅผ ๋ค์ด ์ง๊ธ ๋น์ฅ [email protected]
๋ฅผ ์ค์นํ๋ฉด @types/[email protected]
(์ง๊ธ 4.14.109
)๋ ์ค์น๋ฉ๋๋ค. ๊ทธ๋ฌ๋ lodash
์ ํ์ ๋ฒ๊ทธ๊ฐ ์๋ค๊ณ ์์ํด๋ณด์ญ์์ค. (์ด๋ ๋งค์ฐ ์์ฃผ ๋ฐ์ํฉ๋๋ค) ๋๊ตฐ๊ฐ ์์ ํฉ๋๋ค. ์ด์ ๋ฒ์ ๋ฒํธ๋ฅผ ๋ฌด์์ผ๋ก ๋ฒํํฉ๋๊น? ์ ์์ ๋ฐ๋ฅด๋ฉด ์ ํ ์ ์์ ๋ํ ๋ชจ๋ ๋ณ๊ฒฝ์ ์ธํฐํ์ด์ค ์ค๋จ ๋ณ๊ฒฝ(๋๋ ์ต์ํ ์ธํฐํ์ด์ค ์ถ๊ฐ)์
๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ์ ํ์ 4.14
๊ฐ ์๋๋ผ 4.15
4.14
์ด๊ธฐ ๋๋ฌธ์ ๋ฒ์ ์ 4.15.0
์ฌ๋ฆด ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ํ์คํ ๋ฒ์ ๋ฒํธ๋ฅผ 5.0.0
๋ก ์ฌ๋ฆฌ๊ณ ์ถ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ์ธํฐํ์ด์ค ๋ณ๊ฒฝ์ด ์๋๋ผ๋ ๋ฒ์ ๋ฒํธ๋ฅผ 4.14.110
๋ณ๊ฒฝํฉ๋๋ค. ์ค์ ๋ก ์ด์ ์ธํฐํ์ด์ค๊ฐ ์ ํํ์ง ์์๊ธฐ ๋๋ฌธ์
๋๋ค.
@ AJ-R ์ข์, major.minor
๋ฒ์ @type/X
๋์ผํด์ผ major.minor
๋ฒ์ X
๋ฐ ๋ฒ๊ทธ๊ฐ์๋ ๊ฒฝ์ฐ @type/X
patch
๋ฒ์ ์ ์ฌ์ฉํ์ฌ ์์ ํฉ๋๋ค. ๋ง์์.
๊ทธ๊ฒ์ด ์๋ ์ง๋ฌธ๊ณผ ์ด๋ค ๊ด๋ จ์ด ์์ต๋๊น? monorepo ๋ ๊ฐ๋ณ repos?
์ฃ์กํฉ๋๋ค. ๋ถ๋ช ํ ๋งํ์ด์ผ ํ์ต๋๋ค. ์ด์ ์๊ฒฌ ์ค ํ๋๋ฅผ ์ธ๊ธํ๊ณ ์์์ต๋๋ค.
ํ์ง๋ง ๊ทธ๊ฒ์ด _semver_๋ฅผ ์ํ ๊ฒ์ด ์๋๋๊น?
ํ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ชจ๋ ์ ๋ ฅ์ ์ง๊ณํ์ฌ ํ์คํ๊ฒ ์ ํ์ด ํด๊ฒฐํ๋ ค๊ณ ํ๋ ๋ฌธ์ ๋ ๋ฌด์์ ๋๊น?
DT๋ฅผ 4,000๊ฐ์ ๊ฐ๋ณ GitHub ์ ์ฅ์๋ก ๋ถํ ํ๋ฉด ์ด๋ค ๋ฌธ์ ๊ฐ ํด๊ฒฐ ๋ฉ๋๊น?
TypeScript ํ์์ ๋งค์ผ ์์ญ ๊ฐ์ PR์ ๋ณํฉํ๊ฑฐ๋ ๊ฒํ ํ๋ฉด์ PR ๋ฐฑ๋ก๊ทธ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. ๋ด์ ์ฐ๋ฆฌ๊ฐ ๋ฐ๋ ์์ฒญ๋ ์์ PR์ ๊ฐ์ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ผ๋ฐ์ ์ธ ์ค๋ฅ๋ฅผ ์ก์๋ด๋ ๋ฆฌํฌ์งํ ๋ฆฌ ์ ์ฒด ๋ฆฐํธ ๊ท์น์ ์คํํ๊ณ ๋์์ด ๋ ๊ฒ์ผ๋ก ์๊ฐ๋๋ฉด ์ ๊ธฐ์ ์ผ๋ก ์๋ก์ด ๋ฆฐํธ ๊ท์น์ ์ผญ๋๋ค. ์ฐ๋ฆฌ๋ ๋ฏธ๋์ ์ปดํ์ผ๋ฌ ๋ฒ์ ์ ์ํด ๊นจ์ง ๊ฒ๋ค๋ก ์ ์๋ฅผ ์ฐพ์ ์์ ํฉ๋๋ค.
์ด๊ฒ์ ์์ฒ ๊ฐ์ ํ์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ก ๋๋๋ฉด ๋ชจ๋ ๊ฒ์ด ๋ ์ด๋ ค์์ง๊ณ ๋ค๋ฅธ ๊ฒ์ ๋ ์ฌ์์ง๋๋ค. ์ ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ํ ๊น์?
DT๋ฅผ 4,000๊ฐ์ ๊ฐ๋ณ GitHub ์ ์ฅ์๋ก ๋ถํ ํ๋ฉด ์ด๋ค ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๊น?
์ฌ์ฉ์๋ ์์ค์ ๋ ๋นจ๋ฆฌ ๋๋ฌํฉ๋๋ค. ์์ค์ ๋๋ฌํ๊ธฐ ์ํด TypeSearch์ ๊ฐ์ ์ถ๊ฐ ์ฑ์ ์ฌ์ฉํ ํ์๊ฐ ์์ต๋๋ค. npm์๋ ํ์ํ ํ์ดํ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ํ ์ง์ ๋งํฌ๊ฐ ์์ต๋๋ค.
์ฌ์ฉ์๋ก์ ํ์ฌ ๋ฌธ์ ๋ฅผ ํ์ธํ๊ณ ์ ๋ฌธ์ ๋ฅผ ์ ์ถํ๋ ๊ฒ์ด ๋ ์ฝ์ต๋๋ค.
[@types/name-of-package] Issue description
)์ ์ค์ํ๋ ๊ฒ์ ์์ด๋ฒ๋ฆฌ๋ฉด ์ด๋ป๊ฒ ๋ฉ๋๊น? ํ์ํ ๋ฌธ์ ๋ฅผ ์ฐพ์ง ๋ชปํฉ๋๋ค.๊ธฐ์ฌ์๋ ์ ์ฅ์์ ์ผ๋ง๋ ๋ง์ ๋ฌธ์ ๊ฐ ์๋์ง ๋ช ํํ๊ฒ ๋ชจ๋ํฐ๋งํ ์ ์์ต๋๋ค.
TypeScript ํ์์ผ๋ก์ ๋น์ ์ ๋ง์ npm ํจํค์ง์ ๋ํ ์์ฒ ๊ฐ์ ํ์ดํ์ ์ ์ง/๋ณํฉ/๊ฒํ ํ๋ ๋์ typescript ์์ฒด ๊ฐ์ (์: jsdoc ์ง์)์ ๋ ๋ง์ ์๊ฐ์ ํ ์ ํ์ต๋๋ค.
์ฑ์ํ ์ํ๊ณ์์๋ ๊ทธ๊ฒ์ด ์ปค๋ฎค๋ํฐ๊ฐ ํด์ผ ํ ์ผ์
๋๋ค.
์ผ๋ฐ์ ์ธ ์ค๋ฅ๋ฅผ ์ก์๋ด๋ repo ์ ์ฒด ๋ฆฐํธ ๊ท์น์ ์คํํฉ๋๋ค.
๋ชจ๋ ๊ถ์ฅ ๊ท์น์ผ๋ก ๋ฆฐํธ ์ฌ์ ์ค์ ์ ํด์ ํ๊ณ ๋ชจ๋ ๊ธฐ์ฌ์์๊ฒ ํด๋น ์ฌ์ ์ค์ ์ ์ต์ ๋ฒ์ ์ ์ฌ์ฉํ๋๋ก ์กฐ์ธํฉ๋๋ค.
์ฐ๋ฆฌ๋ ๋ฏธ๋์ ์ปดํ์ผ๋ฌ ๋ฒ์ ์ ์ํด ๊นจ์ง ๊ฒ๋ค๋ก ์ ์๋ฅผ ์ฐพ์ ์์ ํฉ๋๋ค.
๊ทธ๊ฒ์ด ์ปค๋ฎค๋ํฐ ๊ธฐ์ฌ์๋ค์ด ํด์ผ ํ ์ผ์
๋๋ค. ์์๋๋ ts-compiler์ ๋ฒ์ ์ Typing-package package.json
์ peerDependency
์น์
์ ๋ช
์๋์ด ์์ด์ผ ํ๋ฏ๋ก ์๋ชป๋ ํ๊ฒฝ์์ ์ฌ์ฉํ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ๋ฅผ ํด์ค๋ค.
ํ์ดํ์ ์ค์ ๋ก ๋๊ตฌ์๊ฒ๋ ์์ ๋์ด ์๋ค๋ ์ฌ๊ณ ๋ฐฉ์์์ ์ ๊ทผํ๊ณ ์์ต๋๋ค. ํ์ค์ ์ด ๋ฆฌํฌ์งํ ๋ฆฌ์ ์๋ ๋๋ถ๋ถ์ ํ์ผ์ด dts-gen์ ์คํํ๊ณ ๋ช ๊ฐ์ง ์์ ์ ํตํด ์ฒดํฌ์ธํ ์ฌ๋์ด ํ ๋ฒ ์์ฑํ ๋ค์ ๋ค๋ฅธ ์ธ ์ฌ๋์ด 1๋ ์ ํ ๋ฒ ์์ ํ๋ค๋ ๊ฒ์ ๋๋ค. ์ฌ๊ธฐ์๋ ๊ฐ๋ ฅํ ์์ ๊ถ ๋ชจ๋ธ์ด ์์ผ๋ฉฐ ๊ทธ๋ด ํ์๋ ์์ต๋๋ค.
์ด๋ฌํ ์ ์ฅ์ ์ค ํ๋์ ์์ ์์ฒด ์ ์ธ "์์ ์"๊ฐ ์ ์ง ๊ด๋ฆฌ๋ฅผ ์ค๋จํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ฉด ์ด๋ป๊ฒ ๋ฉ๋๊น? ์ด๊ฒ์ ํญ์ ๋ฐ์
์ด๊ฒ์ ๋ํ ์์ ์ฌํญ์ ์ ์ถํ๋ ค๋ ์ฌ๋๋ค์ ์ถ์ ์ ํ์ํต๋๋ค. ์๋ ์ ์ฐ๋ฆฌ๋ ์๋ฐฑ ๊ฐ์ ํ์ผ์์ ๋ค์ด์คํธ๋ฆผ ๋ณ๊ฒฝ์ด ํ์ํ ์ ํ ๋งค๊ฐ๋ณ์๋ฅผ React ์ ์ ํ์ผ์ ์ถ๊ฐํ์ต๋๋ค. ๊ด๋ฒ์ํ ๋ณ๊ฒฝ์ ์ํํ๊ณ ์๋ฐฑ ๊ฐ์ ๋์ pull ์์ฒญ์ ๊ด๋ฆฌํ๊ธฐ ์ํด ์๋ฐฑ ๋ฆฌํฌ์งํ ๋ฆฌ(์ค, ์ด๋ค ๋ฆฌํฌ์งํ ๋ฆฌ?)๋ฅผ ๋ณต์ ํ๊ณ ์ถ์ ์ฌ๋์ด ์์ต๋๊น? ์ด๋ฅผ ์ํ ๋๊ตฌ์กฐ์ฐจ ์ด๋์๋ ์์ต๋๋ค.
TypeScript ํ์์ผ๋ก์ ๋น์ ์ ๋ง์ npm ํจํค์ง์ ๋ํ ์์ฒ ๊ฐ์ ํ์ดํ์ ์ ์ง/๋ณํฉ/๊ฒํ ํ๋ ๋์ typescript ์์ฒด ๊ฐ์ (์: jsdoc ์ง์)์ ๋ ๋ง์ ์๊ฐ์ ํ ์ ํ์ต๋๋ค. ์ฑ์ํ ์ํ๊ณ์์๋ ๊ทธ๊ฒ์ด ์ปค๋ฎค๋ํฐ๊ฐ ํด์ผ ํ ์ผ์ ๋๋ค.
์ฐ๋ฆฌ๋ ๋ฌธ์ ๊ทธ๋๋ก ์ด๊ฒ์ ์๋ํ์ง๋ง ์๋ํ์ง ์์์ต๋๋ค. DT๋ ์ ์ ์ผ๋ก ์ปค๋ฎค๋ํฐ ์ค์ฌ์ด์๊ณ ์๋ฐฑ ๊ฐ์ ํ ์์ฒญ ๋ฐฑ๋ก๊ทธ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๊ทธ ์ดํ๋ก PR ๋ณผ๋ฅจ์ด ~200/์์์ ~1,000/์๋ก ๊ฐ์ํ์์๋ ๋ถ๊ตฌํ๊ณ PR์ ๋ณํฉํ๋ ํ๊ท ์๊ฐ์ด 2์ฃผ์์ 4์ผ๋ก ๊ฐ์ํ์ต๋๋ค(์ด๋ ์๋์ ์ธ ์ต์๊ฐ์ด๋ฏ๋ก ์ฌ๋๋ค์ด ๋ณ๊ฒฝ ์ฌํญ์ ๋ฌด๊ฒ๋ฅผ ๋ ์๊ฐ์ด ์์). .
์ข์, ๋๋ "์ monorepo?"๋ผ๋ ์๋ ์ง๋ฌธ์ ๋ํ ๋ต์ ๊ฐ์ง๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
TypeScript ํ์ด ์ ํ ์ ์๋ฅผ ์ ์งํ๋ ๊ฒ์ด ๋ ์ฝ๊ธฐ ๋๋ฌธ์
๋๋ค(์ ํ ์ข
์์ฑ, ๋ค์ด์คํธ๋ฆผ ํจํค์ง์ ๋ํ ์์์ ์
๋ฐ์ดํธ, CI, ๋ฆฐํ
๋ฑ ๊ณ ๋ ค).
์ ๋ ์ฌ์ ํ TypeScript ํ์ด ์์ฒ ๊ฐ์ ํจํค์ง๋ฅผ ๋๋ถ๋ถ ๋จ๋ ์ผ๋ก ์ ์ง ๊ด๋ฆฌํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํ๋ ๋ชจ๋ธ์ด ์ฝ๊ฐ ์ด์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ํนํ ๋ชจ๋์ ์ปค๋ฎค๋ํฐ ๊ธฐ๋ฐ npm ์ธ๊ณ์์.
๊ทธ๋ฌ๋ ์ด ๋ชจ๋ธ์ด ๋น์ ์๊ฒ ์ ํฉํ๋ค๋ฉด. ๊ทธ๋ผ ์ข์ : ์ค๋ง์ผ :
@art-in ์ด ํ๋์ ์ ์ฅ์์์ ๋ชจ๋ ์ ํ์ ๊ด๋ฆฌํ๋ ๊ฒ์ด ์๋๊ฐ ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. ํจํค์ง ์์ฒด์์ ์ ๊ณตํ์ง ์๋ ์ ํ์ ๊ด๋ฆฌํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค. ํจํค์ง๊ฐ ํด๋น ํจํค์ง์ ์ ํ์ ๊ฒ์ํ๋ ค๋ ๊ฒฝ์ฐ ํจํค์ง์์ ๋ฐ๋ก ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๋ค. ConfirmTyped๋ ์๋ ํจํค์ง ๊ด๋ฆฌ์์ ๋์ ์์ด ์ ํ์ ์ง๊ณํ ์ ์๋ ๊ณณ์ผ ๋ฟ์ ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
Non-monorepo๋ nonstarter์ ๋๋ค. ์ข ์ข ํ๋์
@types
ํจํค์ง์์ ๋ฌด์ธ๊ฐ๋ฅผ ์์ ํ๋ ๊ธฐ์ฌ์๋ ์ค๋จ์ ์์ ํ๊ฑฐ๋ ์๋ก์ด ๊ธฐ๋ฅ์ ํ์ฑํํ๊ธฐ ์ํด ์ฌ๋ฌ ๋ค์ด์คํธ๋ฆผ ํจํค์ง๋ฅผ ์์ ํด์ผ ํฉ๋๋ค. ์ด๋ ๋ชจ๋ PR์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋ฆฌ์ ์ธ CI ๋น๋๋ฅผ ์คํํ๋ฉด์ ์์์ ๋ฐฉ์์ผ๋ก ํด๋น PR์ ๋ณํฉํ๋ ํตํฉ๋ ๋ฐฉ๋ฒ์ด ์๊ธฐ ๋๋ฌธ์ GitHub์ ์ํฌํ๋ก์ ๋ํ ์ ๋์ ์ธ ์ฐ๋ ๊ธฐ ์๊ฑฐํต ํ์ฌ์ ๋๋ค. ๋น์ ์ด 4000 ๊ฐ ํด๋๋ฅผ๋ณด๊ณ ์๊ฐํ๋ ๋ฌธ์ ์ ๊ฒฝ์ฐ, ์ฐ๋ฆฌ๊ฐ 4000 ๊ฐ์ repos์์ ๋๊ธฐํ GitHub์ ์ค์ ์ ์ ์งํ๊ธฐ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ํ๋ค.