์ตœ๊ณ ์˜ COBOL ์ •์  ์ฝ”๋“œ ๋ถ„์„ ์†”๋ฃจ์…˜

๋ฏธ์…˜ ํฌ๋ฆฌํ‹ฐ์ปฌ ์‹œ์Šคํ…œ์„ ์œ„ํ•œ ์ตœ๊ณ ์˜ COBOL ์ •์  ์ฝ”๋“œ ๋ถ„์„ ์†”๋ฃจ์…˜

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

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

์ฐจ๋ก€

SMART TS XL: COBOL์„ ์œ„ํ•œ ๊ณ ๊ธ‰ ์ •์  ์ฝ”๋“œ ๋ถ„์„

SMART TS XL ์ •๊ตํ•œ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰์ž…๋‹ˆ๋‹ค ์ •์  ์ฝ”๋“œ ๋ถ„์„ COBOL ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์‹ฌ์ธต์ ์ธ ์ „๋ฌธ์„ฑ์„ ๋ฐ”ํƒ•์œผ๋กœ ๋Œ€๊ทœ๋ชจ ํฌ๋กœ์Šค ํ”Œ๋žซํผ ๋ ˆ๊ฑฐ์‹œ ํ™˜๊ฒฝ์„ ์ง€์›ํ•˜๋„๋ก ๊ตฌ์ถ•๋œ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. IN-COM Data Systems์—์„œ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. SMART TS XL ์ˆ˜์‹ญ ๋…„ ๋™์•ˆ ์ง„ํ™”ํ•ด ์˜จ COBOL ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ๋ณธ์งˆ์ ์ธ ๋ณต์žก์„ฑ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ •๋ถ€ ๊ธฐ๊ด€, ๊ธˆ์œต ๊ธฐ๊ด€ ๋ฐ Fortune 500 ๊ธฐ์—…์—์„œ ๋„๋ฆฌ ์ฑ„ํƒํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

SMART TS XL COBOL ์ฝ”๋“œ ๋ถ„์„ ์†”๋ฃจ์…˜

 ๊ทธ ํ•ต์‹ฌ์—์„œ, SMART TS XL ์ฝ”๋“œ ์‹คํ–‰ ์—†์ด ํฌ๊ด„์ ์ธ ์ •์  ๋ถ„์„์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ, ํ”„๋กœ๋•์…˜ ์ฝ”๋“œ ์‹คํ–‰์ด ์œ„ํ—˜ํ•˜๊ฑฐ๋‚˜ ๋น„์‹ค์šฉ์ ์ธ ํ™˜๊ฒฝ์— ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค. ๋ฉ”์ธํ”„๋ ˆ์ž„ ์–ธ์–ด, ์ค‘์ฒฉ๋œ ์นดํ”ผ๋ถ, ์ž„๋ฒ ๋””๋“œ SQL์„ ํฌํ•จํ•œ COBOL ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์˜ ๋™์ž‘ ๋ฐฉ์‹, ์ ‘๊ทผ ๋Œ€์ƒ, ์ƒํ˜ธ ์ž‘์šฉ ๋ฐฉ์‹์„ ๋ณด์—ฌ์ฃผ๋Š” ํ’๋ถ€ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” z/OS, UNIX, Linux ๋ฐ Windows ํ”Œ๋žซํผ์—์„œ IBM COBOL, Micro Focus COBOL ๋ฐ ๊ธฐํƒ€ ๋ณ€ํ˜•์— ๋Œ€ํ•œ ์ง€์›์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

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

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

์ง๊ด€์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค, ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์•„ํ‚คํ…์ฒ˜, COBOL ์ค‘์‹ฌ ์ธํ…”๋ฆฌ์ „์Šค๋ฅผ ๊ฐ–์ถ˜ SMART TS XL ๋‹จ์ˆœํ•œ ์ฝ”๋“œ ๋ถ„์„๊ธฐ๊ฐ€ ์•„๋‹ˆ๋ผ, ๊ธฐ์กด ์‹œ์Šคํ…œ์„ ๋ณ€ํ˜•ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ณผ์ œ๋ฅผ ํ—ค์ณ๋‚˜๊ฐ€๋Š” ๊ธฐ์—…์„ ์œ„ํ•œ ์ „๋žต์  ํ˜„๋Œ€ํ™” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

COBOL ์ •์  ์ฝ”๋“œ ๋ถ„์„์„ ์œ„ํ•œ IBM ๋„๊ตฌ

IBM์€ ์˜ค๋žซ๋™์•ˆ ๋ฉ”์ธํ”„๋ ˆ์ž„ ์ƒํƒœ๊ณ„์—์„œ ์ง€๋ฐฐ์ ์ธ ์œ„์น˜๋ฅผ ์ฐจ์ง€ํ•ด ์™”์œผ๋ฉฐ, ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ COBOL ํ™˜๊ฒฝ์— ์ตœ์ ํ™”๋œ ๋‹ค์–‘ํ•œ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ์ค‘ IBM Application Analyzer์™€ IBM Developer for z/OS(IDz)๋Š” COBOL ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ดํ•ดํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ธ ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋„๊ตฌ ๋ชจ๋‘ ๋›ฐ์–ด๋‚œ ๊ฐ•์ ์„ ์ œ๊ณตํ•˜์ง€๋งŒ, ํŠนํžˆ ๋”์šฑ ์ „๋ฌธํ™”๋˜๊ฑฐ๋‚˜ ํ˜„๋Œ€ํ™”์— ์ค‘์ ์„ ๋‘” ์ •์  ๋ถ„์„ ํ”Œ๋žซํผ๊ณผ ๋น„๊ตํ•  ๋•Œ ํ•œ๊ณ„์ ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์—์„œ๋Š” COBOL ์ •์  ์ฝ”๋“œ ๋ถ„์„์— ๋Œ€ํ•œ ๊ฐ ๋„๊ตฌ์˜ ์ฃผ์š” ๊ธฐ๋Šฅ๊ณผ ๋‹จ์ ์„ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.

