Public Go Acquisition 53 KO - teamswyg/laya-tools GitHub Wiki

์ด ํŽ˜์ด์ง€๋Š” PDCA53 ์กฐ์‚ฌ ๋‹น์‹œ์˜ ์—ญ์‚ฌ์  snapshot์ž…๋‹ˆ๋‹ค. ์•„๋ž˜์˜ โ€˜ํ˜„์žฌโ€™์™€ ์‹คํ–‰ ์ ๊ฒฉ 0๊ฐœ๋Š” ๊ทธ ๋‹น์‹œ ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค. ์ดํ›„ PDCA54์—์„œ ์›์ฒœ 120๊ฐœ ์ค‘ ์™ธ๋ถ€ 2๊ฐœ ๊ณ„์•ฝ์„ ๋กœ์ปฌ์—์„œ ์ค€๋น„ํ–ˆ์œผ๋ฉฐ, ๊ทธ ๋‘ ์ž‘์—…์˜ ๋ชจ๋ธ ์‹คํ–‰ยทํ•™์Šต ๋ผ๋ฒจยทfinal ์ ๊ฒฉ์€ ์—ฌ์ „ํžˆ 0๊ฐœ์ž…๋‹ˆ๋‹ค. ๋ณ„๋„๋กœ ๊ธฐ์กด laya-tools์˜ ์ƒˆ ํŒŒ์„œ ์š”์ฒญ ํ•œ ๊ฐœ๋ฅผ ์‹ค์ œ 4ํšŒ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. 54์˜ ์™ธ๋ถ€ ๊ณ„์•ฝ ยท 54 ์‹ค์ œ ๊ฒฐ๊ณผ. ์›๋ณธ ์กฐ์‚ฌ ๋ชฉ๋ก๊ณผ ๋ณธ๋ฌธ์€ ๋ณด์กดํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ณต๊ฐœ Go ์ž‘์—… ํ›„๋ณด 120๊ฐœ: ์‹คํ–‰ ๊ณ„์•ฝ์„ ์ค€๋น„ํ•˜๊ธฐ ์œ„ํ•œ ์›์ฒœ ๋ชฉ๋ก

English ยท ์ •๊ทœ JSON ยท 2,400๊ฐœ ํ™•๋ณด ๊ณ„ํš

๊ณต๊ฐœ Go ์ €์žฅ์†Œ 8๊ฐœ์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ๋™์ž‘์„ ์š”์ฒญํ•˜๋Š” ์›๋ณธ ํ›„๋ณด 120๊ฐœ๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค. ๊ฐ ์ €์žฅ์†Œ์˜ revision, ์‹ค์ œ ํŒŒ์ผ, ํ•จ์ˆ˜ยทํƒ€์ž… ์„ ์–ธ, ๋ฃจํŠธ LICENSE, ํŒŒ์ผ๋ณ„ ์ถœ์ฒ˜ ์‹ ํ˜ธ์™€ NOTICE ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ์ฝ์—ˆ๋‹ค. ํ˜„์žฌ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํ›„๋ณด๋Š” 0๊ฐœ๋‹ค. 120์€ ์š”์ฒญ ์ดˆ์•ˆ ์ˆ˜์ด๋ฉฐ ๋ชจ๋ธ ์‹คํ–‰ ์ˆ˜ยท๋‚œ์ด๋„ ์ •๋‹ต ์ˆ˜ยทํ•™์Šต ์ •๋‹ต ์ˆ˜ยท๋…๋ฆฝ ํ†ต๊ณ„ ํ‘œ๋ณธ ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋‹ค.

์ž‘์€ ๊ฐœ๋ฐœ ์‹œํ—˜๋งŒ์œผ๋กœ ์„ฑ๋Šฅ์„ ํŒ๋‹จํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด ์›์ฒœ์„ ๋„“ํžˆ๋Š” ๋‹จ๊ณ„๋‹ค. ์ด ๋ชฉ๋ก์€ ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ์ด๋ฏธ ์ฝ์—ˆ์œผ๋ฏ€๋กœ ๋ณดํ˜ธ๋œ final์— ๋„ฃ์ง€ ์•Š๋Š”๋‹ค. ์ตœ์ข… ๋ชฉํ‘œ์ธ ์˜์—ญ๋ณ„ ๋ณ„๋„ ์š”์ฒญ 2,400๊ฐœ์™€ ํ•™์Šตยท์„ ํƒยท๋ณด์ • ์ž๋ฃŒ๋ฅผ ํ™•๋ณดํ•œ ๊ฒƒ์œผ๋กœ๋„ ์„ธ์ง€ ์•Š๋Š”๋‹ค. Go ์ฝ”๋”ฉ์˜ ์‹ค์ œ ์™„๋ฃŒ ๊ฐ€๋Šฅ์„ฑ์„ ๊ฒ€์‚ฌํ•  ์›์ฒœ์ด๊ณ , ์ €์žฅ์†Œ ์„ ํƒ์ด๋‚˜ ์ž‘์—… ๋ถ„ํ• ์˜ ์ •๋‹ต์„ ๋Œ€์‹ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋ฌด์—‡์„ ํ™•๋ณดํ–ˆ๋Š”๊ฐ€

๊ณต๊ฐœ ์ €์žฅ์†Œ ํ›„๋ณด ์ˆ˜ ์ฝ์€ ๊ณ ์ • revision ์‹ค์ œ ๋ฃจํŠธ ๋ผ์ด์„ ์Šค
spf13/pflag 15 c966cfef4737 BSD-3-Clause
spf13/afero 15 eb6a92826ea5 Apache-2.0
spf13/cobra 15 adbc8813901b Apache-2.0
hashicorp/go-retryablehttp 15 fd004584a467 MPL-2.0
go-viper/mapstructure 15 52aa5c6dc1d2 MIT
go-ini/ini 15 e2db55b0e088 Apache-2.0
dustin/go-humanize 15 a1b4e66b9a6d MIT + number.go WTFPL v2
google/uuid 15 2d3c2a9cc518 BSD-3-Clause

๊ฒ€ํ†  ๊ทผ๊ฑฐ๋กœ ๋“ฑ๋กํ•œ ์›๋ฌธ ํŒŒ์ผ์€ 97๊ฐœ๋‹ค. ์ด ์ˆ˜์—๋Š” LICENSE์™€ go.mod๋„ ํฌํ•จ๋œ๋‹ค. ํ›„๋ณด์˜ ๋ณ€๊ฒฝ ์•ต์ปค๋Š” CLI ์ธ์žยท๋ช…๋ น ํŠธ๋ฆฌยท๊ฐ€์ƒ ํŒŒ์ผ ์‹œ์Šคํ…œยทHTTP ์žฌ์‹œ๋„ยท๊ตฌ์กฐ์ฒด ๋””์ฝ”๋”ฉยทINI ์„ค์ •ยท์ˆซ์ž/์‹œ๊ฐ„ ํ‘œ์‹œยทUUID๋กœ ๋‚˜๋ˆ„์—ˆ๋‹ค. ์ €์žฅ์†Œ๋‹น 15๊ฐœ๋ผ๋Š” ๋ฐฐ์น˜๋Š” ์ดˆ๊ธฐ ์ˆ˜์ง‘ ํŽธ์˜๋ฅผ ์œ„ํ•œ ๊ฒƒ์œผ๋กœ ์‹ค์ œ ์‚ฌ์šฉ์ž ์ž‘์—…์˜ ๋ฐœ์ƒ ๋น„์œจ์„ ๋‚˜ํƒ€๋‚ด์ง€ ์•Š๋Š”๋‹ค.

๋ชจ๋“  ํ›„๋ณด์˜ ์ƒํƒœ๋Š” ์ •ํ™•ํžˆ source_candidate_only๋‹ค. contract.status=pending, execution_eligible=false, training_label_eligible=false, final_eligible=false, model_executed=false๋ฅผ ๊ฐœ๋ณ„ ๊ธฐ๋กํ–ˆ๋‹ค. ๋ผ์ด์„ ์Šค ๊ฒ€ํ†  pending์€ ๋ณ„๋„ ํ•„๋“œ๋‹ค. ๊ณ„์•ฝ์„ ์ž‘์„ฑ ์ค‘์ด๋ผ๋Š” ํ‘œํ˜„์„ ์‹คํ–‰ ์ž๊ฒฉ์œผ๋กœ ํ•ด์„ํ•˜๋ฉด ์•ˆ ๋œ๋‹ค.

