์ข…์†์„ฑ ๋ถ„์„์„ ํ†ตํ•œ ๋ผ์ด์„ ์Šค ์ค€์ˆ˜ ๊ฐ์‚ฌ

์ข…์†์„ฑ ๋ถ„์„์„ ํ†ตํ•œ ๋ผ์ด์„ ์Šค ์ค€์ˆ˜ ๊ฐ์‚ฌ

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

์†Œํ”„ํŠธ์›จ์–ด๋Š” ๋Œ€๋ถ€๋ถ„ ์ž‘์„ฑ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์กฐ๋ฆฝ๋˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. Black Duck 2026 OSSRA ๋ณด๊ณ ์„œ์— ๋”ฐ๋ฅด๋ฉด ์ƒ์šฉ ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ 98%๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, 87%๋Š” ์ตœ์†Œ ํ•˜๋‚˜ ์ด์ƒ์˜ ์•Œ๋ ค์ง„ ์ทจ์•ฝ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ์ฝ”๋“œ๋ฒ ์ด์Šค๋‹น ํ‰๊ท  ์ทจ์•ฝ์  ์ˆ˜๋Š” ์ „๋…„ ๋Œ€๋น„ ๋‘ ๋ฐฐ ์ด์ƒ ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ผ์ด์„ ์Šค ์ค€์ˆ˜ ๊ฐ์‚ฌ๋Š” ์ด์™€๋Š” ๋‹ค๋ฅด์ง€๋งŒ ๊ด€๋ จ๋œ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต์„ ์ฐพ๋Š” ๋ถ„์•ผ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์–ด๋–ค ๊ตฌ์„ฑ ์š”์†Œ์— ์ทจ์•ฝ์ ์ด ์žˆ๋Š”์ง€๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋ฐฐํฌ, ์ˆ˜์ • ๋˜๋Š” ์ƒ์šฉํ™” ๋ฐฉ์‹์— ๋Œ€ํ•œ ๋ฒ•์  ์˜๋ฌด๋ฅผ ๋ถ€๊ณผํ•˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ๋Š” ๋ฌด์—‡์ธ์ง€๋ฅผ ๋ฐํžˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋…์  ์ƒ์šฉ ์ œํ’ˆ์—์„œ GPL-2.0 ์ข…์†์„ฑ์„ ๋ˆ„๋ฝํ•˜๋Š” ๊ฒƒ์€ ๋‹จ์ˆœํ•œ ๋ณด์•ˆ ์‚ฌ๊ณ ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ด๋Š” ์†Œ์Šค ์ฝ”๋“œ ๊ณต๊ฐœ, ๋ฒ•์  ํ•ฉ์˜ ๋˜๋Š” ์ œํ’ˆ ํšŒ์ˆ˜๋ฅผ ์š”๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด์„ ์Šค ์œ„๋ฐ˜์ž…๋‹ˆ๋‹ค.

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

๋ผ์ด์„ ์Šค ๋ณ€๊ฒฝ์ด์‹ ๊ฐ€์š”? ๊ทธ ์˜ํ–ฅ์„ ์•Œ์•„๋ณด์„ธ์š”.

SMART TS XL ํ‘œ์ค€ SBOM ์ƒ์„ฑ๊ธฐ๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š” ๋ฉ”์ธํ”„๋ ˆ์ž„ ์†Œํ”„ํŠธ์›จ์–ด์šฉ ๊ตฌ์„ฑ ์š”์†Œ ๋ชฉ๋ก์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š”โ€ฆ

์ฐจ๋ก€

์ข…์†์„ฑ ๋ถ„์„์ด ๊ธฐ์ดˆ๊ฐ€ ๋˜๋Š” ์ด์œ 

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

๋ผ์ด์„ ์Šค ๊ทœ์ • ์ค€์ˆ˜๋ฅผ ์œ„ํ•ด ์˜์กด์„ฑ ๋ถ„์„์—์„œ ๋ฐ˜๋“œ์‹œ ๋‹ตํ•ด์•ผ ํ•  ์„ธ ๊ฐ€์ง€ ์งˆ๋ฌธ:

์–ด๋–ค ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋‚˜์š”? ๋‹จ์ˆœํžˆ ๋ช…์‹œ๋œ ์ง์ ‘์ ์ธ ์ข…์†์„ฑ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ package.json or pom.xmlํ•˜์ง€๋งŒ ๋ชจ๋“  ์ „์ด์  ์ข…์†์„ฑ, ์†Œ์Šค ํŠธ๋ฆฌ์— ๋ณต์‚ฌ๋˜๋Š” ๋ชจ๋“  ๋ฒค๋”๋ง ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ๋ฐ”์ด๋„ˆ๋ฆฌ์— ์ปดํŒŒ์ผ๋˜๋Š” ๋ชจ๋“  ์ •์  ๋งํฌ ๊ตฌ์„ฑ ์š”์†Œ, ๊ทธ๋ฆฌ๊ณ  ๋Ÿฐํƒ€์ž„์— ํ˜ธ์ถœ๋˜๋Š” ๋ชจ๋“  ๋™์  ๋กœ๋“œ ๋ชจ๋“ˆ๊นŒ์ง€ ๋ชจ๋‘ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ์ˆ˜ํ•œ SCA ์—”์ง„์€ ์ด๋Ÿฌํ•œ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ NVD์™€ ๊ฐ™์€ ์ทจ์•ฝ์  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ ์ฐธ์กฐํ•˜๊ณ , ๋ผ์ด์„ ์Šค ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜๋ฉฐ, ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ธฐ ์ „์— ์•Œ๋ ค์ง„ ์ต์Šคํ”Œ๋กœ์ž‡์ด๋‚˜ ๋ฒ•์  ์œ„ํ—˜์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ผ์ด์„ ์Šค ๋ถ„์„์„ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ์œผ๋ ค๋ฉด ์†Œํ”„ํŠธ์›จ์–ด์— ์‹ค์ œ๋กœ ํฌํ•จ๋œ ๋‚ด์šฉ์— ๋Œ€ํ•œ ์ธ๋ฒคํ† ๋ฆฌ ์ˆ˜์ค€์—์„œ๋„ ์ •ํ™•ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๋‹น ๊ตฌ์„ฑ ์š”์†Œ ๋Š” ์–ด๋–ค ๋ผ์ด์„ ์Šค์˜ ์ ์šฉ์„ ๋ฐ›์Šต๋‹ˆ๊นŒ? ๊ตฌ์„ฑ ์š”์†Œ๋Š” ๋‹จ์ผ ๋ผ์ด์„ ์Šค๋ฅผ ๋ณด์œ ํ•  ์ˆ˜๋„ ์žˆ๊ณ , ์˜ต์…˜์ด ์žˆ๋Š” ์ด์ค‘ ๋ผ์ด์„ ์Šค๋ฅผ ๋ณด์œ ํ•  ์ˆ˜๋„ ์žˆ์œผ๋ฉฐ, ์„œ๋กœ ๋‹ค๋ฅธ ํŒŒ์ผ์— ์ ์šฉ๋˜๋Š” ์—ฌ๋Ÿฌ ๋ผ์ด์„ ์Šค๋ฅผ ๋ณด์œ ํ•  ์ˆ˜๋„ ์žˆ๊ณ , ๋ฒ„์ „๋ณ„๋กœ ๋ผ์ด์„ ์Šค๊ฐ€ ๋ณ€๊ฒฝ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. FOSSA์˜ ๋ผ์ด์„ ์Šค ๊ฐ์ง€ ์—”์ง„์€ 99.8%์˜ ์ •ํ™•๋„๋ฅผ ์ž๋ž‘ํ•˜๋ฉฐ, ์ด๋Š” ๋ฒ•๋ฌดํŒ€์ด ๋ณด์•ˆ ๋ชฉ๋ก๊ณผ ํ•จ๊ป˜ ์˜คํ”ˆ ์†Œ์Šค ์˜๋ฌด ์‚ฌํ•ญ์„ ๊ฒ€์ฆํ•ด์•ผ ํ•  ๋•Œ ์ค‘์š”ํ•œ ์š”์†Œ์ž…๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ์š”์†Œ ์ˆ˜์ค€์—์„œ์˜ ๋ผ์ด์„ ์Šค ์‹๋ณ„์€ ํ•„์š”ํ•˜์ง€๋งŒ ์ถฉ๋ถ„ํ•˜์ง€๋Š” ์•Š์œผ๋ฉฐ, ์„œ๋กœ ๋‹ค๋ฅธ ํŒŒ์ผ์— ์„œ๋กœ ๋‹ค๋ฅธ ๋ผ์ด์„ ์Šค๊ฐ€ ์ ์šฉ๋˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ์˜ ๊ฒฝ์šฐ ํŒŒ์ผ ๋˜๋Š” ์ฝ”๋“œ ์กฐ๊ฐ ์ˆ˜์ค€์—์„œ์˜ ์‹๋ณ„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ ๋ผ์ด์„ ์Šค๋Š” ์–ด๋–ค ์˜๋ฌด๋ฅผ ๋ถ€๊ณผํ• ๊นŒ์š”? ๊ด€๋Œ€ํ•œ ๋ผ์ด์„ ์Šค(MIT, Apache-2.0)๋Š” ์ €์ž‘์ž ํ‘œ์‹œ๋ฅผ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. ์•ฝํ•œ ์นดํ”ผ๋ ˆํ”„ํŠธ ๋ผ์ด์„ ์Šค(LGPL)๋Š” ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ๋™์ ์œผ๋กœ ๋งํฌ๋˜๋Š”์ง€ ์ •์ ์œผ๋กœ ๋งํฌ๋˜๋Š”์ง€์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์˜๋ฌด๋ฅผ ๋ถ€๊ณผํ•ฉ๋‹ˆ๋‹ค. ๊ฐ•๋ ฅํ•œ ์นดํ”ผ๋ ˆํ”„ํŠธ ๋ผ์ด์„ ์Šค(GPL-2.0, GPL-3.0)๋Š” ์ „์ฒด ๊ฒฐํ•ฉ ์ž‘์—…์˜ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ฐฐํฌํ•˜๋„๋ก ์š”๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜๋ฌด๋ฅผ ์ดํ•ดํ•˜๋ ค๋ฉด ๋ผ์ด์„ ์Šค ์‹๋ณ„์ž๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ผ์ด์„ ์Šค ์กฐ๊ฑด์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ผ์ด์„ ์Šค ๋…ธ์ถœ์„ ์œ ๋ฐœํ•˜๋Š” ๋„ค ๊ฐ€์ง€ ์œ ํ˜•์˜ ์ข…์†์„ฑ

