xz ํŒจํ‚ค์ง€์˜ ๊ฒฝ์šฐ์™€ ์œ ์‚ฌํ•˜๊ฒŒ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์ œ์–ด๊ถŒ์„ ์–ป์œผ๋ ค๋Š” ์‹œ๋„

์˜คํ”ˆ ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋ณด์•ˆ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด Linux Foundation์˜ ํ›„์›์œผ๋กœ ์„ค๋ฆฝ๋œ OpenSSF(์˜คํ”ˆ ์†Œ์Šค ๋ณด์•ˆ ์žฌ๋‹จ)๋Š” ๊ทธ ์Šคํƒ€์ผ์„ ์—ฐ์ƒ์‹œํ‚ค๋Š” ์ธ๊ธฐ ์žˆ๋Š” ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ํ†ต์ œ๊ถŒ์„ ์–ป์œผ๋ ค๋Š” ์‹œ๋„์™€ ๊ด€๋ จ๋œ ํ™œ๋™ ์‹๋ณ„์— ๋Œ€ํ•ด ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๊ฒฝ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. xz ํ”„๋กœ์ ํŠธ์— ๋ฐฑ๋„์–ด ์„ค์น˜๋ฅผ ์ค€๋น„ํ•˜๋Š” ๊ณผ์ •์—์„œ ๊ณต๊ฒฉ์ž๊ฐ€ ์ทจํ•œ ํ–‰๋™์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค. xz์— ๋Œ€ํ•œ ๊ณต๊ฒฉ๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ, ์ด์ „์— ๊ฐœ๋ฐœ์— ๊นŠ์ด ๊ด€์—ฌํ•˜์ง€ ์•Š์€ ์˜์‹ฌ์Šค๋Ÿฌ์šด ๊ฐœ์ธ์€ ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌํšŒ ๊ณตํ•™ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ณต๊ฒฉ์ž๋Š” Node.js, jQuery, Appium, Dojo, PEP, Mocha ๋ฐ webpack๊ณผ ๊ฐ™์€ ๊ฐœ๋ฐฉํ˜• JavaScript ํ”„๋กœ์ ํŠธ์˜ ๊ณต๋™ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์ค‘๋ฆฝ ํ”Œ๋žซํผ ์—ญํ• ์„ ํ•˜๋Š” OpenJS Foundation ์šด์˜ ์œ„์›ํšŒ ๊ตฌ์„ฑ์›๊ณผ ์„œ์‹ ์„ ๊ตํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜์‹ฌ์Šค๋Ÿฌ์šด ์˜คํ”ˆ ์†Œ์Šค ๊ฐœ๋ฐœ ์ด๋ ฅ์„ ๊ฐ€์ง„ ์—ฌ๋Ÿฌ ํƒ€์‚ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ํฌํ•จ๋œ ์„œ์‹ ์€ OpenJS ์กฐ์ง์—์„œ ์„ ๋ณ„ํ•œ ์ธ๊ธฐ JavaScript ํ”„๋กœ์ ํŠธ ์ค‘ ํ•˜๋‚˜๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์„ ๊ฒฝ์˜์ง„์—๊ฒŒ ์„ค๋“ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ ์ด์œ ๋Š” โ€œ์ค‘์š”ํ•œ ์ทจ์•ฝ์ ์— ๋Œ€ํ•œ ๋ณดํ˜ธโ€๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ๋ฐํ˜”์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ทจ์•ฝ์ ์˜ ๋ณธ์งˆ์— ๋Œ€ํ•œ ์„ธ๋ถ€ ์ •๋ณด๋Š” ์ œ๊ณต๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์˜์‹ฌ์Šค๋Ÿฌ์šด ๊ฐœ๋ฐœ์ž๋Š” ์ด์ „์— ๊ทธ๊ฐ€ ์ž‘์€ ๋ถ€๋ถ„๋งŒ ๋งก์•˜๋˜ ๊ฐœ๋ฐœ์—์„œ ๊ทธ๋ฅผ ํ”„๋กœ์ ํŠธ์˜ ์œ ์ง€ ๊ด€๋ฆฌ ๋‹ด๋‹น์ž์— ํฌํ•จ์‹œํ‚ค๊ฒ ๋‹ค๊ณ  ์ œ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ OpenJS ์กฐ์ง๊ณผ ๊ด€๋ จ๋˜์ง€ ์•Š์€ ๋‘ ๊ฐœ์˜ ์ธ๊ธฐ ์žˆ๋Š” JavaScript ํ”„๋กœ์ ํŠธ์—์„œ ์ฝ”๋“œ๋ฅผ ์ ์šฉํ•˜๋Š” ์œ ์‚ฌํ•œ ์˜์‹ฌ์Šค๋Ÿฌ์šด ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ์‹๋ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ๋ก€๊ฐ€ ๋ถ„๋ฆฌ๋˜์ง€ ์•Š๊ณ  ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์˜ ์œ ์ง€๊ด€๋ฆฌ์ž๋Š” ์ฝ”๋“œ๋ฅผ ์ˆ˜๋ฝํ•˜๊ณ  ์ƒˆ๋กœ์šด ๊ฐœ๋ฐœ์ž๋ฅผ ์Šน์ธํ•  ๋•Œ ๊ฒฝ๊ณ„์‹ฌ์„ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

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

๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ˆ˜๋ฝํ•  ๋•Œ ๋ณ‘ํ•ฉ ์š”์ฒญ์— ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จ์‹œํ‚ค๋ ค๋Š” ์‹œ๋„(์˜ˆ: xz์—์„œ๋Š” ์••์ถ• ํ’€๊ธฐ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ๋ฐฑ๋„์–ด๊ฐ€ ์•„์นด์ด๋ธŒ์— ์ œ์ถœ๋จ) ๋˜๋Š” ํ˜ผ๋ž€์Šค๋Ÿฝ๊ฑฐ๋‚˜ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์šด ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•˜๋ ค๋Š” ์ž ์žฌ์ ์ธ ์•…์˜์  ํ™œ๋™ ์‹œ๋„์˜ ์ง•ํ›„๋กœ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฐ˜์‘์„ ์ธก์ •ํ•˜๊ณ  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ถ”์ ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ œ์ถœ๋œ ์‚ฌ์†Œํ•œ ๋ณด์•ˆ ์†์ƒ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์‹œํ—˜ ์‹œ๋„๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: xz๊ฐ€ Safe_fprintf ํ•จ์ˆ˜๋ฅผ fprintf๋กœ ๋Œ€์ฒดํ•จ). ๋˜ํ•œ ํ”„๋กœ์ ํŠธ ์ปดํŒŒ์ผ, ์กฐ๋ฆฝ ๋ฐ ๋ฐฐํฌ ๋ฐฉ๋ฒ•์˜ ๋น„์ •ํ˜• ๋ณ€๊ฒฝ, ํƒ€์‚ฌ ์•„ํ‹ฐํŒฉํŠธ ์‚ฌ์šฉ ๋ฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ธด๊ธ‰ํ•˜๊ฒŒ ์ฑ„ํƒํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋Š๋‚Œ์ด ๋†’์•„์ง€๋Š” ๊ฒฝ์šฐ์—๋„ ์˜์‹ฌ์„ ๋ถˆ๋Ÿฌ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€