์›๋ณธ ์š”์ฒญ๋ฌธ์€ ์šฐ๋ฆฌ๊ฐ€ ์ƒˆ๋กœ ์ž‘์„ฑํ•œ ์˜๋ฌธ ๋™์ž‘ ์š”์ฒญ์ด๋‹ค. ์•„๋ž˜ ํ•œ๊ธ€ ํ‘œ๋Š” ๊ฐ™์€ ์š”์ฒญ์˜ ์งง์€ ํ–‰๋™ ์š”์•ฝ์ด๊ณ , ์ •ํ™•ํ•œ ์›๋ฌธ๊ณผ ์ œ์•ˆ ์™„๋ฃŒ ์กฐ๊ฑด์€ JSON์—์„œ ID๋กœ ์ฐพ๋Š”๋‹ค. upstream ์ด์Šˆยท๋Œ“๊ธ€ยทํ…Œ์ŠคํŠธ ๋ณธ๋ฌธ์„ ๋ณต์ œํ•˜๊ฑฐ๋‚˜ ๊ฐ™์€ ๋ฒ„๊ทธ์— ์ด๋ฆ„๋งŒ ๋ฐ”๊พธ์–ด ๊ฐœ์ˆ˜๋ฅผ ๋Š˜๋ฆฌ์ง€ ์•Š์•˜๋‹ค. ์ฝ”๋“œ ๋ณธ์ฒดยท๋ชจ๋ธ ๋ณธ์ฒดยท๋น„๊ณต๊ฐœ ์ž๋ฃŒยท์‹ค์ œ ์‚ฌ์šฉ์ž ์š”์ฒญยท์ธ์ฆ ์ •๋ณดยท์›๋ณธ ์‹คํ–‰ ์ถ”์ ์€ ์ด ๋ชฉ๋ก์— ๋„ฃ์ง€ ์•Š์•˜๋‹ค. ๊ธฐ์กด ๊ตฌํ˜„์˜ ๊ฒฐํ•จ์„ ์ž…์ฆํ•œ ๋ชฉ๋ก์€ ์•„๋‹ˆ๋‹ค.

ํ›„๋ณด์—์„œ ์‹คํ–‰ ๊ณ„์•ฝ์œผ๋กœ ๋„˜์–ด๊ฐ€๋Š” ์กฐ๊ฑด

์•„๋ž˜ ์กฐ๊ฑด์„ ํ†ต๊ณผํ•˜๊ธฐ ์ „์—๋Š” ๋ชจ๋ธ์„ ์‹คํ–‰ํ•  ๊ณ ์ • ์ž‘์—…์œผ๋กœ ๋“ฑ๋กํ•˜์ง€ ์•Š๋Š”๋‹ค.

  1. ์š”์ฒญ์˜ ์ž…๋ ฅยท์ถœ๋ ฅยท์‹คํŒจยทํ˜ธํ™˜์„ฑ ์ •์ฑ…์„ ๋ชจํ˜ธํ•จ ์—†์ด ๊ณ ์ •ํ•œ๋‹ค. ์ด๋ฏธ ์ถฉ์กฑ๋œ ์š”์ฒญ, ํฐ ๊ตฌํ˜„ ๋ฒ”์œ„, ์ค‘๋ณต๋˜๋Š” ํ•ด๊ฒฐ ํŒจํ„ด์€ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์ œ์™ธํ•œ๋‹ค.
  2. ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ํŒŒ์ผ๋ฟ ์•„๋‹ˆ๋ผ ํ•„์š”ํ•œ ์ง€์› ์ฝ”๋“œยทํ”Œ๋žซํผ ํŒŒ์ผยท์˜์กด์„ฑยท๋„๊ตฌ ๋ฒ„์ „ยทํ…Œ์ŠคํŠธ ๋ฒ”์œ„๋ฅผ ์ตœ์†Œ closure๋กœ ๋งŒ๋“ ๋‹ค. ํ˜„์žฌ ํŒŒ์ผ ๋ชฉ๋ก์€ ์ฝ์€ ๋ณ€๊ฒฝ ์•ต์ปค์ด๋ฉฐ ์ปดํŒŒ์ผ์„ ํ™•์ธํ•œ closure๊ฐ€ ์•„๋‹ˆ๋‹ค.
  3. ๊ทธ ์‹ค์ œ ๋ฌถ์Œ์˜ SHA-256, revision, LICENSE/NOTICE์™€ ๋ณต์‚ฌยทํŒŒ์ƒ ์›์ „ ๊ณ ์ง€๋ฅผ ๋ณด์กดํ•œ๋‹ค. JSON์˜ Git blob SHA-1์€ ์›์ฒœ ์ถ”์ ์šฉ์ด๋ฉฐ ์ „์ฒด closure ํ•ด์‹œ๊ฐ€ ์•„๋‹ˆ๋‹ค.
  4. ๋…๋ฆฝ ์™„๋ฃŒ ๊ฒ€์‚ฌ๊ฐ€ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์€ ๊ธฐ์ค€์„ ๊ฑฐ์ ˆํ•˜๊ณ , ๋ณ„๋„๋กœ ์ž‘์„ฑํ•œ ์˜ฌ๋ฐ”๋ฅธ ์ฐธ๊ณ  ๊ตฌํ˜„์„ ์ˆ˜์šฉํ•˜๋ฉฐ, ์•Œ๋ ค์ง„ ์˜ค๋‹ต์„ ๊ฑฐ์ ˆํ•˜๋Š”์ง€ ๊ฒ€์ฆํ•œ๋‹ค. ๊ธฐ์กด ํ…Œ์ŠคํŠธ ํ†ต๊ณผ๋‚˜ ๋ชจ๋ธ์ด ๋งŒ๋“  ํ…Œ์ŠคํŠธ๋งŒ์œผ๋กœ ์™„๋ฃŒ๋ฅผ ์„ ์–ธํ•˜์ง€ ์•Š๋Š”๋‹ค.
  5. ํ•„์š”ํ•œ ๊ฒ€์‚ฌ์™€ ๊ณต๊ฐœ ๊ฐ€๋Šฅ์„ฑ ๊ฒ€ํ† ๋ฅผ ํ†ต๊ณผํ•œ ๋’ค ๋ณ„๋„ ์‹คํ–‰ ๊ณ„ํš์— ํ”„๋กœํ•„ยท์‹œ๋„ ์ˆ˜ยท์‹œ๊ฐ„ยท๋™์‹œ ์‹คํ–‰ยท์ค‘๋‹จ ์กฐ๊ฑด์„ ๋ด‰์ธํ•œ๋‹ค. ์ฐธ๊ณ  ๊ตฌํ˜„/์˜ค๋‹ต ๊ฒ€์‚ฌ์™€ ์‹ค์ œ ๋ชจ๋ธ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ๋”ฐ๋กœ ๊ธฐ๋กํ•œ๋‹ค.

JSON์˜ ์™„๋ฃŒ ์กฐ๊ฑด์€ ์ œ์•ˆ์ด๋‹ค. ์•„์ง ๊ณ„์•ฝ์„ ๊ตฌํ˜„ยท๋ด‰์ธํ•˜์ง€ ์•Š์•˜๊ณ , ๊ธฐ์ค€ ๊ฑฐ์ ˆยท์ฐธ๊ณ  ๊ตฌํ˜„ ์ˆ˜์šฉยท์˜ค๋‹ต ๊ฑฐ์ ˆ๋„ ์‹คํ–‰ํ•˜์ง€ ์•Š์•˜๋‹ค. ์˜ˆ์ƒ fast/standard/strong์€ ๋ถ€์—ฌํ•˜์ง€ ์•Š์•˜๋‹ค. ์‹ค์ œ ๋Šฅ๋ ฅ ๋ผ๋ฒจ์€ ๊ฐ™์€ ์ž‘์—…์—์„œ ์‹คํ–‰ํ•œ ํ”„๋กœํ•„์˜ ๋…๋ฆฝ ์™„๋ฃŒ ๊ฒฐ๊ณผยท์‹คํŒจ/์ข…๋ฃŒ ์ƒํƒœยท์ „์ฒด ์‚ฌ์šฉ๋Ÿ‰์—์„œ ์–ป์–ด์•ผ ํ•œ๋‹ค.

๋ผ์ด์„ ์Šค์—์„œ ๋‚จ์•„ ์žˆ๋Š” ์ผ