๋ชจ๋“  ์ข…์†์„ฑ์ด ๊ธฐ์กด ๋„๊ตฌ๋กœ ๋™์ผํ•˜๊ฒŒ ๋“œ๋Ÿฌ๋‚˜๊ฑฐ๋‚˜ ๊ด€๋ฆฌ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๋ผ์ด์„ ์Šค ๋…ธ์ถœ์€ ๊ฐ๊ฐ ๋‹ค๋ฅธ ๊ฒ€์ƒ‰ ๋ฐฉ๋ฒ•์„ ํ•„์š”๋กœ ํ•˜๋Š” ๋„ค ๊ฐ€์ง€ ์œ ํ˜•์˜ ์ข…์†์„ฑ์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

1. ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ์ข…์†์„ฑ(์„ ์–ธ๋œ ์ข…์†์„ฑ ๋ฐ ์ „์ด์  ์ข…์†์„ฑ)

๊ฐ€์žฅ ๋ˆˆ์— ๋„๋Š” ๊ณ„์ธต: ๋งค๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ์— ์„ ์–ธ๋œ ์ข…์†์„ฑ(package.json, pom.xml, requirements.txt, go.mod, Cargo.toml) ๋ฐ ๋นŒ๋“œ ์‹œ์ ์— ํ•ด๊ฒฐ๋˜๋Š” ์ „์ด์  ์ข…์†์„ฑ. ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ์ข…์†์„ฑ์€ ๊ฐ€์žฅ ์ž˜ ๋‹ค๋ค„์ง€๋Š” ๋ฒ”์ฃผ์ด๋ฉฐ, SCA ๋„๊ตฌ๋Š” ๋งค๋‹ˆํŽ˜์ŠคํŠธ, ์ž ๊ธˆ ํŒŒ์ผ ๋ฐ ๋นŒ๋“œ ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ์Šค์บ”ํ•˜์—ฌ ์ด๋ฅผ ์—ด๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

ํ•ต์‹ฌ์ ์ธ ๊ตฌ๋ถ„์€ ์ง์ ‘ ์ข…์†์„ฑ๊ณผ ์ „์ด ์ข…์†์„ฑ์ž…๋‹ˆ๋‹ค. ์ง์ ‘ ์ข…์†์„ฑ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ์„ ํƒํ•œ ์ข…์†์„ฑ์ด๊ณ , ์ „์ด ์ข…์†์„ฑ์€ ์ง์ ‘ ์ข…์†์„ฑ์ด ํ•„์š”๋กœ ํ•˜๋Š” ์ข…์†์„ฑ์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ํ•˜๋‚˜์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์ „์ด ์ข…์†์„ฑ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. react-data-grid Node.js ํ”„๋กœ์ ํŠธ์— ํŒจํ‚ค์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์ˆ˜์‹ญ ๊ฐœ์˜ ์ „์ด์  ์ข…์†์„ฑ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ ์ข…์†์„ฑ์—๋Š” ๊ณ ์œ ํ•œ ๋ผ์ด์„ ์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ์ด๋Ÿฌํ•œ ๋ผ์ด์„ ์Šค๋ฅผ ์„ ํƒํ•˜์ง€ ์•Š์•˜์ง€๋งŒ, ์ข…์†์„ฑ ํŠธ๋ฆฌ์—๋Š” ์ด๋Ÿฌํ•œ ๋ผ์ด์„ ์Šค๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

JSON

// package.json: 1 direct dependency declared
{
  "dependencies": {
    "react-data-grid": "^7.0.0"
  }
}
// npm lockfile resolves to 47 transitive dependencies, including:
// - react@18.2.0 (MIT)
// - clsx@1.2.1 (MIT)
// - scheduler@0.23.0 (MIT)
// - tslib@2.6.0 (0BSD)
// - ...43 more, each with its own license
// The developer declared 1 license obligation; they shipped 47.

์ „์ด์  ๋ผ์ด์„ ์Šค ํ•จ์ •: ๋ผ์ด์„ ์Šค ์œ„ํ—˜์€ ์—ฌ๋Ÿฌ๋ถ„์ด ์„ ์–ธํ•œ ๋‚ด์šฉ์— ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์˜์กด์„ฑ ํŒจํ‚ค์ง€์˜ ๋ผ์ด์„ ์Šค ์„ ์–ธ, ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์˜์กด์„ฑ ํŒจํ‚ค์ง€์˜ ์˜์กด์„ฑ ํŒจํ‚ค์ง€๊ฐ€ ์„ ์–ธํ•œ ๋‚ด์šฉ์— ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋Œ€ํ•œ ๋ผ์ด์„ ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊น”๋”ํ•œ ์ง์ ‘ ์˜์กด์„ฑ ํŠธ๋ฆฌ ๊ตฌ์กฐ๋Š” GPL ๋ผ์ด์„ ์Šค๊ฐ€ ์ ์šฉ๋œ 3๋‹จ๊ณ„ ๊นŠ์ด์˜ ์ „์ด์  ์˜์กด์„ฑ์„ ์ˆจ๊ธธ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ์ „์ฒด ๋ฐฐํฌํŒ์— ์นดํ”ผ๋ ˆํ”„ํŠธ ์˜๋ฌด๋ฅผ ๋ถ€๊ณผํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