IBM ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ„์„๊ธฐ

์žฅ์ :

    • COBOL, PL/I, ์–ด์…ˆ๋ธ”๋Ÿฌ ๋ฐ ๊ธฐํƒ€ ๋ฉ”์ธํ”„๋ ˆ์ž„ ์–ธ์–ด์— ๋Œ€ํ•œ ์ •์  ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    • ์ง€๋„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์กฐ, ํ”„๋กœ๊ทธ๋žจ ํ˜ธ์ถœ ์ฒด์ธ, ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค ํŒจํ„ด ๋ฐ ์ƒํ˜ธ ์ข…์†์„ฑ.
    • ์„œ๋น„์Šค ์ถ”์ถœ ๋ฐ ํ˜„๋Œ€ํ™”๋ฅผ ์œ„ํ•œ ๋ชจ๋“ˆํ˜• ๊ตฌ์„ฑ ์š”์†Œ์˜ ๋ฐœ๊ฒฌ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • IBM Application Discovery, DevOps ํŒŒ์ดํ”„๋ผ์ธ ๋ฐ ํด๋ผ์šฐ๋“œ ์ „ํ™˜ ๋„๊ตฌ์™€ ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค.
    • z/OS์—์„œ ์ผ๊ด„ ๋ฐ ์˜จ๋ผ์ธ ๊ฑฐ๋ž˜ ์‹œ์Šคํ…œ์„ ๋ถ„์„ํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

์ œํ•œ ์‚ฌํ•ญ :

    • ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋ณต์žกํ•˜๋ฉด ํ•™์Šต ๊ณก์„ ์ด ๊ฐ€ํŒŒ๋ฅผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํŠนํžˆ IBM์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ๋”์šฑ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.
    • ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™, ์“ธ๋ชจ์—†๋Š” ์ฝ”๋“œ ๋˜๋Š” ๋…ผ๋ฆฌ ์ค‘๋ณต์— ๋Œ€ํ•œ ์„ธ๋ถ€์ ์ธ ๋ถ„์„์ด ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค.
    • ํฌ๋กœ์Šค ํ”Œ๋žซํผ COBOL ๋ถ„์„(์˜ˆ: Windows, Linux)์ด ์ œํ•œ์ ์ด๊ฑฐ๋‚˜ ์—†์Šต๋‹ˆ๋‹ค.
    • ๋ถ„์„ ๊ฒฐ๊ณผ์—๋Š” ์ „๋ฌธ๊ฐ€์˜ ํ•ด์„์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„ ํ†ต์ฐฐ์„ ์–ป๋Š” ์†๋„๊ฐ€ ๋А๋ ค์ง‘๋‹ˆ๋‹ค.

z/OS์šฉ IBM Developer(IDz)

์žฅ์ :

    • COBOL, PL/I, JCL ๋ฐ ๊ธฐํƒ€ z/OS ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ์œ„ํ•œ ๊ฐœ๋ฐœ์ž ์ค‘์‹ฌ IDE์ž…๋‹ˆ๋‹ค.
    • ๊ตฌ๋ฌธ ๊ฒ€์ฆ, ๊ฐ„๋‹จํ•œ ์ œ์–ด ํ๋ฆ„, ์˜ค๋ฅ˜ ๊ฐ์ง€ ๋“ฑ์˜ ์ •์  ๊ฒ€์‚ฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • ์ง€๋Šฅํ˜• ์ฝ”๋“œ ํŽธ์ง‘, ์‹ค์‹œ๊ฐ„ ์˜ค๋ฅ˜ ๊ฐ•์กฐ ํ‘œ์‹œ, ํ…œํ”Œ๋ฆฟ์„ ํ†ตํ•ด ์ƒ์‚ฐ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.
    • ๋ฉ”์ธํ”„๋ ˆ์ž„ ํ™˜๊ฒฝ์˜ ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ ๋ฐ ๋ฐฐํฌ ๋„๊ตฌ์™€ ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค.

์ œํ•œ ์‚ฌํ•ญ :

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