๊ฐ ์ €์žฅ์†Œ์˜ ๊ณ ์ • LICENSE ์›๋ฌธ์€ ์œ„ ํ‘œ์— ์—ฐ๊ฒฐํ–ˆ๋‹ค. ๊ฒ€์‚ฌํ•œ 8๊ฐœ ๋น„์ž˜๋ฆฐ ํŠธ๋ฆฌ์—๋Š” NOTICE ํŒŒ์ผ์„ ์ฐพ์ง€ ๋ชปํ–ˆ๋‹ค. ์ด๋Š” ์ง€์› ํŒŒ์ผยท์˜์กด์„ฑยท๋ณต์‚ฌ๋œ ์›์ „์˜ NOTICE๋„ ์—†๋‹ค๋Š” ๋œป์ด ์•„๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ ์›๋ณธ ์š”์ฒญยท์„ค๋ช…์€ Apache-2.0์ด๋ฉฐ upstream ์ฝ”๋“œ์˜ ๋ผ์ด์„ ์Šค๋ฅผ ๋ฐ”๊พธ์ง€ ์•Š๋Š”๋‹ค. ์ „์ฒด ์ €์žฅ์†Œ, ํŒŒ์ƒ ๋ฐ์ดํ„ฐ, ๋ชจ๋ธ ํ•™์Šต ๊ถŒ๋ฆฌ๊นŒ์ง€ ์ผ๊ด„ ์Šน์ธํ•œ ๊ธฐ๋ก๋„ ์•„๋‹ˆ๋‹ค.

  • go-retryablehttp: ๋ฃจํŠธ์™€ Go SPDX๊ฐ€ MPL-2.0์ด๋‹ค. ๋ณ€๊ฒฝ ํŒŒ์ผ์˜ ์†Œ์Šค/์‹คํ–‰๋ฌผ ๋ฐฐํฌ ๋ฐฉ์‹, ์†Œ์Šค ์ œ๊ณตยท๊ณ ์ง€ ๋ฒ”์œ„์™€ ์˜์กด์„ฑ์„ ์‹ค์ œ closure์— ๋งž์ถฐ ๊ฒฐ์ •ํ•ด์•ผ ํ•œ๋‹ค. MPL ์›๋ฌธ๊ณผ ๊ณต์‹ FAQ๋ฅผ ๊ธฐ๋กํ–ˆ๋‹ค. ๊ณต๊ฐœ ์†Œ์Šค๋ผ๋Š” ์ด์œ ๋กœ Apache-2.0 ๋‹จ๋…์œผ๋กœ ๋ฐ˜์ž…ํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • go-humanize number.go: ๋ฃจํŠธ MIT์™€ ๋‹ค๋ฅธ ์ถœ์ฒ˜๋ฅผ ๊ธฐ๋กํ•œ๋‹ค. gorhill์˜ ๊ณ ์ • gist revision์— WTFPL v2 ์›๋ฌธ์ด ์‹ค์ œ ํฌํ•จ๋œ๋‹ค. ์›์ „์ด ํ™•์ธ๋˜์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค๊ณผ ๋‘ ๊ทผ๊ฑฐ๋ฅผ ๋ณด์กดํ•œ ๋ฐฐํฌ manifest๊ฐ€ ์•„์ง ์—†๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊ตฌ๋ถ„ํ•œ๋‹ค.
  • ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ƒ ์‹ ํ˜ธ: pflag text.go๋Š” Go 1.23.4 flag.go ๋ณต์‚ฌ๋ฅผ ๋ช…์‹œํ•˜๊ณ , afero match.go๋Š” filepath ํŒŒ์ƒ์„ ๋ช…์‹œํ•œ๋‹ค. afero ioutil.go์˜ Go Authors ์ €์ž‘๊ถŒ๊ณผ INI struct.go์˜ encoding/json ๋ณต์‚ฌ ๋ฌธ๊ตฌ๋„ ๊ธฐ๋กํ–ˆ๋‹ค. ์‹ค์ œ ์‚ฌ์šฉํ•  ๋ถ€๋ถ„์˜ ์›์ „ revisionยท๊ณ ์ง€ ๋ฒ”์œ„๋ฅผ ๋” ํ™•์ธํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๊ฒƒ๋งŒ์œผ๋กœ ์œ„๋ฐ˜์„ ๋‹จ์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ์—ฌ๋Ÿฌ ์ €์ž‘๊ถŒ์žยท์˜์กด์„ฑ: afero util.go/mem/file.go์˜ ์—ฌ๋Ÿฌ ๊ธฐ์—ฌ์ž์™€ Cobra์˜ pflagยท๋ฌธ์„œ ๋„๊ตฌ ์˜์กด์„ฑ์„ ๋ณด์กดยท๊ฒ€ํ† ํ•ด์•ผ ํ•œ๋‹ค. Apache-2.0 ์›๋ฌธ์˜ ๋ณ€๊ฒฝยท์žฌ๋ฐฐํฌยท๊ณ ์ง€ ์กฐ๊ฑด์€ ์‹ค์ œ ๋ฐฐํฌ ๋ฒ”์œ„์— ์ ์šฉํ•œ๋‹ค.

ํŠน๋ณ„ํ•œ ํŒŒ์ผ ์‹ ํ˜ธ๋Š” ๊ทธ ํŒŒ์ผ์˜ ํ›„๋ณด์— ์—ฐ๊ฒฐํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‹ค์ œ closure๊ฐ€ ๋„“์–ด์ง€๋ฉด ๋ชจ๋“  ํ›„๋ณด์˜ ์ง€์› ์ฝ”๋“œยท์˜์กด์„ฑยทํ…Œ์ŠคํŠธ ๋ผ์ด์„ ์Šค๋ฅผ ๋‹ค์‹œ ๊ฒ€ํ† ํ•ด์•ผ ํ•œ๋‹ค. ๊ถŒ๋ฆฌ ๊ฒ€ํ† ์™€ ๊ณ„์•ฝ ๊ฒ€ํ†  ๋ชจ๋‘ ํ˜„์žฌ pending์ด๋‹ค.

์—ฐ๊ฒฐ ๊ทธ๋ฃน๊ณผ ๊ธฐ์กด 7๊ฐœ ํ›„๋ณด

์šฐ์„  ๊ฐ™์€ ์ €์žฅ์†Œ์˜ ํ›„๋ณด๋ฅผ ๊ฐ™์€ ๊ทธ๋ฃน์— ๋ฌถ๋Š”๋‹ค. Cobra๋Š” ๊ณ ์ • go.mod์—์„œ pflag v1.0.9์— ์˜์กดํ•˜๋ฏ€๋กœ ๋‘ ์ €์žฅ์†Œ๋ฅผ ๋ณด์ˆ˜์ ์œผ๋กœ ์—ฐ๊ฒฐํ–ˆ๋‹ค. ์ด ๋ชฉ๋ก์˜ pflag HEAD๊ฐ€ ๊ทธ ์˜์กด์„ฑ ๋ฒ„์ „๊ณผ ๊ฐ™๋‹ค๋Š” ๋œป์€ ์•„๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ์ €์žฅ์†Œ/์˜์กด์„ฑ ๊ทธ๋ฃน์€ 7๊ฐœ์ด๋ฉฐ ๋…๋ฆฝ์„ฑ์„ ์ฆ๋ช…ํ•œ ์ตœ์ข… ๊ทธ๋ฃน ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋‹ค.

๊ฐ™์€ ํŒŒ์ผ, ๋ณต์‚ฌ๋œ ์›์ „, fork, ๊ณตํ†ต ์ง€์› ์ฝ”๋“œ, ํ•ด๊ฒฐ ํ…œํ”Œ๋ฆฟ๊ณผ ๋ถ€๋ชจยท์ž์‹ยทํ˜•์ œ ๊ด€๊ณ„๋ฅผ ๋” ๊ฒ€ํ† ํ•˜๋ฉด ๊ทธ๋ฃน์ด ํ•ฉ์ณ์งˆ ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์›์ž์„ฑยท์ž์› ์ƒํ•œยท์†Œ์œ ๊ถŒยท์‹œ๊ณ„ ์ฃผ์ž…์„ ๋‹ค๋ฅธ ์ €์žฅ์†Œ์—์„œ ์š”์ฒญํ•ด๋„ ์˜๋ฏธ๋ก ์ ์œผ๋กœ ๊ด€๋ จ๋  ์ˆ˜ ์žˆ๋‹ค. JSON์˜ mechanism ํƒœ๊ทธ๋Š” ์ด ๊ฒ€ํ† ๋ฅผ ๋•๋Š” ํ‘œ์‹œ์ด๊ณ  ๊ณ ์œ  ๋‚œ์ด๋„ ์ •๋‹ต์ด ์•„๋‹ˆ๋‹ค. ์ €์žฅ์†Œ ์ผ๋ฐ˜ํ™” ํ‰๊ฐ€์—์„œ๋Š” ์ €์žฅ์†Œ ์ „์ฒด๋ฅผ ๋‚˜๋ˆ„๊ณ  ์—ฐ๊ฒฐ ๊ทธ๋ฃน์„ ํ•™์Šตยท์„ ํƒยท๋ณด์ •ยทfinal์— ํฉ๋ฟŒ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค.