2. ๊ณต๊ธ‰์—…์ฒด ์ œ๊ณต ๋ฐ ๋ณต์ œ๋œ ์†Œ์Šค ์ฝ”๋“œ

์™ธ๋ถ€ ํ”„๋กœ์ ํŠธ์˜ ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ์ €์žฅ์†Œ์— ์ง์ ‘ ๋ณต์‚ฌ๋˜์—ˆ๋Š”๋ฐ, ์ด๋Š” C/C++ ํ”„๋กœ์ ํŠธ, ๋ชจ๋“ˆ์ด ์—†๋Š” Go ํ”„๋กœ์ ํŠธ, ๊ทธ๋ฆฌ๊ณ  ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ๋ฒ ์ด์Šค์—์„œ ํ”ํžˆ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ๋ฒค๋”๋ง๋œ ์ฝ”๋“œ๋Š” ์ข…์†์„ฑ ๊ด€๋ฆฌ์ž๋ฅผ ํ†ตํ•˜์ง€ ์•Š๊ณ  ๋ณต์‚ฌ ๋ถ™์—ฌ๋„ฃ๊ธฐ๋ฅผ ํ†ตํ•ด ์ถ”๊ฐ€๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ๋งค๋‹ˆํŽ˜์ŠคํŠธ์— ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

SCANOSS์˜ ์Šค๋‹ˆํŽซ ์ˆ˜์ค€ ์Šค์บ”์€ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ๊ธฐ๋ฐ˜ ํƒ์ง€๋ฅผ ํ›จ์”ฌ ๋›ฐ์–ด๋„˜์–ด OSSKB์— ์žˆ๋Š” 100์–ต ๊ฐœ ์ด์ƒ์˜ ์˜คํ”ˆ ์†Œ์Šค ํŒŒ์ผ๊ณผ ์†Œ์Šค ์ฝ”๋“œ ์กฐ๊ฐ์„ ๋Œ€์กฐํ•ฉ๋‹ˆ๋‹ค. ์Šค๋‹ˆํŽซ ์ˆ˜์ค€ ์Šค์บ”์€ ๋ฒค๋”๋ง๋œ ์ฝ”๋“œ์™€ ๋ณต์‚ฌ๋œ ํ•จ์ˆ˜๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์€ ๋งค๋‹ˆํŽ˜์ŠคํŠธ์— ์ข…์†์„ฑ์„ ์„ ์–ธํ•˜์ง€ ์•Š์ง€๋งŒ, ๋งˆ์น˜ ํ•ด๋‹น ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ ํฌํ•จ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ชจ๋“  ๋ผ์ด์„ ์Šค ์˜๋ฌด๋ฅผ ์ค€์ˆ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

GPL ๋ผ์ด์„ ์Šค๊ฐ€ ์ ์šฉ๋œ ์ฝ”๋“œ์—์„œ ์œ ๋ž˜ํ•œ Stack Overflow ๋‹ต๋ณ€์—์„œ ๋ณต์‚ฌํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜๋Š” ์ง์ ‘์ ์ธ GPL ์ข…์†์„ฑ๊ณผ ๋™์ผํ•œ ์นดํ”ผ๋ ˆํ”„ํŠธ ์˜๋ฌด๋ฅผ ๊ฐ€์ง€์ง€๋งŒ, ํŒจํ‚ค์ง€ ๋งค๋‹ˆํŽ˜์ŠคํŠธ, ๋ฝํŒŒ์ผ ๋˜๋Š” ์„ ์–ธ๋œ ์ข…์†์„ฑ๋งŒ ์ฝ๋Š” ์ž๋™ ์Šค์บ” ์–ด๋””์—๋„ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

3. ์ •์ ์œผ๋กœ ๋งํฌ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

๋นŒ๋“œ ์‹œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ”์ด๋„ˆ๋ฆฌ์— ์ง์ ‘ ์ปดํŒŒ์ผ๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๋Ÿฐํƒ€์ž„์— ๋ณ„๋„์˜ ํŒŒ์ผ๋กœ ์กด์žฌํ•˜๋Š” ๋™์  ๋งํฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๋‹ฌ๋ฆฌ, ์ •์  ๋งํฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์‹คํ–‰ ํŒŒ์ผ์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ๋งค๋‹ˆํŽ˜์ŠคํŠธ์—๋Š” ํ‘œ์‹œ๋˜์ง€ ์•Š๊ณ  ๋นŒ๋“œ ๊ตฌ์„ฑ์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.Makefile, CMakeLists.txt(๋ง์ปค ์Šคํฌ๋ฆฝํŠธ ํฌํ•จ) ๋ฐ ์ปดํŒŒ์ผ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ž์ฒด์— ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠนํžˆ LGPL ๋ผ์ด์„ ์Šค๊ฐ€ ์ ์šฉ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ฒฝ์šฐ, ์ •์  ๋งํฌ์™€ ๋™์  ๋งํฌ์˜ ๊ตฌ๋ถ„์€ ๋ผ์ด์„ ์Šค ์˜๋ฌด๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. LGPL์€ ์นดํ”ผ๋ ˆํ”„ํŠธ ์ „ํŒŒ ์—†์ด ๋™์  ๋งํฌ๋ฅผ ํ—ˆ์šฉํ•˜์ง€๋งŒ, ์ •์  ๋งํฌ๋Š” ๊ฒฐํ•ฉ๋œ ๊ฒฐ๊ณผ๋ฌผ์— ์นดํ”ผ๋ ˆํ”„ํŠธ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์†Œ์Šค ์ฝ”๋“œ ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ปดํŒŒ์ผ๋œ ๊ฒฐ๊ณผ๋ฌผ ์ „์ฒด๋ฅผ ๋ถ„์„ํ•˜๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ถ„์„ ๋„๊ตฌ๊ฐ€ ์žˆ์–ด์•ผ ์ •์ ์œผ๋กœ ๋งํฌ๋œ ๊ตฌ์„ฑ ์š”์†Œ์™€ ํ•ด๋‹น ๋ผ์ด์„ ์Šค๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4. ๋Ÿฐํƒ€์ž„ ๋กœ๋“œ ์ข…์†์„ฑ

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

๋ผ์ด์„ ์Šค ์œ„ํ—˜ ๋ฒ”์ฃผ ๋ฐ ๊ด€๋ จ ์˜๋ฌด

์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด์„ ์Šค๋Š” ๊ด€๋Œ€ํ•œ ๋ผ์ด์„ ์Šค๋ถ€ํ„ฐ ์—„๊ฒฉํ•œ ๋ผ์ด์„ ์Šค๊นŒ์ง€ ๋‹ค์–‘ํ•œ ์ŠคํŽ™ํŠธ๋Ÿผ์— ๊ฑธ์ณ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋ผ์ด์„ ์Šค๊ฐ€ ์ด ์ŠคํŽ™ํŠธ๋Ÿผ์—์„œ ์–ด๋А ์œ„์น˜์— ์žˆ๋Š”์ง€ ํŒŒ์•…ํ•˜๋Š” ๊ฒƒ์€ ํ•ด๋‹น ๋ผ์ด์„ ์Šค๊ฐ€ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๊ทœ์ • ์ค€์ˆ˜ ์˜๋ฌด๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ด€๋Œ€ํ•œ ๋ผ์ด์„ ์Šค (MIT, Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC)