IBM Application Analyzer์™€ IDz๋Š” ๋ชจ๋‘ COBOL ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ์—์„œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•˜์ง€๋งŒ, ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๋ชฉ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Application Analyzer๋Š” ๋” ๋„“์€ ์•„ํ‚คํ…์ฒ˜ ๋ทฐ๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ ์ €์ˆ˜์ค€์˜ ๊นŠ์ด๊ฐ€ ๋ถ€์กฑํ•œ ๋ฐ˜๋ฉด, IDz๋Š” ์ผ์ƒ์ ์ธ ์ฝ”๋”ฉ ์ƒ์‚ฐ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค์ง€๋งŒ ์ตœ์†Œํ•œ์˜ ์ •์  ๋ถ„์„๋งŒ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ƒ์„ธํ•œ ๋กœ์ง ์ถ”์ , ๋ฐ๋“œ ์ฝ”๋“œ ๊ฐ์ง€ ๋˜๋Š” ํ˜„๋Œ€ํ™” ๊ณ„ํš ๋“ฑ COBOL ์ฝ”๋“œ ์ „๋ฐ˜์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ์›ํ•˜๋Š” ์กฐ์ง์˜ ๊ฒฝ์šฐ, ์ด๋Ÿฌํ•œ ๋„๊ตฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณ ๊ธ‰ ์ •์  ๋ถ„์„ ํ”Œ๋žซํผ์œผ๋กœ ๋ณด์™„ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. SMART TS XL ๋˜๋Š” Micro Focus Enterprise Analyzer.

Micro Focus Enterprise ๋ฐ COBOL ๋ถ„์„๊ธฐ

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

๋งˆ์ดํฌ๋กœ ํฌ์ปค์Šค ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๋ถ„์„๊ธฐ

์žฅ์ :

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

์ œํ•œ ์‚ฌํ•ญ :

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

๋งˆ์ดํฌ๋กœ ํฌ์ปค์Šค COBOL ๋ถ„์„๊ธฐ

์žฅ์ :

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

์ œํ•œ ์‚ฌํ•ญ :

    • Enterprise Analyzer์—์„œ ๋ฐœ๊ฒฌ๋˜๋Š” ๊ณ ๊ธ‰ ์•„ํ‚คํ…์ฒ˜ ๋ถ„์„ ๋ฐ ์‹œ์Šคํ…œ ์ „์ฒด ๊ฐ€์‹œ์„ฑ์ด ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค.
    • ๋ณต์žกํ•œ ์˜ํ–ฅ ๋ถ„์„์ด๋‚˜ ํ˜„๋Œ€ํ™” ๊ณ„ํš์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • ๋”์šฑ ๊ฐ•๋ ฅํ•œ ๋ถ„์„ ํ”Œ๋žซํผ์— ๋น„ํ•ด ๋ณด๊ณ  ๋ฐ ์‹œ๊ฐํ™” ๊ธฐ๋Šฅ์ด ์ œํ•œ์ ์ž…๋‹ˆ๋‹ค.
    • ๋” ํฐ Micro Focus ์ƒํƒœ๊ณ„ ๋‚ด์—์„œ ๋ณด์™„ ๋„๊ตฌ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค.

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

SonarQube(COBOL ํ”Œ๋Ÿฌ๊ทธ์ธ ํฌํ•จ)

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

COBOL ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด SonarQube๋Š” ๋ฉ”์ธํ”„๋ ˆ์ž„ ๋ฐ ๋น„๋ฉ”์ธํ”„๋ ˆ์ž„ COBOL ์ฝ”๋“œ์—์„œ ๊ตฌ๋ฌธ ์˜ค๋ฅ˜, ์ฝ”๋“œ ๋ƒ„์ƒˆ, ์ˆœํ™˜ ๋ณต์žก๋„, ๊ทœ์น™ ์œ„๋ฐ˜๊ณผ ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ๋ฅผ ๊ฒ€์‚ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ •์˜ ๊ฐ€๋Šฅํ•œ ๋Œ€์‹œ๋ณด๋“œ์™€ Jenkins, GitLab, Azure DevOps์™€ ๊ฐ™์€ CI/CD ๋„๊ตฌ์™€์˜ ํ†ตํ•ฉ์€ ์ตœ์‹  ๊ฐœ๋ฐœ ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ์ž๋™ํ™”๋œ ํ’ˆ์งˆ ๊ฒŒ์ดํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ํŒ€์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์žฅ์ :

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

์ œํ•œ ์‚ฌํ•ญ :

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

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

์บ์ŠคํŠธ ํ•˜์ด๋ผ์ดํŠธ

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

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

์žฅ์ :

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

์ œํ•œ ์‚ฌํ•ญ :

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

CAST Highlight๋Š” ์ผ์ƒ์ ์ธ COBOL ๊ฐœ๋ฐœ์ด๋‚˜ ์ƒ์„ธํ•œ ์ฝ”๋“œ ์ดํ•ด๋ณด๋‹ค๋Š” ์ž„์› ์ˆ˜์ค€์˜ ์˜์‚ฌ ๊ฒฐ์ • ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํฌํŠธํด๋ฆฌ์˜ค ํ•ฉ๋ฆฌํ™”์— ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค. ์กฐ์ง์ด ํ˜„๋Œ€ํ™” ์ž‘์—…์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ •ํ•˜๊ณ , ์œ„ํ—˜์— ๋…ธ์ถœ๋˜๊ธฐ ์‰ฌ์šด ๋ ˆ๊ฑฐ์‹œ ์‹œ์Šคํ…œ์„ ํŒŒ์•…ํ•˜๊ณ , ๊ธฐ์ˆ  ์ „๋žต์„ ๋น„์ฆˆ๋‹ˆ์Šค ๋ชฉํ‘œ์— ๋งž์ถฐ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ COBOL ํ”„๋กœ๊ทธ๋žจ ๋กœ์ง, ์ข…์†์„ฑ ๋˜๋Š” ๋ณ€ํ™˜ ๊ฒฝ๋กœ์— ๋Œ€ํ•œ ์„ธ๋ถ€์ ์ธ ๊ฐ€์‹œ์„ฑ์ด ํ•„์š”ํ•œ ํŒ€์˜ ๊ฒฝ์šฐ, CAST Highlight๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹ฌ์ธต ๋ถ„์„ ๋„๊ตฌ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค. SMART TS XL ๋˜๋Š” Micro Focus Enterprise Analyzer