์กฐ์‚ฌ ์‹œ์ ์˜ ์—ญ์‚ฌ์  7๊ฐœ๋Š” catalog-budget 3๊ฐœ์™€ repo-preview 4๊ฐœ๋‹ค. ํ˜„์žฌ registry๋Š” ๋ณ„๋„ taskoutcome-parser ํ›„๋ณด ํ•˜๋‚˜๋ฅผ ์ถ”๊ฐ€ํ•ด 8๊ฐœยท์„ธ ๊ฐ€์กฑ์ด๋ฉฐ ์ƒˆ parser๋Š” versioned ๊ฒ€์ฆ๊ธฐ ์ค€๋น„ยท๋ชจ๋ธ 0์‹œ๋„๋‹ค. ํ‚ค์›Œ๋“œ ์ž‘์—…์˜ ์‹ค์ œ ๋„ค ๋ฐ˜๋ณต์€ 53 ๊ฒฐ๊ณผ์— ๋ณ„๋„๋กœ ๊ธฐ๋กํ•œ๋‹ค. ์กฐ์‚ฌ JSON์˜ ์—ญ์‚ฌ์  7๊ฐœ ๊ด€๊ณ„์™€ ์‹ ๊ทœ ์›์ฒœ 120๊ฐœ ์ˆ˜๋Š” ์ด ์ถ”๊ฐ€๋กœ ๋ฎ์–ด์“ฐ์ง€ ์•Š๋Š”๋‹ค. ์ƒˆ ์›์ฒœ์€ ๊ธฐ์กด laya-tools์˜ ํŒŒ์ผ๊ณผ ๋‹ค๋ฅด์ง€๋งŒ budgetยทsnapshotยทfilterยท์ƒํƒœ ์ฒ˜๋ฆฌ๋ผ๋Š” ๊ฐœ๋…์€ ๊ด€๋ จ๋  ์ˆ˜ ์žˆ์–ด ์ค‘๋ณต/๊ทธ๋ฃน ๊ฒ€ํ† ๋ฅผ ๋‚จ๊ฒผ๋‹ค. ๊ณผ๊ฑฐ์˜ ๋ด‰์ธ๋œ ์š”์ฒญยท์‹คํ–‰ ๊ธฐ๋ก์€ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ , ์‹ ๊ทœ 120๊ฐœ๋ฅผ ๊ณผ๊ฑฐ ์‹คํ–‰ ์ˆ˜๋‚˜ ๋ชจ๋ธ ๋ผ๋ฒจ ์ˆ˜์— ํ•ฉ์‚ฐํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋จผ์ € ๊ณ„์•ฝ์„ ๋งŒ๋“ค ํ›„๋ณด 10๊ฐœ

์•„๋ž˜๋Š” ์ž‘๊ณ  ๊ตฌ์ฒด์ ์ธ ๋…๋ฆฝ ๊ฒ€์‚ฌ๋ฅผ ์„ค๊ณ„ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐœ๋ฐœ ์ˆœ์„œ ์ œ์•ˆ์ด๋‹ค. ์‹ค์ œ ๋ชจ๋ธ ๋‚œ์ด๋„ ์ˆœ์„œยทํ•™์Šต ์ •๋‹ตยท์ถ”๋ก  ์‹คํ–‰ ์Šน์ธ์ด ์•„๋‹ˆ๋‹ค. ๊ฐ ํ›„๋ณด์˜ ์‹ค์ œ gap๊ณผ ์ง€์› ๋ฒ”์œ„๋ฅผ ํ™•์ธํ•œ ๋’ค ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€Œ๊ฑฐ๋‚˜ ์ œ์™ธ๋  ์ˆ˜ ์žˆ๋‹ค.

์ˆœ์„œ ID ๋™์ž‘ ๋จผ์ € ์‚ดํŽด๋ณผ ์ด์œ 
1 go53-humanize-ordinal64 ์ „์ฒด int64 ๋ฒ”์œ„์˜ ์ˆœ์œ„ ํ‘œ์‹œ ๋‹จ์ผ ํŒŒ์ผยท์ •์ˆ˜ ๊ฒฝ๊ณ„์˜ ์ƒˆ API๋ผ ๋…๋ฆฝ ์‚ฐ์ˆ  ๊ธฐ์ค€์„ ์„ค๊ณ„ํ•˜๊ธฐ ์ข‹๋‹ค.
2 go53-pflag-map-snapshot ๋ฌธ์ž์—ด ๋งต์˜ ๋…๋ฆฝ ์กฐํšŒ ๊ฒฐ๊ณผ ๋ณต์‚ฌ ์†Œ์œ ๊ถŒ์„ ์™ธ๋ถ€ ๋ณ€๊ฒฝ์œผ๋กœ ๊ฒ€์‚ฌํ•  ์ˆ˜ ์žˆ๊ณ  ๊ธฐ์กด ์กฐํšŒ์™€ ๋ถ„๋ฆฌํ•˜๊ธฐ ์‰ฝ๋‹ค.
3 go53-mapstructure-decoder-nil-config ๋””์ฝ”๋” ์„ค์ •์˜ nil ์ง„๋‹จ ์ž…๋ ฅ ์‚ฌ์ „์กฐ๊ฑดยท์˜ค๋ฅ˜๋ฅผ ์ž‘์€ ๊ณต๊ฐœ ํ˜ธ์ถœ๋กœ ๊ฒ€์‚ฌํ•  ์ˆ˜ ์žˆ๋‹ค.
4 go53-cobra-active-help-lines ActiveHelp์˜ ์ค„ ๊ฒฝ๊ณ„ ๋ณดํ˜ธ ํ”„๋กœํ† ์ฝœ์˜ ์ค„ ๊ฒฝ๊ณ„๋ฅผ ๊ณ ์ • ๋ฌธ์ž์—ด๋กœ ๊ฒ€์‚ฌํ•  ์ˆ˜ ์žˆ๋‹ค.
5 go53-afero-iofs-sub-validation io/fs ํ•˜์œ„ ๊ฒฝ๋กœ ๊ฒ€์ฆ ํ‘œ์ค€ fs ๊ฒฝ๋กœ ๋ฌธ๋ฒ•๊ณผ ์˜ค๋ฅ˜ํ˜•์„ ๋…๋ฆฝ ์ž…๋ ฅ์œผ๋กœ ๋Œ€์กฐํ•  ์ˆ˜ ์žˆ๋‹ค.
6 go53-ini-section-delete-index ์ค‘๋ณต ์„น์…˜ ์‚ญ์ œ์˜ ์ธ๋ฑ์Šค ๊ณ„์•ฝ ์Œ์ˆ˜ยท๋ฒ”์œ„ ๋ฐ–ยท์ •์ƒ ์ธ๋ฑ์Šค์™€ ์ƒํƒœ ๋ณด์กด์„ ์ง์ ‘ ๊ฒ€์‚ฌํ•  ์ˆ˜ ์žˆ๋‹ค.
7 go53-uuid-canonical-parse ์ •๊ทœ UUID ํ…์ŠคํŠธ ์ •์ฑ… ํ—ˆ์šฉ/๊ฑฐ์ ˆ ๋ฌธ๋ฒ•๊ณผ ๊ธฐ์กด Parse ๋ณด์กด์„ ๊ณ ์ • byte ๋ฒกํ„ฐ๋กœ ๊ฒ€์‚ฌํ•  ์ˆ˜ ์žˆ๋‹ค.
8 go53-uuid-sql-null-reset SQL UUID์˜ null ์ดˆ๊ธฐํ™” ๊ณ„์•ฝ ๋ฏธ๋ฆฌ ์ฑ„์šด receiver์— ๋Œ€ํ•œ ๊ฐ’ยท์˜ค๋ฅ˜์˜ ์ƒํƒœ ์ „์ด๋ฅผ ์ง์ ‘ ๊ฒ€์‚ฌํ•  ์ˆ˜ ์žˆ๋‹ค.
9 go53-humanize-strict-comma-parse ์—„๊ฒฉํ•œ ์ •์ˆ˜ ๊ตฌ๋ถ„์ž ๋ฌธ๋ฒ• ์ •์ˆ˜ ๋ฌธ๋ฒ•๊ณผ ๋ฒ”์œ„์˜ ๋ฐ˜๋ก€๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์ข‹๋‹ค.
10 go53-pflag-canonical-network ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ์˜ ํ˜ธ์ŠคํŠธ ๋น„ํŠธ ๊ฒ€์‚ฌ ๋„คํŠธ์›Œํฌ/ํ˜ธ์ŠคํŠธ ๋น„ํŠธ์˜ ๋ช…์‹œ์  ์ •์ฑ…์„ ๊ณ ์ • ์ฃผ์†Œ๋กœ ๊ฒ€์‚ฌํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ณด๋‹ค ํฐ ์ƒํƒœ ์ „์ดยท์˜ค๋ฒ„๋ ˆ์ดยท๋™์‹œ์„ฑยท๋ฌธ์„œ ์˜์กด์„ฑ ํ›„๋ณด๋Š” ๋’ค์—์„œ closure๋ฅผ ๋„“ํ˜€์•ผ ํ•œ๋‹ค. MPL ์†Œ์Šค์˜ ๋ฐ˜์ž…/๋ฐฐํฌ ๋ฐ ๋ณต์‚ฌ๋œ ์›์ „ ๋ฒ”์œ„๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์ „์—๋Š” ํ•ด๋‹น ํ›„๋ณด๋ฅผ ์‹คํ–‰ ์ž๊ฒฉ์œผ๋กœ ์˜ฌ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค. ์ด 10๊ฐœ๋ฅผ ๋งŒ๋“œ๋Š” ๋™์•ˆ ์ดํ›„ 120๊ฐœโ†’240๊ฐœ ์ด์ƒ ๊ฐœ๋ฐœ ์‹ ํ˜ธ์™€ ๋ณ„๋„์˜ 2,400๊ฐœ final ์›์ฒœ์„ ๊ณ„์† ํ™•๋ณดํ•˜๋˜, ํ›„๋ณด ์ˆ˜๋ฅผ ์‹ค์ธก ๋ผ๋ฒจ ์ˆ˜๋กœ ๋ฐ”๊พธ์–ด ํ‘œ์‹œํ•˜์ง€ ์•Š๋Š”๋‹ค.