์˜๋ฌด ์‚ฌํ•ญ: ์ถœ์ฒ˜ ํ‘œ๊ธฐ, ๋ฐฐํฌ ์‹œ ๋ผ์ด์„ ์Šค ํ…์ŠคํŠธ ๋ฐ ์ €์ž‘๊ถŒ ๊ณ ์ง€ ํฌํ•จ. ์†Œ์Šค ์ฝ”๋“œ ๊ณต๊ฐœ๋Š” ํ•„์ˆ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ƒ์—…์  ์‚ฌ์šฉ์€ ์ œํ•œ ์—†์ด ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋…์  ์ œํ’ˆ์— ํ†ตํ•ฉํ•˜๋Š” ๊ฒƒ๋„ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ƒ์šฉ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์œ„ํ—˜ ์ˆ˜์ค€: ๋‚ฎ์Œ. ์ €์ž‘๊ถŒ ๊ท€์†์€ ์ž๋™์œผ๋กœ ์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

์•ฝํ•œ ์นดํ”ผ๋ ˆํ”„ํŠธ ๋ผ์ด์„ ์Šค (LGPL-2.0, LGPL-2.1, LGPL-3.0, MPL-2.0, EUPL-1.2)

์˜๋ฌด: ๋ผ์ด์„ ์Šค๊ฐ€ ๋ถ€์—ฌ๋œ ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•œ ์ถœ์ฒ˜ ํ‘œ๊ธฐ ๋ฐ ์ˆ˜์ • ์‚ฌํ•ญ์„ ๊ณต์œ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ LGPL์˜ ๊ฒฝ์šฐ, ๋™์  ๋งํฌ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํ˜ธ์ถœ ์ฝ”๋“œ์— ์นดํ”ผ๋ ˆํ”„ํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค์ง€ ์•Š๊ณ  ๋ผ์ด์„ ์Šค๋ฅผ ์ถฉ์กฑํ•˜์ง€๋งŒ, ์ •์  ๋งํฌ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒ์šฉ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์œ„ํ—˜ ์ˆ˜์ค€: ์ค‘๊ฐ„. ๋งํฌ ๋ฐฉ์‹์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋™์  ๋งํฌ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์•ˆ์ „ํ•˜์ง€๋งŒ, ์ •์  ๋งํฌ๋Š” ์‹ ์ค‘ํ•œ ๋ฒ•๋ฅ  ๊ฒ€ํ† ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ•๋ ฅํ•œ ์นดํ”ผ๋ ˆํ”„ํŠธ ๋ผ์ด์„ ์Šค (GPL-2.0, GPL-3.0, AGPL-3.0)

์˜๋ฌด: ์ €์ž‘์ž ํ‘œ์‹œ์™€ ํ•จ๊ป˜ GPL ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๋Š” ์ „์ฒด ๊ฒฐํ•ฉ ์ €์ž‘๋ฌผ์„ GPL ์กฐ๊ฑด(์†Œ์Šค ์ฝ”๋“œ ๊ณต๊ฐœ)์— ๋”ฐ๋ผ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. AGPL์€ ์ด๋ฅผ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๊นŒ์ง€ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค.

์ƒ์šฉ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์œ„ํ—˜ ์ˆ˜์ค€: ๋†’์Œ. GPL ๋ผ์ด์„ ์Šค๊ฐ€ ์ ์šฉ๋œ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ๋…์  ์ƒ์šฉ ์ œํ’ˆ์— ์ •์ ์œผ๋กœ ๋งํฌ๋˜๊ฑฐ๋‚˜ ํ•ด๋‹น ์ œํ’ˆ์—์„œ ํŒŒ์ƒ๋œ ๊ฒฝ์šฐ, ๋…์  ์†Œ์Šค ์ฝ”๋“œ ๊ณต๊ฐœ๊ฐ€ ์š”๊ตฌ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐ€์žฅ ํฐ ๊ทœ๋ชจ์˜ ๋ฒ•์  ํ•ฉ์˜๊ธˆ์„ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๋ผ์ด์„ ์Šค ๊ด€๋ จ ์œ„ํ—˜์ž…๋‹ˆ๋‹ค.

๋„คํŠธ์›Œํฌ ์นดํ”ผ๋ ˆํ”„ํŠธ(AGPL-3.0)

์˜๋ฌด: GPL-3.0์˜ ๋ชจ๋“  ์˜๋ฌด ์‚ฌํ•ญ์— ๋”ํ•˜์—ฌ, ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์†Œํ”„ํŠธ์›จ์–ด์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ˆ˜์‹ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜๋ฏ€๋กœ, ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋ฐฐํฌํ•˜์ง€ ์•Š๋Š” SaaS ์ œํ’ˆ์ด๋ผ๋„ ์†Œ์Šค ์ฝ”๋“œ ๊ณต๊ฐœ ์˜๋ฌด๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

SaaS ์ œํ’ˆ์˜ ์œ„ํ—˜ ์ˆ˜์ค€: ๋งค์šฐ ๋†’์Œ. AGPL์€ GPL์˜ "SaaS ํ—ˆ์ "์„ ๋ง‰๊ธฐ ์œ„ํ•ด ํŠน๋ณ„ํžˆ ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. AGPL ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๋Š” ์ƒ์šฉ SaaS ์ œํ’ˆ์€ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์ œํ’ˆ๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋ชจ๋“  ์‚ฌ์šฉ์ž์—๊ฒŒ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ณต๊ฐœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋…์  ๋ฐ ์ƒ์—… ๋ผ์ด์„ ์Šค

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

์œ„ํ—˜ ์ˆ˜์ค€: ๊ณ„์•ฝ ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ธ์ˆ˜ ๋Œ€์ƒ ์ œํ’ˆ์˜ ๋ผ์ด์„ ์Šค ๋น„์šฉ ์˜๋ฌด๋ฅผ ํ™•์ธํ•˜๋Š” ์ธ์ˆ˜ํ•ฉ๋ณ‘ ์‹ค์‚ฌ ๊ณผ์ •์—์„œ ํ”ํžˆ ๋ฐœ๊ฒฌ๋ฉ๋‹ˆ๋‹ค.

๋ผ์ด์„ ์Šค ํ˜ธํ™˜์„ฑ: ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์š”์†Œ

์„œ๋กœ ๋‹ค๋ฅธ ๋ผ์ด์„ ์Šค๋ฅผ ๊ฐ€์ง„ ๊ตฌ์„ฑ ์š”์†Œ๋“ค์„ ํ•˜๋‚˜์˜ ์†Œํ”„ํŠธ์›จ์–ด ์ œํ’ˆ์— ๊ฒฐํ•ฉํ•  ๊ฒฝ์šฐ, ํ•ด๋‹น ๋ผ์ด์„ ์Šค๋“ค์€ ํ˜ธํ™˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ผ์ด์„ ์Šค ์กฐํ•ฉ์€ ๋‹จ์ˆœํžˆ ์ถœ์ฒ˜๋ฅผ ๋ฐํžˆ๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ๋ฒ•์  ์œ„ํ—˜์„ ์ดˆ๋ž˜ํ•˜๋ฉฐ, ํ•ด๋‹น ์กฐํ•ฉ ์ž์ฒด๊ฐ€ ํ•˜๋‚˜ ๋˜๋Š” ๋‘ ๊ฐœ์˜ ๋ผ์ด์„ ์Šค๋ฅผ ๋ชจ๋‘ ์œ„๋ฐ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์™€ ๊ฒฐํ•ฉMIT์•„ํŒŒ์น˜-2.0LGPL-2.1GPL-2.0GPL-3.0PLFA-3.0
MIT์ง€์›์ง€์›์ง€์›์ง€์›์ง€์›์ง€์›
์•„ํŒŒ์น˜-2.0์ง€์›์ง€์›์ง€์›ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š”์ง€์›์ง€์›
LGPL-2.1์ง€์›์ง€์›์ง€์›์ง€์›ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š”ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š”
GPL-2.0์ง€์›ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š”์ง€์›์ง€์›ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š”ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š”
GPL-3.0์ง€์›์ง€์›ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š”ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š”์ง€์›์ง€์›
์†Œ์œ ๊ถŒ์ง€์›์ง€์›์ฃผ์˜ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š”ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š”ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š”