์‹œ๋†‰์‹œ์Šค ์ปค๋ฒ„๋ฆฌํ‹ฐ

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

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

์žฅ์ :

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

์ œํ•œ ์‚ฌํ•ญ :

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

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

ํŒŒ๋ผ์†Œํ”„ํŠธ ์ฝ”๋ณผ ํ…Œ์ŠคํŠธ

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

Parasoft COBOL Test์˜ ์ฃผ์š” ๊ฐ•์ ์€ ์ž๋™ํ™”๋œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์ด์ง€๋งŒ, ์ •์  ๋ถ„์„ ๊ธฐ๋Šฅ๋„ ํฌํ•จ๋˜์–ด ์žˆ์–ด ํŒ€์ด ์ž ์žฌ์  ๋ฒ„๊ทธ, ๋ณด์•ˆ ์ทจ์•ฝ์ , ์—…๊ณ„ ์ฝ”๋”ฉ ํ‘œ์ค€ ์œ„๋ฐ˜ ์‚ฌํ•ญ์„ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. IBM ๋ฉ”์ธํ”„๋ ˆ์ž„ ํ™˜๊ฒฝ๊ณผ ํ˜ธํ™˜๋˜๋ฉฐ Parasoft์˜ ๋Œ€๊ทœ๋ชจ ํ’ˆ์งˆ ๊ด€๋ฆฌ ํ”Œ๋žซํผ๊ณผ ํ†ตํ•ฉ๋˜์–ด ํฌ๊ด„์ ์ธ ํ…Œ์ŠคํŠธ ์ž๋™ํ™”, ๋ณด๊ณ  ๋ฐ ๊ทœ์ • ์ค€์ˆ˜ ์ถ”์ ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์žฅ์ :

    • COBOL์— ๋Œ€ํ•œ ์ •์  ์ฝ”๋“œ ๋ถ„์„๊ณผ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๋ฐ ๋Ÿฐํƒ€์ž„ ์ง„๋‹จ์„ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค.
    • MISRA, CERT, CWE์™€ ๊ฐ™์€ ์—…๊ณ„ ์ฝ”๋”ฉ ํ‘œ์ค€์˜ ์‹œํ–‰์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • ํ•ญ๊ณต์šฐ์ฃผ, ์ž๋™์ฐจ, ๊ธˆ์œต๊ณผ ๊ฐ™์€ ๋ถ„์•ผ์˜ ๊ทœ์ œ ์š”๊ตฌ ์‚ฌํ•ญ ์ค€์ˆ˜๋ฅผ ๋ณด์žฅํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
    • ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ƒ์„ฑ, ์‹คํ–‰ ๋ฐ ๊ฒฐ๊ณผ ๊ฒ€์ฆ์„ ์ž๋™ํ™”ํ•ฉ๋‹ˆ๋‹ค.
    • CI/CD ํŒŒ์ดํ”„๋ผ์ธ ๋ฐ ํ…Œ์ŠคํŠธ ๊ด€๋ฆฌ ํ”Œ๋žซํผ๊ณผ ํ†ตํ•ฉ
    • ์ฝ”๋“œ ํ’ˆ์งˆ, ์ ์šฉ ๋ฒ”์œ„ ๋ฐ ์œ„๋ฐ˜ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋ณด๊ณ ์„œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ œํ•œ ์‚ฌํ•ญ :

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

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

ํ”„๋กœ๊ทธ๋žจ ๋ถ„์„์„ ์œ„ํ•œ Compuware Topaz

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

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

์žฅ์ :

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

์ œํ•œ ์‚ฌํ•ญ :

    • ์ฃผ๋กœ ๋ฉ”์ธํ”„๋ ˆ์ž„ ํ™˜๊ฒฝ์— ์ดˆ์ ์„ ๋งž์ถฅ๋‹ˆ๋‹ค. ๋ถ„์‚ฐ COBOL ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ง€์›์€ ์ œํ•œ์ ์ž…๋‹ˆ๋‹ค.
    • ๋ณด์•ˆ ์ค‘์‹ฌ ๋ถ„์„ ๊ธฐ๋Šฅ์ด๋‚˜ ๋” ๊ด‘๋ฒ”์œ„ํ•œ SAST ํ”Œ๋žซํผ๊ณผ์˜ ํ†ตํ•ฉ์ด ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค.
    • ๊ณ ์ˆ˜์ค€ ํฌํŠธํด๋ฆฌ์˜ค ๊ด€๋ฆฌ๋‚˜ ํ˜„๋Œ€ํ™” ๊ณ„ํš์— ์ตœ์ ํ™”๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
    • ์ „์ฒด ๊ธฐ๋Šฅ ์•ก์„ธ์Šค๋ฅผ ์œ„ํ•ด์„œ๋Š” Compuware/BMC ์ƒํƒœ๊ณ„์™€์˜ ์ •๋ ฌ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
    • ๋งค์šฐ ํฐ ์ฝ”๋“œ๋ฒ ์ด์Šค๋‚˜ ๋ชจ๋“ˆํ™”๊ฐ€ ์ œ๋Œ€๋กœ ๋˜์ง€ ์•Š์€ ์‹œ์Šคํ…œ์—์„œ๋Š” ์‹œ๊ฐํ™” ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์Šค๋งˆํŠธ๋ฒ ์–ด ์ฝ”๋“œ์ฝœ๋ผ๋ณด๋ ˆ์ดํ„ฐ

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

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