120๊ฐœ ์ „์ฒด ๋ชฉ๋ก

๋ชจ๋“  ํ–‰์€ ์‹คํ–‰ ์ž๊ฒฉ์ด ์—†๋Š” ๊ฐœ๋ฐœ ์›์ฒœ ํ›„๋ณด๋‹ค. ํ–‰๋™ ๊ฐ€์กฑ ์ด๋ฆ„์ด ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ๋…๋ฆฝ์„ฑ์„ ์ฆ๋ช…ํ•˜์ง€ ์•Š๋Š”๋‹ค. ํ•จ์ˆ˜ยทํƒ€์ž…์˜ ๊ณ ์ • line ์•ต์ปค, Git blob SHA-1, ์˜๋ฌธ ์›๋ณธ ์š”์ฒญ๊ณผ ์ œ์•ˆ ์™„๋ฃŒ ์กฐ๊ฑด์€ JSON์— ์žˆ๋‹ค.

spf13/pflag

๋ฃจํŠธ BSD-3-Clause ๋ฐ Go Authors ํ—ค๋”๋ฅผ ํ™•์ธํ–ˆ๋‹ค. text.go๋Š” Go 1.23.4 flag.go ๋ณต์‚ฌ ์‹ ํ˜ธ๊ฐ€ ์žˆ์–ด ์›์ „ ๊ณ ์ง€์™€ closure ๋ฒ”์œ„๋ฅผ ๋ณ„๋„๋กœ ํ™•์ •ํ•ด์•ผ ํ•œ๋‹ค.

ID ์ œ์•ˆํ•˜๋Š” ๋™์ž‘ ์ฝ์€ ๋ณ€๊ฒฝ ์•ต์ปค ๊ฒ€ํ† ์šฉ ํ–‰๋™ ๊ฐ€์กฑ
go53-pflag-normalization-collision ์ด๋ฆ„ ์ •๊ทœํ™” ์ถฉ๋Œ์˜ ์›์ž์  ๊ฑฐ์ ˆ flag.go cli.flag_identity
go53-pflag-unknown-token-report ๋ชจ๋ฅด๋Š” ์ธ์ž์˜ ์œ„์น˜ ๋ณด๊ณ  flag.go cli.argument_provenance
go53-pflag-single-assignment ํ•œ ๋ฒˆ๋งŒ ์ง€์ •ํ•  ์Šค์นผ๋ผ ํ”Œ๋ž˜๊ทธ flag.go cli.assignment_policy
go53-pflag-parse-stop-callback ์ฝœ๋ฐฑ์ด ์š”์ฒญํ•˜๋Š” ์ •์ƒ ํŒŒ์‹ฑ ์ค‘๋‹จ flag.go cli.parser_control
go53-pflag-help-display-width ์œ ๋‹ˆ์ฝ”๋“œ ๋„์›€๋ง ์ •๋ ฌ flag.go cli.display_columns
go53-pflag-sensitive-default ๋ฏผ๊ฐ ํ”Œ๋ž˜๊ทธ ๊ธฐ๋ณธ๊ฐ’ ๊ฐ€๋ฆฌ๊ธฐ flag.go cli.help_disclosure
go53-pflag-annotation-ownership ํ”Œ๋ž˜๊ทธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ณต์‚ฌ ์†Œ์œ  flag.go cli.metadata_ownership
go53-pflag-bounded-count ํšŸ์ˆ˜ ํ”Œ๋ž˜๊ทธ์˜ ์ƒํ•œ count.go cli.count_accumulation
go53-pflag-bounded-string-slice CSV ๋ชฉ๋ก์˜ ์ด ํ•ญ๋ชฉ ์˜ˆ์‚ฐ string_slice.go cli.collection_budget
go53-pflag-map-snapshot ๋ฌธ์ž์—ด ๋งต์˜ ๋…๋ฆฝ ์กฐํšŒ ๊ฒฐ๊ณผ string_to_string.go cli.map_snapshot
go53-pflag-deferred-function ํŒŒ์‹ฑ ํ›„ ํ•จ์ˆ˜ ํ”Œ๋ž˜๊ทธ ์‹คํ–‰ func.go, flag.go cli.side_effect_staging
go53-pflag-go-bridge-conflict ํ‘œ์ค€ flag ์—ฐ๊ฒฐ์˜ ์ถฉ๋Œ ์ง„๋‹จ golangflag.go cli.stdlib_bridge
go53-pflag-text-error-value Text ๊ฐ’์˜ ์‹คํŒจ ์ง„๋‹จ ๋ณด์กด text.go cli.custom_value_error
go53-pflag-local-time ๋‚ ์งœ ํ”Œ๋ž˜๊ทธ์˜ ์ง€์ • ์‹œ๊ฐ„๋Œ€ time.go cli.time_location
go53-pflag-canonical-network ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ์˜ ํ˜ธ์ŠคํŠธ ๋น„ํŠธ ๊ฒ€์‚ฌ ipnet.go cli.network_canonicality

spf13/afero

๋ฃจํŠธ Apache-2.0๊ณผ ์—ฌ๋Ÿฌ ๊ธฐ์—ฌ์ž์˜ ํ—ค๋”๋ฅผ ํ™•์ธํ–ˆ๋‹ค. match.go์˜ filepath ํŒŒ์ƒ ์‹ ํ˜ธ ๋ฐ ioutil.go์˜ Go Authors ์ถœ์ฒ˜๋Š” ์›์ „ ์ถ”์ ยท๊ณ ์ง€๊ฐ€ pending์ด๋‹ค. util.go์™€ mem/file.go์˜ ์—ฌ๋Ÿฌ ์ €์ž‘๊ถŒ๋„ ๋ณด์กด ๋Œ€์ƒ์ด๋‹ค.

ID ์ œ์•ˆํ•˜๋Š” ๋™์ž‘ ์ฝ์€ ๋ณ€๊ฒฝ ์•ต์ปค ๊ฒ€ํ† ์šฉ ํ–‰๋™ ๊ฐ€์กฑ
go53-afero-iofs-sub-validation io/fs ํ•˜์œ„ ๊ฒฝ๋กœ ๊ฒ€์ฆ iofs.go fs.subdirectory_contract
go53-afero-exclusive-safe-write ์•ˆ์ „ ์“ฐ๊ธฐ์˜ ์›์ž์  ์ƒˆ ํŒŒ์ผ ์ƒ์„ฑ util.go fs.exclusive_creation
go53-afero-atomic-replacement ์‹คํŒจ ์‹œ ์›๋ณธ์„ ์ง€ํ‚ค๋Š” ํŒŒ์ผ ๊ต์ฒด ioutil.go fs.atomic_replacement
go53-afero-bounded-read ํŒŒ์ผ ์ „์ฒด ์ฝ๊ธฐ์˜ ํฌ๊ธฐ ์ œํ•œ ioutil.go fs.read_budget
go53-afero-union-pagination ์˜ค๋ฒ„๋ ˆ์ด ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ์ผ๊ด€๋œ ์ปค์„œ unionFile.go fs.overlay_enumeration
go53-afero-copy-metadata ์˜ค๋ฒ„๋ ˆ์ด ๋ณต์‚ฌ์˜ ํŒŒ์ผ ๋ชจ๋“œ unionFile.go fs.copy_metadata
go53-afero-cache-invalidation ์ฝ๊ธฐ ์บ์‹œ์˜ ๋ช…์‹œ์  ๋ฌดํšจํ™” cacheOnReadFs.go fs.cache_invalidation
go53-afero-cache-clock ์ฝ๊ธฐ ์บ์‹œ์˜ ์ฃผ์ž… ๊ฐ€๋Šฅํ•œ ์‹œ๊ณ„ cacheOnReadFs.go fs.time_dependency
go53-afero-copy-on-write-tombstone ๊ธฐ๋ณธ ๊ณ„์ธต ์‚ญ์ œ์˜ ์ˆจ๊น€ ํ‘œ์‹ copyOnWriteFs.go, unionFile.go fs.overlay_deletion
go53-afero-readonly-truncate ์ฝ๊ธฐ ์ „์šฉ ์—ด๊ธฐ ํ”Œ๋ž˜๊ทธ์˜ ๊ธˆ์ง€ ๋ฒ”์œ„ readonlyfs.go fs.open_capability
go53-afero-regexp-rename ์ •๊ทœ์‹ ํŒŒ์ผ ํ•„ํ„ฐ์˜ ์ด๋ฆ„ ๋ณ€๊ฒฝ regexpfs.go fs.filtered_rename
go53-afero-mem-seek-contract ๋ฉ”๋ชจ๋ฆฌ ํŒŒ์ผ์˜ seek ๊ฒฝ๊ณ„ mem/file.go fs.file_position
go53-afero-mem-subtree-rename ๋ฉ”๋ชจ๋ฆฌ ๋””๋ ‰ํ„ฐ๋ฆฌ ์ด๋™์˜ ์ˆœํ™˜ ๊ฑฐ์ ˆ memmap.go fs.tree_relocation
go53-afero-glob-limit glob ๊ฒฐ๊ณผ ์ˆ˜์˜ ์ œํ•œ match.go fs.pattern_expansion
go53-afero-symlink-lexical-base BasePath์˜ ๋งํฌ ์ •์ฑ… ์„ ํƒ basepath.go fs.symlink_policy