์ƒ์šฉ ์†Œํ”„ํŠธ์›จ์–ด์— ์žˆ์–ด ๊ฐ€์žฅ ์‹ฌ๊ฐํ•œ ๋น„ํ˜ธํ™˜์„ฑ์€ Apache-2.0๊ณผ GPL-2.0์˜ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. Apache-2.0 ๋ผ์ด์„ ์Šค๊ฐ€ ์ ์šฉ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” GPL-2.0 ๋ผ์ด์„ ์Šค๊ฐ€ ์ ์šฉ๋œ ๊ตฌ์„ฑ ์š”์†Œ์™€ ๋™์ผํ•œ ์ž‘์—…์—์„œ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ํ•ต์‹ฌ ์˜คํ”ˆ ์†Œ์Šค ๊ตฌ์„ฑ ์š”์†Œ(๋ฆฌ๋ˆ…์Šค ์ปค๋„ ๋ชจ๋“ˆ, ์ผ๋ถ€ ๊ตฌํ˜• ์ž๋ฐ” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)๊ฐ€ GPL-3.0์ด ์•„๋‹Œ GPL-2.0 ๋ผ์ด์„ ์Šค๋ฅผ ๋”ฐ๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋Ÿฌํ•œ ๋น„ํ˜ธํ™˜์„ฑ์€ ํ˜ผํ•ฉ๋œ ์˜์กด์„ฑ ํŠธ๋ฆฌ์—์„œ ์‹ค์งˆ์ ์ธ ๋ผ์ด์„ ์Šค ์ค€์ˆ˜ ์œ„ํ—˜์„ ์ดˆ๋ž˜ํ•ฉ๋‹ˆ๋‹ค.

AGPL-3.0 ์กฐํ•ญ์€ SaaS์— ์žˆ์–ด ๊ฐ€์žฅ ์—„๊ฒฉํ•œ ์ œํ•œ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์‚ฌ์‹ค์ƒ ์ƒ์šฉ ์ œํ’ˆ์—์„œ AGPL-3.0์„ ์ค€์ˆ˜ํ•˜๋Š” ๊ฒƒ์€ ๋„คํŠธ์›Œํฌ ์นดํ”ผ๋ ˆํ”„ํŠธ ์˜๋ฌด๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค์ง€ ์•Š๊ณ ์„œ๋Š” ๊ฑฐ์˜ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

CI/CD ํ™˜๊ฒฝ์—์„œ ๋ผ์ด์„ ์Šค ์ •์ฑ… ์‹œํ–‰

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

์–Œ

# GitHub Actions: license compliance gate on every PR
name: License Compliance Check

on:
  pull_request:

jobs:
  license-audit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install license checker
        run: npm install -g license-checker fossa-cli

      - name: Scan dependency licenses
        run: |
          license-checker --summary --excludePrivatePackages \
            --out license-report.json

      - name: Enforce license policy
        run: |
          # Block GPL-2.0, GPL-3.0, AGPL-3.0, SSPL in commercial product
          FORBIDDEN=$(license-checker --failOn \
            "GPL-2.0;GPL-3.0;AGPL-3.0;SSPL" \
            --excludePrivatePackages 2>&1 || true)

          if echo "$FORBIDDEN" | grep -q "FAIL"; then
            echo "Forbidden license detected in dependencies"
            echo "$FORBIDDEN"
            exit 1
          fi

      - name: Generate SBOM artifact
        run: |
          # Generate CycloneDX SBOM for audit trail
          npx @cyclonedx/cyclonedx-npm \
            --output-file sbom-$(date +%Y%m%d).json

      - name: Upload SBOM as artifact
        uses: actions/upload-artifact@v4
        with:
          name: sbom
          path: sbom-*.json

์ฃผ์˜: ๋ผ์ด์„ ์Šค ์ •์ฑ…์€ ์กฐ์ง๋ณ„๋กœ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์œ„ ์˜ˆ์‹œ์˜ ๊ธˆ์ง€ ๋ชฉ๋ก์€ ์ผ๋ฐ˜์ ์ธ ์ƒ์—… ์ •์ฑ…์„ ๋ฐ˜์˜ํ•œ ๊ฒƒ์ด์ง€๋งŒ, ์กฐ์ง์˜ ๋ฒ•๋ฌดํŒ€์€ ํŠน์ • ์ œํ’ˆ ์œ ํ˜•, ๋ฐฐํฌ ๋ชจ๋ธ ๋ฐ ๊ณ ๊ฐ ๊ณ„์•ฝ์— ๋”ฐ๋ผ ์–ด๋–ค ๋ผ์ด์„ ์Šค๊ฐ€ ํ—ˆ์šฉ๋˜๊ณ , ๊ฒ€ํ†  ๋Œ€์ƒ์œผ๋กœ ์ง€์ •๋˜๊ณ , ๊ธˆ์ง€๋˜๋Š”์ง€ ์ •์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๋ถ€ ๋„๊ตฌ์—์„œ ํ—ˆ์šฉ๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๊ณ ๊ฐ์—๊ฒŒ ๋ฐฐํฌํ•˜๋Š” ์ œํ’ˆ์—์„œ๋Š” ๊ธˆ์ง€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SBOM ์ƒ์„ฑ ๋ฐ ํ˜•์‹ ํ‘œ์ค€

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

OWASP์—์„œ ๊ฐœ๋ฐœํ•œ CycloneDX ๋Š” ๋ณด์•ˆ ๋ฐ ๊ณต๊ธ‰๋ง ํ™œ์šฉ ์‚ฌ๋ก€๋ฅผ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ์š”์†Œ, ์„œ๋น„์Šค, ์ทจ์•ฝ์ (VEX), ๊ณต์‹ ๋ฐ ๋จธ์‹  ๋Ÿฌ๋‹ ๋ชจ๋ธ ๊ธฐ๋ฐ˜ SBOM(์ œํ’ˆ ๋ช…์„ธ์„œ)์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋ณด์•ˆ ์ค‘์‹ฌ์˜ SBOM์— ๊ถŒ์žฅ๋˜๋Š” ํ˜•์‹์ด๋ฉฐ, ๋Œ€๋ถ€๋ถ„์˜ ์ตœ์‹  SCA ๋„๊ตฌ ํ†ตํ•ฉ์— ํ•„์š”ํ•œ ํ˜•์‹์ž…๋‹ˆ๋‹ค.

SPDX๋ฆฌ๋ˆ…์Šค ์žฌ๋‹จ์—์„œ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” ISO/IEC ํ‘œ์ค€(ISO 5962:2021)์ž…๋‹ˆ๋‹ค. ํ–‰์ •๋ช…๋ น 14028์˜ ์ผ๋ถ€ ์กฐํ•ญ์„ ํฌํ•จํ•œ ์ผ๋ถ€ ์ •๋ถ€ ์กฐ๋‹ฌ ํ‘œ์ค€์—์„œ ์š”๊ตฌ๋ฉ๋‹ˆ๋‹ค. ๋ณด์•ˆ๋ณด๋‹ค๋Š” ๋ผ์ด์„ ์Šค ์ค€์ˆ˜์— ๋” ์ค‘์ ์„ ๋‘๊ณ  ์žˆ์œผ๋ฉฐ, ๋” ํ’๋ถ€ํ•œ ๋ผ์ด์„ ์Šค ํ‘œํ˜„ ์–ธ์–ด(SPDX ํ‘œํ˜„์‹์€ ๋ณต์žกํ•œ ๋‹ค์ค‘ ๋ผ์ด์„ ์Šค ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ)๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. GPL-2.0-only AND MIT OR Apache-2.0).