์žฅ์ :

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

์ œํ•œ ์‚ฌํ•ญ :

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

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

๋ฒ ๋ผ์ฝ”๋“œ

Veracode๋Š” ์ •์  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ณด์•ˆ ํ…Œ์ŠคํŠธ(SAST)์™€ ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์„ฑ ๋ถ„์„(SCA)์„ ์ „๋ฌธ์œผ๋กœ ํ•˜๋Š” ์ž˜ ์•Œ๋ ค์ง„ ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ณด์•ˆ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. Veracode๋Š” ์ฃผ๋กœ ์ตœ์‹  ์–ธ์–ด์— ์ค‘์ ์„ ๋‘๊ณ  ์žˆ์ง€๋งŒ, COBOL์— ๋Œ€ํ•œ ๋ณด์•ˆ ์Šค์บ๋‹ ๊ธฐ๋Šฅ๋„ ์ œ๊ณตํ•˜์—ฌ ๊ธฐ์—…์ด ๊ธฐ์กด ๋ฉ”์ธํ”„๋ ˆ์ž„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ณด์•ˆ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ผ์ดํ”„์‚ฌ์ดํด(SDLC)์— ํฌํ•จํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ธฐ์—…์€ ๊ธฐ์กด ๋ฉ”์ธํ”„๋ ˆ์ž„ ํ™˜๊ฒฝ์—์„œ๋Š” ์ œ๋Œ€๋กœ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋Š” COBOL ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ์ทจ์•ฝ์ ์„ ํƒ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์žฅ์ :

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

์ œํ•œ ์‚ฌํ•ญ :

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

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

์ฒดํฌ ๋งˆํฌ์Šค

Checkmarx๋Š” ๋ฐฐํฌ ์ „ ์†Œ์Šค ์ฝ”๋“œ์˜ ์ทจ์•ฝ์ ์„ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์ •์  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ณด์•ˆ ํ…Œ์ŠคํŠธ(SAST) ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ์ฃผ๋กœ Java, C#, JavaScript์™€ ๊ฐ™์€ ์ตœ์‹  ์–ธ์–ด์— ์ค‘์ ์„ ๋‘๊ณ  ์žˆ์ง€๋งŒ, Checkmarx๋Š” COBOL์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ง€์›๋„ ํ™•์žฅํ•˜์—ฌ ๋ณด์•ˆ์— ๋ฏผ๊ฐํ•œ ์กฐ์ง์ด ๋ ˆ๊ฑฐ์‹œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ž ์žฌ์  ์œ„ํ˜‘์„ ๊ฒ€์‚ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ COBOL ์‹œ์Šคํ…œ์„ ์ตœ์‹  ๋ณด์•ˆ ์ฝ”๋”ฉ ๋ฐฉ์‹์— ๋งž์ถ”๋ ค๋Š” ๊ธฐ์—…์—๊ฒŒ Checkmarx๋Š” ์œ ์šฉํ•œ ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

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

์žฅ์ :

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

์ œํ•œ ์‚ฌํ•ญ :

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

Checkmarx๋Š” ๊ธฐ์—… ๋ณด์•ˆ ํ”„๋กœ๊ทธ๋žจ์— COBOL์„ ํ†ตํ•ฉํ•˜๋ ค๋Š” ์กฐ์ง์— ๊ท€์ค‘ํ•œ ๋„๊ตฌ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์‹  ๋ฐ ๋ ˆ๊ฑฐ์‹œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „๋ฐ˜์— ๊ฑธ์ณ ์ผ๊ด€๋œ ์Šค์บ๋‹ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์œ„ํ—˜ ๋…ธ์ถœ์„ ์ค„์ด๊ณ  ๊ทœ์ • ์ค€์ˆ˜ ์˜๋ฌด๋ฅผ ์ถฉ์กฑํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ COBOL ์ง€์› ๋ถ„์„๊ธฐ๋‚˜ ํ˜„๋Œ€ํ™” ๋„๊ตฌ๋ฅผ ๋Œ€์ฒดํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ์ดํ•ด๋„๋ฅผ ๋†’์ด๊ฑฐ๋‚˜ ๋ ˆ๊ฑฐ์‹œ ์ „ํ™˜์„ ์œ„ํ•œ ์ด๋‹ˆ์…”ํ‹ฐ๋ธŒ๋ฅผ ์œ„ํ•ด์„œ๋Š” Checkmarx๋ฅผ ์ „์šฉ COBOL ์ •์  ๋ถ„์„ ํ”Œ๋žซํผ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค.