spf13/cobra

๊ฒ€์‚ฌํ•œ ์†Œ์Šค์˜ Apache-2.0 ํ—ค๋”๋ฅผ ํ™•์ธํ–ˆ๋‹ค. cobra.go์˜ ๋‹ค๋ฅธ ๋„๊ตฌ์—์„œ ์˜๊ฐ์„ ๋ฐ›์•˜๋‹ค๋Š” ๋ฌธ๊ตฌ๋Š” ๊ธฐ๋กํ•˜์ง€๋งŒ ๋ณต์‚ฌ ์‚ฌ์‹ค๋กœ ํŒ์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค. pflag ๋ฐ ๋ฌธ์„œ ๋„๊ตฌ ์˜์กด์„ฑ ๊ณ ์ง€๋Š” ๋”ฐ๋กœ ๊ฒ€ํ† ํ•ด์•ผ ํ•œ๋‹ค.

ID ์ œ์•ˆํ•˜๋Š” ๋™์ž‘ ์ฝ์€ ๋ณ€๊ฒฝ ์•ต์ปค ๊ฒ€ํ† ์šฉ ํ–‰๋™ ๊ฐ€์กฑ
go53-cobra-checked-tree-insertion ๋ช…๋ น ํŠธ๋ฆฌ์˜ ์ˆœํ™˜ ์‚ฝ์ž… ๊ฑฐ์ ˆ command.go cli.command_graph
go53-cobra-command-name-conflict ๋ช…๋ น ์ด๋ฆ„๊ณผ ๋ณ„์นญ์˜ ์ถฉ๋Œ command.go cli.command_namespace
go53-cobra-ranked-suggestions ์ถ”์ฒœ ๋ช…๋ น์˜ ์ˆœ์œ„์™€ ๊ฐœ์ˆ˜ command.go, cobra.go cli.diagnostic_ranking
go53-cobra-completion-state ์ž๋™ ์™„์„ฑ์˜ ์ƒํƒœ ๋ณ€๊ฒฝ ํšŒ์ˆ˜ flag_groups.go, completions.go cli.completion_isolation
go53-cobra-context-preflight ์ทจ์†Œ๋œ ๋ช…๋ น์˜ ํ›… ์‹คํ–‰ ๋ฐฉ์ง€ command.go cli.execution_cancellation
go53-cobra-error-writer ์ง„๋‹จ ์“ฐ๊ธฐ์˜ ์˜ค๋ฅ˜ ๋ฐ˜ํ™˜ command.go cli.output_failure
go53-cobra-validator-all-errors ์œ„์น˜ ์ธ์ž ๊ฒ€์‚ฌ์˜ ์ „์ฒด ์˜ค๋ฅ˜ args.go cli.validation_composition
go53-cobra-required-annotation ํ•„์ˆ˜ ํ”Œ๋ž˜๊ทธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์˜ ์ž˜๋ชป๋œ ๊ฐ’ command.go cli.annotation_schema
go53-cobra-command-finalizers ๋ช…๋ น๋ณ„ ์ข…๋ฃŒ ํ›…์˜ ๋ฒ”์œ„ command.go, cobra.go cli.lifecycle_cleanup
go53-cobra-group-registration ๋ช…๋ น ๊ทธ๋ฃน ID์˜ ์ค‘๋ณต ๋“ฑ๋ก command.go cli.group_registry
go53-cobra-cancel-completion ์ทจ์†Œ๋œ ์ž๋™ ์™„์„ฑ์˜ ์ฝœ๋ฐฑ ๋ฒ”์œ„ completions.go cli.completion_cancellation
go53-cobra-active-help-lines ActiveHelp์˜ ์ค„ ๊ฒฝ๊ณ„ ๋ณดํ˜ธ active_help.go cli.completion_protocol
go53-cobra-markdown-filename ๋ฌธ์„œ ํŒŒ์ผ ์ด๋ฆ„์˜ ์ถฉ๋Œ ๊ฒ€์‚ฌ doc/md_docs.go cli.documentation_paths
go53-cobra-man-fixed-date man ๋ฌธ์„œ์˜ ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ๋‚ ์งœ doc/man_docs.go cli.documentation_clock
go53-cobra-yaml-command-metadata YAML ๋ช…๋ น ๋ฌธ์„œ์˜ ๋ณ„์นญ ์ •๋ณด doc/yaml_docs.go cli.documentation_schema

hashicorp/go-retryablehttp

๋ฃจํŠธ MPL-2.0๊ณผ Go ํŒŒ์ผ์˜ SPDX๋ฅผ ํ™•์ธํ–ˆ๋‹ค. ์†Œ์Šคยท์‹คํ–‰๋ฌผ ๋ฐฐํฌ ๋ฐฉ์‹, ๋ณ€๊ฒฝ ํŒŒ์ผยท๊ณ ์ง€ยท์†Œ์Šค ์ œ๊ณต ์˜๋ฌด ๋ฐ ์˜์กด์„ฑ ๋ฒ”์œ„๋ฅผ ํ™•์ •ํ•˜๊ธฐ ์ „์—๋Š” ๋ฐ˜์ž…/๋ฐฐํฌ ์ž๊ฒฉ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค.

ID ์ œ์•ˆํ•˜๋Š” ๋™์ž‘ ์ฝ์€ ๋ณ€๊ฒฝ ์•ต์ปค ๊ฒ€ํ† ์šฉ ํ–‰๋™ ๊ฐ€์กฑ
go53-retryhttp-idempotent-policy ๋ฉ”์„œ๋“œ์™€ ๋ฉฑ๋“ฑํ‚ค ๊ธฐ๋ฐ˜ ์žฌ์‹œ๋„ client.go http.retry_safety
go53-retryhttp-server-delay-cap ์„œ๋ฒ„ Retry-After์˜ ์ตœ๋Œ€ ๋Œ€๊ธฐ client.go http.server_backpressure
go53-retryhttp-duration-overflow Retry-After ์ดˆ์˜ ์˜ค๋ฒ„ํ”Œ๋กœ client.go http.duration_representation
go53-retryhttp-header-selection ์—ฌ๋Ÿฌ Retry-After ๊ฐ’์˜ ์„ ํƒ client.go http.header_resolution
go53-retryhttp-deadline-backoff ๋‚จ์€ ๊ธฐํ•œ๊ณผ ๋Œ€๊ธฐ ์‹œ๊ฐ„์˜ ๋น„๊ต client.go http.deadline_budget
go53-retryhttp-exhaustion-error ์†Œ์ง„๋œ ์žฌ์‹œ๋„์˜ ๊ตฌ์กฐํ™” ์˜ค๋ฅ˜ client.go http.failure_telemetry
go53-retryhttp-request-body-snapshot ๊ฐ€๋ณ€ ๋ฐ”์ดํŠธ ์š”์ฒญ ๋ณธ๋ฌธ์˜ ์†Œ์œ  client.go http.body_ownership
go53-retryhttp-bounded-reader-body ์ŠคํŠธ๋ฆฌ๋ฐ ์š”์ฒญ ๋ณธ๋ฌธ์˜ ์ฝ๊ธฐ ์˜ˆ์‚ฐ client.go http.body_buffer_budget
go53-retryhttp-prepare-error-close ์žฌ์‹œ๋„ ์ค€๋น„ ์‹คํŒจ ์‹œ ๋ณธ๋ฌธ ์ •๋ฆฌ client.go http.retry_resource_lifetime
go53-retryhttp-response-hook-attempts ์‘๋‹ต ํ›…์˜ ์‹œ๋„ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ client.go http.hook_observability
go53-retryhttp-redacted-query ๋กœ๊ทธ URL์˜ ์„ ํƒ์  ์ฟผ๋ฆฌ ๊ฐ€๋ฆฌ๊ธฐ client.go http.log_projection
go53-retryhttp-clock-backoff ๋…๋ฆฝ์ ์ธ backoff ์‹œ๊ณ„ client.go http.clock_injection
go53-retryhttp-deterministic-jitter ์ฃผ์ž… ๋‚œ์ˆ˜์— ๋”ฐ๋ฅธ jitter client.go http.randomness_injection
go53-retryhttp-roundtripper-default ๋ผ์šด๋“œํŠธ๋ฆฌํผ์˜ ๊ธฐ๋ณธ ํด๋ผ์ด์–ธํŠธ ๊ณ„์•ฝ roundtripper.go http.adapter_initialization
go53-retryhttp-cert-wrapped-errors ๋žฉํ•‘๋œ ์ธ์ฆ์„œ ์˜ค๋ฅ˜์˜ ๋ถ„๋ฅ˜ cert_error_go120.go, client.go http.error_type_resolution