ํ–‰์ •๋ช…๋ น 14028ํ˜ธ๋Š” ์ด๋ฏธ SBOM(ํ‘œ์ค€ ์ œํ’ˆ ๋ช…์„ธ์„œ)์„ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š” ์—…์ฒด๋Š” ์—ฐ๋ฐฉ ๊ณ„์•ฝ ์ˆ˜์ฃผ๋ฅผ ๋ง‰๊ณ  ์žˆ์œผ๋ฉฐ, ์บ๋‚˜๋‹ค ๊ตญ์„ธ์ฒญ(CRA)์€ 2026๋…„ 9์›”๋ถ€ํ„ฐ ์ทจ์•ฝ์  ๋ณด๊ณ ๋ฅผ ์˜๋ฌดํ™”ํ•˜๊ณ  ์žˆ๊ณ , PCI DSS 4.0์€ ์ด๋ฏธ ๊ฐ์‚ฌ ๋‹ด๋‹น์ž๋“ค์˜ ์†์— ๋“ค์–ด๊ฐ”์Šต๋‹ˆ๋‹ค. SBOM์„ ์ œ๊ณตํ•˜๋“ ์ง€, ์•„๋‹ˆ๋ฉด ๊ณ„์•ฝ์„ ์žƒ๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

๊ธฐ์กด ์ฝ”๋“œ๋ฒ ์ด์Šค ๋ฌธ์ œ: ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋„ ์—†๊ณ , ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋„ ์—†์Œ

์œ„์—์„œ ์„ค๋ช…ํ•œ ์˜์กด์„ฑ ๋ถ„์„ ๋„๊ตฌ(SCA ์Šค์บ๋„ˆ, ๋ฝํŒŒ์ผ ํŒŒ์„œ, SBOM ์ƒ์„ฑ๊ธฐ)๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์˜์กด์„ฑ์ด ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌ๋˜๊ณ  ๋งค๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ์— ์„ ์–ธ๋œ๋‹ค๋Š” ๊ฐ€์ •์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฐ€์ •์€ ์ตœ์‹  Java, JavaScript, Python, Go, Rust ํ”„๋กœ์ ํŠธ์—๋Š” ์ ์šฉ๋˜์ง€๋งŒ, COBOL, JCL ๋ฐ ๋ฉ”์ธํ”„๋ ˆ์ž„ ํ”Œ๋žซํผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋œ ๊ธฐ์กด ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ํ™˜๊ฒฝ์—๋Š” ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฉ”์ธํ”„๋ ˆ์ž„ ํ™˜๊ฒฝ์—์„œ ํƒ€์‚ฌ ์†Œํ”„ํŠธ์›จ์–ด ์ข…์†์„ฑ์€ ํ‘œ์ค€ SCA ๋„๊ตฌ๋กœ๋Š” ๊ฐ์ง€ํ•  ์ˆ˜ ์—†๋Š” ์„ธ ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

๋ผ์ด์„ ์Šค๊ฐ€ ๋ถ€์—ฌ๋œ ๋ถ„๋ฅ˜ ๋ฐ ์œ ํ‹ธ๋ฆฌํ‹ฐ ์ œํ’ˆ. JCL ์ž‘์—… ์ŠคํŠธ๋ฆผ์€ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ”„๋กœ๊ทธ๋žจ, ์ •๋ ฌ ์ œํ’ˆ(DFSORT, SyncSort/Syncsort(ํ˜„์žฌ Precisely๋กœ ์•Œ๋ ค์ง), CA Sort), ๋ณด๊ณ ์„œ ์ž‘์„ฑ๊ธฐ(SAS, EASYTRIEVE) ๋ฐ ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜ ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ”„๋กœ๊ทธ๋žจ์€ ์ž์ฒด ๋ผ์ด์„ ์Šค ์กฐ๊ฑด, ์œ ์ง€ ๊ด€๋ฆฌ ๊ณ„์•ฝ ๋ฐ ๊ทœ์ • ์ค€์ˆ˜ ์š”๊ตฌ ์‚ฌํ•ญ์ด ์žˆ๋Š” ๋ผ์ด์„ ์Šค ์ƒ์šฉ ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ”„๋กœ๊ทธ๋žจ์€ JCL์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. PGM=SORT, PGM=IEBGENER, PGM=ICETOOLํ”„๋กœ๊ทธ๋žจ ์ด๋ฆ„์ด์ง€ ํŒจํ‚ค์ง€ ์‹๋ณ„์ž๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. SCA ๋„๊ตฌ ์ค‘ ํ”„๋กœ๊ทธ๋žจ ์ด๋ฆ„์„ ์ฝ๋Š” ๋„๊ตฌ๋Š” ์—†์Šต๋‹ˆ๋‹ค. package.json or pom.xml ์šฐ๋ฆฌ๊ฐ€ ์ฐพ์•„๋‚ผ ๊ฒ๋‹ˆ๋‹ค.

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

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

์ด๋Ÿฌํ•œ ๊ตฌ์„ฑ ์š”์†Œ์˜ ๊ฒฝ์šฐ, ์†Œ์Šค ์ฝ”๋“œ ๋ถ„์„์„ ํ†ตํ•ด ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ฐพ์•„๋ƒ…๋‹ˆ๋‹ค. ์ฆ‰, CALL ๋ฌธ์„ ์ถ”์ ํ•˜์—ฌ ํ˜ธ์ถœ๋œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹๋ณ„ํ•˜๊ณ , COPY ๋ฌธ์„ ๊ฒ€์‚ฌํ•˜์—ฌ ํฌํ•จ๋œ ๋ฉค๋ฒ„๋ฅผ ์‹๋ณ„ํ•˜๋ฉฐ, ํ”„๋กœ๊ทธ๋žจ ์ด๋ฆ„์„ ์•Œ๋ ค์ง„ ํƒ€์‚ฌ ๊ตฌ์„ฑ ์š”์†Œ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์™€ ๋Œ€์กฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์–ป์€ ๊ฒฐ๊ณผ๋Š” ๋™์ผํ•œ ๋ผ์ด์„ ์Šค ์ค€์ˆ˜ ์›Œํฌํ”Œ๋กœ์— ํ™œ์šฉ๋˜์ง€๋งŒ, ์ตœ์‹  ํŒจํ‚ค์ง€ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ํ˜•์‹๋ฟ ์•„๋‹ˆ๋ผ COBOL ๋ฐ JCL ์˜๋ฏธ ์ฒด๊ณ„๋ฅผ ์ดํ•ดํ•˜๋Š” ๋„๊ตฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌ ์ค€๋น„๋ฅผ ์œ„ํ•œ ์™„๋ฒฝํ•œ ๊ทœ์ • ์ค€์ˆ˜ ํŒจํ‚ค์ง€ ๊ตฌ์ถ•