ํ‚ค์šฐ์™„

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

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

์žฅ์ :

    • ํ’ˆ์งˆ, ๋ณด์•ˆ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด COBOL ์ฝ”๋“œ์˜ ์ •์  ๋ถ„์„์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • ์ฝ”๋”ฉ ํ‘œ์ค€ ์œ„๋ฐ˜, ๋ณต์žก์„ฑ, ์ž ์žฌ์  ๋ฒ„๊ทธ ๋ฐ ์ทจ์•ฝ์„ฑ์„ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.
    • ์กฐ์ง์˜ ์ฝ”๋”ฉ ํ‘œ์ค€์— ๋”ฐ๋ผ ๊ทœ์น™ ์„ธํŠธ๋ฅผ ์‚ฌ์šฉ์ž ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์œ„ํ—˜ ์ ์ˆ˜, ๊ธฐ์ˆ  ๋ถ€์ฑ„ ์ง€ํ‘œ ๋ฐ ๊ฐœ์„  ์กฐ์–ธ์ด ํฌํ•จ๋œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋ณด๊ณ ์„œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • Jenkins, GitHub, GitLab ๋ฐ Azure DevOps๋ฅผ ํฌํ•จํ•œ DevOps ๋„๊ตฌ์™€ ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค.
    • ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ํ”Œ๋žซํผ์€ ์‰ฌ์šด ์„ค์ •, ํ™•์žฅ์„ฑ ๋ฐ ์ค‘์•™ ์ง‘์ค‘์‹ ๊ฑฐ๋ฒ„๋„Œ์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ œํ•œ ์‚ฌํ•ญ :

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

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

SciTools๋กœ ์ดํ•ด

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

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

์žฅ์ :

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

์ œํ•œ ์‚ฌํ•ญ :

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

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

COBOL-IT ๋ถ„์„๊ธฐ ์ œํ’ˆ๊ตฐ

COBOL-IT Analyzer Suite๋Š” COBOL-IT์—์„œ ๊ฐœ๋ฐœํ•œ ์ •์  ๋ถ„์„ ๋ฐ ํ˜„๋Œ€ํ™” ์ง€์› ๋„๊ตฌ๋กœ, ์กฐ์ง์˜ ๋ ˆ๊ฑฐ์‹œ COBOL ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์œ ์ง€ ๊ด€๋ฆฌ, ์ตœ์ ํ™” ๋ฐ ๋ณ€ํ™˜์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. COBOL-IT Compiler Suite๋ฅผ ๋ณด์™„ํ•˜๋„๋ก ์„ค๊ณ„๋œ ์ด ๋ถ„์„๊ธฐ ์ œํ’ˆ๊ตฐ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์กฐ, ์ข…์†์„ฑ ๋ฐ ๋…ผ๋ฆฌ ๊ฒฝ๋กœ์— ๋Œ€ํ•œ ์‹ฌ์ธต์ ์ธ ํ†ต์ฐฐ๋ ฅ์„ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ์ž์™€ ์„ค๊ณ„์ž๊ฐ€ COBOL ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๋”์šฑ ์ •ํ™•ํ•˜๊ฒŒ ์ดํ•ดํ•˜๊ณ , ๋ฆฌํŒฉํ† ๋งํ•˜๊ณ , ๋ฌธ์„œํ™”ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

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

์žฅ์ :

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

์ œํ•œ ์‚ฌํ•ญ :

    • ๋ณด์•ˆ ์Šค์บ๋‹์ด๋‚˜ ์ทจ์•ฝ์„ฑ ํƒ์ง€์— ๋œ ์ ํ•ฉํ•จ
    • CI/CD ๋„๊ตฌ๋‚˜ ์ตœ์‹  DevOps ํ™˜๊ฒฝ๊ณผ ํ†ตํ•ฉ๋˜์ง€ ์•Š์Œ
    • ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ ์— ๋Œ€ํ•œ ๊ด‘๋ฒ”์œ„ํ•œ ํฌํŠธํด๋ฆฌ์˜ค ๋ถ„์„์— ๋Œ€ํ•œ ์ง€์›์ด ์ œํ•œ๋จ
    • ์‹œ๊ฐํ™” ๋„๊ตฌ๋Š” ๋Œ€๊ทœ๋ชจ ์ฝ”๋“œ๋ฒ ์ด์Šค์—์„œ ์ตœ์ ์˜ ์‚ฌ์šฉ์„ ์œ„ํ•ด ๊ต์œก์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • COBOL-IT ํ™˜๊ฒฝ์— ์ดˆ์ ์„ ๋งž์ถฅ๋‹ˆ๋‹ค. ํ˜ผํ•ฉ ์ปดํŒŒ์ผ๋Ÿฌ ์ƒํƒœ๊ณ„์— ๋Œ€ํ•œ ์ ์‘์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

