Definitelytyped: ์™œ ๋ชจ๋…ธ๋ ˆํฌ์ธ๊ฐ€?

์— ๋งŒ๋“  2018๋…„ 05์›” 13์ผ  ยท  16์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: DefinitelyTyped/DefinitelyTyped

  1. 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.

  2. @types/X ๋Œ€ํ•ด ์ด๋ฏธ ์ œ์ถœ๋œ ๋ฌธ์ œ๋ฅผ ํ™•์ธํ•˜๊ณ  ์ƒˆ ๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
    ํ•˜์ง€๋งŒ ๋ฌธ์ œ ํƒญ์„ ์—ด๋ฉด ๋ชจ๋“  ํŒจํ‚ค์ง€์— ๋Œ€ํ•ด >2k ํ•ญ๋ชฉ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค... ๊ธฐ์—ฌ์ž๊ฐ€ ์ •์˜๋ฅผ ์œ„ํ•ด ์ œ์ถœ๋œ ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค(๋˜๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๊นŒ?).

์ž…๋ ฅ์ด ๋ณ„๋„์˜ ์ €์žฅ์†Œ์— ์—†๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋ชจ๋…ธ๋ ˆํฌ ์™„์ „ ์—‰๋ง ์•„๋‹Œ๊ฐ€์š”?

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

Non-monorepo๋Š” nonstarter์ž…๋‹ˆ๋‹ค. ์ข…์ข… ํ•˜๋‚˜์˜ @types ํŒจํ‚ค์ง€์—์„œ ๋ฌด์–ธ๊ฐ€๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ธฐ์—ฌ์ž๋Š” ์ค‘๋‹จ์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๋‹ค์šด์ŠคํŠธ๋ฆผ ํŒจํ‚ค์ง€๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ชจ๋“  PR์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋ฆฌ์ ์ธ CI ๋นŒ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด์„œ ์›์ž์  ๋ฐฉ์‹์œผ๋กœ ํ•ด๋‹น PR์„ ๋ณ‘ํ•ฉํ•˜๋Š” ํ†ตํ•ฉ๋œ ๋ฐฉ๋ฒ•์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— GitHub์˜ ์›Œํฌํ”Œ๋กœ์— ๋Œ€ํ•œ ์ ˆ๋Œ€์ ์ธ ์“ฐ๋ ˆ๊ธฐ ์ˆ˜๊ฑฐํ†ต ํ™”์žฌ์ž…๋‹ˆ๋‹ค. ๋‹น์‹ ์ด 4000 ๊ฐœ ํด๋”๋ฅผ๋ณด๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ, ์šฐ๋ฆฌ๊ฐ€ 4000 ๊ฐœ์˜ repos์—์„œ ๋™๊ธฐํ™” GitHub์˜ ์„ค์ •์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ณ  ์ƒ์ƒํ•œ๋‹ค.

๋ชจ๋“  16 ๋Œ“๊ธ€

  1. types ์•„๋ž˜์˜ ํด๋”๋กœ ์ง์ ‘ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด jquery ์˜ ์œ ํ˜•์„ ๋ณด๋ ค๋ฉด https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/jquery ๋กœ ์ด๋™
  2. ๋„์„œ๊ด€๋ช…์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด lodash ์™€ ๊ด€๋ จ๋œ ๋ฏธํ•ด๊ฒฐ ๋ฌธ์ œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ ค๋ฉด https://github.com/DefinitelyTyped/DefinitelyTyped/issues?utf8=%E2%9C%93&q=is% ๋กœ ์ด๋™

๋ชจ๋…ธ๋ ˆํฌ ์™„์ „ ์—‰๋ง ์•„๋‹Œ๊ฐ€์š”?

screen shot 2018-05-15 at 16 40 12

๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ TypeSearch ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”

image

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 ์ €์žฅ์†Œ๋กœ ๋ถ„ํ• ํ•˜๋ฉด ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๊นŒ?

  1. ์‚ฌ์šฉ์ž๋Š” ์†Œ์Šค์— ๋” ๋นจ๋ฆฌ ๋„๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์†Œ์Šค์— ๋„๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด TypeSearch์™€ ๊ฐ™์€ ์ถ”๊ฐ€ ์•ฑ์„ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. npm์—๋Š” ํ•„์š”ํ•œ ํƒ€์ดํ•‘ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ์ง์ ‘ ๋งํฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  2. ์‚ฌ์šฉ์ž๋กœ์„œ ํ˜„์žฌ ๋ฌธ์ œ๋ฅผ ํ™•์ธํ•˜๊ณ  ์ƒˆ ๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•˜๋Š” ๊ฒƒ์ด ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค.

    • 2,000๊ฐœ ์ด์ƒ์˜ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ํ•˜๋‚˜์˜ ๊ฑฐ๋Œ€ํ•œ ์ €์žฅ์†Œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ํ•„ํ„ฐ๋งํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ธฐ์ž๊ฐ€ ๋ฌธ์ œ ๋ช…๋ช… ๊ทœ์น™(์˜ˆ: [@types/name-of-package] Issue description )์„ ์ค€์ˆ˜ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์–ด๋ฒ„๋ฆฌ๋ฉด ์–ด๋–ป๊ฒŒ ๋ฉ๋‹ˆ๊นŒ? ํ•„์š”ํ•œ ๋ฌธ์ œ๋ฅผ ์ฐพ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.
    • ๋”ฐ๋ผ์„œ ์ค‘๋ณต ํŒŒ์ผ์„ ์ œ์ถœํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์ ์Šต๋‹ˆ๋‹ค.
  3. ๊ธฐ์—ฌ์ž๋Š” ์ €์žฅ์†Œ์— ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”์ง€ ๋ช…ํ™•ํ•˜๊ฒŒ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ๊ตฌ์ฒด์ ์ธ ํƒ€์ดํ•‘์— ๋Œ€ํ•œ ๋ฌธ์ œ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด (๋‹ค์‹œ) ์•„๋ฌด ๊ฒƒ๋„ ํ•„ํ„ฐ๋งํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๋ฌธ์ œ๋ฅผ ๋†“์น  ๊ฐ€๋Šฅ์„ฑ์ด ์ ์Šต๋‹ˆ๋‹ค.
    • ๋ฌธ์ œ ์ˆ˜๋ฅผ ๋‚ฎ๊ฒŒ ์œ ์ง€ํ•˜๋ ค๋Š” ๋ถ„๋ช…ํ•œ ๋™๊ธฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ ๋ฒˆํ˜ธ๋Š” ๋” ์ด์ƒ ๊ณต๋™ ์ฑ…์ž„์ด ์•„๋‹™๋‹ˆ๋‹ค.
    • ๋”ฐ๋ผ์„œ ๋ช‡ ๋…„ ๋™์•ˆ ๊ฑธ๋ ค ์žˆ๋Š” ๋ฌธ์ œ๋ฅผ ์žŠ์–ด๋ฒ„๋ฆด ๊ฐ€๋Šฅ์„ฑ์ด ์ ์Šต๋‹ˆ๋‹ค.
      ์˜ˆ. 2013๋…„ 1ํ˜ธ ํŽ˜์ด์ง€, 2014๋…„ 5ํ˜ธ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  4. 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๋Š” ์›๋ž˜ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์˜ ๋™์˜ ์—†์ด ์œ ํ˜•์„ ์ง‘๊ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