๋ฒ•๋ฌดํŒ€, ๊ทœ์ • ์ค€์ˆ˜ํŒ€ ๋˜๋Š” ์™ธ๋ถ€ ๊ฐ์‚ฌ์ธ์ด ๋ผ์ด์„ ์Šค ์ค€์ˆ˜ ์ฆ๋น™ ์ž๋ฃŒ๋ฅผ ์š”์ฒญํ•  ๊ฒฝ์šฐ, ์Šค์บ” ๋ณด๊ณ ์„œ๊ฐ€ ํ•„์š”ํ•˜์ง€๋งŒ ๊ทธ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ์ค€๋น„์šฉ ๊ทœ์ • ์ค€์ˆ˜ ํŒจํ‚ค์ง€์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

  • ์™„์ „ํ•œ ์˜์กด์„ฑ ๋ชฉ๋ก๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ, ๋ฒ„์ „ ๋ฐ ๋ผ์ด์„ ์Šค(์ „์ด์  ์ข…์†์„ฑ ํฌํ•จ)๊ฐ€ ์ œํ’ˆ ๋ฐ ๋ฒ„์ „๋ณ„๋กœ ์ •๋ฆฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ผ์ด์„ ์Šค ์˜๋ฌด ๋งคํŠธ๋ฆญ์Šค๊ฐ ๋ผ์ด์„ ์Šค ๋ฒ”์ฃผ์— ๋Œ€ํ•ด ๊ตฌ์ฒด์ ์ธ ์˜๋ฌด ์‚ฌํ•ญ(์ €์ž‘์ž ํ‘œ์‹œ, ์ถœ์ฒ˜ ๊ณต๊ฐœ, ์ˆ˜์ • ๊ณ ์ง€)๊ณผ ๊ฐ ์˜๋ฌด ์‚ฌํ•ญ์„ ์ดํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ์ €์ž‘๊ถŒ ํ‘œ์‹œ ํŒŒ์ผ์ €์ž‘๊ถŒ ํ‘œ์‹œ๊ฐ€ ํ•„์š”ํ•œ ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•ด ๊ฐ ๋ผ์ด์„ ์Šค์—์„œ ์š”๊ตฌํ•˜๋Š” ํ˜•์‹(Apache-2.0์˜ ๊ฒฝ์šฐ NOTICE ํŒŒ์ผ, MIT์˜ ๊ฒฝ์šฐ LICENSE ํŒŒ์ผ ๋“ฑ)์œผ๋กœ ๋ฒ•์  ๊ณ ์ง€ ์‚ฌํ•ญ์„ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ˜ธํ™˜์„ฑ ๋ถ„์„๊ฒฐํ•ฉ๋œ ์ œํ’ˆ์— ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ผ์ด์„ ์Šค ์กฐํ•ฉ์ด ์—†์Œ์„ ์ž…์ฆํ•˜๋Š” ๋ฌธ์„œ์™€, ๊ฒฝ๊ณ„ ์‚ฌ๋ก€๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๋ฒ•์  ๊ทผ๊ฑฐ๋ฅผ ์ œ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • SBOM ์•„ํ‹ฐํŒฉํŠธํ˜„์žฌ CycloneDX ๋˜๋Š” SPDX ํŒŒ์ผ(์„œ๋ช… ๋ฐ ํƒ€์ž„์Šคํƒฌํ”„ ํฌํ•จ, ๋ฒ”์œ„ ๋‚ด ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ ํฌํ•จ)
  • ์ •์ฑ… ๋ฌธ์„œํ•ด๋‹น ์กฐ์ง์˜ ๊ณต์‹ ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด์„ ์Šค ์ •์ฑ…(์ƒˆ๋กœ์šด ๋ผ์ด์„ ์Šค ์Šน์ธ ์ ˆ์ฐจ ํฌํ•จ)
  • ์Šน์ธ ๊ธฐ๋กํฌํ•จ ์ „์— ๋ฒ•๋ฅ  ๊ฒ€ํ† ๊ฐ€ ํ•„์š”ํ•œ ๋ชจ๋“  ๋ผ์ด์„ ์Šค์˜ ๊ฒฝ์šฐ, ๋ฌธ์„œํ™”๋œ ์Šน์ธ์„œ์™€ ์‚ฌ์—…์  ํƒ€๋‹น์„ฑ ๊ทผ๊ฑฐ๋ฅผ ์ œ์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐœ์„  ์ด๋ ฅ์ด์ „์— ํ™•์ธ๋œ ์œ„๋ฐ˜ ์‚ฌํ•ญ ๋ฐ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ทจํ•ด์ง„ ์กฐ์น˜์— ๋Œ€ํ•œ ๋ฌธ์„œํ™”

ํŠนํžˆ M&A ์‹ค์‚ฌ์—์„œ, ์ธ์ˆ˜ ๊ธฐ์—…์€ ๊ธฐ์ˆ  ์‹ค์‚ฌ์˜ ์ผํ™˜์œผ๋กœ ์ด๋Ÿฌํ•œ ํŒจํ‚ค์ง€๋ฅผ ์ ์  ๋” ๋งŽ์ด ์š”๊ตฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฏธํ•ด๊ฒฐ ์œ„๋ฐ˜ ์‚ฌํ•ญ์ด ์—†๋Š” ๊น”๋”ํ•œ ๊ทœ์ • ์ค€์ˆ˜ ํŒจํ‚ค์ง€๋Š” ์‹ค์‚ฌ ๊ณผ์ •์„ ๊ฐ€์†ํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด, ๋…์  ์ œํ’ˆ์—์„œ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ GPL ์œ„๋ฐ˜ ์‚ฌํ•ญ์ด ๋“œ๋Ÿฌ๋‚˜๋Š” ํŒจํ‚ค์ง€๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ€๊ฒฉ ์กฐ์ •, ์—์Šคํฌ๋กœ ์š”๊ตฌ, ๋˜๋Š” ์‹œ์ • ์กฐ์น˜ ๋“ฑ์˜ ๊ฑฐ๋ž˜ ์กฐ๊ฑด์œผ๋กœ ์ด์–ด์ง€๋Š”๋ฐ, ์ด๋Ÿฌํ•œ ์กฐ์น˜๋“ค์€ ๋ชจ๋‘ ์œ„๋ฐ˜ ์‚ฌํ•ญ์„ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ทœ์ • ์ค€์ˆ˜ ํ”„๋กœ๊ทธ๋žจ๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋งŽ์€ ๋น„์šฉ์„ ์ดˆ๋ž˜ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฉ๋ฒ• SMART TS XL ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ๋ผ์ด์„ ์Šค ๊ทœ์ • ์ค€์ˆ˜๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

SMART TS XL์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ข…์†์„ฑ ๋งคํ•‘ ์ด ํ”Œ๋žซํผ์€ ํŠนํžˆ ํ‘œ์ค€ SCA ๋„๊ตฌ๊ฐ€ ํ•œ๊ณ„์— ๋„๋‹ฌํ•˜๋Š” ๋ ˆ๊ฑฐ์‹œ ํ™˜๊ฒฝ์—์„œ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์ฝ”๋“œ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ๊ตฌ์กฐ์  ์ข…์†์„ฑ ๋ถ„์„ ๊ณ„์ธต์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ฉ”์ธํ”„๋ ˆ์ž„ ํ™˜๊ฒฝ์˜ ๊ฒฝ์šฐ, ์ข…์†์„ฑ ๋งต์€ ๋‹ค๋ฅธ ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์—์„œ ํ˜ธ์ถœ๋˜๋Š” ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ(JCL ๋ฐ COBOL์— ํฌํ•จ๋œ ํƒ€์‚ฌ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ˜ธ์ถœ ํฌํ•จ), ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์—์„œ ํฌํ•จํ•˜๋Š” ๋ชจ๋“  ์นดํ”ผ๋ถ(๋ฒค๋” ์ œ๊ณต ์นดํ”ผ๋ถ ์ข…์†์„ฑ ํฌํ•จ), ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์—์„œ ์•ก์„ธ์Šคํ•˜๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์„ธํŠธ(๋ผ์ด์„ ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ œํ’ˆ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ๊ณ„์ธต ์ข…์†์„ฑ ํฌํ•จ)๋ฅผ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ถ„์„์„ ํ†ตํ•ด ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ์—†๋Š” ํ™˜๊ฒฝ์—์„œ ๋ผ์ด์„ ์Šค ์ค€์ˆ˜ ๊ฐ์‚ฌ์— ํ•„์š”ํ•œ ๊ตฌ์„ฑ ์š”์†Œ ๋ชฉ๋ก์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