COBOL-IT Analyzer Suite๋Š” COBOL-IT๋ฅผ ํ™œ์šฉํ•˜๊ณ  ํ˜„๋Œ€ํ™”, ์ตœ์ ํ™” ๋ฐ ๋ฌธ์„œํ™”๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ์„ธ๋ถ„ํ™”๋œ ์ •์  ๋ถ„์„ ๋ฐ ์ฝ”๋“œ ์ดํ•ด ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•œ ์กฐ์ง์— ์œ ์šฉํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๋ณด์•ˆ ์Šค์บ๋‹์ด๋‚˜ DevOps ํ†ตํ•ฉ ๊ธฐ๋Šฅ์€ ์ œ๊ณตํ•˜์ง€ ์•Š์ง€๋งŒ, ๋งž์ถคํ˜• ๋ถ„์„ ๋ฐ ์‹œ๊ฐํ™” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ ๋ ˆ๊ฑฐ์‹œ COBOL ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์œ ์ง€ ๊ด€๋ฆฌ ๋ฐ ๊ฐœ๋ฐœ์„ ๋‹ด๋‹นํ•˜๋Š” ๊ธฐ์ˆ  ํŒ€์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

PMD(ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•œ COBOL ์ง€์› ํฌํ•จ)

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

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

์žฅ์ :

    • ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด COBOL์— ๋Œ€ํ•œ ๊ฐ€๋ณ๊ณ  ๊ทœ์น™ ๊ธฐ๋ฐ˜์˜ ์ •์  ์ฝ”๋“œ ๋ถ„์„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • ์ฝ”๋“œ ๋ƒ„์ƒˆ, ๊ตฌ์กฐ์  ์œ„๋ฐ˜ ๋ฐ ์ž˜๋ชป๋œ ์ฝ”๋”ฉ ๊ด€ํ–‰ ์‹๋ณ„ ์ง€์›
    • ์™„์ „ํžˆ ์˜คํ”ˆ ์†Œ์Šค์ด๋ฉฐ ํ”„๋กœ์ ํŠธ๋ณ„ ๊ทœ์น™์— ๋งž๊ฒŒ ๋†’์€ ์‚ฌ์šฉ์ž ์ •์˜๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
    • CI/CD ํŒŒ์ดํ”„๋ผ์ธ ๋ฐ ์ž๋™ํ™” ์›Œํฌํ”Œ๋กœ์— ์‰ฝ๊ฒŒ ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค.
    • ๋Œ€๋Ÿ‰์˜ ์ฝ”๋“œ์— ๋Œ€ํ•œ ๋น ๋ฅธ ์ดˆ๊ธฐ ํ’ˆ์งˆ ๊ฒ€์‚ฌ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ตœ์†Œํ•œ์˜ ์„ค์ •์œผ๋กœ ์—ฌ๋Ÿฌ ํ”Œ๋žซํผ์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ œํ•œ ์‚ฌํ•ญ :

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

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

์ฝ”๋ณผ์ฒดํฌ

CobolCheck๋Š” JUnit ๋ฐ NUnit๊ณผ ๊ฐ™์€ ์ตœ์‹  ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์˜๊ฐ์„ ๋ฐ›์•„ COBOL์— ์ž๋™ํ™”๋œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋„๋ก ์„ค๊ณ„๋œ ์˜คํ”ˆ์†Œ์Šค ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. CobolCheck๋Š” ์ „ํ†ต์ ์ธ ์ •์  ๋ถ„์„ ๋ฐฉ์‹๊ณผ ๋‹ฌ๋ฆฌ, ๊ฐœ๋ฐœ์ž๊ฐ€ COBOL ๋ชจ๋“ˆ์— ๋Œ€ํ•ด ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•˜๊ณ  ์ž๋™ํ™”๋œ ํ…Œ์ŠคํŠธ๋ฅผ ์ง์ ‘ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜์—ฌ COBOL ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ(TDD) ๋ฐ ์ง€์†์ ์ธ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค.

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

์žฅ์ :

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

์ œํ•œ ์‚ฌํ•ญ :

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

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

OCLint(COBOL ํ™•์žฅ ํฌํ•จ)

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

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

์žฅ์ :

    • ํ™•์žฅ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ COBOL์— ๋งž๊ฒŒ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์˜คํ”ˆ ์†Œ์Šค ๋ฐ ์‚ฌ์šฉ์ž ์ •์˜ ๊ฐ€๋Šฅ ๊ทœ์น™ ์—”์ง„
    • COBOL ์ฝ”๋“œ์˜ ๊ณผ๋„ํ•œ ๋ณต์žก์„ฑ์ด๋‚˜ ๊นŠ์€ ์ค‘์ฒฉ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ์  ๋ฌธ์ œ๋ฅผ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๊ฐ€๋ณ๊ณ  ๋น ๋ฅด๋ฉฐ ์‚ฌ์šฉ์ž ์ •์˜ CI/CD ํŒŒ์ดํ”„๋ผ์ธ์— ํ†ตํ•ฉํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
    • ๊ต์ฐจ ์–ธ์–ด ํ”„๋กœ์ ํŠธ์—์„œ ์ฝ”๋”ฉ ํ‘œ์ค€ ๋ฐ ํ’ˆ์งˆ ์ง€์นจ์„ ์‹œํ–‰ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
    • ๋งž์ถคํ˜• ๋ถ„์„์„ ์œ„ํ•œ ๊ทœ์น™ ์‚ฌ์šฉ์ž ์ •์˜ ๋ฐ ์–ต์ œ ์ง€์›

์ œํ•œ ์‚ฌํ•ญ :

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

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

Fortify ์˜คํ”ˆ ์†Œ์Šค(FOSS) ๋„๊ตฌ

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

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