go-viper/mapstructure

๋ฃจํŠธ MIT๋ฅผ ํ™•์ธํ–ˆ๋‹ค. ๊ฒ€์‚ฌํ•œ ์ฃผ์š” Go ํŒŒ์ผ์— ๋‹ค๋ฅธ ๋ผ์ด์„ ์Šค ์‹ ํ˜ธ๋ฅผ ๋ณด์ง€ ๋ชปํ–ˆ์ง€๋งŒ ์ „์ฒด ์ €์žฅ์†ŒยทํŒŒ์ƒ ๋ฐ์ดํ„ฐยทํ•™์Šต ๊ถŒ๋ฆฌ์˜ ์ผ๊ด„ ์Šน์ธ์œผ๋กœ ํ•ด์„ํ•˜์ง€ ์•Š๋Š”๋‹ค.

ID ์ œ์•ˆํ•˜๋Š” ๋™์ž‘ ์ฝ์€ ๋ณ€๊ฒฝ ์•ต์ปค ๊ฒ€ํ† ์šฉ ํ–‰๋™ ๊ฐ€์กฑ
go53-mapstructure-decoder-nil-config ๋””์ฝ”๋” ์„ค์ •์˜ nil ์ง„๋‹จ mapstructure.go decode.configuration_precondition
go53-mapstructure-depth-budget ์žฌ๊ท€ ๋””์ฝ”๋”ฉ ๊นŠ์ด์˜ ์ƒํ•œ mapstructure.go decode.recursion_budget
go53-mapstructure-cycle-input ์ˆœํ™˜ ์ž…๋ ฅ์˜ ๋ช…์‹œ์  ๊ฑฐ์ ˆ mapstructure.go decode.graph_cycle
go53-mapstructure-collection-budget ์ปจํ…Œ์ด๋„ˆ ๋””์ฝ”๋”ฉ ํ•ญ๋ชฉ ์˜ˆ์‚ฐ mapstructure.go decode.container_budget
go53-mapstructure-normalized-key-collision ์ •๊ทœํ™”ํ•œ ๋งต ํ‚ค์˜ ์ถฉ๋Œ mapstructure.go decode.key_identity
go53-mapstructure-unused-order ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ํ‚ค์˜ ์•ˆ์ •๋œ ์ˆœ์„œ mapstructure.go decode.metadata_order
go53-mapstructure-partial-result-policy ์‹คํŒจํ•œ ๋””์ฝ”๋”ฉ์˜ ๊ฒฐ๊ณผ ์ •์ฑ… mapstructure.go decode.transactional_output
go53-mapstructure-hooks-errors-is ๋Œ€์•ˆ ํ›…์˜ ์›์ธ ์˜ค๋ฅ˜ ๋ณด์กด decode_hooks.go decode.alternative_hooks
go53-mapstructure-typed-nil-hook ํ•ฉ์„ฑ ํ›…์˜ typed-nil ์ฒ˜๋ฆฌ decode_hooks.go decode.hook_value_lifetime
go53-mapstructure-delimited-escape ์ด์Šค์ผ€์ดํ”„ ๊ฐ€๋Šฅํ•œ ๋ชฉ๋ก ํ›… decode_hooks.go decode.delimited_text
go53-mapstructure-lossless-numeric ์†์‹ค ์—†๋Š” ์•ฝํ•œ ์ˆซ์ž ๋ณ€ํ™˜ mapstructure.go decode.numeric_exactness
go53-mapstructure-hook-location ์‹œ๊ฐ„ ํ›…์˜ ๋ช…์‹œ์  ์ง€์—ญ decode_hooks.go decode.temporal_context
go53-mapstructure-remain-conflict remain ํ•„๋“œ์˜ ์ค‘๋ณต ์„ ์–ธ mapstructure.go decode.struct_schema
go53-mapstructure-tag-precedence ํƒœ๊ทธ ๋ชฉ๋ก์˜ ๋นˆ ๊ฐ’ ์ฒ˜๋ฆฌ mapstructure.go decode.tag_resolution
go53-mapstructure-unmarshal-ownership ํ…์ŠคํŠธ ํ›…์˜ ์ƒˆ ๊ฐ’ ์†Œ์œ  decode_hooks.go decode.custom_unmarshal

go-ini/ini

๋ฃจํŠธ์™€ ๊ฒ€์‚ฌํ•œ ์†Œ์Šค์˜ Apache-2.0 ๊ณ ์ง€๋ฅผ ํ™•์ธํ–ˆ๋‹ค. struct.go์—๋Š” encoding/json/encode.go์—์„œ ์ˆ˜์ •ํ•ด ๋ณต์‚ฌํ–ˆ๋‹ค๋Š” ์‹ ํ˜ธ๊ฐ€ ์žˆ์–ด ์›์ „ revisionยท๊ณ ์ง€๋Š” ๋ณ„๋„๋กœ pending์ด๋‹ค.

ID ์ œ์•ˆํ•˜๋Š” ๋™์ž‘ ์ฝ์€ ๋ณ€๊ฒฝ ์•ต์ปค ๊ฒ€ํ† ์šฉ ํ–‰๋™ ๊ฐ€์กฑ
go53-ini-parse-byte-budget INI ์ž…๋ ฅ ๋ฐ”์ดํŠธ ์ƒํ•œ ini.go, parser.go config.input_budget
go53-ini-quoted-comment ๋”ฐ์˜ดํ‘œ ๊ฐ’์˜ ์ฃผ์„ ๊ฒฝ๊ณ„ parser.go config.lexical_comments
go53-ini-section-duplicate-policy ์ค‘๋ณต ์„น์…˜์˜ ์ •์ฑ… ์„ ํƒ ini.go, file.go, parser.go config.section_identity
go53-ini-interpolation-cycle ๊ฐ’ ์น˜ํ™˜์˜ ์ˆœํ™˜ ์ง„๋‹จ key.go config.interpolation_graph
go53-ini-shadow-snapshot ์ค‘๋ณต ํ‚ค ๊ฐ’์˜ ๋นˆ ๊ฐ’ ๋ณด์กด key.go config.shadow_history
go53-ini-reader-reload-policy ํ•œ ๋ฒˆ ์“ฐ๋Š” reader์˜ ์žฌ๋กœ๋“œ data_source.go, file.go config.source_lifetime
go53-ini-append-transaction ์„ค์ • ์›์ฒœ ์ถ”๊ฐ€์˜ ์›์ž์„ฑ file.go config.source_transaction
go53-ini-section-delete-index ์ค‘๋ณต ์„น์…˜ ์‚ญ์ œ์˜ ์ธ๋ฑ์Šค ๊ณ„์•ฝ file.go config.indexed_removal
go53-ini-key-rename ํ‚ค ์ด๋ฆ„ ๋ณ€๊ฒฝ๊ณผ ์กฐํšŒ ์ธ๋ฑ์Šค section.go, key.go config.key_relocation
go53-ini-effective-parent-keys ๋ถ€๋ชจ ์„น์…˜์˜ ์œ ํšจ ํ‚ค section.go config.inheritance_resolution
go53-ini-save-atomic INI ์ €์žฅ์˜ ํŒŒ์ผ ๊ต์ฒด ๊ณ„์•ฝ file.go config.persistence_atomicity
go53-ini-write-style-instance ์„ค์ • ์ธ์Šคํ„ด์Šค๋ณ„ ์ถœ๋ ฅ ์Šคํƒ€์ผ ini.go, file.go config.format_state
go53-ini-struct-required-tag ๊ตฌ์กฐ์ฒด ํ•„๋“œ์˜ ํ•„์ˆ˜ ํ‚ค ํƒœ๊ทธ struct.go config.struct_presence
go53-ini-struct-nil-target ๊ตฌ์กฐ์ฒด ๋งคํ•‘์˜ typed-nil ๋Œ€์ƒ struct.go config.reflection_precondition
go53-ini-strict-list-index-errors ๋ชฉ๋ก ๋ณ€ํ™˜์˜ ์‹คํŒจ ์œ„์น˜ key.go config.typed_list_diagnostics

dustin/go-humanize