์ •์  ์ฝ”๋“œ ๋ถ„์„ ๊ธฐ๋Šฅ์€ ํŠน์ • ํƒ€์‚ฌ ๊ตฌ์„ฑ ์š”์†Œ์™€ ๊ด€๋ จ๋œ ์ฝ”๋“œ ํŒจํ„ด์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋…์  API ํ˜ธ์ถœ ์‹œ๊ทธ๋‹ˆ์ฒ˜, ๊ณต๊ธ‰์—…์ฒด๋ณ„ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๊ทœ์น™, ์‚ฌ์šฉ์ž ์ง€์ • COBOL ์†Œ์Šค์— ํฌํ•จ๋œ ๋ผ์ด์„ ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„ ๋“ฑ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ถ„์„ ๊ฒฐ๊ณผ๋Š” ๋งค๋‹ˆํŽ˜์ŠคํŠธ ๊ธฐ๋ฐ˜ ์ธ๋ฒคํ† ๋ฆฌ๋ฅผ ๋ณด์™„ํ•˜์—ฌ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ์Šค์บ”์œผ๋กœ๋Š” ํŒŒ์•…ํ•  ์ˆ˜ ์—†๋Š” ์ฝ”๋“œ ์ˆ˜์ค€์˜ ์ข…์†์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์˜ํ–ฅ ๋ถ„์„ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๋ผ์ด์„ ์Šค ์ •์ฑ… ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์‹ค์งˆ์ ์ธ ์กฐ์น˜๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ตฌ์„ฑ ์š”์†Œ์˜ ๋ผ์ด์„ ์Šค๊ฐ€ ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜, ์ข…์†์„ฑ ๊ตฌ์„ฑ ์š”์†Œ์˜ ๋ผ์ด์„ ์Šค๊ฐ€ MIT์—์„œ AGPL-3.0์œผ๋กœ ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜, ๊ณต๊ธ‰์—…์ฒด๊ฐ€ ์•ฝ๊ด€์„ ์ˆ˜์ •ํ•˜๋Š” ๊ฒฝ์šฐ, ์˜ํ–ฅ ๋ถ„์„์€ ํ•ด๋‹น ๊ตฌ์„ฑ ์š”์†Œ์— ์ง๊ฐ„์ ‘์ ์œผ๋กœ ์˜์กดํ•˜๋Š” ํฌํŠธํด๋ฆฌ์˜ค ๋‚ด ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ผ์ด์„ ์Šค ๋ณ€๊ฒฝ ์ด๋ฒคํŠธ๋Š” ๋ฏธ์ง€์˜ ์œ„ํ—˜์—์„œ ๋ช…ํ™•ํ•œ ํ•ด๊ฒฐ ๋ฒ”์œ„๋กœ ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค.

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๊ทœ์ • ์ค€์ˆ˜ ๋ชฉ์ ์œผ๋กœ ์ข…์†์„ฑ ๋ชฉ๋ก์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน์ • ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ, ํŠน์ • ๊ณต๊ธ‰์—…์ฒด์—์„œ ์ œ๊ณตํ•œ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๋Š” ๋ชจ๋“  ์นดํ”ผ๋ถ, ํŠน์ • ๋ผ์ด์„ ์Šค ๊ตฌ์„ฑ ์š”์†Œ์— ์˜์กดํ•˜๋Š” ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์„ ์ „์ฒด ๋ ˆ๊ฑฐ์‹œ ํฌํŠธํด๋ฆฌ์˜ค์—์„œ ๋ช‡ ์ดˆ ๋งŒ์— ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์€ ํ™”์š”์ผ ์•„์นจ์— ๋ฐœ์ƒํ•˜๋Š” M&A ๊ฐ์‚ฌ ์š”์ฒญ์— ๋Œ€ํ•œ ์‹ค์šฉ์ ์ธ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ˆ˜๋™ ๊ฒ€ํ†  ๋Œ€์‹  ์กฐํšŒ๋ฅผ ํ†ตํ•ด ๊ฐ„ํŽธํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜„๋Œ€ ์‹œ์Šคํ…œ๊ณผ ๊ธฐ์กด ์‹œ์Šคํ…œ ๋ชจ๋‘๋ฅผ ์•„์šฐ๋ฅด๋Š” ํฌ๊ด„์ ์ธ SBOM(์†Œํ”„ํŠธ์›จ์–ด ์ •์˜ ๋งค๋‰ด์–ผ) ์ ์šฉ ๋ฒ”์œ„๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ์กฐ์ง์˜ ๊ฒฝ์šฐ, SMART TS XL ํ‘œ์ค€ SBOM ์ƒ์„ฑ๊ธฐ๊ฐ€ ์ƒ์„ฑํ•  ์ˆ˜ ์—†๋Š” ๋ ˆ๊ฑฐ์‹œ ๊ตฌ์„ฑ ์š”์†Œ ๋ชฉ๋ก์„ ์ œ๊ณตํ•˜์—ฌ Syft, FOSSA ๋ฐ Dependency-Track๊ณผ ๊ฐ™์€ ์ตœ์‹  ์Šคํƒ์šฉ ๋„๊ตฌ๋ฅผ ๋ณด์™„ํ•ฉ๋‹ˆ๋‹ค.

์ ˆ๋Œ€ ๋†€๋ผ์„œ๋Š” ์•ˆ ๋  ๊ฐ์‚ฌ

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

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๊ฐ€ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์ƒํ™ฉ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋Š” ์ข…์†์„ฑ ๋ถ„์„ ํ”„๋กœ๊ทธ๋žจ์€ ๊ทธ๋กœ ์ธํ•ด ์™„ํ™”๋˜๋Š” ์œ„ํ—˜์— ๋น„ํ•ด ๋น„์šฉ์ด ๋งŽ์ด ๋“ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ, ๋ชจ๋“  ์ „์ด์  ์ข…์†์„ฑ, ๋ชจ๋“  ๊ณต๊ธ‰์—…์ฒด ์ œ๊ณต ์ฝ”๋“œ ์กฐ๊ฐ, ๋ชจ๋“  ๋ ˆ๊ฑฐ์‹œ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ํŒŒ์•…ํ•˜๊ณ , ๊ฐ๊ฐ์„ ์กฐ์ง์˜ ๋ผ์ด์„ ์Šค ์ •์ฑ…์— ๋”ฐ๋ผ ์ฃผ๊ธฐ์ ์œผ๋กœ๊ฐ€ ์•„๋‹ˆ๋ผ ์ง€์†์ ์œผ๋กœ ์ ๊ฒ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๋„๊ตฌ๋Š” ์ด๋ฏธ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ํ‘œ์ค€(SBOM, SPDX, CycloneDX)๋„ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๊ทœ์ œ ์˜๋ฌด(EO 14028, CRA, PCI-DSS 4.0)๋„ ๋งˆ๋ จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์กฐ์ง์— ๋ถ€์กฑํ•œ ๊ฒƒ์€ ์ข…์†์„ฑ ๋ถ„์„์„ ๋‹จ์ˆœํ•œ ๊ฐ์‚ฌ ํ™œ๋™์ด ์•„๋‹Œ ์ธํ”„๋ผ์˜ ์ผ๋ถ€๋กœ ์ธ์‹ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์—ญ๋Ÿ‰์ž…๋‹ˆ๋‹ค.

ํ™”์žฌ ๋Œ€ํ”ผ ํ›ˆ๋ จ ๋Œ€์‹  ๋ณด๊ณ ์„œ ์ž‘์„ฑ์œผ๋กœ ์‹œ์ž‘๋˜๋Š” ํ™”์š”์ผ ์•„์นจ์€, ๋ฐ”๋กœ ๊ทธ๋Ÿฐ ํ™”์š”์ผ ์•„์นจ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ ๊ฒƒ์€ ๋ฐ”๋กœ ์˜์กด์„ฑ ๋ถ„์„ ์ธํ”„๋ผ์ž…๋‹ˆ๋‹ค.