์žฅ์ :

    • ๋ฌด๋ฃŒ ์˜คํ”ˆ ์†Œ์Šค์ด๋ฏ€๋กœ ์‚ฌ์šฉ์ž ์ •์˜ ํŒŒ์ดํ”„๋ผ์ธ์— ๋Œ€ํ•œ ์‹คํ—˜ ๋ฐ ํ†ตํ•ฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
    • ๋ณด์•ˆ ์Šค์บ๋‹ ๋ฐ ์ฝ”๋“œ ์œ„์ƒ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ ˆ๊ฑฐ์‹œ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ํ™•์žฅํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
    • ์•Œ๋ ค์ง„ ์ž˜๋ชป๋œ ํŒจํ„ด์ด๋‚˜ ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ๋†’์€ ์ˆ˜์ค€์—์„œ ๊ฐ์ง€ํ•˜๋„๋ก ์Šคํฌ๋ฆฝํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๊ธฐ๋ณธ ๊ทœ์น™ ์ ์šฉ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด CI/CD ์›Œํฌํ”Œ๋กœ์— ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค.
    • COBOL ํ™˜๊ฒฝ์— ์ตœ์‹  DevSecOps ํˆด๋ง์„ ์—ฐ๊ฒฐํ•˜๋Š” ๊ธฐ๋ฐ˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ œํ•œ ์‚ฌํ•ญ :

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

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

CodeScan(๋ ˆ๊ฑฐ์‹œ ์‹œ์Šคํ…œ์˜ COBOL์šฉ)

CodeScan์€ ์ฃผ๋กœ Salesforce ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ๊ตฌ์ถ•๋œ ์ •์  ์ฝ”๋“œ ๋ถ„์„ ํ”Œ๋žซํผ์œผ๋กœ, Apex, Lightning ๋ฐ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•œ ์‹ฌ์ธต์ ์ธ ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. CodeScan์€ Salesforce ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ํ’ˆ์งˆ๊ณผ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๋Š” ๋ฐ ํƒ์›”ํ•˜์ง€๋งŒ, COBOL ๋ฐ ๋ ˆ๊ฑฐ์‹œ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ ์šฉ ๊ฐ€๋Šฅ์„ฑ์€ ๋งค์šฐ ์ œํ•œ์ ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ๊ณต์‹์ ์ธ COBOL ์ง€์›์€ ์ œ๊ณต๋˜์ง€ ์•Š์œผ๋ฉฐ, CodeScan์˜ ๊ทœ์น™ ์—”์ง„, ๋Œ€์‹œ๋ณด๋“œ ๋ฐ ํ†ตํ•ฉ ๊ธฐ๋Šฅ์€ ๋ฉ”์ธํ”„๋ ˆ์ž„์ด๋‚˜ ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ๊ฐ€ ์•„๋‹Œ ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ํ™˜๊ฒฝ์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

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

์žฅ์ :

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

์ œํ•œ ์‚ฌํ•ญ :

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

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

์˜ฌ๋ฐ”๋ฅธ ๋ Œ์ฆˆ ์„ ํƒ: COBOL์˜ ์ •์  ๋ถ„์„ ํ™˜๊ฒฝ ํƒ์ƒ‰

๋Œ€๊ธฐ์—…๋ถ€ํ„ฐ ์˜คํ”ˆ์†Œ์Šค ์‹ ๊ทœ ๊ธฐ์—…๊นŒ์ง€, COBOL ์ •์  ์ฝ”๋“œ ๋ถ„์„ ์ƒํƒœ๊ณ„๋Š” ์ง€์›ํ•˜๋Š” ๋ ˆ๊ฑฐ์‹œ ์‹œ์Šคํ…œ๋งŒํผ์ด๋‚˜ ๋‹ค์–‘ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋„๊ตฌ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. SMART TS XL, Micro Focus Enterprise Analyzer, Compuware Topaz๋Š” ์‹ฌ์ธต์ ์ธ ๊ตฌ์กฐ์  ํ†ต์ฐฐ๋ ฅ๊ณผ ๋ ˆ๊ฑฐ์‹œ ํ˜„๋Œ€ํ™”์— ํƒ์›”ํ•˜์—ฌ ์žฅ๊ธฐ์ ์ธ ํ˜์‹ ์„ ๊ณ„ํšํ•˜๋Š” ํŒ€์— ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค. Veracode, Checkmarx, Synopsys Coverity์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ์†”๋ฃจ์…˜๋“ค์€ ๊ทœ์ œ ํ™˜๊ฒฝ์—์„œ ๋ณด์•ˆ๊ณผ ๊ทœ์ • ์ค€์ˆ˜๋ฅผ ์šฐ์„ ์‹œํ•˜๋Š” ์กฐ์ง์— ๋” ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

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

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

๋ ˆ๊ฑฐ์‹œ๊ฐ€ ์‹œ๋Œ€์— ๋’ค๋–จ์–ด์ง„ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ์ •์  ๋ถ„์„ ํˆดํ‚ท์„ ์‚ฌ์šฉํ•˜๋ฉด COBOL ์‹œ์Šคํ…œ์ด ์ตœ์‹  IT ํ™˜๊ฒฝ์—์„œ ๋ฐœ์ „ํ•˜๊ณ , ์ ์‘ํ•˜๋ฉฐ, ์„ฑ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.