API ๋ถ„๋ฅ˜๋Š” NOASSERTION์ด์ง€๋งŒ ์‹ค์ œ ๋ฃจํŠธ๋Š” MIT๋‹ค. number.go์˜ gorhill ์›์ „์€ ๊ณ ์ • gist revision์—์„œ WTFPL v2๋ฅผ ํ™•์ธํ–ˆ๋‹ค. MIT ๋‹จ๋… ํ‘œ์‹œ ์—†์ด ์›์ „ ํ—ค๋”ยท๋ณ„๋„ ๋ผ์ด์„ ์Šค ๊ทผ๊ฑฐยท๋ฐฐํฌ ๋ฒ”์œ„๋ฅผ ๋ณด์กด/ํ™•์ •ํ•ด์•ผ ํ•œ๋‹ค.

ID ์ œ์•ˆํ•˜๋Š” ๋™์ž‘ ์ฝ์€ ๋ณ€๊ฒฝ ์•ต์ปค ๊ฒ€ํ† ์šฉ ํ–‰๋™ ๊ฐ€์กฑ
go53-humanize-exact-fractional-bytes ์†Œ์ˆ˜ ๋ฐ”์ดํŠธ์˜ ์ •ํ™•ํ•œ ์‚ฐ์ˆ  bytes.go format.exact_fractional_bytes
go53-humanize-byte-rates ์ •ํ™•ํ•œ ์œ ๋ฆฌ์ˆ˜ ๋ฐ”์ดํŠธ ์†๋„ bytes.go, bigbytes.go format.rational_byte_rates
go53-humanize-explicit-byte-unit ๋ช…์‹œํ•œ ๋‹จ์œ„๋กœ ๋ฐ”์ดํŠธ ํ‘œ์‹œ bytes.go format.explicit_byte_unit
go53-humanize-bigbytes-precision ์ž„์˜ ์ •๋ฐ€๋„ ๋ฐ”์ดํŠธ ํ‘œ์‹œ bigbytes.go, big.go format.arbitrary_precision_bytes
go53-humanize-strict-comma-parse ์—„๊ฒฉํ•œ ์ •์ˆ˜ ๊ตฌ๋ถ„์ž ๋ฌธ๋ฒ• comma.go format.grouped_integer_grammar
go53-humanize-append-comma ๋ฒ„ํผ์— ์ •์ˆ˜ ํ‘œ์‹œ ์ถ”๊ฐ€ comma.go, ftoa.go, big.go format.append_number_buffer
go53-humanize-int64-template ์ •๋ฐ€ ์†์‹ค ์—†๋Š” ์ •์ˆ˜ ์„œ์‹ number.go format.exact_integer_template
go53-humanize-precise-ftoa ๊ณ ์ •๋ฐ€ ์‹ค์ˆ˜ ๋ฐ˜์˜ฌ๋ฆผ ํ‘œ์‹œ ftoa.go format.float_precision_rounding
go53-humanize-scientific-si ์ง€์ˆ˜ ํ‘œ๊ธฐ์˜ SI ์ˆซ์ž ํŒŒ์‹ฑ si.go format.scientific_si_grammar
go53-humanize-rounded-si-promotion ๋ฐ˜์˜ฌ๋ฆผ ์ดํ›„ SI ๋‹จ์œ„ ์Šน๊ฒฉ si.go, ftoa.go format.rounded_si_promotion
go53-humanize-relative-table-validation ์ƒ๋Œ€ ์‹œ๊ฐ„ ํ‘œ์˜ ์‚ฌ์ „ ๊ฒ€์ฆ times.go time.checked_magnitude_table
go53-humanize-duration-parts ๊ธฐ๊ฐ„์˜ ์ œํ•œ๋œ ๋‹จ์œ„ ๋ถ„ํ•ด times.go time.bounded_duration_decomposition
go53-humanize-ordinal64 ์ „์ฒด int64 ๋ฒ”์œ„์˜ ์ˆœ์œ„ ํ‘œ์‹œ ordinals.go format.signed_ordinal
go53-humanize-case-plural ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๋ณด์กดํ•˜๋Š” ๋ณต์ˆ˜ํ˜• english/words.go text.case_preserving_plural
go53-humanize-quoted-word-series ์ด์Šค์ผ€์ดํ”„๋œ ๋‹จ์–ด ๋‚˜์—ด english/words.go text.escaped_series

google/uuid

๋ฃจํŠธ BSD-3-Clause ๋ฐ ๊ฒ€์‚ฌํ•œ Go ํŒŒ์ผ์˜ Google ์ €์ž‘๊ถŒยทLICENSE ์—ฐ๊ฒฐ ํ—ค๋”๋ฅผ ํ™•์ธํ–ˆ๋‹ค. ์‹ค์ œ closure์˜ ํ”Œ๋žซํผ ํŒŒ์ผยทํ…Œ์ŠคํŠธยท๊ณ ์ง€ ๋ฒ”์œ„๋ฅผ ์•„์ง ๊ณ ์ •ํ•˜์ง€ ์•Š์•˜๋‹ค.

ID ์ œ์•ˆํ•˜๋Š” ๋™์ž‘ ์ฝ์€ ๋ณ€๊ฒฝ ์•ต์ปค ๊ฒ€ํ† ์šฉ ํ–‰๋™ ๊ฐ€์กฑ
go53-uuid-canonical-parse ์ •๊ทœ UUID ํ…์ŠคํŠธ ์ •์ฑ… uuid.go, util.go identifier.canonical_text
go53-uuid-atomic-batch-parse ์›์ž์ ์ธ UUID ๋ชฉ๋ก ํŒŒ์‹ฑ uuid.go identifier.transactional_batch
go53-uuid-append-text UUID ํ…์ŠคํŠธ ๋ฒ„ํผ ์ถ”๊ฐ€ marshal.go, uuid.go identifier.append_serialization
go53-uuid-sorted-unique ์›๋ณธ์„ ๋ณด์กดํ•˜๋Š” UUID ์ •๋ ฌยท์ค‘๋ณต ์ œ๊ฑฐ uuid.go, util.go identifier.sorted_deduplication
go53-uuid-bounded-random-batch ์ œํ•œ๋œ UUID ๋‚œ์ˆ˜ ๋ฐฐ์น˜ version4.go, uuid.go identifier.bounded_entropy_batch
go53-uuid-write-text ์งง์€ ์“ฐ๊ธฐ๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” UUID ์ถœ๋ ฅ marshal.go, uuid.go identifier.short_write_io
go53-uuid-sql-null-reset SQL UUID์˜ null ์ดˆ๊ธฐํ™” ๊ณ„์•ฝ sql.go identifier.sql_scan_state
go53-uuid-owned-binary-value ์†Œ์œ ๊ถŒ์ด ๋ถ„๋ฆฌ๋œ SQL ๋ฐ”์ด๋„ˆ๋ฆฌ ๊ฐ’ sql.go, marshal.go identifier.sql_binary_ownership
go53-uuid-nullable-binary nullable UUID์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋Œ€์นญ์„ฑ null.go identifier.nullable_encoding
go53-uuid-checked-hash ํ•ด์‹œ UUID์˜ ๋ช…์‹œ์  ์˜ค๋ฅ˜ ๊ณ„์•ฝ hash.go identifier.checked_hash_io
go53-uuid-v1-v6-conversion UUID v1ยทv6 ๋น„ํŠธ ๋ฐฐ์น˜ ๋ณ€ํ™˜ version1.go, version6.go, time.go, util.go identifier.reversible_time_layout
go53-uuid-checked-timestamp UUID ์‹œ๊ฐ์˜ ๊ฒ€์ฆ๋œ ์ถ”์ถœ time.go identifier.checked_timestamp
go53-uuid-explicit-v7-time ์ „์—ญ ์ƒํƒœ ์—†๋Š” ๋ช…์‹œ์  UUID v7 version7.go, version4.go, time.go identifier.explicit_time_generation
go53-uuid-instance-v7-generator ๋…๋ฆฝ์ ์ธ ๋‹จ์กฐ ์ฆ๊ฐ€ UUID v7 ์ƒ์„ฑ๊ธฐ version7.go, time.go, uuid.go identifier.isolated_monotonic_generator
go53-uuid-checked-dce-domain ๋ถ€์ž‘์šฉ ์ด์ „ DCE domain ๊ฒ€์‚ฌ dce.go, version1.go, time.go, node.go identifier.dce_domain_policy

UUID์˜ ๋…๋ฆฝ bit-layout ๊ธฐ์ค€์œผ๋กœ๋Š” RFC 9562 ์›๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ธ์Šคํ„ด์Šค์˜ ๋‹จ์กฐ ์ฆ๊ฐ€ยท์‹คํŒจ ํ›„ ์ƒํƒœ ์ •์ฑ…์€ ์ด ํ”„๋กœ์ ํŠธ๊ฐ€ ์„ ํƒํ•  ๊ณ„์•ฝ์ด๋ฉฐ ๋ชจ๋“  UUID ๊ตฌํ˜„์˜ ํ•„์ˆ˜ ์„ฑ์งˆ๋กœ ์ฃผ์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.