Packj - Python ๋ฐ JavaScript์—์„œ ์•…์„ฑ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ํˆดํ‚ท

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ณด์•ˆ์„ ๋ถ„์„ํ•˜๋Š” Packj ํ”Œ๋žซํผ์˜ ๊ฐœ๋ฐœ์ž๋Š” ์•…์˜์ ์ธ ํ™œ๋™์˜ ๊ตฌํ˜„์ด๋‚˜ ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ทจ์•ฝ์ ์˜ ์กด์žฌ์™€ ์—ฐ๊ด€๋  ์ˆ˜ ์žˆ๋Š” ํŒจํ‚ค์ง€์˜ ์œ„ํ—˜ํ•œ ๊ตฌ์กฐ๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋ฐฉํ˜• ๋ช…๋ น์ค„ ํˆดํ‚ท์„ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ์˜ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ(โ€œ๊ณต๊ธ‰๋งโ€). ํŒจํ‚ค์ง€ ๊ฒ€์‚ฌ๋Š” PyPi ๋ฐ NPM ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ํ˜ธ์ŠคํŒ…๋˜๋Š” Python ๋ฐ JavaScript ์–ธ์–ด๋กœ ์ง€์›๋ฉ๋‹ˆ๋‹ค(์ด๋‹ฌ์—๋Š” Ruby ๋ฐ RubyGems์— ๋Œ€ํ•œ ์ง€์›๋„ ์ถ”๊ฐ€ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค). ํˆดํ‚ท ์ฝ”๋“œ๋Š” Python์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ AGPLv3 ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

PyPi ์ €์žฅ์†Œ์—์„œ ์ œ์•ˆ๋œ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 330๋งŒ ๊ฐœ์˜ ํŒจํ‚ค์ง€๋ฅผ ๋ถ„์„ํ•˜๋Š” ๋™์•ˆ ๋ฐฑ๋„์–ด๊ฐ€ ์žˆ๋Š” ์•…์„ฑ ํŒจํ‚ค์ง€ 42๊ฐœ์™€ ์œ„ํ—˜ํ•œ ํŒจํ‚ค์ง€ 2.4๊ฐœ๊ฐ€ ์‹๋ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฒ€์‚ฌ ์ค‘์— API ๊ธฐ๋Šฅ์„ ์‹๋ณ„ํ•˜๊ณ  OSV ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ช…์‹œ๋œ ์•Œ๋ ค์ง„ ์ทจ์•ฝ์ ์˜ ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ํ‰๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ์ •์  ์ฝ”๋“œ ๋ถ„์„์ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. MalOSS ํŒจํ‚ค์ง€๋Š” API๋ฅผ ๋ถ„์„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์•…์„ฑ์ฝ”๋“œ์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ผ๋ฐ˜์ ์ธ ํŒจํ„ด์ด ์žˆ๋Š”์ง€ ํŒจํ‚ค์ง€ ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค. ํ…œํ”Œ๋ฆฟ์€ ํ™•์ธ๋œ ์•…์„ฑ ํ™œ๋™์ด ์žˆ๋Š” 651๊ฐœ์˜ ํŒจํ‚ท์— ๋Œ€ํ•œ ์—ฐ๊ตฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

๋˜ํ•œ ๋‹ค๋ฅธ ๋ณด์•ˆ ์—ฐ๊ตฌ์›๋“ค์ด PyPi ์ €์žฅ์†Œ์— ์žˆ๋Š” XNUMX๊ฐœ์˜ ์•…์„ฑ ํŒจํ‚ค์ง€๋ฅผ ์‹๋ณ„ํ•œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŒจํ‚ค์ง€๋Š” AWS ๋ฐ ์ง€์†์ ์ธ ํ†ตํ•ฉ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ํ† ํฐ์„ ํ›”์น  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•˜์—ฌ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์˜ ๋‚ด์šฉ์„ ์™ธ๋ถ€ ์„œ๋ฒ„๋กœ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค: loglib-modules(๋กœ ํ‘œ์‹œ๋จ) ํ•ฉ๋ฒ•์ ์ธ loglib ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์šฉ ๋ชจ๋“ˆ), pyg-modules, pygrata ๋ฐ pygrata-utils(์ ๋ฒ•ํ•œ pyg ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์ถ”๊ฐ€๋œ ๊ฒƒ์œผ๋กœ ์„ ์ „๋จ) ๋ฐ hkg-sol-utils.

Packj - Python ๋ฐ JavaScript์—์„œ ์•…์„ฑ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ํˆดํ‚ท


์ถœ์ฒ˜ : opennet.ru

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