์ •์  ๋ถ„์„์„ ํ†ตํ•œ COBOL ์ œ์–ด ํ๋ฆ„ ์ด์ƒ ํ˜„์ƒ์˜ ์ •์ฒด ๋ฐํžˆ๊ธฐ

์ •์  ๋ถ„์„์„ ํ†ตํ•œ COBOL ์ œ์–ด ํ๋ฆ„ ์ด์ƒ ํ˜„์ƒ์˜ ์ •์ฒด ๋ฐํžˆ๊ธฐ

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

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

COBOL ์ด์ƒ ํ˜„์ƒ์„ ๋น ๋ฅด๊ฒŒ ํฌ์ฐฉ

SMART TS XL ๋น„์šฉ์ด ๋งŽ์ด ๋“œ๋Š” ์‹คํŒจ๋กœ ์ด์–ด์ง€๊ธฐ ์ „์— ์ˆจ๊ฒจ์ง„ COBOL ์ œ์–ด ํ๋ฆ„ ์œ„ํ—˜์„ ๋ฐํ˜€๋ƒ…๋‹ˆ๋‹ค.

์ง€๊ธˆ ๋ฐœ๊ฒฌํ•˜์„ธ์š”

์ฐจ๋ก€

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

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

COBOL ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋„๋‹ฌํ•  ์ˆ˜ ์—†๋Š” ์ฝ”๋“œ ๊ฐ์ง€

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

COBOL์—์„œ ๋„๋‹ฌํ•  ์ˆ˜ ์—†๋Š” ์ฝ”๋“œ๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด์œ ๋กœ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ข…๋ฃŒ ๋ช…๋ น์–ด ๋’ค์— ๋ฐฐ์น˜๋œ ๋ช…๋ น๋ฌธ(์˜ˆ: STOP RUN or GOBACK ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ž˜๋ชป๋œ PERFORM THRU ์ง€๋‚˜์น˜๊ฒŒ ๋ณต์žกํ•œ ์กฐ๊ฑด ๋ถ„๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•˜๋ฉด ์ „์ฒด ๋ฌธ๋‹จ์ด ์ œ์–ด ํ๋ฆ„ ๊ทธ๋ž˜ํ”„์—์„œ ๋ถ„๋ฆฌ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋„๋‹ฌํ•  ์ˆ˜ ์—†๋Š” ์ฝ”๋“œ๊ฐ€ ๋ฌดํ•ดํ•˜๋”๋ผ๋„ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ์˜ค์—ผ์‹œํ‚ค๊ณ  ์œ ์ง€ ๊ด€๋ฆฌ์„ฑ์„ ์ €ํ•ดํ•ฉ๋‹ˆ๋‹ค.

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

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

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

PROCEDURE DIVISION์˜ ๋ฐ๋“œ ์ฝ”๋“œ ๊ฒฝ๋กœ

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

๊ฐ€์žฅ ํ”ํ•œ ์›์ธ ์ค‘ ํ•˜๋‚˜๋Š” ์กฐ๊ธฐ ์ข…๋ฃŒ์ž…๋‹ˆ๋‹ค. STOP RUN, GOBACK๋ฐ EXIT PROGRAM ์‹คํ–‰์„ ์ค‘๋‹จํ•˜์ง€๋งŒ, ๊ฐœ๋ฐœ์ž๊ฐ€ ์‹ค์ˆ˜๋กœ ๋˜๋Š” ์ด์ „ ๋ฒ„์ „์˜ ์ž”์žฌ๋กœ ๋กœ์ง์„ ๋‚˜์ค‘์— ์‚ฝ์ž…ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

PERFORM INIT-SECTION
STOP RUN
DISPLAY "This will never appear"

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

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

์ •์  ๋ถ„์„์€ ํ”„๋กœ๊ทธ๋žจ์˜ ์ œ์–ด ํ๋ฆ„ ๊ทธ๋ž˜ํ”„๋ฅผ ์ˆœํšŒํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๋ฐ๋“œ ํŒจ์Šค(dead path)๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋ฌธ๋‹จ์ด๋‚˜ ๋ช…๋ น์–ด๋Š” ์•Œ๋ ค์ง„ ์ง„์ž…์ ๊ณผ์˜ ์—ฐ๊ฒฐ ์—ฌ๋ถ€๋ฅผ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ์ด ์—†์œผ๋ฉด ์ถ”๊ฐ€ ๊ฒ€์‚ฌ๋ฅผ ์œ„ํ•ด ํ”Œ๋ž˜๊ทธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์„ธ์Šค๋Š” ์™„์ „ํžˆ ๋„๋‹ฌํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ๋‹จ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๋ฌด์กฐ๊ฑด์ ์ธ ์กฐ๊ฑด๋ฌธ ๋‹ค์Œ์— ์˜ค๋Š” ์ค„๊ณผ ๊ฐ™์ด ํ™œ์„ฑ ๋ฌธ๋‹จ ๋‚ด์˜ ๋„๋‹ฌํ•  ์ˆ˜ ์—†๋Š” ์„ธ๊ทธ๋จผํŠธ๋„ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค. GO TO or STOP RUN.

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

PERFORM THRU ์˜ค์šฉ ๋ฐ ๋„๋‹ฌ ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฌธ๋‹จ ์‹๋ณ„

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

๋‹ค์Œ ์ฝ”๋“œ ์กฐ๊ฐ์„ ์‚ดํŽด๋ณด์„ธ์š”.

PERFORM START-LOGIC THRU FINAL-LOGIC
...
START-LOGIC.
DISPLAY "Begin"

MIDDLE-LOGIC.
DISPLAY "Middle"

FINAL-LOGIC.
DISPLAY "End"
STOP RUN

EXTRA-LOGIC.
DISPLAY "This is never reached"

์ด ๊ฒฝ์šฐ์—๋Š” EXTRA-LOGIC ์‹ค์ˆ˜๋กœ ~์˜ ์ผ๋ถ€๋กœ ๋ฏฟ์–ด์กŒ์Šต๋‹ˆ๋‹ค. PERFORM THRU ์‹œํ€€์Šค๋Š” ์‹ค์ œ๋กœ ๋„๋‹ฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋” ๋‚˜์œ ๊ฒƒ์€ FINAL-LOGIC ์œ ์ง€ ๊ด€๋ฆฌ ์ค‘์— ์œ„์น˜๊ฐ€ ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋˜์—ˆ์ง€๋งŒ PERFORM ์ง„์ˆ ์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์˜๋„๋œ ๋…ผ๋ฆฌ์˜ ์ผ๋ถ€๋ฅผ ์ž๋™์œผ๋กœ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

์‹๋ณ„ ๋ฐ ์ˆ˜์ • PERFORM THRU ์˜ค์šฉ์€ ํ”„๋กœ๊ทธ๋žจ ๋…ผ๋ฆฌ๊ฐ€ ์˜๋„ํ•œ ๋Œ€๋กœ ํ๋ฅด๋„๋ก ๋ณด์žฅํ•˜๊ณ  ์˜ˆ์™ธ์ ์ธ ์‹คํ–‰์ด๋‚˜ ๊ฒ‰๋ณด๊ธฐ์— ๋ฌดํ•ดํ•œ ์ฝ”๋“œ ๋ณ€๊ฒฝ ํ›„์— ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ๋Š” ์ˆจ๊ฒจ์ง„ ๊ฒฐํ•จ์˜ ์œ„ํ—˜์„ ์ค„์ž…๋‹ˆ๋‹ค.

STOP RUN ๋˜๋Š” GOBACK ์ดํ›„์˜ ์ฝ”๋“œ(๋„๋‹ฌํ•  ์ˆ˜ ์—†๋Š” ์‹คํ–‰ ๊ฒฝ๋กœ)

COBOL ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜๋ฉด์„œ๋„ ์ž์ฃผ ๊ฐ„๊ณผ๋˜๋Š” ์ œ์–ด ํ๋ฆ„ ์ด์ƒ ์ค‘ ํ•˜๋‚˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ„ฐ๋ฏธ๋„ ๋ช…๋ น์–ด ๋‹ค์Œ์— ์ฝ”๋“œ๊ฐ€ ์กด์žฌํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. STOP RUN, GOBACK๋ฐ EXIT PROGRAM์ด๋Ÿฌํ•œ ๋ช…๋ น๋ฌธ์€ ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ํ•˜์œ„ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰์ด ๋๋‚ฌ์Œ์„ ์•Œ๋ฆฌ๋Š” ์‹ ํ˜ธ์ด๋ฉฐ, ๊ฐ™์€ ๋…ผ๋ฆฌ ๋ธ”๋ก ๋‚ด์—์„œ ์ด ๋ช…๋ น๋ฌธ ๋’ค์— ์˜ค๋Š” ์ค„์€ ์–ด๋– ํ•œ ์ƒํ™ฉ์—์„œ๋„ ๋„๋‹ฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์˜ˆ :

STOP RUN
DISPLAY "This line will never execute"

The DISPLAY ๋ช…๋ น์€ ์‚ฌ์‹ค์ƒ ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ์–ด๊ฐ€ ์™„์ „ํžˆ ์ค‘๋‹จ๋˜๋ฏ€๋กœ ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. STOP RUN. ํ•˜์ง€๋งŒ ์ด์™€ ๊ฐ™์€ ์ค„์€ ๋ ˆ๊ฑฐ์‹œ ์‹œ์Šคํ…œ์—์„œ ํ”ํžˆ ๋ฐœ๊ฒฌ๋ฉ๋‹ˆ๋‹ค. ๋‚จ์•„ ์žˆ๋Š” ๋””๋ฒ„๊ทธ ๋ช…๋ น๋ฌธ, ์ž˜๋ชป๋œ ๋…ผ๋ฆฌ ์œ„์น˜, ๋˜๋Š” ํŒจ์น˜๋‚˜ ํ•ซํ”ฝ์Šค ๊ณผ์ •์—์„œ ์ œ์–ด ์ข…๋ฃŒ์ž๊ฐ€ ์ถ”๊ฐ€๋œ ์ด์ „ ๋ฒ„์ „์˜ ์ž”์—ฌ๋ฌผ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

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

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

์กฐ๊ฑด๋ถ€ ์ ํ”„๋กœ ์ธํ•ด ์ฃฝ์€ ์ฝ”๋“œ ์„น์…˜ ์ƒ์„ฑ

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

๋‹ค์Œ ์˜ˆ์ œ๋ฅผ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค.

IF CUSTOMER-ELIGIBLE = 'Y'
PERFORM ISSUE-CARD
ELSE
IF CUSTOMER-ELIGIBLE = 'N'
PERFORM REJECT-CARD

์–ธ๋œป ๋ณด๊ธฐ์—๋Š” ๋…ผ๋ฆฌ๊ฐ€ ๋งž๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ CUSTOMER-ELIGIBLE ์ด์ „ ๊ฒ€์ฆ ๋…ผ๋ฆฌ์— ์˜ํ•ด 'Y' ๋˜๋Š” 'N'์ด ๋ณด์žฅ๋˜๊ณ  ์™ธ๋ถ€ ์กฐ๊ฑด์ด ์ด๋ฏธ 'Y'๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒฝ์šฐ ๋‚ด๋ถ€ ์กฐ๊ฑด์€ 'Y'์ž…๋‹ˆ๋‹ค. IF ์ค‘๋ณต๋ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ด๋กœ ์ธํ•ด REJECT-CARD ํ๋ฆ„์˜ ๊ทธ ์ง€์ ์—์„œ 'N'์ด ๊ฒฐ์ฝ” ํ—ˆ์šฉ๋˜๋Š” ๊ฐ’์ด ์•„๋‹ˆ๋ผ๋ฉด ํ•ด๋‹น ๋ฌธ๋‹จ์€ ๋„๋‹ฌํ•  ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

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

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

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

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

๋„๋‹ฌํ•  ์ˆ˜ ์—†๋Š” ๋ธ”๋ก์— ๋Œ€ํ•œ ์ œ์–ด ํ๋ฆ„ ๊ทธ๋ž˜ํ”„(CFG) ๋ถ„์„

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

COBOL ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ CFG๋ฅผ ๋นŒ๋“œํ•˜๋ ค๋ฉด ์ •์  ๋ถ„์„๊ธฐ๊ฐ€ ๋จผ์ € ๋‹ค์Œ์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ์ง„์ž…์ , ์‹œ์ž‘๊ณผ ๊ฐ™์€ PROCEDURE DIVISION ๋˜๋Š” PERFORM ๋Œ€์ƒ. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹จ๋ฝ์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ณ  ๋ถ„๊ธฐ ์ง€์นจ์„ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: IF, GOTO, PERFORM), ๊ทธ๋ฆฌ๊ณ  ์ง€๋„๋Š” ์ „ํ™˜์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ํŠน๋ณ„ํ•œ ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. PERFORM THRU ์‹œํ€€์Šค, ํด์Šค๋ฃจ ๋ฌธ๋‹จ, ์กฐ๊ฑด๋ถ€๋กœ ์‹คํ–‰๋˜๋Š” ์„œ๋ธŒ๋ฃจํ‹ด.

๋‹ค์Œ ๊ตฌ์กฐ๋ฅผ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค.

INITIALIZE.
PERFORM SETUP
PERFORM PROCESS THRU FINALIZE
GOBACK

SETUP.
DISPLAY "Setting up"

PROCESS.
DISPLAY "Processing"

FINALIZE.
DISPLAY "Finalizing"

UNUSED.
DISPLAY "Dead code"

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

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

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

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

๋ ˆ๊ฑฐ์‹œ Fallthrough ๋…ผ๋ฆฌ์—์„œ False Positive ์ฒ˜๋ฆฌ

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

๋‹ค์Œ ์˜ˆ์ œ๋ฅผ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค.

MAIN-LOGIC.
PERFORM SETUP

SETUP.
MOVE A TO B

CLEANUP.
MOVE B TO C

์ด ๊ฒฝ์šฐ MAIN-LOGIC ๋ฌธ๋‹จ์—์„œ ๋ช…์‹œ์ ์œผ๋กœ ํ˜ธ์ถœ SETUPํ•˜์ง€๋งŒ, CLEANUP ์ง์ ‘ ์ฐธ์กฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ STOP RUN, GOBACK๋ฐ GO TO ์ˆ˜ํ–‰์› SETUP, ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํŒจํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค CLEANUP ์‹คํ–‰ ์ค‘์— ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋™์ž‘์€ ์œ ํšจํ•˜์ง€๋งŒ ์˜๋ฏธ์ ์œผ๋กœ ๋ถˆ๋ถ„๋ช…ํ•˜๋ฉฐ ์ฝ”๋“œ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ฑฐ๋‚˜ ๋ฆฌํŒฉํ† ๋งํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

๋‹จ์ˆœํ•œ CFG ๋ถ„์„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CLEANUP ์–ด๋–ค ๋Œ€์ƒ๋„ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋„๋‹ฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. PERFORM. ์ด๊ฒƒ์€ ์˜คํƒ (false positive) ๊ฐœ๋ฐœ์ž๊ฐ€ ์‹ค์ œ๋กœ ์ž‘๋™ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๋„๋ก ์˜ค๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฏธ์…˜ ํฌ๋ฆฌํ‹ฐ์ปฌ ์‹œ์Šคํ…œ์—์„œ ์ด๋Ÿฌํ•œ ์˜คํ•ด๋Š” ์‹ฌ๊ฐํ•œ ์œ„ํ—˜์„ ์ดˆ๋ž˜ํ•ฉ๋‹ˆ๋‹ค.

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

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

์ด๋Ÿฌํ•œ ๋ฏธ๋ฌ˜ํ•œ ์ฐจ์ด๋ฅผ ๊ณ ๋ คํ•จ์œผ๋กœ์จ ์ •์  ๋ถ„์„์€ ๋”์šฑ ์‹ ๋ขฐ์„ฑ ์žˆ๊ณ  ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋ฉฐ ๊ธฐ์กด COBOL ๊ฐœ๋ฐœ์˜ ํ˜„์‹ค์— ๋ถ€ํ•ฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋ฐฉ๋ฒ• SMART TS XL ๋†’์€ ์ •๋ฐ€๋„๋กœ ๋„๋‹ฌํ•  ์ˆ˜ ์—†๋Š” ์ฝ”๋“œ ํ”Œ๋ž˜๊ทธ

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

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

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

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

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

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

COBOL์˜ ๋ฌดํ•œ ๋ฃจํ”„์™€ ์žฌ๊ท€์  ์œ„ํ—˜

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

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

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

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

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

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

๋ฌดํ•œ ๋ฃจํ”„์˜ ์ •์  ๊ฐ์ง€

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

์ผ๋ฐ˜์ ์ธ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

PERFORM PROCESS-DATA UNTIL COMPLETED = 'Y'.

์ด ๋ฃจํ”„๋Š” ์–ธ๋œป ๋ณด๊ธฐ์— ์•ˆ์ „ํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ •์  ๋ถ„์„์—์„œ๋Š” ๋ณ€์ˆ˜๊ฐ€ COMPLETED ํ•ญ์ƒ 'Y'๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. PROCESS-DATA ๋‹จ๋ฝ. ๋ถ„์„์—์„œ ์“ฐ๊ธฐ ์ž‘์—…์„ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ COMPLETED๋˜๋Š” ๋ถ„๊ธฐ ๋…ผ๋ฆฌ๋กœ ์ธํ•ด ํ• ๋‹น์— ๋„๋‹ฌํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ํŒ๋‹จํ•˜๋Š” ๊ฒฝ์šฐ ์ด๋ฅผ ๋ฌด์ œํ•œ ๋ฃจํ”„๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

์ข…๋ฃŒ ์กฐ๊ฑด์ด ํŒŒ์ผ ์ฝ๊ธฐ, ํŠธ๋žœ์žญ์…˜ ํ”Œ๋ž˜๊ทธ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ•„๋“œ ๋“ฑ ์™ธ๋ถ€ ์ž…๋ ฅ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋Š” ๊ฒฝ์šฐ ๋” ๋ณต์žกํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

PERFORM UNTIL END-OF-FILE = 'Y'
READ CUSTOMER-FILE
AT END
MOVE 'Y' TO END-OF-FILE
NOT AT END
PERFORM PROCESS-CUSTOMER
END-PERFORM.

์—ฌ๊ธฐ์„œ ์ •์  ๊ฐ์ง€๋Š” ๋‹ค์Œ์„ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. READ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋ฃจํ”„ ์ค‘๋‹จ ์กฐ๊ฑด์„ ์ง€์†์ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. END-OF-FILE ์–ด๋–ค ์ง€์ ์—๋„ ํ• ๋‹น๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ AT END ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ž˜๋ชป ๋ฐฐ์น˜๋˜์–ด ๋…ผ๋ฆฌ์— ๋„๋‹ฌํ•  ์ˆ˜ ์—†๊ณ  ๋ฃจํ”„๊ฐ€ ๋ฌดํ•œํžˆ ์‹คํ–‰๋  ์œ„ํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํƒ์ง€ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

์ •์  ๋„๊ตฌ๋Š” ์ข…๋ฃŒ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ง์ ‘ ๋ฐ ๊ฐ„์ ‘ ์ˆ˜์ •์„ ๋ชจ๋‘ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. MOVE, SET๊ทธ๋ฆฌ๊ณ  ์กฐ๊ฑด์ด ์ถฉ์กฑ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋‚ฎ๊ธฐ ๋•Œ๋ฌธ์— ํ• ๋‹น์ด ์ œ์–ด๋˜๋Š” ์กฐ๊ฑด ๋…ผ๋ฆฌ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋ฌดํ•œ ๋ฃจํ”„์˜ ์ •์  ๊ฐ์ง€

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

์ผ๋ฐ˜์ ์ธ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

PERFORM PROCESS-DATA UNTIL COMPLETED = 'Y'.

์ด ๋ฃจํ”„๋Š” ์–ธ๋œป ๋ณด๊ธฐ์— ์•ˆ์ „ํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ •์  ๋ถ„์„์—์„œ๋Š” ๋ณ€์ˆ˜๊ฐ€ COMPLETED ํ•ญ์ƒ 'Y'๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. PROCESS-DATA ๋‹จ๋ฝ. ๋ถ„์„์—์„œ ์“ฐ๊ธฐ ์ž‘์—…์„ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ COMPLETED๋˜๋Š” ๋ถ„๊ธฐ ๋…ผ๋ฆฌ๋กœ ์ธํ•ด ํ• ๋‹น์— ๋„๋‹ฌํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ํŒ๋‹จํ•˜๋Š” ๊ฒฝ์šฐ ์ด๋ฅผ ๋ฌด์ œํ•œ ๋ฃจํ”„๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

์ข…๋ฃŒ ์กฐ๊ฑด์ด ํŒŒ์ผ ์ฝ๊ธฐ, ํŠธ๋žœ์žญ์…˜ ํ”Œ๋ž˜๊ทธ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ•„๋“œ ๋“ฑ ์™ธ๋ถ€ ์ž…๋ ฅ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋Š” ๊ฒฝ์šฐ ๋” ๋ณต์žกํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

PERFORM UNTIL END-OF-FILE = 'Y'
READ CUSTOMER-FILE
AT END
MOVE 'Y' TO END-OF-FILE
NOT AT END
PERFORM PROCESS-CUSTOMER
END-PERFORM.

์—ฌ๊ธฐ์„œ ์ •์  ๊ฐ์ง€๋Š” ๋‹ค์Œ์„ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. READ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋ฃจํ”„ ์ค‘๋‹จ ์กฐ๊ฑด์„ ์ง€์†์ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. END-OF-FILE ์–ด๋–ค ์ง€์ ์—๋„ ํ• ๋‹น๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ AT END ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ž˜๋ชป ๋ฐฐ์น˜๋˜์–ด ๋…ผ๋ฆฌ์— ๋„๋‹ฌํ•  ์ˆ˜ ์—†๊ณ  ๋ฃจํ”„๊ฐ€ ๋ฌดํ•œํžˆ ์‹คํ–‰๋  ์œ„ํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํƒ์ง€ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

์ •์  ๋„๊ตฌ๋Š” ์ข…๋ฃŒ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ง์ ‘ ๋ฐ ๊ฐ„์ ‘ ์ˆ˜์ •์„ ๋ชจ๋‘ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. MOVE, SET๊ทธ๋ฆฌ๊ณ  ์กฐ๊ฑด์ด ์ถฉ์กฑ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋‚ฎ๊ธฐ ๋•Œ๋ฌธ์— ํ• ๋‹น์ด ์ œ์–ด๋˜๋Š” ์กฐ๊ฑด ๋…ผ๋ฆฌ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

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

PERFORM ๋ฃจํ”„์—์„œ ๋ˆ„๋ฝ๋œ ์ข…๋ฃŒ ์กฐ๊ฑด

COBOL์€ ๋‹ค์–‘ํ•œ ๋ณ€ํ˜•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. PERFORM ๋ฃจํ”„ ํฌํ•จ PERFORM UNTIL, PERFORM VARYING์˜ˆ์‚ฐ ๋ฐ PERFORM WITH TEST BEFORE/AFTER์ด๋Ÿฌํ•œ ๊ตฌ์กฐ๋Š” ์œ ์—ฐํ•˜์ง€๋งŒ, ์ข…๋ฃŒ ์กฐ๊ฑด์ด ๋ช…์‹œ์ ์œผ๋กœ ์ ์šฉ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ๊ฐ€๋ณ€ ์ƒํƒœ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๊ฒฝ์šฐ ์œ„ํ—˜์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •์ ์ด๊ฑฐ๋‚˜ ๋„๋‹ฌํ•  ์ˆ˜ ์—†๋Š” ์ข…๋ฃŒ ์กฐ๊ฑด์ด ์žˆ๋Š” ๋ฃจํ”„๋Š” ๋ฌดํ•œ ์‹คํ–‰์„ ์ดˆ๋ž˜ํ•˜์—ฌ ๋ฐฐ์น˜ ์ž‘์—…์„ ์ง€์—ฐ์‹œํ‚ค๊ฑฐ๋‚˜ CICS ํŠธ๋žœ์žญ์…˜์„ ์ž ๊ธ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ์˜ˆ์ œ๋ฅผ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค.

PERFORM WITH TEST AFTER
PROCESS-RECORD.

์œ„์˜ ๋ฃจํ”„๋Š” ์ข…๋ฃŒ ์กฐ๊ฑด์„ ์ •์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. PROCESS-RECORD ๊ฒฐ๊ตญ ์กฐ๊ฑด๋ฌธ์„ ํ˜ธ์ถœํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค EXIT PERFORM, ํ•˜์ง€๋งŒ ์ด๊ฒƒ์€ ๊ตฌ๋ฌธ์— ์˜ํ•ด ๊ฐ•์ œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. EXIT PERFORM ๋…ผ๋ฆฌ์  ์˜ค๋ฅ˜๋‚˜ ์ž…๋ ฅ ์ด์ƒ์œผ๋กœ ์ธํ•ด ํŠธ๋ฆฌ๊ฑฐ๋˜์ง€ ์•Š์œผ๋ฉด ๋ฃจํ”„๊ฐ€ ๋ฌดํ•œํžˆ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

๋”์šฑ ๋ฏธ๋ฌ˜ํ•œ ๊ฒฝ์šฐ๋Š” ์ข…๋ฃŒ ์กฐ๊ฑด์ด ์ •์˜๋˜์—ˆ์ง€๋งŒ ์ด๋ฅผ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹์ƒํƒœ๊ฐ€ ๋ฃจํ”„ ๋ณธ๋ฌธ ๋‚ด์—์„œ ์ˆ˜์ •๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

PERFORM PROCESS-CUSTOMERS UNTIL FILE-STATUS = 'EOF'.

If FILE-STATUS ๋‚ด๋ถ€ ์–ด๋””์—๋„ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค PROCESS-CUSTOMERS๋˜๋Š” ์—…๋ฐ์ดํŠธ๊ฐ€ ํ™œ์„ฑํ™”๋˜์ง€ ์•Š๋Š” ์กฐ๊ฑด ๋ถ„๊ธฐ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ๋ฃจํ”„๋Š” ๋ฌด์ œํ•œ์œผ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

์ •์  ๋ถ„์„์€ ๋‹ค์Œ์„ ํ†ตํ•ด ์ด๋Ÿฌํ•œ ์กฐ๊ฑด์„ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.

  • ์กฐ๊ฑด ํ‘œํ˜„์‹์„ ์ถ”์ถœํ•˜๊ธฐ ์œ„ํ•œ ๋ฃจํ”„ ์„ ์–ธ ๊ตฌ๋ฌธ ๋ถ„์„
  • ๋ฃจํ”„ ๋ณธ๋ฌธ ๋‚ด์—์„œ ๋ณ€์ˆ˜ ํ• ๋‹น ์‹๋ณ„
  • ์–ด๋–ค ํ• ๋‹น์ด ์ข…๋ฃŒ ์กฐ๊ฑด์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”์ง€ ํ‰๊ฐ€
  • ์ด๋Ÿฌํ•œ ํ• ๋‹น์ด ๋ชจ๋“  ํ˜„์‹ค์ ์ธ ์ œ์–ด ๊ฒฝ๋กœ์—์„œ ๋„๋‹ฌ ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋ณด์žฅ๋œ ํ• ๋‹น์ด ์—†๋Š” ๊ฒฝ์šฐ ๋ฃจํ”„๋Š” ์ž ์žฌ์ ์œผ๋กœ ๋ฌดํ•œํ•˜๋‹ค๊ณ  ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

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

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

์žฌ๊ท€์  COPYBOOK ํฌํ•จ ์œ„ํ—˜

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

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

๊ฐ„๋‹จํ•œ ์˜ˆ:

* In MAIN-PROGRAM
COPY INCLUDE-LOGIC.

...

* In INCLUDE-LOGIC COPYBOOK
PERFORM VALIDATE-ENTRY.

...

VALIDATE-ENTRY.
COPY INCLUDE-LOGIC.

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

์ •์  ๋ถ„์„ ๋„๊ตฌ๋Š” ๋‹ค์Œ์„ ํ†ตํ•ด ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

  • COPYBOOK ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๋‹จ์ผ ์ œ์–ด ํ๋ฆ„ ๋ชจ๋ธ๋กœ ํ‰๋ฉดํ™”
  • ํ”„๋กœ๊ทธ๋žจ ๋ฐ COPYBOOK ๊ฐ„ ํฌ๊ด„ ๊ด€๊ณ„ ์ถ”์ 
  • ํฌํ•จ ๋ฐ ์‹คํ–‰ ๊ทธ๋ž˜ํ”„์—์„œ ์‚ฌ์ดํด ๊ฐ์ง€
  • ๋™์ผํ•œ ํ˜ธ์ถœ ์ฒด์ธ ๋‚ด์—์„œ ๋™์ผํ•œ COPYBOOK์— ๋Œ€ํ•œ ๋ฐ˜๋ณต ์ฐธ์กฐ ํ”Œ๋ž˜๊ทธ ์ง€์ •

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

์ด๋Ÿฌํ•œ ์žฌ๊ท€์  ํฌํ•จ์˜ ๊ฒฐ๊ณผ๋กœ๋Š” ๋ฌดํ•œ ์ œ์–ด ๋ฃจํ”„, CALL ์ฒด์ธ์˜ ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ(์žฌ๊ท€๊ฐ€ ํ•˜์œ„ ํ”„๋กœ๊ทธ๋žจ์„ ํฌํ•จํ•˜๋Š” ๊ฒฝ์šฐ), ๊ทธ๋ฆฌ๊ณ  ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๋Š” ๋Ÿฐํƒ€์ž„ ๋™์ž‘์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ COBOL์„ ๊ตฌ์กฐํ™”๋œ ์–ธ์–ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ž๋™ํ™” ๋„๊ตฌ๊ฐ€ ์ด๋Ÿฌํ•œ ์‚ฌ์ดํด์„ ์œ ํšจํ•œ ๋ฐ˜๋ณต ๋…ผ๋ฆฌ๋กœ ์ž˜๋ชป ํ•ด์„ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํ˜„๋Œ€ํ™” ์ž‘์—…์ด ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค.

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

์ข…๋ฃŒ ๊ฐ€๋“œ๊ฐ€ ์—†๋Š” ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ๋ฃจํ”„

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

์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ๋ฃจํ”„์˜ ์ผ๋ฐ˜์ ์ธ ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

PERFORM UNTIL EIBAID = 'CLEAR'
EXEC CICS RECEIVE MAP(MAP-NAME)
END-EXEC
PERFORM PROCESS-INPUT
END-PERFORM.

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

์ •์  ๋ถ„์„์€ ๋‹ค์Œ์„ ํ†ตํ•ด ์ด๋Ÿฌํ•œ ์ทจ์•ฝ์ ์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.

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

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

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

PERFORM UNTIL EIBAID = 'CLEAR' OR LOOP-COUNT > 100

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ž…๋ ฅ์ด ์‹คํŒจํ•˜๊ฑฐ๋‚˜ ์œ ํšจํ•˜์ง€ ์•Š๊ฒŒ ๋˜๋”๋ผ๋„ ๋ฃจํ”„๊ฐ€ ๋ฌดํ•œ์ • ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

๊ณ ์œ„ํ—˜ ๋ฃจํ”„ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ํŒจํ„ด ์ธ์‹

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

ํŠนํžˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‰ฌ์šด ๋ฃจํ”„ ํŒจํ„ด์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

์˜ˆ:

์ฝ”๋ณผ๋ณต์‚ฌํŽธ์ง‘PERFORM UNTIL EOF
    PERFORM UNTIL RECORD-FOUND
        PERFORM CHECK-INDEX
    END-PERFORM
    PERFORM PROCESS-DATA
END-PERFORM.

์ •์  ๋ถ„์„ ๋„๊ตฌ๋Š” ์ค‘์ฒฉ ๊นŠ์ด๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ์ž„๊ณ„๊ฐ’(์˜ˆ: 3๋‹จ๊ณ„ ์ด์ƒ ๊นŠ์ด)์„ ์ดˆ๊ณผํ•˜๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ํ”Œ๋ž˜๊ทธ๋กœ ํ‘œ์‹œํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณต์žก์„ฑ์ด๋‚˜ ์ž ์žฌ์ ์ธ ๋ฌด์ œํ•œ ๊ฒฝ๋กœ๋ฅผ ๊ฒ€ํ† ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

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

์˜ˆ:

์ฝ”๋ณผ๋ณต์‚ฌํŽธ์ง‘PERFORM UNTIL VALID
    IF ERROR
        GO TO CLEANUP
END-PERFORM.

ํŒจํ„ด ์ธ์‹์€ ์ด๋Ÿฌํ•œ ์‚ฌ์šฉ์„ ํ‘œ์‹œํ•˜๊ณ  ์ ์ ˆํ•œ ๋ฃจํ”„ ์œ„์ƒ์— ๋Œ€ํ•œ ๊ฒ€ํ† ๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

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

์ •์  ๋ถ„์„ ๋„๊ตฌ๋Š” ์ข…์†์„ฑ ์ฒด์ธ์„ ์ถ”์ ํ•˜๊ณ  I/O ์ž‘์—…์ด๋‚˜ ๋Ÿฐํƒ€์ž„ ์ƒํƒœ ํ”Œ๋ž˜๊ทธ์— ์—ฐ๊ฒฐ๋œ ์ข…๋ฃŒ ์กฐ๊ฑด์„ ์ธ์‹ํ•˜์—ฌ ์ด๋ฅผ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.

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

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

CALLed ํ”„๋กœ๊ทธ๋žจ ๊ฐ„ ํ”„๋กœ์‹œ์ € ๊ฐ„ ๋ฃจํ”„ ๋ถ„์„

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

๋‹ค์Œ ์˜ˆ์ œ๋ฅผ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค.

์ฝ”๋ณผ๋ณต์‚ฌํŽธ์ง‘PERFORM UNTIL COMPLETE = 'Y'
    CALL 'PROCESS-STEP'
END-PERFORM.

์ฒซ๋ˆˆ์— ๋ณด๋ฉด ์ด ๋ฃจํ”„๋Š” ๋‹ค์Œ์— ์˜ํ•ด ์ œ์–ด๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. COMPLETE ํ”Œ๋ž˜๊ทธ. ๊ทธ๋Ÿฌ๋‚˜ ํ•ด๋‹น ํ”Œ๋ž˜๊ทธ์˜ ์‹ค์ œ ์„ค์ •์€ ํ•˜์œ„ ํ”„๋กœ๊ทธ๋žจ ๋‚ด๋ถ€์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. PROCESS-STEP๋˜๋Š” 2์ฐจ ๋ชจ๋“ˆ์—์„œ ๋” ๊นŠ์ด ์žˆ๋Š” PROCESS-STEP ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ค‘์ฒฉ๋œ ํ”„๋กœ๊ทธ๋žจ์ด ์ˆ˜์ •์— ์‹คํŒจํ•˜๋ฉด COMPLETE ๋˜๋Š” ๋“œ๋ฌธ ์กฐ๊ฑด์—์„œ๋งŒ ๊ทธ๋ ‡๊ฒŒ ํ•œ๋‹ค๋ฉด ๋ถ€๋ชจ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฃจํ”„๊ฐ€ ๋ฌดํ•œํ•ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ ˆ์ฐจ ๊ฐ„ ๋ฃจํ”„ ๋ถ„์„์˜ ๊ณผ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋™์  ํ˜ธ์ถœ ํ”„๋กœ๊ทธ๋žจ ์ด๋ฆ„์ด ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌ๋˜๊ฑฐ๋‚˜ ๋Ÿฐํƒ€์ž„์— ๊ฒฐ์ •๋˜๋Š” ๊ฒฝ์šฐ
  • ๊ณต์œ  ๋ฐ์ดํ„ฐ ์˜์—ญ ์ฒ˜๋Ÿผ LINKAGE SECTION ํ˜„์žฌ ๋ชจ๋“ˆ ์™ธ๋ถ€์—์„œ ์ˆ˜์ •๋œ ๋ณ€์ˆ˜
  • ์กฐ๊ฑด๋ถ€ ํ˜ธ์ถœ ํŠน์ • ์ƒํƒœ์—์„œ๋งŒ ํ•˜์œ„ ํ”„๋กœ๊ทธ๋žจ์„ ํ˜ธ์ถœํ•˜์—ฌ ๋ฃจํ”„ ๊ฒ€์ฆ์„ ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

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

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

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

SMART TS XL๋ฃจํ”„ ๋ณต์žก๋„ ์ ์ˆ˜ ๋งค๊ธฐ๊ธฐ๋ฅผ ์œ„ํ•œ ํœด๋ฆฌ์Šคํ‹ฑ

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

์ ์ˆ˜ ์‹œ์Šคํ…œ์€ ๋ฃจํ”„๊ฐ€ ๋ฌดํ•œ ์‹คํ–‰, ๋…ผ๋ฆฌ์  ์˜ค๋ฅ˜ ๋˜๋Š” ์œ ์ง€ ๊ด€๋ฆฌ ๋ฌธ์ œ์™€ ๊ฐ™์€ ์ด์ƒ ํ˜„์ƒ์„ ์ดˆ๋ž˜ํ•  ๊ฐ€๋Šฅ์„ฑ์„ ํ‰๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ์†์„ฑ์„ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค.

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

2. ์ค‘์ฒฉ ๊นŠ์ด
๊นŠ์ด ์ค‘์ฒฉ๋œ ๋ฃจํ”„๋Š” ๋ณธ์งˆ์ ์œผ๋กœ ๋ถ„์„ํ•˜๊ณ  ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ธฐ๊ฐ€ ๋” ์–ด๋ ต์Šต๋‹ˆ๋‹ค. SMART TS XL ํŠนํžˆ ์ค‘์ฒฉ์ด ๋‹ค๋ฅธ ๋ฃจํ”„ ์œ ํ˜•์„ ๊ฒฐํ•ฉํ•˜๋Š” ๊ฒฝ์šฐ(์˜ˆ: ์ค‘์ฒฉ๋œ ๊ฐ ์ถ”๊ฐ€ ๋ ˆ๋ฒจ์— ๋Œ€ํ•ด ์ ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. PERFORM VARYING ๋‚ด๋ถ€ PERFORM UNTIL). ๊ณผ๋„ํ•œ ์ค‘์ฒฉ์€ ๊ธฐ๋Šฅ์  ๋ถ„ํ•ด๋‚˜ ๊ตฌ์กฐ์  ๋ฆฌํŒฉํ† ๋ง์ด ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์‹œ์‚ฌํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

3. ์ œ์–ด ์ „๋‹ฌ ๋ณ€๋™์„ฑ
์‚ฌ์šฉํ•˜๋Š” ๋ฃจํ”„ EXIT PERFORM, GOTO, ๋˜๋Š” ๊ฐ„์ ‘์ ์œผ๋กœ CALL ์ข…๋ฃŒ ๋ช…๋ น๋ฌธ์€ ๋น„ํ‘œ์ค€ ์ œ์–ด ๋™์ž‘์œผ๋กœ ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŒจํ„ด์€ ์ข…๋ฃŒ ์ง€์  ์˜ˆ์ธก์„ ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ค์ˆ˜๋กœ ๋ฌดํ•œ ์‹คํ–‰๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋” ๋†’์Šต๋‹ˆ๋‹ค.

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

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

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

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

์ œ์–ด ํ๋ฆ„ ๊ทธ๋ž˜ํ”„(CFG) ์ด์ƒ ํ˜„์ƒ

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

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

CFG ๋ถ„์„ ์ค‘์— ๋‚˜ํƒ€๋‚˜๋Š” ์ด์ƒ ํ˜„์ƒ์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฒ”์ฃผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ช…ํ™•ํ•œ ์ œ์–ด ์ „์†ก ์—†์ด ์„œ๋กœ ์—ฐ๊ฒฐ๋˜๋Š” ๋ฌธ๋‹จ์ด๋‚˜ ์„น์…˜
  • GOTO ๊ตฌ์กฐํ™”๋œ ์‹œํ€€์‹ฑ์„ ๊นจ๊ณ  ์žฅ๊ฑฐ๋ฆฌ ์ ํ”„๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฌธ์žฅ
  • PERFORM ๊ทธ๋ž˜ํ”„์˜ ํ•œ ๋ถ€๋ถ„์—์„œ ์‹คํ–‰์„ ์‹œ์ž‘ํ•˜์ง€๋งŒ ์ผ๊ด€๋˜๊ฒŒ ๋ฐ˜ํ™˜ํ•˜๊ฑฐ๋‚˜ ์ข…๋ฃŒํ•˜์ง€ ์•Š๋Š” ๋ช…๋ น๋ฌธ
  • ์˜ˆ์ƒ๋˜๋Š” ์ดˆ๊ธฐํ™” ๋˜๋Š” ๊ฒ€์ฆ ๋‹จ๊ณ„๋ฅผ ์šฐํšŒํ•˜๋Š” ๋ถ„๊ธฐ ๋…ผ๋ฆฌ

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

CFG ๊ธฐ๋ฐ˜ ์ถ”๋ก ์„ ์ง€์›ํ•˜๋Š” ์ •์  ๋ถ„์„ ๋„๊ตฌ๋Š” ๋‹ค์Œ์„ ํ†ตํ•ด ์ด๋Ÿฌํ•œ ์ˆจ๊ฒจ์ง„ ์ด์ƒ์„ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

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

๋‹จ๋ฝ ๋ฐ ์„น์…˜ ์ˆœ์„œ ์œ„ํ—˜

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

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

์œ„ํ—˜ํ•œ ์‹œํ€€์‹ฑ์˜ ์˜ˆ:

SECTION-A.
PERFORM INIT
MOVE A TO B

SECTION-B.
DISPLAY B

์ด ๊ตฌ์กฐ์—์„œ๋Š” ๋ช…์‹œ์ ์ธ ์ „ํ™˜์ด ์—†์Šต๋‹ˆ๋‹ค. SECTION-A ์— SECTION-B. ๋งŒ์•ฝ PERFORM ํ†ตํ™” SECTION-A, ๊ทธ๋ฆฌ๊ณ  ์—†๋‹ค EXIT or GO TO, ์‹คํ–‰์ด ์‹คํŒจํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค SECTION-B์˜๋„ํ–ˆ๋“  ์•„๋‹ˆ๋“ , ์ด๋Ÿฌํ•œ ์ˆœ์„œ๋Š” ํŠนํžˆ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ๋ฌธ๋‹จ์ด๋‚˜ ์„น์…˜์ด ์žฌ๋ฐฐ์—ด๋  ๋•Œ ์œ„ํ—˜ํ•˜๋ฉฐ, ํ•œ๋•Œ ์œ ์ง€๋˜์—ˆ๋˜ ์•”๋ฌต์ ์ธ ํ๋ฆ„์ด ๊นจ์ง‘๋‹ˆ๋‹ค.

์ถ”๊ฐ€์ ์ธ ์‹œํ€€์‹ฑ ์œ„ํ—˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

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

์ ์ ˆํ•œ SECTION ๋””์ž์ธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ํฌํ•จ EXIT ๊ฐ ์„น์…˜์˜ ๋์— ์žˆ๋Š” ์ง„์ˆ 
  • ์—ฌ๋Ÿฌ ๋ธ”๋ก์—์„œ ๊ณต์œ ๋œ ๋ฌธ๋‹จ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
  • ๋ช…์‹œ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์„ธ์š” PERFORM or GO TO ์„น์…˜ ๊ฐ„ ์ „ํ™˜์„ ์œ„ํ•œ ๋ฌธ์žฅ

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

SECTION์—์„œ ์˜๋„์น˜ ์•Š์€ ์‹คํŒจ(EXIT ๋ˆ„๋ฝ)

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

์˜ˆ :

SECTION-A.
PERFORM INITIALIZE
MOVE A TO B
* No EXIT statement here

SECTION-B.
PERFORM CALCULATE

์ด ๊ฒฝ์šฐ ์‹คํ–‰ ํ›„ SECTION-A, ์ œ์–ด๋Š” ์ง์ ‘ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค SECTION-B a๊ฐ€ ์•„๋‹Œ ํ•œ GO TO, EXIT๋ฐ STOP RUN ๊ฐœ์ž…ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ SECTION-B ์ด ํ๋ฆ„์˜ ์ผ๋ถ€๋กœ ์‹คํ–‰๋˜๋„๋ก ์˜๋„๋œ ๊ฒƒ์ด ์•„๋‹ˆ์—ˆ์ง€๋งŒ, ์ด ์˜ค๋ฅ˜๋Š” ์ œ์–ด ์ด์ƒ ํ˜„์ƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ ์ด์ค‘ ์‹คํ–‰, ์ผ๊ด€๋˜์ง€ ์•Š์€ ์ƒํƒœ ๋˜๋Š” ์ž˜๋ชป๋œ ์กฐ๊ฑด์—์„œ ํ™œ์„ฑํ™”๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๋…ผ๋ฆฌ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ •์  ๋ถ„์„ ๋„๊ตฌ๋Š” ๊ฐ ์„น์…˜์˜ ์ข…๋ฃŒ ์ƒํƒœ๋ฅผ ๊ฒ€์‚ฌํ•˜์—ฌ ์ด๋ฅผ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค . ์ด๋Ÿฌํ•œ ๋„๊ตฌ๋Š” ๋‹ค์Œ์„ ์ฐพ์Šต๋‹ˆ๋‹ค.

  • ์กด์žฌ ๋˜๋Š” ๋ถ€์žฌ EXIT ๋งˆ์ง€๋ง‰ ๋ฌธ์žฅ
  • ๊ฐœ์ž… ์ œ์–ด ์ „์†ก ์—†์ด ์—ฐ์†์ ์ธ SECTION ์ •์˜
  • ๋ช…์‹œ์ ์ธ ์ „ํ™˜ ์—†์ด ํ•œ SECTION์—์„œ ๋‹ค๋ฅธ SECTION์œผ๋กœ ์ด์–ด์ง€๋Š” ์ œ์–ด ๊ฒฝ๋กœ

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

์ด๋Ÿฌํ•œ ์ด์ƒ์„ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด COBOL ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

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

GOTO ๊ธฐ๋ฐ˜ ์ŠคํŒŒ๊ฒŒํ‹ฐ ์ฝ”๋“œ ๋ฐ CFG ์ค‘๋‹จ

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

๋น„๊ตฌ์กฐํ™”๋œ ์ œ์–ด ์ „์†ก์˜ ๊ฐ„๋‹จํ•œ ์˜ˆ:

IF ERROR-FLAG = 'Y'
GOTO ERROR-HANDLER
...
ERROR-HANDLER.
DISPLAY 'An error occurred.'

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

๊ณผ๋„ํ•˜๊ฑฐ๋‚˜ ์˜ค์šฉ์˜ ๊ฒฐ๊ณผ GOTO ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค :

  • ๋„๋‹ฌํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ๋‹จ ์šฐํšŒ๋œ ์ง€์ ์œผ๋กœ ์ธํ•ด ๊ฒฐ์ฝ” ์ž…๋ ฅ๋˜์ง€ ์•Š์Œ
  • ์žฌ์ดˆ๊ธฐํ™” ์—†์ด ์žฌ์ง„์ž…, ๋ฌธ๋‹จ์ด ์ˆœ์„œ ์—†์ด ์ ํ”„๋˜๋Š” ๊ฒฝ์šฐ
  • ๋‹จํŽธํ™” ์ œ์–ด, ๋…ผ๋ฆฌ์  ํ๋ฆ„์ด ํ”„๋กœ๊ทธ๋žจ์˜ ๋จผ ๋ถ€๋ถ„์— ๋ถ„์‚ฐ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ
  • ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ์‚ฌ์ดํด ์žฌ๊ท€ ๋˜๋Š” ๋ฌดํ•œ ๋ฃจํ”„ ์กฐ๊ฑด๊ณผ ์œ ์‚ฌํ•จ

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

๊ฐ€์žฅ ํŒŒ๊ดด์ ์ธ ํŒจํ„ด์œผ๋กœ ์ง€์ ๋œ ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์—ฌ๋Ÿฌ SECTION ๊ฒฝ๊ณ„๋ฅผ ๊ฐ€๋กœ์งˆ๋Ÿฌ ์ ํ”„ํ•ฉ๋‹ˆ๋‹ค.
  • ํ™œ์„ฑ ๋ฃจํ”„ ๋˜๋Š” ์กฐ๊ฑด ๋ถ„๊ธฐ๋กœ์˜ ์—ญ๋ฐฉํ–ฅ ์ ํ”„
  • ๋ฌธ๋‹จ์ด๋‚˜ ๋…ผ๋ฆฌ ๋ธ”๋ก์˜ ์ค‘๊ฐ„์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ์ธก ๋ถˆ๊ฐ€๋Šฅํ•˜๊ฒŒ ์—…๋ฐ์ดํŠธ๋œ ํ”Œ๋ž˜๊ทธ ๊ฐ’์— ์˜์กดํ•˜๋Š” ์กฐ๊ฑด๋ฌธ GOTO

CFG ์ค‘๋‹จ์„ ์™„ํ™”ํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋ฒ” ์‚ฌ๋ก€์—๋Š” ๊ต์ฒด๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. GOTO ๊ณผ PERFORM ๋˜๋Š” ๋…ผ๋ฆฌ๋ฅผ ์žฌ๊ตฌ์„ฑํ•˜์—ฌ ์‚ฌ์šฉ EVALUATE, IF์˜ˆ์‚ฐ ๋ฐ EXIT PERFORM ๊ตฌ์กฐ. ํ˜„๋Œ€ํ™” ํ”„๋กœ์ ํŠธ์—์„œ ์ž๋™ํ™” ๋„๊ตฌ๋Š” ์ข…์ข… ๋‹ค์Œ์„ ๋ฒˆ์—ญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GOTO ์ œ์–ด ์˜๋„๊ฐ€ ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜๋œ ๊ฒฝ์šฐ ๊ตฌ์กฐํ™”๋œ ๋™๋“ฑ์–ด๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

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

๋ถˆ๊ท ํ˜•ํ•œ PERFORM(์ง„์ž…/์ข…๋ฃŒ ๋ถˆ์ผ์น˜)

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

์ด๋Ÿฌํ•œ ๋ถˆ์ผ์น˜๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด์œ ๋กœ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฅผ ํ†ตํ•ด ์ข…๋ฃŒ GOTO ํ—ˆ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค PERFORM ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋Œ์•„๊ฐ€๋‹ค
  • ์กฐ๊ธฐ ์ข…๋ฃŒ STOP RUN, GOBACK๋ฐ EXIT PROGRAM ์ˆ˜ํ–‰๋œ ๋ธ”๋ก ๋‚ด์—์„œ
  • ์ค‘๊ฐ„์œผ๋กœ ์ ํ”„ํ•˜๊ฑฐ๋‚˜ ์ค‘๊ฐ„์—์„œ ์ ํ”„ํ•˜๋Š” ๊ฒƒ PERFORM ๋ฒ”์œ„ํŠนํžˆ ์‚ฌ์šฉํ•  ๋•Œ PERFORM THRU

๋ถˆ๊ท ํ˜•์˜ ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. PERFORM:

PERFORM SETUP THRU CLEANUP

...

SETUP.
DISPLAY 'Initializing'

MAIN.
DISPLAY 'Running main logic'
GOTO END-PROGRAM

CLEANUP.
DISPLAY 'Cleaning up'

์ด ๊ฒฝ์šฐ, GOTO END-PROGRAM ๋‚ด๋ถ€ MAIN ๋‹จ๋ฝ์œผ๋กœ ์ธํ•ด ์กฐ๊ธฐ ์ข…๋ฃŒ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. PERFORM THRU ์‹œํ€€์Šค. ๊ฒฐ๊ณผ์ ์œผ๋กœ, CLEANUP ์‹คํ–‰๋˜์ง€ ์•Š์•„ ์˜๋„๋œ ์ •๋ฆฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด PERFORM์ง„์ž…์ ๊ณผ ์ข…๋ฃŒ ๊ฒฝ๋กœ๊ฐ€ ์ž˜๋ชป๋˜์–ด ์‹คํ–‰์ด ์™„๋ฃŒ๋˜์ง€ ์•Š๊ฑฐ๋‚˜, ๋…ผ๋ฆฌ๊ฐ€ ๊ฑด๋„ˆ๋›ฐ๊ฑฐ๋‚˜, ์ƒํƒœ๊ฐ€ ์†์ƒ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ •์  ๋ถ„์„ ๋„๊ตฌ๋Š” ๋ถˆ๊ท ํ˜•์„ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค. PERFORM ๊ตฌ์กฐ๋ณ„:

  • ๋ชจ๋“  ์ง„์ž… ๋ฐ ์ถœ๊ตฌ ์ง€์  ๋งคํ•‘ PERFORM ๊ธฐ๋„
  • ์ œ์–ด๊ฐ€ ๋‹ค์Œ ๋ช…๋ น์–ด๋กœ ์•ˆ์ •์ ์œผ๋กœ ๋ณต๊ท€ํ•˜๋Š”์ง€ ์ถ”์  PERFORM
  • ์™„์ „ํ•œ ํŒจ์Šค๋ฅผ ๋ฐฉํ•ดํ•˜๋Š” ์ˆ˜ํ–‰๋œ ๋ธ”๋ก ๋‚ด์˜ ์ ํ”„ ๋˜๋Š” ์ข…๋ฃŒ๋ฅผ ํ”Œ๋ž˜๊น…ํ•ฉ๋‹ˆ๋‹ค.

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

๋ถˆ๊ท ํ˜•์˜ ๊ฒฐ๊ณผ PERFORMs ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค :

  • ๋งˆ๋ฌด๋ฆฌ ๋˜๋Š” ์ •๋ฆฌ ์ฝ”๋“œ ์ƒ๋žต
  • ๋…ผ๋ฆฌ์  ๋ถˆ์ผ์น˜ ๋ถ€๋ถ„์ ์œผ๋กœ ์‹คํ–‰๋œ ์›Œํฌํ”Œ๋กœ๋กœ ์ธํ•ด ๋ฐœ์ƒ
  • ๊ฐ์‚ฌ ์œ„ํ—˜ ์ฆ๊ฐ€ํŠนํžˆ ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ ํ™•์ธ์ด ์ค‘์š”ํ•œ ๊ธˆ์œต ์‹œ์Šคํ…œ์—์„œ

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด COBOL ๊ฐœ๋ฐœ์ž๋Š” ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ์„ ํ”ผํ•˜์‹ญ์‹œ์˜ค GOTO ์ˆ˜ํ–‰๋œ ๋ฌธ๋‹จ ๋‚ด์—์„œ
  • ํ™•์ธ PERFORM THRU ๋ฒ”์œ„๋Š” ์œ ์ง€ ๊ด€๋ฆฌ ์ค‘์— ์ž˜ ์ •์˜๋˜๊ณ  ๋ณด์กด๋ฉ๋‹ˆ๋‹ค.
  • EXIT ๋…ผ๋ฆฌ ๋ธ”๋ก์„ ์šฐ์•„ํ•˜๊ฒŒ ๋งˆ๋ฌด๋ฆฌํ•˜๋Š” ๋ฌธ์žฅ

๋ชจ๋“  ์ œ์–ด ํ๋ฆ„์˜ ๊ท ํ˜• ์œ ์ง€ PERFORM ์šด์˜์€ ๋ณด๋‹ค ์•ˆ์ •์ ์ด๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šฐ๋ฉฐ ๊ฐ์‚ฌํ•˜๊ธฐ ์‰ฌ์šด COBOL ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ๋ฐ ๊ธฐ์—ฌํ•ฉ๋‹ˆ๋‹ค.

CALLed ํ”„๋กœ๊ทธ๋žจ ์ฒด์ธ์˜ ๊ตญ๊ฐ€ ๋ถ€ํŒจ ์œ„ํ—˜

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

์ผ๋ฐ˜์ ์ธ ์œ„ํ—˜ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

CALL 'VERIFY-INPUT' USING CUSTOMER-DATA
CALL 'CALCULATE-BALANCE' USING CUSTOMER-DATA

If VERIFY-INPUT ์ˆ˜์ • CUSTOMER-DATA ์˜ˆ๋ฅผ ๋“ค์–ด, ํ•„๋“œ๋ฅผ ๋‹ค์‹œ ํฌ๋งทํ•˜๊ฑฐ๋‚˜ ์ž”์•ก์„ 0์œผ๋กœ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ๊ธฐ๋ณธ๊ฐ’์„ ์ ์šฉํ•˜๊ณ  ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฌธ์„œํ™”ํ•˜๊ฑฐ๋‚˜ ๋ถ„๋ฆฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ CALCULATE-BALANCE ์†์ƒ๋˜์—ˆ๊ฑฐ๋‚˜ ์˜ˆ๊ธฐ์น˜ ์•Š์€ ๋ฐ์ดํ„ฐ์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด ํŒจํ„ด์ด ์—ฌ๋Ÿฌ ์ค‘์ฒฉ๋œ ๋ฐ์ดํ„ฐ์—์„œ ๋ฐ˜๋ณต๋˜๋Š” ๊ฒฝ์šฐ CALLs์—์„œ๋Š” ์ง„๋‹จํ•˜๊ธฐ ์–ด๋ ค์šด ๋…ผ๋ฆฌ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๊ธ‰๊ฒฉํžˆ ๋†’์•„์ง‘๋‹ˆ๋‹ค.

๊ตญ๊ฐ€ ๋ถ€ํŒจ ์œ„ํ—˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๊ฐ€์žฅ ๋‘๋“œ๋Ÿฌ์ง‘๋‹ˆ๋‹ค.

  • ํ˜ธ์ถœ๋œ ํ”„๋กœ๊ทธ๋žจ์€ ๋™์ผํ•œ ๊ฒƒ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. LINKAGE SECTION ๊ตฌ์กฐ๋Š” ๋‹ค๋ฅด์ง€๋งŒ ์กฐ์ž‘์€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค
  • ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์ด ๊ณตํ†ต ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค. COMMAREA or WORKING-STORAGE ๋ธ”๋ก
  • ๋ณ€์ˆ˜์˜ ์ƒํƒœ์— ๋Œ€ํ•œ ์•”๋ฌต์ ์ธ ๊ฐ€์ •์ด ์žˆ์Šต๋‹ˆ๋‹ค. CALL ์™„๋ฃŒ

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

์ผ๋ฐ˜์ ์œผ๋กœ ํ‘œ์‹œ๋˜๋Š” ํŒจํ„ด์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

๊ตญ๊ฐ€ ๋ถ€ํŒจ๋ฅผ ์ค„์ด๋ ค๋ฉด:

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

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

CICS ๊ฑฐ๋ž˜ ํ๋ฆ„ ์ค‘๋‹จ(RETURN ๋ˆ„๋ฝ)

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

์ผ๋ฐ˜์ ์ธ CICS ํ”„๋กœ๊ทธ๋žจ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋๋‚  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค.

EXEC CICS RETURN
TRANSID('TRN1')
COMMAREA(COM-AREA)
END-EXEC.

์ด ๋ช…๋ น์€ ํ”„๋กœ๊ทธ๋žจ์ด ์ฒ˜๋ฆฌ๋ฅผ ์™„๋ฃŒํ–ˆ์œผ๋ฉฐ ์ œ์–ด๊ถŒ์„ ํฌ๊ธฐํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ์Œ์„ CICS์— ์•Œ๋ฆฌ๊ณ  ์„ ํƒ์ ์œผ๋กœ COMMAREA์™€ ์ƒˆ ํŠธ๋žœ์žญ์…˜ ID๋ฅผ ๋‹ค์‹œ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. RETURN ๋ช…๋ น๋ฌธ์ด ๋ˆ„๋ฝ๋˜๋ฉด ํŠธ๋žœ์žญ์…˜์ด ์ค‘๋‹จ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ฆฌ์†Œ์Šค(์˜ˆ: ํ„ฐ๋ฏธ๋„ ์„ธ์…˜ ๋˜๋Š” ํŒŒ์ผ ์ž ๊ธˆ)๊ฐ€ ๊ณ„์† ์ ์œ ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ CICS๊ฐ€ ๊ฒฐ๊ตญ abend์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๋กœ ์„ธ์…˜์„ ๊ฐ•์ œ๋กœ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. AEY9 or AEI0.

์ •์  ๋ถ„์„ ๋„๊ตฌ๋Š” ๋‹ค์Œ์„ ํ†ตํ•ด ๊ฑฐ๋ž˜ ํ๋ฆ„ ์ค‘๋‹จ์„ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฒ€์ƒ‰ ์ค‘ EXEC CICS RETURN CICS ํ”„๋กœ๊ทธ๋žจ์˜ ๋ชจ๋“  ์‹คํ–‰ ๊ฒฝ๋กœ์— ์žˆ๋Š” ๋ช…๋ น๋ฌธ
  • ํ™•์ธ ์ค‘ RETURN ๋„๋‹ฌ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์กฐ๊ฑด๋ฌธ์— ์˜ํ•ด ์šฐํšŒ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. GOTO๋˜๋Š” ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ๋…ผ๋ฆฌ
  • ๋กœ ๋๋‚˜๋Š” ํ”„๋กœ๊ทธ๋žจ ๊ฐ์ง€ GOBACK, STOP RUN๋˜๋Š” ํ•„์š”ํ•œ ๊ฒƒ ๋Œ€์‹  ์‹คํŒจ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. RETURN

๋ณต์žกํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ด๋Ÿฌํ•œ ํ๋ฆ„ ๋ฌธ์ œ๋Š” ๋ถ„๊ธฐ ๋…ผ๋ฆฌ๋กœ ์ธํ•ด ๋”์šฑ ์•…ํ™”๋ฉ๋‹ˆ๋‹ค. RETURN ํ•œ ๊ฒฝ๋กœ์—๋งŒ ์กด์žฌํ•˜๊ณ  ๋‹ค๋ฅธ ๊ฒฝ๋กœ์—๋Š” ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด:

IF VALIDATION-OK
PERFORM PROCESS-REQUEST
ELSE
DISPLAY 'Invalid input'
* Missing RETURN here

๊ฒฝ์šฐ ELSE ๊ฒฝ๋กœ๊ฐ€ ์ข…๋ฃŒ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค RETURN, ๊ฑฐ๋ž˜๋Š” CICS๋กœ ๋‹ค์‹œ ํ•ธ๋“œ์˜คํ”„๋˜์ง€ ์•Š์€ ์ฑ„ ๊ณ„์† ์ง„ํ–‰ ์ค‘์ด์–ด์„œ ํ๋ฆ„์ด ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ด์ƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • CICS ํ”„๋กœ๊ทธ๋žจ์˜ ๋ชจ๋“  ์ข…๋ฃŒ ๊ฒฝ๋กœ๊ฐ€ ์œ ํšจํ•œ ๊ฒฝ๋กœ๋กœ ์ด์–ด์ง€๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. RETURN
  • ์‚ฌ์šฉ์„ ํ”ผํ•˜๋‹ค GOBACK or STOP RUN ํŠธ๋žœ์žญ์…˜ ๋ฐ”์ธ๋”ฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ
  • ์ค‘๋ณต์ด๋‚˜ ๊ฐ๋…์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ ๋…ผ๋ฆฌ๋ฅผ ์ค‘์•™์—์„œ ๊ตฌ์กฐํ™”ํ•ฉ๋‹ˆ๋‹ค.

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

๋ฐฉ๋ฒ• SMART TS XL ์ง€๋„ ๊ต์ฐจ ํ”„๋กœ๊ทธ๋žจ ์ œ์–ด ํ๋ฆ„

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

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

์ฃผ์š” ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

2. ์ง„์ž… ๋ฐ ์ถœ๊ตฌ ๊ฒฝ๋กœ ๋งคํ•‘
๊ฐ ํ”„๋กœ๊ทธ๋žจ์€ ๊ฐ€๋Šฅํ•œ ์ง„์ž…์ (์˜ˆ:)์— ๋Œ€ํ•ด ๋ถ„์„๋ฉ๋‹ˆ๋‹ค. ENTRY ๋ฌธ, CICS ํŠธ๋žœ์žญ์…˜ ID) ๋ฐ ์ข…๋ฃŒ ๋ชจ๋“œ(RETURN, GOBACK, STOP RUN). SMART TS XL ๋ชจ๋“  ๊ฒƒ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค CALL ๋„๋‹ฌ ๊ฐ€๋Šฅํ•œ ๊ฒƒ๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค RETURN ๊ทธ๋ฆฌ๊ณ  ๋ˆ„๋ฝ๋œ ์ถœ๊ตฌ๋‚˜ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์‹คํŒจ์™€ ๊ฐ™์€ ๋ถˆ์ผ์น˜ ์‚ฌํ•ญ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

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

4. ๋ชจ๋“ˆ ๊ฐ„ ๋ฐ์ดํ„ฐ ํ๋ฆ„ ํ†ตํ•ฉ
์ œ์–ด ํ๋ฆ„์€ ๋ฐ์ดํ„ฐ ์ƒํƒœ์™€ ๋ฐ€์ ‘ํ•˜๊ฒŒ ์—ฐ๊ด€๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. SMART TS XL ๋ณ€์ˆ˜ ์ถ”์ ์„ ์˜ค๋ฒ„๋ ˆ์ดํ•ฉ๋‹ˆ๋‹ค. LINKAGE SECTION, USING ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ฐ COMMAREA ์‚ฌ์šฉ๋ฒ•. ํ”„๋กœ๊ทธ๋žจ ๊ฒฝ๊ณ„ ์ „๋ฐ˜์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆ˜์ •๋˜๋Š” ์œ„์น˜๋ฅผ ๊ฐ์ง€ํ•˜๊ณ , ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋‹ค์šด์ŠคํŠธ๋ฆผ ์ œ์–ด ๊ฒฐ์ •์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

5. ๋ฐฐ์น˜ ๋ฐ CICS ์ปจํ…์ŠคํŠธ์™€์˜ ํ†ตํ•ฉ
์ผ๊ด„ ์ž‘์—…์˜ ๊ฒฝ์šฐ ๋„๊ตฌ๋Š” JCL ๋‹จ๊ณ„ ๊ด€๊ณ„๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. CALL ์ฒด์ธ. CICS ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฒฝ์šฐ, ํŠธ๋žœ์žญ์…˜ ID์™€ ๋ช…๋ น ๋งคํ•‘์„ ์‚ฌ์šฉํ•˜์—ฌ ํ„ฐ๋ฏธ๋„์—์„œ ํŠธ๋ฆฌ๊ฑฐ๋œ ํ๋ฆ„์„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.

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

์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฐ ์ œ์–ด๋˜์ง€ ์•Š๋Š” ์ข…๋ฃŒ

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

๊ตฌ์กฐํ™”๋œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•˜๋Š” ํ˜„๋Œ€ ์–ธ์–ด์™€ ๋‹ฌ๋ฆฌ try-catch ๋ธ”๋ก), COBOL์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ์„ ํ†ตํ•ด ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

  • I/O ์ž‘์—…์—์„œ ๋ฐ˜ํ™˜๋œ ์ƒํƒœ ์ฝ”๋“œ
  • ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๋‚ด์˜ ์˜ค๋ฅ˜ ํ”Œ๋ž˜๊ทธ
  • Manual IF ์™ธ๋ถ€ ํ†ตํ™” ๋˜๋Š” ํŒŒ์ผ ์•ก์„ธ์Šค ํ›„ ํ™•์ธ
  • CICS ํŠน์ • ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ๋ช…๋ น(์˜ˆ: EXEC CICS HANDLE ABEND)

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

์ฃผ์š” ์˜ˆ์™ธ ๊ด€๋ จ ์ด์ƒ ํ˜„์ƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ํŒŒ์ผ ์ž‘์—… ํ›„ ํ™•์ธ ๋ˆ„๋ฝ์–ด๋”” READ or WRITE ์กฐ์šฉํžˆ ์‹คํŒจํ•  ์ˆ˜๋„ ์žˆ๋‹ค
  • ํฌ์ฐฉ๋˜์ง€ ์•Š์€ SQLCODE ๊ฐ’ํŠนํžˆ DB2 ํ™˜๊ฒฝ์—์„œ๋Š” ๋ถˆ์™„์ „ํ•œ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค.
  • ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ CICS ์˜ˆ์™ธ์‹œ๊ฐ„ ์ดˆ๊ณผ๋‚˜ ํ„ฐ๋ฏธ๋„ ์—ฐ๊ฒฐ ๋Š๊น€๊ณผ ๊ฐ™์ด ๋น„์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ
  • ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹œ์Šคํ…œ ์ˆ˜์ค€ ๋ช…๋ น STOP RUN or GOBACK ๊ตฌ์กฐํ™”๋œ ๋ณต๊ตฌ ๊ฒฝ๋กœ ๋Œ€์‹  ์‚ฌ์šฉ๋จ

์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์ •์  ๋ถ„์„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ œ์–ด ํ๋ฆ„์˜ ์ง€์ ์„ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค.

  • ์™ธ๋ถ€ ์‹œ์Šคํ…œ ๋˜๋Š” I/O์— ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค.
  • ์ƒํƒœ ๋˜๋Š” ๋ฐ˜ํ™˜ ์ฝ”๋“œ๊ฐ€ ์˜ˆ์ƒ๋˜์ง€๋งŒ ๊ฒ€์ฆ๋˜์ง€ ์•Š์Œ
  • ํ”„๋กœ๊ทธ๋žจ์ด ์˜ค๋ฅ˜ ๋กœ๊น…์ด๋‚˜ ์ •๋ฆฌ ์—†์ด ๊ฐ‘์ž๊ธฐ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.
  • ์ œ์–ด ์ค‘๋‹จ์œผ๋กœ ์ธํ•ด ๋ณต๊ตฌ ๋ฃจํ‹ด(์žˆ๋Š” ๊ฒฝ์šฐ)์— ๋„๋‹ฌํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

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

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

I/O ์ž‘์—… ํ›„ ํŒŒ์ผ ์ƒํƒœ ํ™•์ธ์ด ๋ˆ„๋ฝ๋จ

COBOL ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์˜ ๊ฐ€์žฅ ์ค‘์š”ํ•˜์ง€๋งŒ ์ž์ฃผ ๊ฐ„๊ณผ๋˜๋Š” ์ธก๋ฉด ์ค‘ ํ•˜๋‚˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. FILE STATUS ์ฝ”๋“œ ๊ฒ€์ฆ ํŒŒ์ผ ์ž‘์—… ํ›„ READ, WRITE, REWRITE์˜ˆ์‚ฐ ๋ฐ DELETE์ด๋Ÿฌํ•œ ์ฝ”๋“œ๋Š” ํŒŒ์ผ ๋, ์ค‘๋ณต ๋ ˆ์ฝ”๋“œ, ํŒŒ์ผ ์ž ๊น€ ๋˜๋Š” ๋ฌผ๋ฆฌ์  I/O ์˜ค๋ฅ˜์™€ ๊ฐ™์€ ํ•„์ˆ˜ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์ž‘์—…์˜ ์„ฑ๊ณต ๋˜๋Š” ์‹คํŒจ๋ฅผ ๋‚˜ํƒ€๋‚ด๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

๋‹ค์Œ ์ฝ”๋“œ ์กฐ๊ฐ์„ ์‚ดํŽด๋ณด์„ธ์š”.

READ CUSTOMER-FILE INTO CUST-REC.

์œ„์˜ ๊ฒฝ์šฐ READ ํŒŒ์ผ ๋ ๋˜๋Š” I/O ๋ฌธ์ œ๋กœ ์ธํ•ด ์‹คํŒจํ•˜๊ณ  ํ”„๋กœ๊ทธ๋žจ์ด ํ™•์ธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. FILE STATUS, ๋ฌด์—‡์ด๋“  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CUST-RECํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ์˜ค๋ž˜๋˜์—ˆ๊ฑฐ๋‚˜ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

๋ชจ๋ฒ” ์‚ฌ๋ก€์—์„œ๋Š” ๋ชจ๋“  ํŒŒ์ผ ์ž‘์—… ํ›„์— ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•œ ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๋ช…์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

IF FILE-STATUS NOT = '00'
DISPLAY 'File read error: ' FILE-STATUS
GO TO ERROR-HANDLER
END-IF.

์ •์  ๋ถ„์„ ๋„๊ตฌ๋Š” ๋ˆ„๋ฝ๋œ ํ•ญ๋ชฉ์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. FILE STATUS ํ™•์ธ ๋ฐฉ๋ฒ•:

  • ๊ด€๋ จ๋œ ๋ชจ๋“  I/O ๋ช…๋ น๋ฌธ ์Šค์บ” READ, WRITE๋“ฑ
  • ํ•ด๋‹น ๋ฌธ์žฅ ๋’ค์— ์กฐ๊ฑด๋ถ€ ๊ฒ€์ฆ์ด ๋”ฐ๋ฅด๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. FILE STATUS ๋ณ€์ˆ˜
  • ํŒŒ์ผ์— ์—ฐ๊ด€๋œ ๊ฒƒ์ด ์žˆ๋Š”์ง€ ํ™•์ธ SELECT ์ ˆ์„ ์ •์˜ํ•˜๋‹ค FILE STATUS ํ• ๋‹น
  • ์–ด๋– ํ•œ ํ˜•ํƒœ์˜ ๊ฒ€์ฆ ์—†์ด ์‹คํ–‰์ด ๊ณ„์†๋˜๋Š” ๊ฒฝ๋กœ ํ”Œ๋ž˜๊น…

์ด ๋ถ„์„์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ค‘๋ณต ๊ฒ€์‚ฌ ๋˜๋Š” ํ•ญ์ƒ ์ฐธ์ธ ์กฐ๊ฑด ๋„ ์ฐพ์Šต๋‹ˆ๋‹ค .

IF FILE-STATUS = '00'
CONTINUE
END-IF.

์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ ์–ด๋– ํ•œ ํ†ต์ œ๋„ ์‹œํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฒŒ๋‹ค๊ฐ€ ์—ฌ๋Ÿฌ ํŒŒ์ผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ผ๊ด„ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ์—์„œ๋Š” I/O ๊ฒ€์ฆ์— ์‹คํŒจํ•˜๋ฉด ์—ฌ๋Ÿฌ ์ž‘์—… ๋‹จ๊ณ„์— ๊ฑธ์ณ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์ผ๋ถ€ ํŒŒ์ผ ์“ฐ๊ธฐ, ๋ณด๊ณ ์„œ ์ •๋ ฌ ์˜ค๋ฅ˜ ๋˜๋Š” ๋ฐ์ดํ„ฐ ์„ธํŠธ ๋™๊ธฐํ™”๊ฐ€ ํ•ด์ œ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด COBOL ๊ฐœ๋ฐœ์ž๋Š” ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ํ• ๋‹น FILE STATUS ๊ฐ ํŒŒ์ผ์˜ ๋ณ€์ˆ˜ SELECT ์ ˆ
  • ๊ฐ ์ค‘์š”ํ•œ I/O ์ž‘์—… ํ›„ ํ•ด๋‹น ์ƒํƒœ๋ฅผ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ค๋ฅ˜๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ๊ธฐ๋ก, ๋ณด๊ณ  ๋ฐ ๋ผ์šฐํŒ…ํ•˜๋Š” ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

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

DB2 ์ƒํ˜ธ ์ž‘์šฉ์—์„œ ํฌ์ฐฉ๋˜์ง€ ์•Š์€ SQLCODE ์˜ˆ์™ธ

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

์˜ˆ :

EXEC SQL
SELECT NAME INTO :CUST-NAME
FROM CUSTOMERS
WHERE ID = :CUST-ID
END-EXEC.

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

๋ชจ๋ฒ” ์‚ฌ๋ก€๋Š” ๋ชจ๋“  SQL ๋ฌธ ๋‹ค์Œ์— ์ฆ‰์‹œ SQLCODE๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

IF SQLCODE NOT = 0
DISPLAY 'SQL Error: ' SQLCODE
GO TO SQL-ERROR-HANDLER
END-IF.

์ •์  ๋ถ„์„์€ ๋‹ค์Œ์„ ํ†ตํ•ด ํฌ์ฐฉ๋˜์ง€ ์•Š์€ SQLCODE ์กฐ๊ฑด์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.

  • ์ž„๋ฒ ๋””๋“œ ์œ„์น˜ ์ฐพ๊ธฐ EXEC SQL ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด์˜ ๋ธ”๋ก
  • ์ œ์–ด ํ๋ฆ„ ์กฐ๊ฑด ์ฐธ์กฐ ํ™•์ธ SQLCODE, SQLSTATE๋˜๋Š” ๊ด€๋ จ ํ”Œ๋ž˜๊ทธ
  • SQL ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฒ€์ฆ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ์‹คํ–‰ ๊ฒฝ๋กœ ๊ฐ์ง€
  • ์ผ๋ถ€ ์ฝ”๋“œ(์˜ˆ: +100)๋งŒ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋‹ค๋ฅธ ์ฝ”๋“œ๋Š” ๋ฌด์‹œํ•˜๋Š” ํŒจํ„ด ์‹๋ณ„

๋”์šฑ ๊ณ ๊ธ‰ ๋„๊ตฌ๋Š” ์˜ค๋ฅ˜๋ณ„ ๋™์ž‘์„ ๋ถ„์„ํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

  • ์ฒ˜๋ฆฌ +100 (ํ–‰์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ) ๊ทธ๋Ÿฌ๋‚˜ ์Œ์ˆ˜ SQLCODE(์ค‘์š” ์‹คํŒจ)๋Š” ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ • CONTINUE ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ๋กœ๊น…์ด๋‚˜ ๋ถ„๊ธฐ ์—†์ด
  • ๋ฐ˜๋ณต๋˜๋Š” ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ์ข…๋ฃŒ ์กฐ๊ฑด ์—†์ด ๋ฃจํ”„์—์„œ SQL ์ž‘์—… ๋ฐ˜๋ณต

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

์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด COBOL ๊ฐœ๋ฐœ์ž๋Š” ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ชจ๋“  ๋‚ด์žฅ SQL ๋ฌธ ํ›„์— SQLCODE๋ฅผ ํ™•์ธํ•˜์„ธ์š”
  • 0์ด ์•„๋‹Œ ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ์ค‘์•™ํ™”๋œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด์œผ๋กœ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ์ƒ ๊ฒฐ๊ณผ(์˜ˆ: ํ–‰์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ)์™€ ์‹คํŒจ ์‹œ๋‚˜๋ฆฌ์˜ค(์˜ˆ: ์ œ์•ฝ ์กฐ๊ฑด ์˜ค๋ฅ˜, ์‹œ๊ฐ„ ์ดˆ๊ณผ)๋ฅผ ๋ชจ๋‘ ์ฒ˜๋ฆฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

๊ตฌ์กฐํ™”๋œ SQL ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์ด ๋ณดํ˜ธ๋˜๊ณ , ์ง„๋‹จ์˜ ๋ช…ํ™•์„ฑ์ด ๋†’์•„์ง€๊ณ , DB2 ํ†ตํ•ฉ COBOL ์‹œ์Šคํ…œ์ด ๋”์šฑ ๊ฐ•๋ ฅํ•ด์ง€๊ณ  ๊ฐ์‚ฌ๊ฐ€ ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค.

ํšŒ๋ณต ๋ฃจํ‹ด์ด ์—†๋Š” CICS ABEND

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

์ผ๋ฐ˜์ ์ธ CICS ์ž‘์—…์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

EXEC CICS RECEIVE MAP('CUSTMAP') MAPSET('CUSTSET') INTO(CUST-DATA)
END-EXEC.

ํ„ฐ๋ฏธ๋„์ด ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ์ง€๋„๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ CICS๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ABEND๋ฅผ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. AEIP (์ง€๋„๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ) ๋˜๋Š” AEY9 (ํ”„๋กœ๊ทธ๋žจ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค). HANDLE ABEND ์ง€์‹œ์–ด์— ๋”ฐ๋ผ ์ด ABEND๋Š” ํ†ต์ œ๋˜์ง€ ์•Š๊ฒŒ ์ „ํŒŒ๋˜์–ด ๋” ๊ด‘๋ฒ”์œ„ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์žฅ์• ๋ฅผ ์ผ์œผํ‚ค๊ฑฐ๋‚˜ ์‹ฌ์ง€์–ด ์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ž ๊ทธ๋Š” ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ ์ ˆํ•œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ๊ตฌ์กฐ์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

EXEC CICS HANDLE ABEND
PROGRAM('ABEND-ROUTINE')
END-EXEC.

์ •์˜๋œ ๋‹ค์Œ์— ์ด์–ด์ง ABEND-ROUTINE ์˜ค๋ฅ˜๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ๋ฆฌ์†Œ์Šค๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ์šฐ์•„ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. RETURN ๋˜๋Š” ์‚ฌ์šฉ์ž ์•Œ๋ฆผ.

์ •์  ๋ถ„์„ ๋„๊ตฌ๋Š” ๋‹ค์Œ์„ ํ†ตํ•ด CICS ABEND ์ทจ์•ฝ์„ฑ์„ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.

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

๋ณต๊ตฌ ์—†์ด ABEND๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์‹คํŒจ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด CICS ๊ธฐ๋ณธ ๋™์ž‘์— ์˜์กดํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ
  • CICS ์ œ์–ด ์ž‘์—…์— ๋“ค์–ด๊ฐ€์ง€๋งŒ ์„ ์–ธ๋œ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์šฐํšŒํ•˜๋Š” ๋…ผ๋ฆฌ ๊ฒฝ๋กœ
  • ์‹ค์ œ ์˜ค๋ฅ˜ ์กฐ๊ฑด์—์„œ ์„ ์–ธ๋˜์ง€๋งŒ ํ˜ธ์ถœ๋˜์ง€ ์•Š๋Š” ์ค‘์•™ํ™”๋œ ์˜ค๋ฅ˜ ๋ฃจํ‹ด

์ œ์–ด๋˜์ง€ ์•Š๋Š” ABEND๋Š” ๊ธฐ์ˆ ์  ๊ฒฐํ•จ ์ด์ƒ์˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. SLA ๋ณด์žฅ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ณ , ๊ฑฐ๋ž˜ ๋ถˆ์ผ์น˜๋ฅผ ์ผ์œผํ‚ค๊ณ , ์ œ์–ด๋œ ์˜ˆ์™ธ ํ๋ฆ„์„ ์š”๊ตฌํ•˜๋Š” ๊ทœ์ • ์ค€์ˆ˜ ํ‘œ์ค€์„ ์œ„๋ฐ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ABEND๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์„ ์–ธ HANDLE ABEND or HANDLE CONDITION ๋ชจ๋“  CICS ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘ ์‹œ
  • ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๊ธฐ์— ์ •๋ฆฌ ๋…ผ๋ฆฌ์™€ ์‚ฌ์šฉ์ž ํ”ผ๋“œ๋ฐฑ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ
  • ์‚ฌ์šฉ์„ ํ”ผํ•˜๋‹ค GOBACK or STOP RUN ์˜ค๋ฅ˜ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์ข…๋ฃŒํ•˜๋ ค๋ฉด

๊ตฌ์กฐํ™”๋œ ABEND ์ฒ˜๋ฆฌ๋ฅผ ์‹œํ–‰ํ•จ์œผ๋กœ์จ ์กฐ์ง์€ CICS ๊ธฐ๋ฐ˜ COBOL ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ณต์›์„ฑ๊ณผ ์˜ˆ์ธก ๊ฐ€๋Šฅ์„ฑ์„ ํฌ๊ฒŒ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ํ๋ฆ„ ์ธ์‹ ์˜ค๋ฅ˜ ๊ฒฝ๋กœ ๋ถ„์„

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

์ผ๋ฐ˜์ ์ธ COBOL ํ”„๋กœ๊ทธ๋žจ์—์„œ ์˜ค๋ฅ˜ ๊ฐ์ง€๋Š” ์ž‘์—… ์ €์žฅ ๋ณ€์ˆ˜์— ์ €์žฅ๋œ ํ”Œ๋ž˜๊ทธ, ์ƒํƒœ ์ฝ”๋“œ ๋˜๋Š” ๋ฐ˜ํ™˜ ๊ฐ’์— ํฌ๊ฒŒ ์˜์กดํ•ฉ๋‹ˆ๋‹ค.

IF DB2-STATUS NOT = '00000'
PERFORM DB2-ERROR-HANDLER
END-IF.

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

๋„๊ตฌ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ดˆ๊ธฐํ™”, ์ˆ˜์ • ๋ฐ ํ‰๊ฐ€๋˜๋Š” ๋ฐฉ์‹์„ ๋ถ„์„ํ•˜์—ฌ ๋‹ค์Œ์„ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์˜ˆ :

MOVE '00000' TO DB2-STATUS.
EXEC SQL
SELECT ...
END-EXEC.
MOVE '00000' TO DB2-STATUS. *> Overwrites actual SQL result

์—ฌ๊ธฐ์„œ ์œ ํšจํ•œ SQLCODE๊ฐ€ ๋Œ€์ฒด๋˜์–ด ์ดํ›„์˜ ๊ฒ€์‚ฌ๊ฐ€ ๋ฌด์˜๋ฏธํ•ด์ง‘๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ํ๋ฆ„ ๋ถ„์„๊ธฐ๋Š” ๊ฐ’์˜ ์ด๋™์„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค. DB2-STATUS ๊ทธ๋ฆฌ๊ณ  ์ด ๋ฎ์–ด์“ฐ๊ธฐ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ์šฐํšŒ.

ํŠนํžˆ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์ด๋Ÿฌํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

  • ์ƒํ˜ธ ์˜์กด์ ์ธ ํ”Œ๋ž˜๊ทธ(์˜ˆ: ๋‘˜ ๋‹ค FILE-STATUS ๋ฐ 2์ฐจ ์˜ค๋ฅ˜ ์Šค์œ„์น˜)
  • ์ด์ „ I/O ๋˜๋Š” ๊ณ„์‚ฐ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์กฐ๊ฑด ๋ถ„๊ธฐ
  • ์—ฌ๋Ÿฌ ๋ฃจํ‹ด์—์„œ ์žฌ์‚ฌ์šฉ๋˜๋Š” ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋Š” ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ

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

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

๋ ˆ๊ฑฐ์‹œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ์—์„œ ๊ฑฐ์ง“ ๊ธ์ •์˜ ๊ท ํ˜• ๋งž์ถ”๊ธฐ

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

์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ์—์„œ์˜ ๊ฑฐ์ง“ ์–‘์„ฑ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

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

์˜ˆ๋ฅผ ๋“ค์–ด :

MOVE '00' TO FILE-STATUS.
READ CUSTOMER-FILE INTO REC-BUF.
IF FILE-STATUS NOT = '00'
PERFORM ERROR-LOGIC.

If READ ์ •์ƒ์ ์ธ ์ฒ˜๋ฆฌ ๊ณผ์ •(์˜ˆ: ํŒŒ์ผ ๋)์—์„œ ์กฐ๊ฑด๋ถ€์ด๊ฑฐ๋‚˜ ๊ฐ€๋” ์‹คํŒจํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š” ๊ฒฝ์šฐ, ์ด๋Š” ๊ฒฐํ•จ์ด ์•„๋‹ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ถ„์„ ๋„๊ตฌ์— ์ปจํ…์ŠคํŠธ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•œ ๊ฒฝ์šฐ, ํ•ธ๋“ค๋Ÿฌ ๋ˆ„๋ฝ ๋˜๋Š” ๋ถˆํ•„์š”ํ•œ ๋ถ„๊ธฐ๋กœ ํ”Œ๋ž˜๊ทธ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํƒ์ง€์™€ ๊ด€๋ จ์„ฑ์˜ ๊ท ํ˜•์„ ๋งž์ถ”๊ธฐ ์œ„ํ•ด ๊ณ ๊ธ‰ ๋„๊ตฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํœด๋ฆฌ์Šคํ‹ฑ ๋ฐ ๋ ˆ๊ฑฐ์‹œ ์ธ์‹ ๊ทœ์น™์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ์ด์ „ ๋ฐฐ์น˜ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉ๋œ ์ผ๋ฐ˜์ ์ธ ๋Œ€์ฒด ํŒจํ„ด ์ธ์‹
  • ์‹คํ–‰ ์ค‘์— ์˜ค๋ฅ˜๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๋Š” ์ž์ฃผ ๋ฐ˜๋ณต๋˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ์ง€
  • ์ค‘๋Œ€ํ•œ ์˜ค๋ฅ˜์™€ ์˜ˆ์ƒ ๊ฒฝ๊ณ (์˜ˆ: SQL)๋ฅผ ๊ตฌ๋ณ„ํ•ฉ๋‹ˆ๋‹ค. +100)
  • ๋‹ค๋ฅธ ์ž˜ ํ…Œ์ŠคํŠธ๋œ ๋…ผ๋ฆฌ์— ์˜ํ•ด ๊ฒŒ์ดํŠธ๋œ ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ง€์ •๋œ ๋ธŒ๋žœ์น˜๋ฅผ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.

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

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

๊ฑฐ์ง“ ์–‘์„ฑ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ชจ๋ฒ” ์‚ฌ๋ก€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

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

SMART TS XL's ์˜ˆ์™ธ ํ๋ฆ„ ์‹œ๊ฐํ™”

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

์ด ๊ธฐ๋Šฅ์˜ ํ•ต์‹ฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. SMART TS XL์˜ ๋Šฅ๋ ฅ ๊ทธ๋ž˜ํ”ฝ์œผ๋กœ ์˜ˆ์™ธ ์ „ํŒŒ๋ฅผ ๋ชจ๋ธ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด ๋„๊ตฌ๋Š” ์ž ์žฌ์ ์ธ ์˜ค๋ฅ˜ ์ง€์ ์ด๋‚˜ ์ œ์–ด ํ๋ฆ„ ์ด์ƒ์„ ๋‚˜์—ดํ•˜๋Š” ๋ฐ ๊ทธ์น˜์ง€ ์•Š๊ณ , ๋‹ค์Œ์„ ๋ณด์—ฌ์ฃผ๋Š” ๋Œ€ํ™”ํ˜• ์ง€๋„๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  I/O ๋ฐ SQL ์ž‘์—…
  • ํ•ด๋‹น ์˜ˆ์™ธ์™€ ๊ด€๋ จ๋œ ๋ณ€์ˆ˜ ๋˜๋Š” ์ƒํƒœ ํ”Œ๋ž˜๊ทธ
  • ์ด๋Ÿฌํ•œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ๊ฒฌ๋˜๊ฑฐ๋‚˜ ๋ฌด์‹œ๋˜๊ฑฐ๋‚˜ ์ž˜๋ชป ์ฒ˜๋ฆฌ๋˜๋Š” ๋ฌธ๋‹จ์ด๋‚˜ ์„น์…˜
  • ์ œ์–ด๊ฐ€ ๊ณ„์†๋˜๊ธฐ ์ „์— ์ค‘์š”ํ•œ ์กฐ๊ฑด์ด ํ™•์ธ๋˜์ง€ ์•Š๋Š” ํ๋ฆ„์˜ ๊ฒฉ์ฐจ

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

์‹œ๊ฐ์  ๋งคํ•‘ ์™ธ์—๋„ ๋„๊ตฌ๋Š” ๋‹ค์Œ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“ˆ ๊ฐ„ ์ถ”์ . ํ”„๋กœ๊ทธ๋žจ์ด ํ•˜์œ„ ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ์™ธ๋ถ€ ๋ชจ๋“ˆ์— ์ œ์–ด๊ถŒ์„ ๋„˜๊ธฐ๋Š” ๊ฒฝ์šฐ, SMART TS XL ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ˆ์™ธ ๊ด€๋ จ ๋ณ€์ˆ˜๋ฅผ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค. SQLCODE, ABEND-CODE๋˜๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ํ”Œ๋ž˜๊ทธ๊ฐ€ ํ˜ธ์ถœ ํ›„์— ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์˜ค๋ฅ˜ ์‹ ํ˜ธ๊ฐ€ ํ”„๋กœ๊ทธ๋žจ ๊ฒฝ๊ณ„๋ฅผ ๋„˜๋‚˜๋“œ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์€ CICS ํŠธ๋žœ์žญ์…˜ ์ฒด์ธ์ด๋‚˜ DB2 ํ†ตํ•ฉ COBOL ์‹œ์Šคํ…œ์—์„œ ํŠนํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ธฐํƒ€ ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

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

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

COBOL ํŠน์ • ์•ˆํ‹ฐํŒจํ„ด

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

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

์ผ๋ฐ˜์ ์ธ COBOL ํŠน์ • ์•ˆํ‹ฐํŒจํ„ด์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ALTER ๋ฌธ, ๋™์ ์œผ๋กœ ๋Œ€์ƒ์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. GO TO, ์ œ์–ด ํ๋ฆ„์„ ๋ถˆํˆฌ๋ช…ํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • ๊นŠ์ด ์ค‘์ฒฉ๋œ IF ๊ตฌ๋ฌธ, ์ด๋กœ ์ธํ•ด ๊ฒฐ์ • ๋…ผ๋ฆฌ๋ฅผ ๋”ฐ๋ฅด๊ธฐ ์–ด๋ ต๊ณ  ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.
  • ์ƒ๋žต WHEN OTHER ์กฐํ•ญ in EVALUATE ์ง„์ˆ , ์˜ˆ์™ธ ์ƒํ™ฉ์„ ์กฐ์šฉํžˆ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์Œ
  • ์‚ฌ์šฉ GO TO ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐํ™”๋œ ๋Œ€์•ˆ ๋Œ€์‹  PERFORM
  • ์„น์…˜๊ณผ ๋ฌธ๋‹จ ์‚ฌ์ด์˜ ๋น„๊ตฌ์กฐํ™”๋œ ๋ถ„๊ธฐ, ์‹คํŒจ ๋…ผ๋ฆฌ์™€ ์ฃฝ์€ ์ฝ”๋“œ๋กœ ์ด์–ด์ง

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

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

ALTER ๋ฌธ ์œ„ํ—˜

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

๊ฐ„๋‹จํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

PROCEDURE DIVISION.
ALTER PARAGRAPH-A TO PROCEED TO PARAGRAPH-B.
GO TO PARAGRAPH-A.

PARAGRAPH-A.
DISPLAY 'This will never run'.

PARAGRAPH-B.
DISPLAY 'Execution redirected here'.

์œ„์˜ ์˜ˆ์—์„œ ALTER ๋‹ค์‹œ ๋ฐฐ์„ ํ•˜๋‹ค PARAGRAPH-A ์ฆ‰์‹œ ์ œ์–ด๊ถŒ์„ ์žฌ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค PARAGRAPH-B. ๋ชจ๋“  ์ •์  ๋ถ„์„ ๋„๊ตฌ๋Š” ๊ทผ๋ณธ์ ์œผ๋กœ ์ •์  ๋ถ„์„๊ณผ ๋‹ค๋ฅธ ์ œ์–ด ํ๋ฆ„์˜ ์ž ์žฌ์  ๋ณ€ํ˜•์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. GO TO or PERFORM ๋ชฉ์ ์ง€๊ฐ€ ๊ณ ์ •๋œ ๋ฌธ์žฅ์ž…๋‹ˆ๋‹ค.

์˜ ์œ„ํ—˜ ALTER ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค :

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

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

๊ฐœ์„  ์ „๋žต์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๊ต์ฒด ALTER ๊ทธ๋ฆฌ๊ณ  ์˜ํ–ฅ์„ GO TO ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ง„์ˆ  PERFORM IF/EVALUATE ๋…ผ๋ฆฌ.
  • ๊ฐ ๋…ผ๋ฆฌ์  ๋ถ„๊ธฐ๋ฅผ ์บก์Аํ™”ํ•˜๋Š” ๋” ์ž‘๊ณ  ๋ชจ๋“ˆํ™”๋œ ์„น์…˜์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฆฌํŒฉํ† ๋งํ•ฉ๋‹ˆ๋‹ค.
  • ๋Ÿฐํƒ€์ž„ ๋ฆฌ๋””๋ ‰์…˜ ๋Œ€์‹  ํ”Œ๋ž˜๊ทธ์™€ ๊ฒฐ์ • ํ…Œ์ด๋ธ”์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

Java๋‚˜ C#์™€ ๊ฐ™์€ ํ˜„๋Œ€ ์–ธ์–ด๋กœ์˜ ํ˜„๋Œ€ํ™”, ๊ทœ์ • ์ค€์ˆ˜ ๊ฒ€์ฆ ๋˜๋Š” ์ž๋™ ๋ณ€ํ™˜์„ ์ค€๋น„ํ•˜๋Š” ์กฐ์ง์€ ๋‹ค์Œ์„ ์ œ๊ฑฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ALTER ๋Œ€๋ถ€๋ถ„์˜ ๋Œ€์ƒ ํ”Œ๋žซํผ๊ณผ ๋ณ€ํ™˜ ๋„๊ตฌ๋Š” ๋™์  ์ œ์–ด ์žฌ๋ผ์šฐํŒ…์„ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ์ด๋Š” ํ•„์ˆ˜์ ์ธ ๋ฆฌํŒฉํ† ๋ง ์ž‘์—…์ž…๋‹ˆ๋‹ค.

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

์˜ˆ์ธกํ•  ์ˆ˜ ์—†๋Š” GOTO ๋ฆฌ๋””๋ ‰์…˜ ์œ„ํ—˜

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

์ด ์˜ˆ๋ฅผ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค.

IF ERROR-FOUND
GO TO ERROR-HANDLER
...
DISPLAY 'Transaction Complete'

๊ฒฝ์šฐ GO TO ERROR-HANDLER ์‹คํ–‰ ์‹œ, ํŠธ๋žœ์žญ์…˜ ์™„๋ฃŒ ๋ฉ”์‹œ์ง€๋Š” ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค. ์ด๋Š” ์˜๋„์ ์ธ ๊ฒƒ์ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ์ œ์–ด ๊ฒฝ๋กœ๊ฐ€ ๋ช…ํ™•ํ•˜๊ฒŒ ๋ฌธ์„œํ™”๋˜๊ฑฐ๋‚˜ ์‹œํ–‰๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ, ๊ฑด๋„ˆ๋›ฐ๊ธฐ์˜ ๋ฒ”์œ„๋Š” ์ œํ•œ์ ์ž…๋‹ˆ๋‹ค.

์ œํ•œ ์—†๋Š” ๊ฒƒ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ์œ„ํ—˜ GO TO ์‚ฌ์šฉ์€ ๋‹ค์Œ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค:

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

์ •์  ๋ถ„์„ ๊ด€์ ์—์„œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์„ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค. GO TO ์‚ฌ์šฉ๋ฒ•์€ ๊ฐ ๋ฐœ์ƒ ํ•ญ๋ชฉ์„ ๋‚˜์—ดํ•˜๋Š” ๊ฒƒ ์ด์ƒ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๋„๊ตฌ๋Š” ๋‹ค์Œ์„ ํ‰๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์ ํ”„์˜ ๋งฅ๋ฝ

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

๊ฐœ์„  ์ „๋žต์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๊ต์ฒด GO TO ๊ณผ PERFORM ๋…ผ๋ฆฌ๋ฅผ ์žฌ์‚ฌ์šฉํ•ด์•ผ ํ•  ๋•Œ ๋ธ”๋ก
  • ์กฐ๊ฑด๋ถ€ ์ ํ”„๋ฅผ ๋‹ค์Œ์œผ๋กœ ๋ณ€ํ™˜ EVALUATE or IF-ELSE ๋ช…ํ™•์„ฑ์„ ์œ„ํ•œ ๊ตฌ์กฐ
  • ๊ฐ ์ ˆ์ฐจ๊ฐ€ ๋‹จ์ผ ์ง„์ž…์ ๊ณผ ์ข…๋ฃŒ์ ์„ ๊ฐ–๋„๋ก ์ ˆ์ฐจ๋ฅผ ๋ชจ๋“ˆํ™”ํ•ฉ๋‹ˆ๋‹ค.

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

์œ„ํ—˜ํ•œ ์š”์†Œ๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ๋ฆฌํŒฉํ† ๋งํ•˜์—ฌ ์ด๋Ÿฌํ•œ ์œ„ํ—˜์„ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. GO TO ํŒจํ„ด์€ ์œ ์ง€๊ด€๋ฆฌ์„ฑ์„ ๊ฐœ์„ ํ•˜๊ณ  ๊ธฐ์กด COBOL ์‹œ์Šคํ…œ์„ ์ตœ์‹  ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง ๊ด€ํ–‰์— ๋งž์ถฐ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ์กฐํ™”๋œ ๊ตฌ์กฐ๋กœ ALTER ๋ฆฌํŒฉํ† ๋ง

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

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

๊ธฐ์กด ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ALTER STEP-ROUTER TO PROCEED TO STEP-A.
GO TO STEP-ROUTER.

๋ฆฌํŒฉํ† ๋ง์€ ๋‹ค์Œ์œผ๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ๋™์  ๊ต์ฒด GO TO ๋…ผ๋ฆฌ ์ •์ ์ด๊ณ  ๊ตฌ์กฐํ™”๋œ ์ œ์–ด ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ œ์–ด ๋ณ€์ˆ˜์™€ ๊ฒฐํ•ฉ๋œ EVALUATE or IF ๊ตฌ์ถ•, ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด:

MOVE 'STEP-A' TO NEXT-STEP.

IF NEXT-STEP = 'STEP-A'
PERFORM STEP-A
ELSE
IF NEXT-STEP = 'STEP-B'
PERFORM STEP-B
END-IF.

๋˜๋Š”, ALTER ๋…ผ๋ฆฌ์—๋Š” ์†Œ์ˆ˜์˜ ๊ฐœ๋ณ„ ์‚ฌ๋ก€๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. EVALUATE ๋” ๋ช…ํ™•ํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๊ตฌ์กฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

EVALUATE TRUE
WHEN NEXT-STEP = 'STEP-A'
PERFORM STEP-A
WHEN NEXT-STEP = 'STEP-B'
PERFORM STEP-B
WHEN OTHER
DISPLAY 'Invalid routing step'
END-EVALUATE.

๋ฆฌํŒฉํ† ๋ง ๊ณผ์ •์—์„œ ๊ณ ๋ คํ•ด์•ผ ํ•  ์ฃผ์š” ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

์ •์  ๋ถ„์„ ๋„๊ตฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ด ํ”„๋กœ์„ธ์Šค๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ชจ๋“  ๊ฒƒ์„ ์‹๋ณ„ํ•˜๋‹ค ALTER ๊ทธ๋ฆฌ๊ณ  ๊ทธ ํ•˜๋ฅ˜ ์˜ํ–ฅ
  • ๋ชจ๋“  ๋งคํ•‘ GO TO ์˜ํ–ฅ์„ ๋ฐ›๋Š” ๋Œ€์ƒ ALTER
  • ์‚ฌ์šฉ ํŒจํ„ด์— ๋”ฐ๋ผ ์ œ์–ด ๋ณ€์ˆ˜ ์ด๋ฆ„ ์ œ์•ˆ ๋ฐ ๊ตฌ์กฐ ์ „๋‹ฌ

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

๋ฐฉ๋ฒ• SMART TS XL ALTER ์‚ฌ์šฉ์„ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค

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

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

์ฃผ์š” ๊ฐ์ง€ ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

2. ๋™์  ์ œ์–ด ํ๋ฆ„ ์ฃผ์„
In SMART TS XL์˜ ์ œ์–ด ํ๋ฆ„ ๊ทธ๋ž˜ํ”„์—์„œ ๋ณ€๊ฒฝ๋œ ๊ฒฝ๋กœ๋Š” ์ •์  ์ œ์–ด ์ „ํ™˜๊ณผ ๋‹ค๋ฅด๊ฒŒ ์ฃผ์„ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ์ง์ ‘ ๊ฒฝ๋กœ์™€ ๋ณ€๊ฒฝ๋œ ๊ฒฝ๋กœ๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GO TO ํ๋ฆ„์„ ํ†ตํ•ด ๋ถˆ์•ˆ์ •ํ•œ ์ œ์–ด ์˜์—ญ์„ ๋ถ„๋ฆฌํ•˜๊ณ  ๋ฆฌํŒฉํ† ๋ง์ด ๊ฐ€์žฅ ์‹œ๊ธ‰ํ•œ ๊ณณ์„ ๋” ์ž˜ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

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

4. ๋ฆฌํŒฉํ† ๋ง ๊ถŒ์žฅ ์‚ฌํ•ญ
SMART TS XL ์ œ๊ฑฐ์— ๋„์›€์ด ๋˜๋Š” ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํ†ต์ฐฐ๋ ฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ALTER. ์˜ํ–ฅ์„ ๋ฐ›์€ ์ œํ’ˆ์„ ๊ต์ฒดํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. GO TO ๊ตฌ์กฐํ™”๋œ ๋ฌธ์žฅ PERFORM ๋ธ”๋ก ๋˜๋Š” ์ œ์–ด EVALUATE ๋…ผ๋ฆฌ. ์ด๋Ÿฌํ•œ ๊ถŒ์žฅ ์‚ฌํ•ญ์€ ์ฃผ๋ณ€ ์ฝ”๋“œ์™€ ๋งฅ๋ฝ์„ ๊ฐ™์ด ํ•˜๋ฉฐ, ํŒ€์ด ๊ธฐ๋Šฅ ์†์ƒ ์—†์ด ์ ์ง„์ ์œผ๋กœ ํ˜„๋Œ€ํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

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

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

EVALUATE ๋Œ€ ์ค‘์ฒฉ IF ํ•จ์ •

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

๋‹ค์Œ์€ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ์ค‘์ฒฉ์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค. IF ๋…ผ๋ฆฌ:

์ฝ”๋ณผ๋ณต์‚ฌํŽธ์ง‘IF A = 1
    IF B = 2
        IF C = 3
            PERFORM ACTION-1
        END-IF
    END-IF
END-IF.

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

๋Œ€์กฐ์ ์œผ๋กœ, EVALUATE ๋ณด๋‹ค ์ฒด๊ณ„์ ์ธ ๋Œ€์•ˆ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

EVALUATE TRUE
WHEN A = 1 AND B = 2 AND C = 3
PERFORM ACTION-1
WHEN OTHER
PERFORM DEFAULT-ACTION
END-EVALUATE.

์ด ๊ตฌ์กฐ๋Š” ๋…ผ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ  ๊ฐ์‚ฌ๋ฅผ ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๋˜๋Š” ํ”ผํ•  ๋•Œ ํ”ํžˆ ์ €์ง€๋ฅด๋Š” ํ•จ์ • EVALUATE ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค :

  • ์ค‘๋ณต๋˜๋Š” ์กฐ๊ฑด ๋ชจํ˜ธํ•œ ํ๋ฆ„์„ ์ดˆ๋ž˜ํ•จ
  • ๋ˆ„๋ฝ WHEN OTHER ์กฐํ•ญ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ
  • ๋‚จ์šฉ IF ์ด๋‚ด EVALUATE๋ณต์žก์„ฑ์„ ๋‹ค์‹œ ๋„์ž…ํ•˜๋‹ค
  • ๋‹ค์–‘ํ•œ ์ œ์–ด ๊ฒฐ์ • ํ˜ผํ•ฉ EVALUATE IF ๋ธ”๋ก์ด๋Š” ๋ถ„์‚ฐ๋œ ๋…ผ๋ฆฌ๋กœ ์ด์–ด์ง„๋‹ค.

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

๊นŠ์€ ๋ถ€๋ถ„์„ ๊ต์ฒดํ•˜๋Š” ์ฃผ์š” ์ด์  IF ์ฒด์ธ EVALUATE ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค :

  • ์ฝ”๋“œ ๊ฒ€ํ† ์ž์™€ ์œ ์ง€ ๊ด€๋ฆฌ ํŒ€์˜ ๊ฐ€๋…์„ฑ ํ–ฅ์ƒ
  • ๊ฐ„์†Œํ™”๋œ ๋…ผ๋ฆฌ ๊ฐ์‚ฌ ๋ฐ ํ…Œ์ŠคํŠธ ๋ฒ”์œ„
  • ์—์ง€ ์กฐ๊ฑด ๋ˆ„๋ฝ์œผ๋กœ ์ธํ•œ ์˜ค๋ฅ˜ ์ „ํŒŒ ๊ฐ€๋Šฅ์„ฑ ๊ฐ์†Œ

ํ˜„๋Œ€ํ™” ๋˜๋Š” ์ œ์–ด ํ๋ฆ„ ๊ฒ€์ฆ ์ค‘ ์ค‘์ฒฉ๋œ ๋ณ€ํ™˜ IF ๊ตฌ์กฐํ™”๋œ ๋ธ”๋ก EVALUATE ๋…ผ๋ฆฌ๋Š” ์˜๋„๋ฅผ ๋ช…ํ™•ํžˆ ํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ปค๋ฒ„๋ฆฌ์ง€ ๋ถ„์„, ๋””๋ฒ„๊น…, ์ž๋™ํ™” ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ๋” ๋‚˜์€ ํˆด๋ง ์ง€์›์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

EVALUATE ๋ฌธ์˜ ์ค‘๋ณต ์กฐ๊ฑด

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

์ด ์˜ˆ๋ฅผ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค.

EVALUATE RATE
WHEN 1 THRU 5
PERFORM LOW-RATE-PROC
WHEN 5 THRU 10
PERFORM MID-RATE-PROC
WHEN OTHER
PERFORM DEFAULT-PROC
END-EVALUATE.

์ด ๊ฒฝ์šฐ์—๋Š” ๊ฐ’ RATE = 5 ์ฒซ ๋ฒˆ์งธ์™€ ๋‘ ๋ฒˆ์งธ๋ฅผ ๋ชจ๋‘ ๋งŒ์กฑํ•ฉ๋‹ˆ๋‹ค WHEN ์ ˆ. COBOL ์‹คํ–‰ ๊ทœ์น™์— ๋”ฐ๋ฅด๋ฉด ์ฒซ ๋ฒˆ์งธ ์ผ์น˜ํ•˜๋Š” ์กฐ๊ฑด๋งŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, LOW-RATE-PROC ๋‹ฌ๋ฆด ๊ฒƒ์ด๋‹ค MID-RATE-PROC ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค. ์˜๋„์ ์ธ ๊ฒฝ์šฐ ํ—ˆ์šฉ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ์ข…์ข… ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ํ–‰๋™ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋น„๋…์ ์  ๋ฒ”์œ„๋ฅผ ๊ฐ€์ •ํ•˜๊ฑฐ๋‚˜ ์ƒํ•œ๊ณผ ํ•˜ํ•œ์„ ์กฐ์ •ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์–ด๋ฒ„๋ฆฌ๋Š” ๊ฒฝ์šฐ.

์ค‘๋ณต๋˜๋Š” ์กฐ๊ฑด์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์œ ๋กœ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

  • ์ ˆ ํŒจํ„ด์„ ์žฌ์‚ฌ์šฉํ•  ๋•Œ ๋ณต์‚ฌ-๋ถ™์—ฌ๋„ฃ๊ธฐ ์˜ค๋ฅ˜ ๋ฐœ์ƒ
  • ํฌ๊ด„์  ๋ฒ”์œ„ ์˜๋ฏธ๋ก ์˜ ์˜คํ•ด(THRU ๋‘ ์ข…์  ๋ชจ๋‘ ํฌํ•จ)
  • ์ด์ „ ์กฐ๊ฑด์„ ์žฌ์ •๋ ฌํ•˜์ง€ ์•Š๊ณ  ์กฐ๊ฑด์„ ์ˆ˜์ •ํ•˜๋Š” ์ง„ํ™”ํ•˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง

์ •์  ๋ถ„์„ ๋„๊ตฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ด๋Ÿฌํ•œ ์ด์ƒ์„ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฐ๊ฐ์˜ ๊ฐ’ ๋ฒ”์œ„ ๋ถ„์„ WHEN ์ ˆ
  • ์ˆซ์ž ๊ฐ„๊ฒฉ, ๋ฌธ์ž์—ด ํŒจํ„ด ๋˜๋Š” ์ƒํƒœ ์ฝ”๋“œ ๊ฐ„์˜ ๊ต์ฐจ์  ํ™•์ธ
  • ํ•ญ์ƒ ์ด์ „ ์กฐํ•ญ์œผ๋กœ ๋Œ€์ฒด๋˜๋Š” ํ”Œ๋ž˜๊น… ์กฐ๊ฑด
  • ์ ˆ์˜ ์ˆœ์„œ๊ฐ€ ๋ฌธ์„œํ™”๋˜๊ฑฐ๋‚˜ ์˜ˆ์ƒ๋˜๋Š” ์šฐ์„ ์ˆœ์œ„์™€ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธ

๋˜ ๋‹ค๋ฅธ ๋ฏธ๋ฌ˜ํ•œ ๋ฌธ์ œ๋Š” ์ค‘๋ณต๋˜๋Š” ๋ถ€์šธ ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

EVALUATE TRUE
WHEN STATUS-CODE = 100 OR STATUS-CODE = 101
PERFORM ACTION-1
WHEN STATUS-CODE = 101 OR STATUS-CODE = 102
PERFORM ACTION-2

์—ฌ๊ธฐ STATUS-CODE = 101 ๋‘ ์ ˆ์„ ๋ชจ๋‘ ๋งŒ์กฑํ•˜์ง€๋งŒ ACTION-1 ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋‘ ๋™์ž‘์ด ๋ชจ๋‘ ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ๋‚˜์ค‘์— ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€Œ๋ฉด ๋กœ์ง์ด ์ž๋™์œผ๋กœ ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ œ์–ด ํ๋ฆ„ ์ด์ƒ์„ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์„ธ์š”.

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

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

WHEN OTHER ์ ˆ ๋ˆ„๋ฝ(์นจ๋ฌต์˜ ์‹คํŒจ)

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

์ด ์˜ˆ๋ฅผ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค.

EVALUATE TRANSACTION-CODE
WHEN 'D'
PERFORM DEPOSIT
WHEN 'W'
PERFORM WITHDRAW
WHEN 'T'
PERFORM TRANSFER
END-EVALUATE.

If TRANSACTION-CODE is 'X' ์‚ฌ์šฉ์ž ์˜ค๋ฅ˜๋‚˜ ๋ฐ์ดํ„ฐ ์†์ƒ์œผ๋กœ ์ธํ•ด ๋ถ„๊ธฐ๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€๋„ ํ‘œ์‹œ๋˜์ง€ ์•Š๊ณ  ์˜ค๋ฅ˜๋„ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์€ ๊ณ„์† ์ง„ํ–‰๋˜์ง€๋งŒ, ์ข…์ข… ๋ถˆ์™„์ „ํ•˜๊ฑฐ๋‚˜ ์ผ๊ด€์„ฑ ์—†๋Š” ์ƒํƒœ๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

์นจ๋ฌต ์†์˜ ์‹คํŒจ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์œ ๋กœ ์œ„ํ—˜ํ•ฉ๋‹ˆ๋‹ค.

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

์ •์  ๋ถ„์„ ๋„๊ตฌ๋Š” ์ด ๋ฌธ์ œ๋ฅผ ํฌ์ฐฉํ•˜๋Š” ๋ฐ ํŠนํžˆ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์ •์  ๋ถ„์„ ๋„๊ตฌ๋Š” ๋ชจ๋“  EVALUATE ๋ธ”๋ก ๋ฐ ํ™•์ธ:

  • ์—ฌ๋ถ€ WHEN OTHER ์ ˆ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค
  • ์ง€์ •๋œ ์—ฌ๋ถ€ WHEN ์กฐ๊ฑด์€ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์ž…๋ ฅ ๊ฐ’์„ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค.
  • ํ‰๊ฐ€๋œ ํ•„๋“œ์˜ ๋ฐ์ดํ„ฐ ์œ ํ˜•์ด ๋™์  ๋˜๋Š” ๊ฐœ๋ฐฉํ˜• ๋ฒ”์œ„(์˜ˆ: ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๋˜๋Š” ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ)๋ฅผ ์ œ์•ˆํ•˜๋Š”์ง€ ์—ฌ๋ถ€

์ด ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ํ•ญ์ƒ ํฌํ•จ WHEN OTHER ํด๋ฐฑ ๋…ผ๋ฆฌ๊ฐ€ ์ตœ์†Œํ•œ์ด๋”๋ผ๋„ ์ ˆ: cobolCopyEditWHEN OTHER DISPLAY 'Invalid transaction code' PERFORM LOG-ERROR
  • ์ถ”์ ์„ฑ์„ ์œ„ํ•œ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๊ฐ’ ๋กœ๊น…
  • ์‚ฌ์šฉ PERFORM ABORT ๋˜๋Š” ์ •์˜๋˜์ง€ ์•Š์€ ์ž…๋ ฅ์ด ๋ฐœ์ƒํ•  ๋•Œ ์ค‘์š” ์‹œ์Šคํ…œ์˜ ๋‹ค๋ฅธ ์ข…๋ฃŒ ๋ฃจํ‹ด

๊ฐ์‚ฌ ์š”๊ตฌ ์‚ฌํ•ญ์ด๋‚˜ ์•ˆ์ „์— ์ค‘์š”ํ•œ ์ •์ฑ…์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜๋Š” ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ ๋ˆ„๋ฝ๋œ WHEN OTHER ์กฐํ•ญ์€ ๋‹ค์Œ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทœ์ • ์ค€์ˆ˜ ์œ„๋ฐ˜์ด๋Š” ๊ฒ€์ฆ๋˜์ง€ ์•Š์€ ๋™์ž‘์„ ํ—ˆ์šฉํ•˜๋Š” ์ฝ”๋“œ ๊ฒฝ๋กœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฏ€๋กœ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

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

๊ตฌ์กฐ๊ฐ€ ๋ถˆ๋Ÿ‰ํ•œ ์ง€์ ์˜ ์„ฑ๋Šฅ ์˜ํ–ฅ

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

๋น„ํšจ์œจ์ ์ธ ๋ถ„๊ธฐ์˜ ์˜ˆ:

IF CUSTOMER-TYPE = 'PREMIUM'
PERFORM PROCESS-PREMIUM
ELSE
IF CUSTOMER-TYPE = 'STANDARD'
PERFORM PROCESS-STANDARD
ELSE
IF CUSTOMER-TYPE = 'BASIC'
PERFORM PROCESS-BASIC
ELSE
PERFORM DEFAULT-PROCESS

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

The EVALUATE construct๋Š” ์ ์ ˆํ•˜๊ฒŒ ๊ตฌ์กฐํ™”๋˜์–ด ์žˆ๋‹ค๋ฉด ๋” ๋ช…ํ™•ํ•˜๊ณ  ๋น ๋ฅธ ๋Œ€์•ˆ์œผ๋กœ ์ข…์ข… ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.

EVALUATE CUSTOMER-TYPE
WHEN 'PREMIUM'
PERFORM PROCESS-PREMIUM
WHEN 'STANDARD'
PERFORM PROCESS-STANDARD
WHEN 'BASIC'
PERFORM PROCESS-BASIC
WHEN OTHER
PERFORM DEFAULT-PROCESS
END-EVALUATE.

๊ตฌ๋ฌธ์„ ๋„˜์–ด ์„ฑ๋Šฅ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์€ ๋ช‡ ๊ฐ€์ง€ ๋” ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ์—์„œ ๋น„๋กฏ๋ฉ๋‹ˆ๋‹ค.

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

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

์ œ์–ด ํ๋ฆ„ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•œ ์ตœ์ ํ™” ์ „๋žต์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ์‚ฌ๋ก€๋ฅผ ๋จผ์ € ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์กฐ๊ฑด ๋ฆฌํŒฉํ† ๋ง
  • ๊ณต์œ  ๋…ผ๋ฆฌ๋ฅผ ์„œ๋ธŒ๋ฃจํ‹ด์œผ๋กœ ํ†ตํ•ฉํ•˜๊ฑฐ๋‚˜ PERFORMํŽธ์ง‘๋œ ๋ฌธ๋‹จ
  • ์ค‘์ฒฉ๋œ ๊ฒƒ์„ ๊ต์ฒด IF ์ ์ ˆํ•œ ๊ฒฝ์šฐ ์กฐํšŒ ํ…Œ์ด๋ธ” ๋˜๋Š” ์ธ๋ฑ์Šค ๋ฐฐ์—ด์ด ์žˆ๋Š” ๋ธ”๋ก
  • ๋ช…ํ™•์„ฑ๊ณผ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๋Š” ๊ฒฝ์šฐ ๊ธด EVALUATE ์ฒด์ธ์„ ์—ฌ๋Ÿฌ ๋‹จ๊ณ„์˜ ๊ฒฐ์ •์œผ๋กœ ๋ถ„ํ• ํ•ฉ๋‹ˆ๋‹ค.

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

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

๋ฉ”์ธํ”„๋ ˆ์ž„ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ์œ„ํ—˜

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

์ด๋Ÿฌํ•œ ์œ„ํ—˜์€ ๋‹ค์Œ์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

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

๋‹ค์Œ ํ•˜์œ„ ์„น์…˜์—์„œ๋Š” ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ์œ„ํ—˜์˜ ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ๋ฒ”์ฃผ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

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

๊ฐ ์œ ํ˜•์˜ ์œ„ํ—˜์€ COBOL ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์„ค๋ช…๋˜๋Š” ์„ธ๋ถ€์ ์ธ ๊ธฐ์ˆ ์  ๊ณผ์ œ๋กœ ๊ตฌ๋ถ„๋˜๋ฉฐ, ํŒ€์ด ์ž ์žฌ์ ์ธ ์‹คํŒจ ์ง€์ ์„ ํƒ์ง€ํ•˜๊ณ  ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋ถ„์„ ๊ธฐ์ˆ ์ด ํ•จ๊ป˜ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

CICS ํŠน์ • ์ œ์–ด ํ๋ฆ„ ์œ„ํ—˜

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

๋‹ค์Œ์€ COBOL ํ”„๋กœ๊ทธ๋žจ์—์„œ ํ”ํžˆ ๋ฐœ์ƒํ•˜๋Š” CICS ๊ด€๋ จ ์ œ์–ด ํ๋ฆ„ ์œ„ํ—˜์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

๊ฑฐ๋ž˜ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ฐ˜ํ™˜๋˜์ง€ ์•Š์€ CONTROL ํ•ญ๋ชฉ

๋ชจ๋“  CICS ํ”„๋กœ๊ทธ๋žจ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‚ด์šฉ์„ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜ํ™˜ ์ œ์–ด ์ž‘์—…์„ ์™„๋ฃŒํ•œ ํ›„ RETURN ๋ช…๋ น:

EXEC CICS RETURN
TRANSID('TRNX')
COMMAREA(DATA-AREA)
END-EXEC.

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

๋‹ค์ค‘ ์ž‘์—… ํ๋ฆ„์—์„œ SYNCPOINT๊ฐ€ ๋ˆ„๋ฝ๋จ

DB2 ํ…Œ์ด๋ธ” ์—…๋ฐ์ดํŠธ, VSAM ํŒŒ์ผ ์“ฐ๊ธฐ, ๋ฉ”์‹œ์ง€ ์ „์†ก๊ณผ ๊ฐ™์ด ํŠธ๋žœ์žญ์…˜์ด ์—ฌ๋Ÿฌ ๋ฆฌ์†Œ์Šค๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฒฝ์šฐ CICS๋Š” ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์›์ž์ ์œผ๋กœ ์ปค๋ฐ‹ํ•˜๊ธฐ ์œ„ํ•ด ๋™๊ธฐํ™” ์ง€์ (SYNCPOINT)์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ฝ”๋ณผ๋ณต์‚ฌํŽธ์ง‘EXEC CICS SYNCPOINT END-EXEC.

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

์˜๋„์น˜ ์•Š์€ ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ(CICS RETURN ์˜ค์šฉ)

์ผ๋ถ€ ๊ฐœ๋ฐœ์ž๋Š” ์‹ค์ˆ˜๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค STOP RUN or GOBACK CICS ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ด๋Ÿฌํ•œ ์ง„์ˆ ์€ ๊ฐ‘์ž‘์Šค๋Ÿฌ์šด ์ข…๋ฃŒ๋ฅผ ์ดˆ๋ž˜ํ•ฉ๋‹ˆ๋‹ค. CICS์˜ ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ๋ฅผ ์šฐํšŒํ•ฉ๋‹ˆ๋‹ค, ์ž ์žฌ์ ์œผ๋กœ ํ„ฐ๋ฏธ๋„ ์ž ๊ธˆ, ๋ฆฌ์†Œ์Šค ๊ณ ์•„ํ™” ๋˜๋Š” ์‹œ์Šคํ…œ ์ˆ˜์ค€ ABEND ํŠธ๋ฆฌ๊ฑฐ:

GOBACK. *> Should not be used in CICS

์˜ฌ๋ฐ”๋ฅธ ์‹คํ–‰์„ ์œ„ํ•ด์„œ๋Š” ๋ชจ๋“  CICS ํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉ์„ ์ข…๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. EXEC CICS RETURN๋„๊ตฌ๋Š” ๋‹ค์Œ์„ ํ™•์ธํ•˜์—ฌ ์˜ค์šฉ์„ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค. STOP RUN GOBACK CICS ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ง€์ •๋œ ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ์‚ฌ๋ณธ์—๋Š” ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฐœ๊ฒฌ๋˜๋ฉด ์ค‘์š” ์ œ์–ด ํ๋ฆ„ ์œ„๋ฐ˜์œผ๋กœ ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์œ„ํ—˜์„ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ๊ฐœ๋ฐœ์ž๋Š” ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฐ ์ฝ”๋“œ ๊ฒฝ๋กœ๊ฐ€ ์œ ํšจํ•œ ๊ฒฝ๋กœ๋กœ ๋๋‚˜๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. EXEC CICS RETURN
  • ๋ผ์›Œ ๋„ฃ๋‹ค SYNCPOINT ๋‹ค์ค‘ ๋ฆฌ์†Œ์Šค ์—…๋ฐ์ดํŠธ ํ›„ ๋ช…๋ น
  • ๋ฐฐ์น˜ ๋˜๋Š” CICS ์ปจํ…์ŠคํŠธ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ ์ง์ ‘ ์ข…๋ฃŒ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
  • HANDLE ABEND HANDLE CONDITION ์˜ˆ์™ธ๋ฅผ ์šฐ์•„ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜๋ ค๋ฉด

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

๊ฑฐ๋ž˜ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ฐ˜ํ™˜๋˜์ง€ ์•Š์€ CONTROL ํ•ญ๋ชฉ

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

์˜ฌ๋ฐ”๋ฅธ ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

EXEC CICS RETURN
TRANSID('TRNX')
COMMAREA(COMM-AREA)
END-EXEC.

์ด๋ฅผ ํ†ตํ•ด ์ œ์–ด ํ๋ฆ„์ด ์งˆ์„œ ์žˆ๊ฒŒ ์™„๋ฃŒ๋˜๊ณ  ๋ฐ์ดํ„ฐ๊ฐ€ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. COMMAREA ๋‹ค์Œ ๋‹จ๊ณ„์˜ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ์ธ๊ณ„๋ฉ๋‹ˆ๋‹ค.

๋ถ€์žฌ ๋˜๋Š” ์˜ค์šฉ RETURN CICS์— ์•Œ๋ฆฌ์ง€ ์•Š๊ณ  ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋˜์–ด ์‹คํ–‰ ์ด์ƒ์ด ์—ฐ์‡„์ ์œผ๋กœ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

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

์ด๋Ÿฌํ•œ ์‹คํŒจ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ๋ฐ˜ COBOL ์ข…๋ฃŒ ๋ช…๋ น์„ ์‚ฌ์šฉํ•  ๋•Œ ํŠนํžˆ ํ”ํ•ฉ๋‹ˆ๋‹ค. STOP RUN or GOBACK๋ฐฐ์น˜ ์ปจํ…์ŠคํŠธ์—์„œ๋Š” ์œ ํšจํ•˜์ง€๋งŒ CICS ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ •์  ๋ถ„์„ ๋„๊ตฌ๋Š” ๋‹ค์Œ์„ ์Šค์บ”ํ•˜์—ฌ ์ด๋Ÿฌํ•œ ์ œ์–ด ํ๋ฆ„ ์ด์ƒ์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.

  • CICS ๋ช…๋ น(EXEC CICS) ํ”„๋กœ๊ทธ๋žจ ๋‚ด์—์„œ
  • ์–ด๋–ค ๊ฒƒ๋„ ์—†์Œ EXEC CICS RETURN ๋ฌธ
  • ์ž˜๋ชป๋œ ์‚ฌ์šฉ STOP RUN, GOBACK๋˜๋Š” ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ง€์ •๋œ ํ”„๋กœ๊ทธ๋žจ์—์„œ์˜ ์‹คํŒจ ์ข…๋ฃŒ CICS-์œ ํ˜•
  • ์ ์ ˆํ•œ ๋ฐ˜ํ™˜ ๋…ผ๋ฆฌ๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ์•Š๊ณ  ์ข…๋ฃŒ๋˜๋Š” ์‹คํ–‰ ๊ฒฝ๋กœ

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

๋ชจ๋ฒ” ์‚ฌ๋ก€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • CICS์šฉ์œผ๋กœ ์˜๋„๋œ ๋ชจ๋“  COBOL ํ”„๋กœ๊ทธ๋žจ์ด ๋ช…์‹œ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. EXEC CICS RETURN
  • ์‹คํ–‰์„ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๋ฌธ๋‹จ ๋˜๋Š” ๋ถ„๊ธฐ๊ฐ€ ์œ ํšจํ•œ CICS ๋ฐ˜ํ™˜์œผ๋กœ ๋๋‚˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ PERFORM or GOTO ๋ชจ๋“  ์ถœ๊ตฌ๋ฅผ ๊ณตํ†ต ๊ฒฝ๋กœ๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด RETURN-HANDLER ์ ˆ

์ ์ ˆํ•œ ์ œ์–ด ๋ฐ˜ํ™˜์€ ํŠธ๋žœ์žญ์…˜ ๊ฒฝ๊ณ„๊ฐ€ ์ค€์ˆ˜๋˜๊ณ , ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ •๋ฆฌ๋˜๊ณ , CICS๊ฐ€ ์ž‘์—… ์ˆœ์„œ ๋ฐ ํ„ฐ๋ฏธ๋„ ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ์ œ์–ด๋ฅผ ์œ ์ง€ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์ค‘ ์ž‘์—… ํ๋ฆ„์—์„œ SYNCPOINT๊ฐ€ ๋ˆ„๋ฝ๋จ

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

์ผ๋ฐ˜์ ์ธ ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

EXEC CICS SYNCPOINT END-EXEC.

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

์ •์  ๋ถ„์„์€ ๋‹ค์Œ์„ ํ†ตํ•ด ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ์ด์ƒ์„ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.

  • ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฌ๋Ÿฌ ๋ฆฌ์†Œ์Šค์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๋ช…๋ น์ด ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ ์‹๋ณ„ WRITE FILE, EXEC SQL, DELETE์˜ˆ์‚ฐ ๋ฐ SEND MAP
  • ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ํ™•์ธ ์ค‘ EXEC CICS SYNCPOINT ๋˜๋Š” ๊ทธ ์•”๋ฌต์  ๋Œ€์•ˆ
  • ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜ ํ๋ฆ„์— ์ปค๋ฐ‹ ์ง€์ ์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ์‹คํ–‰ ๊ฒฝ๋กœ ๋งคํ•‘
  • ์กฐ๊ธฐ ์ข…๋ฃŒ๋˜๋Š” ์ง€์  ๊ฐ•์กฐ GOBACK or STOP RUN ์•ฝ์†ํ•˜์ง€ ์•Š๊ณ 

๋ถ€์žฌ SYNCPOINT ํŠนํžˆ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ์ฝ”๋“œ์—์„œ๋Š” ์œ„ํ—˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

IF SQLCODE < 0
PERFORM ERROR-HANDLER
GOBACK.

์ด ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ํ”„๋กœ๊ทธ๋žจ์ด SQL ์ž‘์—… ์ „์— ๋‹ค๋ฅธ ๋ฆฌ์†Œ์Šค๋ฅผ ์—…๋ฐ์ดํŠธํ•œ ๊ฒฝ์šฐ ํ•ด๋‹น ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ปค๋ฐ‹๋˜์ง€ ์•Š๊ณ  ์‹œ์Šคํ…œ์€ ์ผ๊ด€๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๋‚จ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. SYNCPOINT ๋” ์ผ์ฐ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

CICS๋Š” ํŠน์ • ์ƒํ™ฉ(์˜ˆ: ์ž‘์—… ์ข…๋ฃŒ ์‹œ)์—์„œ ์ž๋™์œผ๋กœ ๋™๊ธฐํ™” ์ง€์ ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์•”๋ฌต์ ์ธ ๋™์ž‘์— ์˜์กดํ•˜๋Š” ๊ฒƒ์€ ๋ฐ”๋žŒ์งํ•˜์ง€ ์•Š์€ ๊ด€ํ–‰์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ํ•ญ์ƒ ๋ช…์‹œ์ ์œผ๋กœ ๋™๊ธฐํ™” ์ง€์ ์„ ์„ ์–ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. SYNCPOINT ๊ฑฐ๋ž˜ ์ž‘์—… ๋‹จ์œ„๊ฐ€ ๊นจ๋—ํ•˜๊ฒŒ ๋‹ซํ˜”๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋™๊ธฐํ™” ์ง€์  ๋ˆ„๋ฝ๊ณผ ๊ด€๋ จ๋œ ์œ„ํ—˜์„ ์™„ํ™”ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค.

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

๋™๊ธฐํ™” ์ง€์  ์ œ์–ด๋ฅผ ๋ฌด์‹œํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ ์ด์ƒ ํ˜„์ƒ ์ค‘๋ณต ๋˜๋Š” ๋ˆ„๋ฝ๋œ ๋ ˆ์ฝ”๋“œ์™€ ๊ฐ™์€
  • ๊ฑฐ๋ž˜ ๋ณต๊ตฌ ์‹คํŒจ
  • ๊ฐ์‚ฌ ๊ทœ์ • ์œ„๋ฐ˜ํŠนํžˆ ๊ธˆ์œต ๋˜๋Š” ๊ทœ์ œ ์‹œ์Šคํ…œ์—์„œ

์ •์  ๋ถ„์„ ๋„๊ตฌ๋Š” ๋ชจ๋“  ์ž ์žฌ์ ์ธ ๋™๊ธฐํ™” ์ง€์  ๋ˆ„๋ฝ์„ ํ‘œ์‹œํ•˜๊ณ  ์ข…๋‹จ ๊ฐ„ ํ๋ฆ„ ๊ฒ€์ฆ์„ ์œ„ํ•œ ๋ฆฌ์†Œ์Šค ์—…๋ฐ์ดํŠธ ์‹œํ€€์Šค๋ฅผ ๋ชจ๋ธ๋งํ•˜์—ฌ ๊ฐ•๋ ฅํ•œ ํŠธ๋žœ์žญ์…˜ ๊ฒฝ๊ณ„๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

์˜๋„์น˜ ์•Š์€ ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ(CICS RETURN ์˜ค์šฉ)

CICS ํ™˜๊ฒฝ์—์„œ COBOL ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ๋Š” ํŠธ๋žœ์žญ์…˜ ์ƒํƒœ, ์‚ฌ์šฉ์ž ์„ธ์…˜ ๋ฐ ๋ฆฌ์†Œ์Šค ์ž ๊ธˆ์ด ์ œ๋Œ€๋กœ ํ•ด์ œ๋˜๋„๋ก ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜๋œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋”ฐ๋ผ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. EXEC CICS RETURN์ด๋Š” CICS ํŠธ๋žœ์žญ์…˜ ํ”„๋กœ์„ธ์„œ์—๊ฒŒ ์ž‘์—…์„ ์ข…๋ฃŒํ•˜๊ณ , ํ„ฐ๋ฏธ๋„ ์ œ์–ด๋ฅผ ํ•ด์ œํ•˜๊ณ , ๋‹ค์Œ ์ž‘์—…์„ ์ค€๋น„ํ•˜๋„๋ก ์‹ ํ˜ธ๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ผ๊ด„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์ต์ˆ™ํ•œ ๊ฐœ๋ฐœ์ž๋“ค์€ ๋•Œ๋•Œ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ COBOL ์ข…๋ฃŒ ๋ฌธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. STOP RUN or GOBACK, ์ด๋กœ ์ธํ•ด ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์ข…๋ฃŒ CICS ๋งฅ๋ฝ์—์„œ.

CICS ํ”„๋กœ๊ทธ๋žจ์˜ ์ž˜๋ชป๋œ ์ข…๋ฃŒ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

IF FATAL-ERROR
DISPLAY 'Unrecoverable error'
GOBACK. *> Unsafe in CICS

๋˜๋Š” :

STOP RUN. *> Abruptly ends the task

์ด๋Ÿฌํ•œ ๋ช…๋ น๋ฌธ์€ CICS ํŠธ๋žœ์žญ์…˜ ์ˆ˜๋ช… ์ฃผ๊ธฐ๋ฅผ ์šฐํšŒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

์ •์  ๋ถ„์„ ๋„๊ตฌ๋Š” CICS์—์„œ ์‹คํ–‰๋œ ๊ฒƒ์œผ๋กœ ํ™•์ธ๋œ ํ”„๋กœ๊ทธ๋žจ ๋‚ด์—์„œ ์ข…๋ฃŒ ๋ช…๋ น์˜ ์กด์žฌ ์—ฌ๋ถ€์™€ ์œ„์น˜๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์˜ค์šฉ ์—ฌ๋ถ€๋ฅผ ํŒŒ์•…ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ ๊ฐ์ง€ STOP RUN, GOBACK๋ฐ EXIT PROGRAM
  • ์ฃผ ํ”„๋กœ์‹œ์ €์™€ ๋ชจ๋“  ์„œ๋ธŒ๋ฃจํ‹ด์˜ ๋ชจ๋“  ์ข…๋ฃŒ ๊ฒฝ๋กœ ์ถ”์ 
  • ํ•ด๋‹น ๊ฒฝ๋กœ์— ์œ ํšจํ•œ ๊ฒฝ๋กœ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ EXEC CICS RETURN
  • ๊ฐ„์ ‘์ ์œผ๋กœ ํ˜ธ์ถœ๋  ์ˆ˜ ์žˆ๋Š” ์ข…๋ฃŒ ๋…ผ๋ฆฌ์— ๋Œ€ํ•œ ์‚ฌ๋ณธ ๋˜๋Š” ํฌํ•จ๋œ ๋ชจ๋“ˆ ํ™•์ธ

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

์˜๋„์น˜ ์•Š์€ ํ•ด๊ณ ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์ข…๋ฃŒ ์ค‘์•™ํ™” RETURN-HANDLER ๋ชจ๋“  ์ข…๋ฃŒ ๋ถ„๊ธฐ์—์„œ ๋ช…์‹œ์ ์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š” ๋ฌธ๋‹จ
  • ์‚ฌ์šฉ EXEC CICS RETURN CICS ํ”„๋กœ๊ทธ๋žจ์˜ ์œ ์ผํ•œ ์ถœ๊ตฌ ์ง€์ ์œผ๋กœ์„œ
  • ์ œ๊ฑฐํ•จ STOP RUN GOBACK ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ ๋ชจ๋“ˆ์—์„œ
  • ์ ์šฉ HANDLE ABEND or HANDLE CONDITION ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์‚ฌ๊ฑด์„ ์šฐ์•„ํ•˜๊ฒŒ ์ œ์–ดํ•˜๋‹ค

์ผ๊ด€๋˜๊ณ  ์ ์ ˆํ•œ ์ข…๋ฃŒ ๊ด€ํ–‰์„ ์ ์šฉํ•จ์œผ๋กœ์จ CICS COBOL ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์‹œ์Šคํ…œ์„ ๋ถˆ์•ˆ์ •ํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ  ์‚ฌ์šฉ์ž๋ฅผ ๋ฐฉํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๋Š” ๋‹ค์–‘ํ•œ ์ œ์–ด ํ๋ฆ„ ์ด์ƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฐ์น˜ ์ž‘์—… ์‹œํ€€์‹ฑ ๊ฒฐํ•จ

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

์ผ๋ฐ˜์ ์ธ ๋ฐฐ์น˜ ์‹œํ€€์‹ฑ ๊ฒฐํ•จ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ์—†์ด ํ•˜๋“œ์ฝ”๋”ฉ๋œ ์ข…์†์„ฑ

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

์˜ˆ:

OPEN INPUT CUSTOMER-FILE
READ CUSTOMER-FILE INTO WS-CUSTOMER.

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

๋ฐ˜ํ™˜ ์ฝ”๋“œ ๋ˆ„๋ฝ์œผ๋กœ ์ธํ•ด Abend Cascade๊ฐ€ ๋ฐœ์ƒํ•จ

JCL์€ ์กฐ๊ฑด ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค(COND) ๋ฐ ๋ฐ˜ํ™˜ ์ฝ”๋“œ(RETURN-CODE)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ ์ž‘์—… ๋‹จ๊ณ„๋ฅผ ์ง„ํ–‰ํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. COBOL ํ”„๋กœ๊ทธ๋žจ์ด ๋ฐ˜ํ™˜ ์ฝ”๋“œ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์‹œ์Šคํ…œ์ด ์ž‘์—…์˜ ์„ฑ๊ณต ๋˜๋Š” ์‹คํŒจ๋ฅผ ์ž˜๋ชป ํ•ด์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ:

MOVE 8 TO RETURN-CODE. *> Required to indicate controlled failure

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

์•”๋ฌต์  ํ๋ฆ„์œผ๋กœ ์ธํ•ด ๊ฑด๋„ˆ๋›ด ์กฐ๊ฑด ๋‹จ๊ณ„

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

์ด๋Ÿฌํ•œ ์œ„ํ—˜์„ ์™„ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ •์  ๋ถ„์„ ๋„๊ตฌ๋Š” COBOL ์†Œ์Šค์™€ ๊ด€๋ จ JCL ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ๋ชจ๋‘ ํ‰๊ฐ€ํ•˜์—ฌ ๋‹ค์Œ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  • ์™ธ๋ถ€ ์ž‘์—… ๋‹จ๊ณ„ ๋˜๋Š” ํŒŒ์ผ์— ๋Œ€ํ•œ ๊ฒ€์‚ฌ๋˜์ง€ ์•Š์€ ์ข…์†์„ฑ
  • ๋ˆ„๋ฝ RETURN-CODE ๋˜๋Š” ์ •๋ ฌ๋˜์ง€ ์•Š์€ ์กฐ๊ฑด ์ฝ”๋“œ
  • ์ฒดํฌํฌ์ธํŒ… ๋˜๋Š” ์žฌ์‹œ์ž‘ ๋…ผ๋ฆฌ์˜ ์ผ๊ด€๋˜์ง€ ์•Š์€ ์‚ฌ์šฉ(์•„๋ž˜์—์„œ ์ž์„ธํžˆ ์„ค๋ช…)
  • ๋ฐฐ์น˜ ์ข…๋ฃŒ ๋ฐ ๋ฆฌ์†Œ์Šค ์ƒํƒœ์— ๋Œ€ํ•œ ๋กœ๊น… ๋˜๋Š” ์ถ”์  ์ง€์ ์ด ์—†์Œ

๊ฐœ์„  ์ž‘์—…์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

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

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

JCL ๊ธฐ๋ฐ˜ ํ”„๋กœ๊ทธ๋žจ ์ข…์†์„ฑ ๋ฐ Abend Cascades

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

JCL์˜ ํ”„๋กœ๊ทธ๋žจ ์ข…์†์„ฑ ์ดํ•ด

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

//STEP01 EXEC PGM=LOADDATA
//STEP02 EXEC PGM=PROCESS,COND=(0,NE)

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

Abend Cascades๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋ฐฉ์‹

Abend(๋น„์ •์ƒ์ ์ธ ์ข…๋ฃŒ) ์บ์Šค์ผ€์ด๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

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

JCL ํ๋ฆ„์€ ์„ ํ˜•์ ์ด๊ณ  ๊ธด ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์ž˜๋ชป ๊ตฌ์„ฑ๋œ ์ž‘์—… ๋‹จ๊ณ„ ํ•˜๋‚˜๊ฐ€ ์ˆ˜์‹ญ ๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์˜ค๋ฅ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

Abend Cascades ๋ฐฉ์ง€์— ์žˆ์–ด์„œ ์ •์  ๋ถ„์„์˜ ์—ญํ• 

๊ณ ๊ธ‰ ์ •์  ๋ถ„์„ ๋„๊ตฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ COBOL ๋กœ์ง๊ณผ JCL ์‹คํ–‰ ๊ฐ„์˜ ๊ฒฉ์ฐจ๋ฅผ ํ•ด์†Œํ•ฉ๋‹ˆ๋‹ค.

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

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

๊ต์ • ๋ฐ ๋ชจ๋ฒ” ์‚ฌ๋ก€

์ž‘์—… ์‹œํ€€์‹ฑ ์‹คํŒจ๋ฅผ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค.

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

์ด๋Ÿฌํ•œ ์•ˆ์ „ ์กฐ์น˜๋ฅผ ๊ฐ„๊ณผํ•˜๋ฉด ์ดˆ๊ธฐ ๋‹จ๊ณ„์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์‚ฌ์†Œํ•œ ์˜ค๋ฅ˜์กฐ์ฐจ๋„ ๋น„์ •์ƒ ์ข…๋ฃŒ ์—ฐ์‡„(abend cascade)์˜ ํŠน์ง•์ธ ๊ด‘๋ฒ”์œ„ํ•œ ์‹คํŒจ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. JCL ์ธ์‹ ๊ธฐ๋Šฅ์„ ํ†ตํ•ฉํ•œ ์ •์  ๋ถ„์„ ๋„๊ตฌ๋Š” ์•ˆ์ •์ ์ด๊ณ  ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ๋ฐฐ์น˜ ์‹คํ–‰ ํŒŒ์ดํ”„๋ผ์ธ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.

์žฅ๊ธฐ ์‹คํ–‰ ์ž‘์—…์—์„œ ์ฒดํฌํฌ์ธํŠธ/์žฌ์‹œ์ž‘ ๋กœ์ง ๋ˆ„๋ฝ

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

๋ฐฐ์น˜ COBOL ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ฒดํฌํฌ์ธํŠธ์˜ ์—ญํ• 

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

์ผ๋ฐ˜์ ์ธ ์ฒดํฌํฌ์ธํŠธ ๊ตฌํ˜„์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

IF RECORD-COUNT MOD 1000 = 0
PERFORM WRITE-CHECKPOINT.

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

์ฒดํฌํฌ์ธํŠธ/์žฌ์‹œ์ž‘ ๋กœ์ง ๋ˆ„๋ฝ์˜ ์œ„ํ—˜

์ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์—†์œผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๋กœ ์ธํ•ด ์‹ฌ๊ฐํ•œ ์ค‘๋‹จ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ฒดํฌํฌ์ธํŠธ ๊ฐ์ง€๋ฅผ ์œ„ํ•œ ์ •์  ๋ถ„์„ ๊ธฐ์ˆ 

์ •์  ๋ถ„์„ ๋„๊ตฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ COBOL ๋ฐฐ์น˜ ํ”„๋กœ๊ทธ๋žจ์„ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

  • ์ฃผ๊ธฐ์  ์ƒํƒœ ์ €์žฅ ๋ฃจํ‹ด(์˜ˆ: N๊ฐœ ๋ ˆ์ฝ”๋“œ๋งˆ๋‹ค)์˜ ์กด์žฌ
  • ํŒŒ์ผ ์—…๋ฐ์ดํŠธ ์ œ์–ด ๋˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜ ๋กœ๋”ฉ ์žฌ์‹œ์ž‘์„ ์œ„ํ•œ ํ˜ธ์ถœ
  • ์žฌ์‹œ์ž‘ ๋งค๊ฐœ๋ณ€์ˆ˜ ์‚ฌ์šฉ ๋ถ€์กฑ(์˜ˆ: ์ž‘์—…์€ ํ•ญ์ƒ ์‹œ์ž‘๋ถ€ํ„ฐ ์ดˆ๊ธฐํ™”๋จ)
  • ์ค‘์š” ๋ฃจํ”„ ๊ตฌ์„ฑ(์˜ˆ: READ or PERFORM) ์ค‘๋‹จ์ ์ด๋‚˜ ์ƒํƒœ ๋ณด์กด ์—†์ด ๋ณดํ˜ธ๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ JCL ๋ถ„์„๊ณผ ํ†ตํ•ฉํ•˜์—ฌ ์žฌ์‹œ์ž‘ ๊ธฐ๋Šฅ์ด ์ž‘์—… ์ˆ˜์ค€์—์„œ ๊ตฌ์„ฑ๋˜์—ˆ์ง€๋งŒ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„๋˜์ง€ ์•Š์•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Restart-Safe Logic์„ ํ†ตํ•œ ํ˜„๋Œ€ํ™”

๊ฐ•๋ ฅํ•œ ์žฌ์‹œ์ž‘ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ฉํ•˜๋ ค๋ฉด:

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

์˜ˆ :

IF RECORD-KEY > RESTART-KEY
PERFORM PROCESS-RECORD.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์žฌ์‹คํ–‰ ์‹œ ์ด์ „์— ์ฒ˜๋ฆฌ๋œ ๋ ˆ์ฝ”๋“œ๊ฐ€ ๊ฑด๋„ˆ๋›ฐ์–ด์ง‘๋‹ˆ๋‹ค.

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

SMART TS XL'์˜ ๋ฐฐ์น˜ ํ๋ฆ„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ชจ๋“œ

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

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

๋ฐฐ์น˜ ํ๋ฆ„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์˜ ์ฃผ์š” ๊ธฐ๋Šฅ

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

2. ์‹คํ–‰ ์กฐ๊ฑด ๋ถ„์„
์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์—”์ง„์€ JCL ์กฐ๊ฑด ์ฝ”๋“œ์™€ ์ž‘์—… ์ œ์–ด ๋กœ์ง์„ ํ•ด์„ํ•˜์—ฌ ๋‹ค์–‘ํ•œ ๋ฐ˜ํ™˜ ์ฝ”๋“œ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์–ด๋–ค ๋‹จ๊ณ„๊ฐ€ ์‹คํ–‰๋ ์ง€ ์˜ˆ์ธกํ•ฉ๋‹ˆ๋‹ค. COND ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋ˆ„๋ฝ๋˜์—ˆ๊ฑฐ๋‚˜ ์œ ํšจํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, COBOL์—์„œ ๊ฒ€์ฆ๋˜์ง€ ์•Š์€ ๋ฐ˜ํ™˜ ์ฝ”๋“œ ๊ฐ’, ๋ชจํ˜ธํ•œ ์กฐ๊ฑด์—์„œ ์‹คํ–‰๋˜๋Š” ์ž‘์—… ๋‹จ๊ณ„ ๋“ฑ์˜ ๊ฒฐํ•จ์„ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.

3. ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ฐ ๊ฒ€์ฆ ์žฌ์‹œ์ž‘
COBOL๊ณผ JCL ๋ชจ๋‘์—์„œ ์ฒดํฌํฌ์ธํŠธ์™€ ์žฌ์‹œ์ž‘ ๋…ผ๋ฆฌ๋ฅผ ๋ถ„์„ํ•˜์—ฌ SMART TS XL ๊ฐ ์ž‘์—… ๋‹จ๊ณ„์˜ ์žฌ์‹œ์ž‘ ๊ฐ€๋Šฅ ์—ฌ๋ถ€์™€ ๋ถ€๋ถ„ ์žฌ์‹คํ–‰ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ์ƒํ™ฉ์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์žฅ๊ธฐ ์‹คํ–‰ ์ž‘์—…์—์„œ ๋ณต๊ตฌ ๊ณ„ํš ๋ฐ SLA ์ค€์ˆ˜ ์—ฌ๋ถ€๋ฅผ ๊ฒ€์ฆํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

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

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

์‹ค์ œ ์˜ํ–ฅ

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

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

๊ณ ๊ธ‰ ๋ถ„์„ ๊ธฐ์ˆ 

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

์ด ์„น์…˜์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๊ณ ๊ธ‰ ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ์–ด๋–ป๊ฒŒ ๋” ์ •ํ™•ํ•˜๊ณ  ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํ†ต์ฐฐ๋ ฅ์„ ์ œ๊ณตํ•˜๊ณ  ๊ธฐ์กด COBOL ํ™˜๊ฒฝ์—์„œ ๊ฒฐํ•จ ํƒ์ง€์™€ ๊ฐœ๋ฐœ ํšจ์œจ์„ฑ์„ ๊ฐœ์„ ํ•˜๋Š”์ง€ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.

์•„๋ž˜ ํ•˜์œ„ ์„น์…˜์—์„œ๋Š” ๋‹ค์Œ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์‹ฌ์ธต์ ์ธ ๊ธฐ์ˆ ์  ๋‚ด์šฉ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฒฝ๋กœ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ์œ„ํ•œ ์‹ฌ๋ณผ๋ฆญ ์‹คํ–‰: ์ •์  ๋ถ„์„๊ธฐ๊ฐ€ ๋ณ€์ˆ˜ ๊ฐ’๊ณผ ๋…ผ๋ฆฌ ๋ถ„๊ธฐ๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜์—ฌ ๋ชจ๋“  ์‹คํ–‰ ๊ฒฝ๋กœ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ๋ฐ์ดํ„ฐ ํ๋ฆ„ ์ธ์‹ ์ œ์–ด ํ๋ฆ„: ๋ณ€์ˆ˜ ์ƒํƒœ๋ฅผ ์ดํ•ดํ•˜๋ฉด ์ œ์–ด ํ๋ฆ„ ๊ฒฐ์ •๊ณผ ์ด์ƒ ํƒ์ง€๊ฐ€ ํ–ฅ์ƒ๋˜๋Š” ๋ฐฉ์‹
  • ์–ธ์–ด๋ณ„ ๊ตฌ๋ฌธ ์ฒ˜๋ฆฌ: ํฌํ•จ REDEFINES, PERFORM THRU, ๊ทธ๋ฆฌ๊ณ  ํ…Œ์ด๋ธ” ๊ธฐ๋ฐ˜ ๋…ผ๋ฆฌ๋Š” ๊ธฐ์กด ๋ถ„์„์„ ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

๊ฐ ๊ธฐ์ˆ ์€ ์‹ค์ œ COBOL ์‹œ๋‚˜๋ฆฌ์˜ค์˜ ์˜ˆ๋ฅผ ํ†ตํ•ด ๋งฅ๋ฝํ™”๋˜๊ณ , ์ •์  ๋ถ„์„์ด ๋ฒ„๊ทธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ฝ”๋“œ ์ตœ์ ํ™”, ํ˜„๋Œ€ํ™”, ๊ทœ์ • ์ค€์ˆ˜ ๋ณด์žฅ์„ ์ง€์›ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๊ฒฝ๋กœ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ์œ„ํ•œ ์‹ฌ๋ณผ๋ฆญ ์‹คํ–‰

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

COBOL์—์„œ ์‹ฌ๋ณผ๋ฆญ ์‹คํ–‰์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹

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

์˜ˆ:

IF ACCOUNT-BALANCE > 0
PERFORM DEBIT-ACCOUNT
ELSE
PERFORM DISPLAY-ERROR

์ด ๊ฒฝ์šฐ ๋‘ ๊ฐœ์˜ ์‹ฌ๋ณผ๋ฆญ ๊ฒฝ๋กœ๊ฐ€ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

  • ํ•˜๋‚˜ ์–ด๋”” ACCOUNT-BALANCE > 0 ์‚ฌ์‹ค์ด๋‹ค
  • ๊ฑฐ์ง“์ธ ๊ณณ

๊ฐ ๊ฒฝ๋กœ๋Š” ๋ณ„๋„๋กœ ํ‰๊ฐ€๋˜๋ฏ€๋กœ ๋ถ„์„๊ธฐ๋Š” ๋‘ ๊ฒฝ๋กœ ๋ชจ๋‘ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. PERFORM ๋ถ„๊ธฐ์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ๊ทธ ๊ณผ์ •์—์„œ ๋ฐ์ดํ„ฐ ๊ด€๋ จ ๊ฐ€์ •์ด ์œ„๋ฐ˜๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.

COBOL์—์„œ ์‹ฌ๋ณผ๋ฆญ ์‹คํ–‰์˜ ์ด์ 

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

COBOL๋งŒ์˜ ๊ณ ์œ ํ•œ ๊ณผ์ œ

COBOL์€ ํ˜„๋Œ€ ์–ธ์–ด์—์„œ๋Š” ์ฐพ์•„๋ณผ ์ˆ˜ ์—†๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ถ„์„ ๋ฌธ์ œ๋ฅผ ์•ผ๊ธฐํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

  • REDEFINES ์ ˆ๋™์ผํ•œ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ํ•ด์„๋˜๋Š” ๊ฒฝ์šฐ
  • USAGE COMP์™€ USAGE DISPLAY์˜ ์ฐจ์ด์ ๋ฐ์ดํ„ฐ ํ•ด์„์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”
  • ๋™์  ๋ฌธ๋‹จ ์ ํ”„ ์‚ฌ์šฉ PERFORM THRU GO TO๋ฌธ๋‹จ์˜ ์‹œ์ž‘ ๋ฐ ์ข…๋ฃŒ ์ง€์ ์„ ์ƒ์ง•์ ์œผ๋กœ ์ถ”์ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ๊ธ‰ ์ •์  ๋ถ„์„๊ธฐ๋Š” ๋ชจ๋“  ๊ฒฐ์ • ๋…ธ๋“œ์—์„œ ๊ธฐํ˜ธ ๋…ผ๋ฆฌ๋ฅผ ํ†ตํ•ฉํ•˜๋Š” ์ถ”์ƒ ๊ตฌ๋ฌธ ํŠธ๋ฆฌ(AST)์™€ ์ œ์–ด ํ๋ฆ„ ๊ทธ๋ž˜ํ”„(CFG)๋ฅผ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ๋ถ„์„ ๊ธฐ์ˆ ๊ณผ์˜ ํ†ตํ•ฉ

์ƒ์ง•์  ์‹คํ–‰์€ ์ข…์ข… ๋‹ค์Œ๊ณผ ํ•จ๊ป˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

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

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

์ œ์•ฝ ์กฐ๊ฑด ํ•ด๊ฒฐ์„ ์œ„ํ•œ COBOL ๋ณ€์ˆ˜ ๋ชจ๋ธ๋ง

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

COBOL ๋ณ€์ˆ˜์˜ ๊ตฌ์กฐ

COBOL ๋ณ€์ˆ˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ •์˜๋ฉ๋‹ˆ๋‹ค. PIC ๊ธธ์ด, ํ˜•์‹ ๋ฐ ์‚ฌ์šฉ๋ฒ•์„ ์ง€์ •ํ•˜๋Š” ์ ˆ์ž…๋‹ˆ๋‹ค. ์˜ˆ:

01  ACCOUNT-BALANCE    PIC S9(6)V99 COMP-3.
01 TRANSACTION-CODE PIC X(4).

์ œ์•ฝ ์กฐ๊ฑด ์†”๋ฒ„์—์„œ ์ด๋ฅผ ๋ชจ๋ธ๋งํ•˜๋ ค๋ฉด ๋ถ„์„ ๋„๊ตฌ๊ฐ€ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ํŠนํžˆ ์••์ถ•๋œ 10์ง„์ˆ˜ ๋ฐ 2์ง„์ˆ˜ ํ˜•์‹์˜ ์ˆซ์ž ๊ทธ๋ฆผ ์ ˆ์„ ํ•ด์„ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ถ€ํ˜ธ ์žˆ๋Š” ๊ฐ’๊ณผ ์†Œ์ˆ˜์  ํฌ๊ธฐ ์กฐ์ • ์ฒ˜๋ฆฌ
  • ๊ตฌ๋ณ„ํ•˜๋‹ค DISPLAY, COMP, COMP-3์˜ˆ์‚ฐ ๋ฐ COMP-5 ์šฉ๋„
  • ํ•„๋“œ ์ˆ˜์ค€ ์žฌ์ •์˜ ์ถ”์  ๋ฐ ํ•ญ๋ชฉ ๊ทธ๋ฃนํ™”

์ด๋Ÿฌํ•œ ํŠน์„ฑ์€ ์ œ์•ฝ ์กฐ๊ฑด ์ƒ์„ฑ ๋ฐ ํ‰๊ฐ€ ๋ฐฉ์‹์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, COMP-3 ๊ฐ’์€ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์„ ๋ชจ๋ธ๋งํ•˜๊ธฐ ์ „์— ์–ธํŒจํ‚น(unpacking)์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ œ์–ด ํ๋ฆ„ ๊ฒฐ์ •์— ์ œ์•ฝ ์กฐ๊ฑด ์ ์šฉ

์ผ๋ฐ˜์ ์ธ COBOL ๊ฒฐ์ •์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ณตํ•ฉ ์กฐ๊ฑด์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

IF ACCOUNT-BALANCE > 1000 AND TRANSACTION-CODE = "TRF"

์ด ์กฐ๊ฑด์— ๋”ฐ๋ฅธ ๊ฒฝ๋กœ๊ฐ€ ๊ฐ€๋Šฅํ•œ์ง€ ํ‰๊ฐ€ํ•˜๋ ค๋ฉด ์ œ์•ฝ ์กฐ๊ฑด ์†”๋ฒ„๊ฐ€ ์ˆซ์žํ˜• ๋ฐ ๋ฌธ์ž์—ด ๋น„๊ต๋ฅผ ๋ชจ๋‘ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์•Œ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ, ํ•ด๋‹น ๋ณ€์ˆ˜๋Š” ๊ธฐํ˜ธ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์†”๋ฒ„๋Š” ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๊ฐ’์˜ ํ• ๋‹น์„ ์ฐพ์œผ๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ถ„๊ธฐ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์†”๋ฒ„๋Š” ๊ฐ ๊ฒฝ๋กœ์— ๋Œ€ํ•œ ์ œ์•ฝ ์กฐ๊ฑด์„ ์ถ”์ ํ•˜๊ณ  ์‹คํ–‰ ๊ฐ€๋Šฅ์„ฑ์— ๋”ฐ๋ผ ์ด๋ฅผ ๊ฒ€์ฆํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

COBOL ์ œ์•ฝ ๋ชจ๋ธ๋ง์˜ ๊ณผ์ œ

COBOL ๊ด€๋ จ ๊ณผ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

์ด๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋ถ„์„ ์—”์ง„์€ ์ข…์ข… ๋ฉ”๋ชจ๋ฆฌ ๋ ˆ์ด์•„์›ƒ์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๊ณ  ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด์—์„œ ์ƒ์ง•์  ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ๋ฅผ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.

์ •ํ™•ํ•œ ๋ณ€์ˆ˜ ๋ชจ๋ธ๋ง์˜ ์ด์ 

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

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

๊ฒฝ๋กœ ๋ถ„์„์—์„œ REDEFINES ์ ˆ ์ฒ˜๋ฆฌ

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

REDEFINES์˜ ์˜ํ–ฅ ์ดํ•ด

๋‹ค์Œ์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ƒ๊ฐํ•ด ๋ณด์„ธ์š”.

01  RECORD-BLOCK.
05 RECORD-TYPE PIC X.
05 CUSTOMER-RECORD REDEFINES RECORD-BLOCK.
10 CUSTOMER-ID PIC 9(5).
10 BALANCE PIC S9(7)V99.
05 VENDOR-RECORD REDEFINES RECORD-BLOCK.
10 VENDOR-ID PIC X(8).
10 STATUS PIC X.

์—ฌ๊ธฐ CUSTOMER-RECORD VENDOR-RECORD ์™„์ „ํžˆ ๊ฒน์นฉ๋‹ˆ๋‹ค. ์–ด๋–ค ๊ตฌ์กฐ๊ฐ€ ์œ ํšจํ•œ์ง€๋Š” ๊ฐ’์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. RECORD-TYPEํ”„๋กœ๊ทธ๋žจ์ด ํ•œ ํ˜•์‹์„ ๊ฐ€์ •ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ค๋ฅธ ํ˜•์‹์— ํ•ด๋‹นํ•˜๋Š” ๊ฒฝ์šฐ, ์ž˜๋ชป๋œ ๊ณ„์‚ฐ, ์ž˜๋ชป๋œ ๋น„๊ต ๋˜๋Š” ์ž˜๋ชป๋œ ๊ฒฝ๋กœ๋กœ ์ง„ํ–‰๋˜๋Š” ์ œ์–ด ํ๋ฆ„์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ •์  ๋ถ„์„ ๊ณผ์ œ

๊ฒฝ๋กœ ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์ •์  ๋ถ„์„๊ธฐ๋Š” ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ชจ๋‘ ์‹๋ณ„ REDEFINES ๊ด€๊ณ„ ๋ฐ ๊ณต์œ  ์ €์žฅ ์˜์—ญ
  • ๋Ÿฐํƒ€์ž„์— ์–ด๋–ค ํ•„๋“œ ์„ธํŠธ๊ฐ€ ์œ ํšจํ•œ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๋…ผ๋ฆฌ์  ์กฐ๊ฑด์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์žฌ์ •์˜๋œ ํ•„๋“œ ๊ฐ’์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ถ„๊ธฐ ๋˜๋Š” ๋ฌธ๋‹จ ์‹คํ–‰ ์ถ”์ 
  • ์กฐ๊ฑด ๋…ผ๋ฆฌ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•„๋“œ๋ฅผ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒ€์‚ฌ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. RECORD-TYPE

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

๋ชจ๋ธ๋ง ๊ธฐ๋ฒ•

๊ณ ๊ธ‰ ์ •์  ๋ถ„์„ ๋„๊ตฌ๊ฐ€ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. REDEFINES ๊ฑด์ถ•ํ•จ์œผ๋กœ์จ ์˜ค๋ฒ„๋ ˆ์ด ๋ชจ๋ธ ๊ฐ ํ•ด์„์— ๋Œ€ํ•ด. ์ด๋Ÿฌํ•œ ๋ชจ๋ธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋ฌผ๋ฆฌ์  ์ €์žฅ ๋ธ”๋ก์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ธฐ๋ณธ ๋ฉ”๋ชจ๋ฆฌ ๋งต
  • ๋‹ค์–‘ํ•œ ๊ธฐ๋ฐ˜ ์œ„์— ๊ณ„์ธตํ™”๋œ ๋…ผ๋ฆฌ์  ๋ทฐ REDEFINES ์„ ์–ธ
  • ํ•œ ๋ทฐ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋Š” ๋™์‹œ์— ๋‹ค๋ฅธ ๋ทฐ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ์กฐ๊ฑด ๊ด€๊ณ„

์ด๋Ÿฌํ•œ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ €์žฅ์†Œ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ์žฌ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ์—๋„ ๋ถ„์„ ์—”์ง„์ด ๊ฐ’์„ ์ถ”์ ํ•˜๊ณ  ํ๋ฆ„ ๊ฒฝ๋กœ๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ถ„์„ํ•ด์•ผ ํ•  ์‚ฌํ•ญ์˜ ์˜ˆ:

IF RECORD-TYPE = 'C'
PERFORM PROCESS-CUSTOMER
ELSE IF RECORD-TYPE = 'V'
PERFORM PROCESS-VENDOR

๋ถ„์„๊ธฐ๋Š” ๊ฐ๊ฐ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. PERFORM branch๋Š” ๊ด€๋ จ๋œ ์žฌ์ •์˜๋œ ๊ตฌ์กฐ๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ์ •์˜๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์€ ํ•„๋“œ์˜ ์‚ฌ์šฉ์„ ์ž ์žฌ์ ์ธ ์ด์ƒ์œผ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

REDEINES๋ฅผ ๋ฌด์‹œํ•˜๋Š” ์œ„ํ—˜

๋ฌด์‹œํ•˜๋ฉด, REDEFINES ์ ˆ์€ ๋‹ค์Œ์„ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌธ์ž์—ด๋กœ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๊ทธ ๋ฐ˜๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋“ฑ ์ž˜๋ชป๋œ ๋ฐ์ดํ„ฐ ํ•ด์„
  • ์กฐ๊ฑด ๋…ผ๋ฆฌ์—์„œ์˜ ์˜คํ•ด์˜ ์†Œ์ง€๊ฐ€ ์žˆ๋Š” ๋น„๊ต
  • ํ•„๋“œ ์˜๋ฏธ์— ๋Œ€ํ•œ ์ž˜๋ชป๋œ ๊ฐ€์ •์œผ๋กœ ์ธํ•ด ์ œ์–ด ํ๋ฆ„์ด ๊ฐ์ง€๋˜์ง€ ์•Š๋Š” ๋ฒ„๊ทธ
  • ์ •๋ ฌ๋˜์ง€ ์•Š์€ ํ•„๋“œ ๊ฐ’์œผ๋กœ ์ธํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋˜๋Š” ํŒŒ์ผ ์—…๋ฐ์ดํŠธ์— ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

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

๋™์  ๊ฒฝ๋กœ ํƒ์ƒ‰๊ณผ ์ •์  ๊ฒฝ๋กœ ํƒ์ƒ‰์˜ ํ•œ๊ณ„

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

์ •์  ๊ฒฝ๋กœ ํƒ์ƒ‰์ด ์ œ๊ณตํ•˜๋Š” ๊ฒƒ

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

  • ํ•ด๊ฒฐ PERFORM, GOTO์˜ˆ์‚ฐ ๋ฐ CALL ๋ฌธ
  • ๋งคํ•‘ EVALUATE IF ๊ตฌ์กฐ๋ฅผ ๊ฒฐ์ • ๋…ธ๋“œ๋กœ
  • ์กฐ๊ฑด๋ฌธ์— ๋Œ€ํ•œ ๋ณ€์ˆ˜์˜ ํšจ๊ณผ ๋ถ„์„
  • ๋„๋‹ฌํ•  ์ˆ˜ ์—†๋Š” ์ฝ”๋“œ ๋˜๋Š” ๋ฌดํ•œ ๋ฃจํ”„ ๊ฐ์ง€

์ด ๋ถ„์„์€ ์‹ค์ œ ํ™˜๊ฒฝ์—์„œ๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋Š” ์ž…๋ ฅ์— ๋Œ€ํ•ด์„œ๋„ ๊ฐ€๋Šฅํ•œ ์‹คํ–‰ ํ๋ฆ„์„ ์™„๋ฒฝํ•˜๊ฒŒ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ปค๋ฒ„๋ฆฌ์ง€ ๊ฒ€์ฆ, ์ด์ƒ ๊ฐ์ง€, ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๊ณ„ํš์— ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค.

์ฃผ์š” ์ œํ•œ ์‚ฌํ•ญ

์ •์  ๊ฒฝ๋กœ ๋ถ„์„์€ ๊ฐ•๋ ฅํ•˜์ง€๋งŒ ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

3. ๋ถ€์ž‘์šฉ ํ‰๊ฐ€ ๋ถˆ๋Šฅ
์™ธ๋ถ€ ํ”„๋กœ๊ทธ๋žจ์„ ํ†ตํ•œ ํ˜ธ์ถœ CALL CICS ๋ฐ DB2์™€ ๊ฐ™์€ ์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค๋Š” ํŠน๋ณ„ํžˆ ๋ชจ๋ธ๋ง๋˜์ง€ ์•Š๋Š” ํ•œ ๋ธ”๋ž™๋ฐ•์Šค๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๋ถ„์„๊ธฐ๊ฐ€ ์ „์ฒด ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๋Šฅ๋ ฅ์ด ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.

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

๋™์  ๊ธฐ์ˆ ๊ณผ์˜ ๋น„๊ต

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

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ ‘๊ทผ ๋ฐฉ์‹

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

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

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

๋ฌธ๋‹จ ์ด๋™์— ๋”ฐ๋ฅธ ๋ณ€์ˆ˜ ์ƒํƒœ ์ถ”์ 

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

๋ณ€์ˆ˜ ์ƒํƒœ ์ถ”์ ์ด ์ค‘์š”ํ•œ ์ด์œ 

๋‹ค์Œ์˜ ๋‹จ์ˆœํ™”๋œ ๊ตฌ์กฐ๋ฅผ ์ƒ๊ฐํ•ด ๋ณด์„ธ์š”.

PERFORM INIT-VARS
PERFORM CHECK-VALUE
...
INIT-VARS.
MOVE ZERO TO COUNTER
MOVE "ACTIVE" TO STATUS

CHECK-VALUE.
IF STATUS = "ACTIVE"
PERFORM PROCESS-A
ELSE
PERFORM PROCESS-B

์ˆœ์ง„ํ•œ ๋ถ„์„๊ฐ€๋Š” ๋‹ค์Œ์„ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CHECK-VALUE ๊ณ ๋ฆฝ๋˜์–ด ๊ทธ๊ฒƒ์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ๋‹ค STATUS ํ•ญ์ƒ "ํ™œ์„ฑ"์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ์ƒํƒœ ์ถ”์ ์„ ํ†ตํ•ด PROCESS-A ํ•ญ์ƒ ์‹คํ–‰๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. PROCESS-B ๋‹ค๋ฅธ ๊ฒฝ๋กœ๊ฐ€ ์ˆ˜์ •๋˜์ง€ ์•Š๋Š” ํ•œ ๋„๋‹ฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. STATUS.

์ด๋Ÿฌํ•œ ์ถ”์ ์€ ๋‹ค์Œ์˜ ๊ฒฝ์šฐ์— ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.

  • ์ˆ˜์ •๋˜์ง€ ์•Š๋Š” ๋ณ€์ˆ˜์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋Š” ๋ฐ๋“œ ์ฝ”๋“œ ๊ฐ์ง€
  • ์‚ฌ์šฉ ์ „ ์ž‘์—… ์ €์žฅ ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™” ๊ฒ€์ฆ
  • ๋ฃจํ”„์™€ ๊ฒฐ์ •์˜ ์ข…๋ฃŒ ์กฐ๊ฑด์ด ์œ ํšจํ•œ์ง€ ํ™•์ธ
  • ์—ฌ๋Ÿฌ ๋ฌธ๋‹จ์—์„œ ๊ณต์œ  ๋ณ€์ˆ˜ ์‚ฌ์šฉ์˜ ๋ถ€์ž‘์šฉ ์ดํ•ด

๊ธฐ์ˆ ์  ๊ณผ์ œ

COBOL์—์„œ ๊ฐ€๋ณ€ ์ƒํƒœ ์ถ”์ ์€ ๋‹ค์Œ์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

์ •์  ๋ถ„์„ ์ „๋žต

๊ณ ๊ธ‰ ๋ถ„์„๊ธฐ๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€์ˆ˜ ์ƒํƒœ ์ „ํ™˜์„ ๋ชจ๋ธ๋งํ•ฉ๋‹ˆ๋‹ค.

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

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

์ œ์–ด ํ๋ฆ„ ์ •ํ™•๋„์˜ ์ด์ 

๋ณ€์ˆ˜ ์ƒํƒœ๋ฅผ ์ถ”์ ํ•˜์—ฌ:

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

์ด๋Ÿฌํ•œ ๋ถ„์„์€ ๋ฌธ์„œ๊ฐ€ ๋ถ€์กฑํ•˜๊ณ  ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์„ฑ๊ณต์ ์ธ ์œ ์ง€ ๊ด€๋ฆฌ๋‚˜ ํ˜„๋Œ€ํ™”์˜ ํ•ต์‹ฌ์ธ ๊ธฐ์กด COBOL ์‹œ์Šคํ…œ์—์„œ ํŠนํžˆ ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์กฐ๊ฑด ๊ฒฝ๋กœ์—์„œ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ ๊ฐ์ง€

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

์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ๋ณ€์ˆ˜์˜ ์‹ค์ œ ์œ„ํ—˜

๋‹ค์Œ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค.

IF TRANSACTION-CODE = "PAYM"
PERFORM PROCESS-PAYMENT
ELSE
PERFORM ERROR-ROUTINE

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

  • ์˜๋„ํ•˜์ง€ ์•Š์€ ์ฝ”๋“œ ๊ฒฝ๋กœ ์‹คํ–‰
  • ๊ฒ€์ฆ ๋…ผ๋ฆฌ๋ฅผ ๊ฑด๋„ˆ๋›ฐ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ž˜๋ชป๋œ ์ž…๋ ฅ ๋˜๋Š” ๋ˆ„๋ฝ๋œ ๋ ˆ์ฝ”๋“œ ์ฒ˜๋ฆฌ

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

์ •์  ๋ถ„์„ ๋ฐฉ๋ฒ•

์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ๋ณ€์ˆ˜๋ฅผ ๊ฐ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ •์  ๋ถ„์„๊ธฐ๋Š” ์ œ์–ด ํ๋ฆ„ ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ ํ๋ฆ„ ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

  • ๋ชจ๋“  ๋ณ€์ˆ˜ ์„ ์–ธ๊ณผ ์ดˆ๊ธฐ ์ƒํƒœ ๋งคํ•‘
  • ๋‹ค์Œ์„ ํฌํ•จํ•œ ๊ฐ ํ• ๋‹น ์ž‘์—… ์ถ”์  MOVE, READ, ACCEPT, ๋˜๋Š” ์‚ฐ์ˆ  ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ
  • ํ• ๋‹น ์ „์— ๋ณ€์ˆ˜๊ฐ€ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์กฐ๊ฑด ๋ถ„๊ธฐ ๋ถ„์„

์˜ˆ๋ฅผ ๋“ค์–ด,

IF CUSTOMER-TYPE = "P"
PERFORM PROCESS-PERSONAL

๋ถ„์„๊ธฐ๋Š” ๋‹ค์Œ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. CUSTOMER-TYPE ์ด ์กฐ๊ฑด ์ด์ „์—๋Š” ํ• ๋‹น๋œ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ฒฝ๋กœ์— ํ• ๋‹น์ด ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์‚ฌํ•ญ์—๋Š” ํŠน๋ณ„ํ•œ ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  • ์กฐ๊ฑด๋ถ€ ๋˜๋Š” ๋ฃจํ”„ ๋‚ด๋ถ€์—์„œ ์ดˆ๊ธฐํ™”๋œ ๋ณ€์ˆ˜
  • ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ „๋‹ฌ๋œ ํ•„๋“œ LINKAGE SECTION
  • REDEFINES ์—ฌ๋Ÿฌ ํ•„๋“œ์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ๋Š” ํ• ๋‹น์ด ์žˆ๋Š” ์ ˆ
  • OCCURS ๋ฐฐ์—ด ์š”์†Œ๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ๊ฒ€์ฆํ•ด์•ผ ํ•˜๋Š” ๊ตฌ์กฐ

๊ณ ์œ„ํ—˜ ํŒจํ„ด์˜ ์˜ˆ

WORKING-STORAGE SECTION.
01 USER-TYPE PIC X.

...

IF USER-TYPE = "A"
PERFORM ADMIN-FLOW

์ด ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์œ„ํ—˜ํ•ฉ๋‹ˆ๋‹ค. USER-TYPE ์กฐ๊ฑด ์ „์— ์ฑ„์›Œ์ง‘๋‹ˆ๋‹ค. ์ •์  ๋ถ„์„์€ ํ•ด๋‹น ์ค„์ด ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ํ•„๋“œ์—์„œ ์ฝ์„ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Œ์„ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฐฉ ๋ฐ ๊ฐœ์„ 

์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๋ ค๋ฉด:

  • ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘ ์‹œ ๋ชจ๋“  ์ž‘์—… ์ €์žฅ ํ•„๋“œ๋ฅผ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…ํ™•ํ•˜๊ณ  ์ค‘์•™ํ™”๋œ ์ดˆ๊ธฐํ™” ๋ฃจํ‹ด์„ ์‚ฌ์šฉํ•˜์„ธ์š”. PERFORM INIT-FIELDS
  • ๋ถ„๊ธฐํ•˜๊ธฐ ์ „์— ํŒŒ์ผ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋˜๋Š” ํ„ฐ๋ฏธ๋„ ์ž…๋ ฅ์—์„œ ๋“ค์–ด์˜ค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.
  • ํ˜„์žฌ ๊ฒฝ๋กœ์— ๋ช…์‹œ์ ์œผ๋กœ ์ฑ„์›Œ์ง€์ง€ ์•Š์€ ํ•„๋“œ์—๋Š” ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

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

๋ฐฉ๋ฒ• SMART TS XL ๋ฐ์ดํ„ฐ+์ œ์–ด ํ๋ฆ„ ๋ถ„์„ ํ†ตํ•ฉ

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

ํ†ตํ•ฉ ๊ฒฝ๋กœ ๋ถ„์„ ์—”์ง„

ํ•ต์‹ฌ SMART TS XL ๋‘ ๊ฐ€์ง€ ๋ชจ๋‘๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ถ„์„ ์—”์ง„์ž…๋‹ˆ๋‹ค. ์ œ์–ด ํ๋ฆ„ ๊ทธ๋ž˜ํ”„(CFG) ๋ฐ์ดํ„ฐ ํ๋ฆ„ ๊ทธ๋ž˜ํ”„(DFG) ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•ด. ์ด๋Ÿฌํ•œ ๊ทธ๋ž˜ํ”„๋Š” ๋ถ„์„ ๊ณผ์ • ๋™์•ˆ ๋™๊ธฐํ™”๋˜๊ณ  ์ง€์†์ ์œผ๋กœ ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค. CFG์˜ ๊ฐ ๋…ธ๋“œ๋Š” ํ”„๋กœ๊ทธ๋žจ ๋ช…๋ น๋ฌธ ๋˜๋Š” ๋ถ„๊ธฐ์— ํ•ด๋‹นํ•˜๋ฉฐ, DFG์˜ ์—์ง€๋Š” ๋ณ€์ˆ˜ ๊ฐ’์˜ ๋ณ€ํ™˜ ๋ฐ ์ด๋™์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ ์ฝ”๋“œ์—์„œ๋Š”:

IF BALANCE > 1000
MOVE "Y" TO FLAG

SMART TS XL ์กฐ๊ฑด ๋ถ„๊ธฐ(์ œ์–ด ํ๋ฆ„)์™€ ํ• ๋‹น ์—ฐ์‚ฐ(๋ฐ์ดํ„ฐ ํ๋ฆ„)์„ ๋ชจ๋‘ ๋ชจ๋ธ๋งํ•ฉ๋‹ˆ๋‹ค. FLAG'์˜ ๊ฐ’์€ ๊ด€๋ จ๋œ ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. BALANCE์ด๋Š” ํŒŒ์ผ ์ฝ๊ธฐ๋‚˜ ๊ณ„์‚ฐ์—์„œ ํŒŒ์ƒ๋˜์—ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐํ•ฉ ๋ถ„์„์˜ ์ด์ 

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

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

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

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

ํ†ต์ฐฐ๋ ฅ ์˜ˆ์‹œ

COBOL ํ”„๋กœ๊ทธ๋žจ์ด ๊ณ ๊ฐ ๋ ˆ์ฝ”๋“œ๋ฅผ ์ฝ๊ณ  ์œ„ํ—˜ ์ˆ˜์ค€์„ ํ™•์ธํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

READ CUSTOMER-FILE INTO WS-CUST
IF WS-CUST-RISK-LEVEL = "HIGH"
PERFORM RISK-HANDLING

If WS-CUST-RISK-LEVEL ํŠน์ • ๊ณ ๊ฐ ์œ ํ˜•์—๋งŒ ์„ค์ •๋˜๋ฉฐ ์ด ์กฐ๊ฑด์€ ๋ฌด์กฐ๊ฑด์ ์œผ๋กœ ํ‰๊ฐ€๋ฉ๋‹ˆ๋‹ค. SMART TS XL ํ•„๋“œ๊ฐ€ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ์ด์ „ ๋ฐ˜๋ณต ์ž‘์—…์˜ ์ž”์—ฌ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ์„ ์ˆ˜ ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๊ณ„๋ณด๋ฅผ ์ œ์–ด ํ๋ฆ„์— ์—ฐ๊ฒฐํ•จ์œผ๋กœ์จ ๋‹จ์ˆœํžˆ ๊ฒฝ๊ณ ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์œ„ํ—˜์ด ๋ฐœ์ƒํ•˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•œ ์™„์ „ํ•œ ์„ค๋ช…์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ „์ฒด ์ž‘์—… ์ŠคํŠธ๋ฆผ์œผ๋กœ ํ™•์žฅ ๊ฐ€๋Šฅ

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

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

๊ทœ์ • ์ค€์ˆ˜ ๋ฐ ๊ทœ์ œ ์˜ํ–ฅ

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

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

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

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

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

์ œ์–ด ํ๋ฆ„ ๋ฌด๊ฒฐ์„ฑ์— ๋Œ€ํ•œ ํ‘œ์ค€

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

MISRA-COBOL ๋ฐ ๊ตฌ์กฐํ™”๋œ ํ๋ฆ„

์›๋ž˜ ์ž๋™์ฐจ ์‹œ์Šคํ…œ์„ ์œ„ํ•ด ๊ฐœ๋ฐœ๋œ MISRA COBOL ๊ฐ€์ด๋“œ๋ผ์ธ์€ ์ •์  ๋ถ„์„์— ํ•„์ˆ˜์ ์ธ ๊ตฌ์กฐ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์›์น™์„ ์žฅ๋ คํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์š” ์ œ์–ด ํ๋ฆ„ ๊ทœ์น™์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

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

๋น„๊ทœ๊ฒฉ ๊ตฌ์กฐ์˜ ์˜ˆ:

IF ERROR-FLAG = 1
GOTO HANDLE-ERROR
...
HANDLE-ERROR.
DISPLAY "Error occurred"
GOBACK.

์ด๋Š” ๋‹จ์ผ ํ•ญ๋ชฉ ๊ทœ์น™์„ ์œ„๋ฐ˜ํ•˜๋ฉฐ ์ถ”์ ์ด๋‚˜ ํ…Œ์ŠคํŠธ๊ฐ€ ์–ด๋ ค์šด ๋ถ„๊ธฐ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์กฐํ™”๋œ ๋Œ€์•ˆ์€ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. PERFORM ์ •ํ•ด์ง„ ์ถœ๊ตฌ ์ง€์ ์ด ์žˆ์Œ.

DO-178C ๋ฐ ๊ฒฐ์ •๋ก ์  ์‹คํ–‰

ํ•ญ๊ณต์šฐ์ฃผ ๋ฐ ๋ฐฉ์œ„ ์‚ฐ์—… ๋ถ„์•ผ์—์„œ DO-178C๋Š” ํ•ญ๊ณต ์‹œ์Šคํ…œ์šฉ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์„ ๊ทœ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ‘œ์ค€์€ ์ œ์–ด ํ๋ฆ„์ด ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•œ๋‹ค๊ณ  ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค.

  • ์š”๊ตฌ ์‚ฌํ•ญ๋ถ€ํ„ฐ ์ฝ”๋“œ ๋ฐ ํ…Œ์ŠคํŠธ๊นŒ์ง€ ์™„๋ฒฝํ•˜๊ฒŒ ์ถ”์  ๊ฐ€๋Šฅ
  • ์˜๋„ํ•˜์ง€ ์•Š์€ ๋…ผ๋ฆฌ ๊ฒฝ๋กœ๋‚˜ ๋„๋‹ฌํ•  ์ˆ˜ ์—†๋Š” ์ฝ”๋“œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
  • ์ธก์ • ๊ฐ€๋Šฅํ•œ ์ธก๋ฉด์—์„œ ์ˆ˜์ •๋œ ์กฐ๊ฑด/๊ฒฐ์ • ์ ์šฉ ๋ฒ”์œ„(MC/DC)

์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ๋ถ„์„์ž์—๊ฒŒ ๋‹ค์Œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

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

์ •์  ์ œ์–ด ํ๋ฆ„ ๋ถ„์„์˜ ์ค‘์š”์„ฑ

์ •์  ๋ถ„์„์„ ํ†ตํ•ด ๋‹ค์Œ์„ ํ†ตํ•ด ์ด๋Ÿฌํ•œ ํ‘œ์ค€์— ๋Œ€ํ•œ ์ง€์†์ ์ธ ๊ฒ€์ฆ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  • ๋ชจ๋‘ ํ™•์ธ ์ค‘ IF, PERFORM, EVALUATE๋ฐ ์ ํ•ฉ์„ฑ์„ ์œ„ํ•œ ๋ฃจํ”„ ๊ตฌ์กฐ
  • ์ธ์ฆ ๊ฒ€ํ† ๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•œ ์‹œ๊ฐ์  ์ œ์–ด ํ๋ฆ„๋„ ์ œ์ž‘
  • ๊ฐœ๋ฐœ ์ดˆ๊ธฐ ๋˜๋Š” ํ˜„๋Œ€ํ™” ์ค‘์— ์œ„๋ฐ˜ ์‚ฌํ•ญ ๊ฐ•์กฐ
  • ์ œ3์ž ๊ฐ์‚ฌ ๋ฐ ๋‚ด๋ถ€ QA ๊ฒ€์‚ฌ ์ง€์›

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

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

๋‹จ์ผ ์ง„์ž…/๋‹จ์ผ ์ข…๋ฃŒ๋ฅผ ์œ„ํ•œ MISRA-COBOL ๊ทœ์น™

MISRA-COBOL ํ‘œ์ค€์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์š”๊ตฌ ์‚ฌํ•ญ ์ค‘ ํ•˜๋‚˜๋Š” ๋‹ค์Œ์„ ์‹œํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹จ์ผ ์ง„์ž…, ๋‹จ์ผ ์ถœ๊ตฌ ๋ชจ๋“  ์ œ์–ด ํ๋ฆ„ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ๊ทœ์น™์ž…๋‹ˆ๋‹ค. ์ด ๊ทœ์น™์€ ์Šคํƒ€์ผ ์„ ํ˜ธ๋„์— ๊ด€ํ•œ ๊ฒƒ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ฐ€๋…์„ฑ, ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅ์„ฑ์˜ˆ์‚ฐ ๋ฐ ์˜ˆ์ธก ๊ฐ€๋Šฅ์„ฑ ์ค‘์š”ํ•œ COBOL ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋น„์ •ํ˜• ํ๋ฆ„ ๊ตฌ์กฐ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ํ˜ผ๋ž€์„ ์ง์ ‘ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. GOTO, ALTER์˜ˆ์‚ฐ ๋ฐ PERFORM THRU.

๋‹จ์ผ ์ง„์ž…/๋‹จ์ผ ์ถœ๊ตฌ๋ž€ ๋ฌด์—‡์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ?

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

๋น„์ค€์ˆ˜ ์ฝ”๋“œ์˜ ์˜ˆ:

PERFORM A THRU C

A.
MOVE ZERO TO COUNT.

B.
IF COUNT > 10
GO TO C.

C.
DISPLAY "Done".

์—ฌ๊ธฐ์—๋Š” ์—ฌ๋Ÿฌ ์ง„์ž…์ (A, B, C)์ด ์กด์žฌํ•˜๋ฉฐ, GO TO ์ข…๋ฃŒ ์ผ๊ด€์„ฑ์„ ์ €ํ•ดํ•ฉ๋‹ˆ๋‹ค. ์ •์  ๋ถ„์„๊ธฐ๋Š” ์‹คํ–‰์ด ์ค‘๊ฐ„์— ์‹œ์ž‘๋˜๊ฑฐ๋‚˜, ๋กœ์ง์„ ๊ฑด๋„ˆ๋›ฐ๊ฑฐ๋‚˜, ์˜๋„์น˜ ์•Š๊ฒŒ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ์ฝ”๋“œ๋กœ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ํŒจํ„ด์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

๊ถŒ์žฅ ๊ตฌ์กฐ

๊ทœ์ • ์ค€์ˆ˜ ์ฝ”๋“œ๋Š” ์—ฌ๋Ÿฌ ๋‹จ๋ฝ์„ ํ”ผํ•ฉ๋‹ˆ๋‹ค. PERFORM THRU ๋Œ€์‹  ์บก์Аํ™”๋œ ๋…ผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

PERFORM INIT-COUNT

INIT-COUNT.
MOVE ZERO TO COUNT.
EXIT.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ง„์ž…๊ณผ ์ถœ๊ตฌ๊ฐ€ ๋ชจ๋‘ ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜๋ฉ๋‹ˆ๋‹ค. EXIT ๋ฌธ์žฅ์ด ๋ช…ํ™•ํ•ด์„œ ์ถ”์ ํ•˜๊ณ  ๋””๋ฒ„๊น…ํ•˜๊ธฐ๊ฐ€ ์‰ฝ์Šต๋‹ˆ๋‹ค.

์ด ๊ทœ์น™์ด ์ค‘์š”ํ•œ ์ด์œ 

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

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

์ •์  ๋ถ„์„์„ ํ†ตํ•œ ์‹œํ–‰

์ •์  ๋ถ„์„ ๋„๊ตฌ๋Š” ๋‹ค์Œ์„ ํ†ตํ•ด ์ด ๊ทœ์น™ ์œ„๋ฐ˜ ์‚ฌํ•ญ์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.

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

์ด๋Ÿฌํ•œ ์‹œํ–‰์€ MISRA-COBOL์„ ์ค€์ˆ˜ํ•˜๊ณ  ์‹œ์Šคํ…œ์ด ์•ˆ์ •์ ์ด๊ณ  ํˆฌ๋ช…ํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ด๋ฉฐ, ํŠนํžˆ ๊ฐ์‚ฌ ์กฐ์‚ฌ๋ฅผ ๋ฐ›๊ฑฐ๋‚˜ ์•ˆ์ „์— ๋ฏผ๊ฐํ•œ ์ƒํ™ฉ์—์„œ ์šด์˜๋  ๋•Œ ๋”์šฑ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

Anomaly-Free Code์— ๋Œ€ํ•œ ํ•ญ๊ณต(DO-178C) ์š”๊ตฌ ์‚ฌํ•ญ

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

DO-178C์—์„œ ์ด์ƒ์€ ๋ฌด์—‡์„ ๊ตฌ์„ฑํ•˜๋Š”๊ฐ€

DO-178C์— ๋”ฐ๋ฅด๋ฉด, ์ด์ƒ(anomaly)์€ ์˜๋„๋˜์—ˆ๊ฑฐ๋‚˜ ๋ฌธ์„œํ™”๋œ ๊ธฐ๋Šฅ์—์„œ ๋ฒ—์–ด๋‚˜๋Š” ๋ชจ๋“  ๋™์ž‘ ๋˜๋Š” ์ž ์žฌ์  ๋™์ž‘์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ œ์–ด ํ๋ฆ„์˜ ๋งฅ๋ฝ์—์„œ ์ด๋Š” ๋‹ค์Œ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

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

์ด๋Ÿฌํ•œ ๊ฐ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ์ค‘์š” ์‹œ์Šคํ…œ์˜ ์‹คํ–‰์— ๋ถˆํ™•์‹ค์„ฑ์„ ์ดˆ๋ž˜ํ•˜์—ฌ DO-178C์—์„œ ๋” ๋†’์€ ์„ค๊ณ„ ๋ณด์ฆ ์ˆ˜์ค€(DAL), ํŠนํžˆ ์ƒ๋ช…์— ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์— ์ ์šฉ๋˜๋Š” DAL A์™€ B์— ๋Œ€ํ•ด ํ—ˆ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

DO-178C ์ œ์–ด ํ๋ฆ„ ๊ฒ€์ฆ์„ ์œ„ํ•œ ์ •์  ๋ถ„์„

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

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

DO-178C๋Š” ์ˆ˜์ •๋œ ์กฐ๊ฑด/๊ฒฐ์ • ์ปค๋ฒ„๋ฆฌ์ง€(MC/DC) ๋ฅผ ๋งค์šฐ ์ค‘์š”ํ•˜๊ฒŒ ์—ฌ๊ธฐ๋ฉฐ , ์ฝ”๋“œ์˜ ๋ชจ๋“  ๊ฒฐ์ • ์ง€์ ์„ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๋ฐฉ์‹์œผ๋กœ ํ…Œ์ŠคํŠธํ•  ๊ฒƒ์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. ์ •์  ๋ถ„์„์€ ์ด๋Ÿฌํ•œ ์ˆ˜์ค€์˜ ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€๊ฐ€ ์‹คํ˜„ ๊ฐ€๋Šฅํ•œ์ง€ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜๊ณ , ์ˆ˜๋™์œผ๋กœ ๊ฒ€์ฆํ•˜๊ฑฐ๋‚˜ ์žฌ๊ตฌ์„ฑํ•ด์•ผ ํ•˜๋Š” ์ฝ”๋“œ ๊ฒฝ๋กœ๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

์ด์ƒ ํ˜„์ƒ์˜ ์˜ˆ:

IF ENGINE-STATUS = "FAIL"
GOTO EMERGENCY-HANDLER
...
EMERGENCY-HANDLER.
DISPLAY "Entering emergency mode"

์‚ฌ์šฉ GOTO ๊ทธ๋ฆฌ๊ณ  ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ž ์žฌ์  ์ง„์ž… ์ง€์  EMERGENCY-HANDLER ์ธ์ฆ ๊ธฐ์ค€์„ ์ถฉ์กฑํ•˜๋ ค๋ฉด ์ œ์–ด ํ๋ฆ„์ด ์™„์ „ํžˆ ๊ฐ€์‹œ์ ์ด๊ณ  ๊ตฌ์กฐํ™”๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

์ธ์ฆ ์‹คํŒจ ์œ„ํ—˜

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

  • ๊ฒ€์ฆ๋˜์ง€ ์•Š์€ ์™ธ๋ถ€ ์ƒํƒœ์— ๋Œ€ํ•œ ๊ฐ€์ •
  • ๋ช…ํ™•ํ•œ ์„ค๋ช… ์—†์ด ๊ธฐ๋ณธ ๋ฌธ๋‹จ ์‹คํ–‰์— ์˜์กด PERFORM
  • ํด์Šค๋ฃจ ๋…ผ๋ฆฌ์˜ ์‚ฌ์šฉ EVALUATE or IF ์—†์ด ๊ตฌ์„ฑํ•˜๋‹ค WHEN OTHER
  • ์กฐ๊ฑด ๋ชจ์ˆœ์œผ๋กœ ์ธํ•ด ์กด์žฌํ•˜์ง€๋งŒ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ์ฝ”๋“œ ๋ธ”๋ก

๋ชจ๋ฒ” ์‚ฌ๋ก€

DO-178C ์ œ์–ด ํ๋ฆ„ ๋ฌด๊ฒฐ์„ฑ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค.

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

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

์ค‘์š” ์˜๋ฃŒ COBOL ๊ฒฝ๋กœ์˜ FDA ๊ฒ€์ฆ

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

์˜๋ฃŒ ์‹œ์Šคํ…œ์—์„œ ์ œ์–ด ํ๋ฆ„ ๋ฌด๊ฒฐ์„ฑ์ด ์ค‘์š”ํ•œ ์ด์œ 

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

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

์ œ์–ด ํ๋ฆ„ ๊ฒฐํ•จ์„ ๊ฐ์ง€ํ•˜์ง€ ๋ชปํ•˜๋ฉด ์‹ค์ œ ์ƒํ™ฉ์— ๋ถ€์ •์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. GOTO ๋˜๋Š” ์กฐ์šฉํ•œ IF ์กฐ๊ฑด ์‹คํŒจ๋กœ ์ธํ•ด ์ค‘์š”ํ•œ ๋ณด๊ณ ๊ฐ€ ์ง€์—ฐ๋˜๊ฑฐ๋‚˜ ํ™˜์ž ๋ฐ์ดํ„ฐ๊ฐ€ ์†์ƒ๋˜์–ด ์ž„์ƒ ์˜ค๋ฅ˜๋‚˜ ๊ทœ์ • ์œ„๋ฐ˜์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

FDA๊ฐ€ ๊ฒ€์ฆ์„ ์œ„ํ•ด ์š”๊ตฌํ•˜๋Š” ์‚ฌํ•ญ

FDA์˜ ์ง€์นจ ๋ฌธ์„œ(์˜ˆ: ์†Œํ”„ํŠธ์›จ์–ด ๊ฒ€์ฆ์˜ ์ผ๋ฐ˜ ์›์น™)๋Š” ์ œ์–ด ํ๋ฆ„ ๋ณด์ฆ์— ๋Œ€ํ•œ ๊ธฐ๋Œ€์น˜๋ฅผ ๋ช…์‹œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

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

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

FDA ๊ทœ์ • ์ค€์ˆ˜๋ฅผ ์œ„ํ•œ ์ •์  ๋ถ„์„

๊ณ ๊ธ‰ ์ •์  ๋ถ„์„์€ ๋‹ค์Œ์„ ํ†ตํ•ด FDA ๊ฒ€์ฆ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ชจ๋“  ๋„๋‹ฌ ๊ฐ€๋Šฅ ๊ฒฝ๋กœ์™€ ์กฐ๊ฑด ๊ฒฝ๋กœ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ์ œ์–ด ํ๋ฆ„ ๋‹ค์ด์–ด๊ทธ๋žจ ์ƒ์„ฑ
  • ๊ฒ€์ฆ๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ์นจ๋ฌตํ•˜๋Š” ์ง€์ ์„ ํ”Œ๋ž˜๊ทธ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. WHEN OTHER or ELSE ์ ์šฉ ๋ฒ”์œ„
  • ๋ชจ๋“  I/O ๋ฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋…ผ๋ฆฌ์— ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ธฐ๊ฐ€ ์กด์žฌํ•˜๊ณ  ๋„๋‹ฌ ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธ
  • ๊ฐ์‚ฌ ๋ฐ ์ถ”์ ์„ ์œ„ํ•ด ๋ฌธ์„œํ™”๋œ ์š”๊ตฌ ์‚ฌํ•ญ์œผ๋กœ ์ฝ”๋“œ ๊ฒฝ๋กœ ๋งคํ•‘

๋ถ„์„ ์ค‘ ํ‘œ์‹œ๋œ ์œ„ํ—˜ ์˜ˆ:

READ PATIENT-FILE INTO WS-PATIENT
IF WS-PATIENT-STATUS = "CRITICAL"
PERFORM ALERT-MEDICAL-TEAM

If WS-PATIENT-STATUS ๋‹ค๋ฅธ ๊ฐ’์— ๋Œ€ํ•ด์„œ๋Š” ๊ฒ€์ฆ๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ALERT-MEDICAL-TEAM ์ฒด๊ณ„์ ์ธ ์ข…๋ฃŒ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ๋ถ„์„๊ธฐ๋Š” ์ˆ˜๋™ ๊ฒ€ํ† ๋ฅผ ์œ„ํ•ด ๊ฒฝ๋กœ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

์™„ํ™” ์ „๋žต

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

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

๊ธˆ์œต ๋ถ€๋ฌธ ์ง‘ํ–‰

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

์ด ์„น์…˜์—์„œ๋Š” ์ œ์–ด ํ๋ฆ„ ๋ถ„์„์ด ๊ธˆ์œต ๋ถ€๋ฌธ ๊ทœ์ • ์ค€์ˆ˜์™€ ์–ด๋–ป๊ฒŒ ๋ถ€ํ•ฉํ•˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ์ •์  ๋ถ„์„์ด ํ•ด๋‹น ๋ถ€ํ•ฉ์„ ์œ ์ง€ํ•˜๊ณ  ์ž…์ฆํ•˜๋Š” ๋ฐ ์–ด๋–ป๊ฒŒ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•˜๋Š”์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ํ•˜์œ„ ์„น์…˜์€ ๋‹ค์Œ์— ์ดˆ์ ์„ ๋งž์ถฅ๋‹ˆ๋‹ค.

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

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

์ค‘์š” ์‹คํ–‰ ๊ฒฝ๋กœ ๊ฐ์‚ฌ๋ฅผ ์œ„ํ•œ SOX ๊ทœ์ • ์ค€์ˆ˜

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

SOX๊ฐ€ ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ์— ์š”๊ตฌํ•˜๋Š” ๊ฒƒ

SOX 404์กฐ๋Š” ๊ธฐ์—…์ด ์ ์ ˆํ•œ ๋‚ด๋ถ€ ํ†ต์ œ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ์œ ์ง€ํ•˜๋„๋ก ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด ์ธก๋ฉด์—์„œ ์ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

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

SOX์— ๋Œ€ํ•œ ์ •์  ์ œ์–ด ํ๋ฆ„ ๋ถ„์„

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

  • ๊ฒ€์ฆ ๋…ผ๋ฆฌ์— ํฌํ•จ๋˜์ง€ ์•Š๋Š” ๋ถ„๊ธฐ, ์˜ˆ๋ฅผ ๋“ค์–ด ๋ˆ„๋ฝ๋œ ๊ฒƒ WHEN OTHER ์ ˆ EVALUATE
  • ์นจ๋ฌต์˜ ๋ฌด์‹œ, ์ œ์–ด๊ฐ€ ํ•ต์‹ฌ ๋ฃจํ‹ด์—์„œ ์กฐ๊ธฐ์— ๋ฒ—์–ด๋‚˜๋Š” ๊ฒฝ์šฐ
  • ์ž˜๋ชป๋œ ์˜ˆ์™ธ ๊ฒฝ๋กœ์‹คํŒจํ•œ I/O ์ž‘์—…์ด๋‚˜ ํŠธ๋žœ์žญ์…˜ ์˜ค๋ฅ˜๊ฐ€ ๊ทœ์ •์— ๋งž๋Š” ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋กœ ์ด์–ด์ง€์ง€ ์•Š๋Š” ๊ฒฝ์šฐ

์œ„ํ—˜ํ•œ ํŒจํ„ด์˜ ์˜ˆ:

IF BALANCE < 0
PERFORM SKIP-POSTING

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

๋‚ด๋ถ€ ๊ฐ์‚ฌ ๋ฐ ์ธ์ฆ ์ง€์›

์ตœ์‹  ์ •์  ๋ถ„์„ ๋„๊ตฌ๋Š” SOX ๊ฐ์‚ฌ์— ์ง์ ‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • ์ œ์–ด ํ๋ฆ„๋„ ์žฌ๋ฌด ๊ธฐ๋ก ์ฒ˜๋ฆฌ์— ๊ด€๋ จ๋œ ๋ชจ๋“  ์ง€์  ๊ฐ•์กฐ
  • ์‹คํ–‰ ๊ฒฝ๋กœ ๋ณด๊ณ ์„œ ๊ฒฐ์ • ์ง€์ ๊ณผ ํ•˜๋ฅ˜ ์˜ํ–ฅ ํ‘œ์‹œ
  • ์˜ˆ์™ธ ๋งต ๋ชจ๋“  ์‹คํŒจ ์กฐ๊ฑด์ด ์ ์ ˆํ•˜๊ฒŒ ๋ผ์šฐํŒ…๋˜์—ˆ๋Š”์ง€ ์‹๋ณ„

์ด๋Ÿฌํ•œ ์„ฑ๊ณผ๋ฌผ์€ ์ ์ ˆํ•œ ์ œ์–ด ๋…ผ๋ฆฌ ๊ตฌํ˜„์— ๋Œ€ํ•œ ํˆฌ๋ช…ํ•˜๊ณ  ์ž๋™ํ™”๋œ ์ฆ๊ฑฐ๋ฅผ ์ œ๊ณตํ•จ์œผ๋กœ์จ ์™ธ๋ถ€ ๊ฒ€ํ†  ์ค‘ IT ๋ฐ ๊ทœ์ • ์ค€์ˆ˜ ํŒ€์˜ ๋ถ€๋‹ด์„ ์ค„์—ฌ์ค๋‹ˆ๋‹ค.

SOX-Ready COBOL์„ ์œ„ํ•œ ๋ชจ๋ฒ” ์‚ฌ๋ก€

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

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

PCI-DSS ๊ฒฐ์ œ ํ๋ฆ„ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์ฆ

PCI-DSS(Payment Card Industry Data Security Standard)๋Š” ๊ธฐ์—…์ด ์‹ ์šฉ์นด๋“œ ๊ฑฐ๋ž˜ ๋ฐ ๊ฒฐ์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์„ ๊ทœ์ •ํ•ฉ๋‹ˆ๋‹ค. ์€ํ–‰, ์†Œ๋งค ๊ฒฐ์ œ ์ฒ˜๋ฆฌ ์—…์ฒด ๋ฐ ์‹ ์šฉ ๊ธฐ๊ด€์˜ ๋ฉ”์ธํ”„๋ ˆ์ž„์—์„œ ์‹คํ–‰๋˜๋Š” COBOL ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฒฝ์šฐ, ์•ˆ์ „ํ•˜๊ณ  ๊ฐ์‚ฌ ๊ฐ€๋Šฅํ•œ ์ œ์–ด ํ๋ฆ„์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. ๊ฒฐ์ œ ๋กœ์ง์— ๋Œ€ํ•œ ์ •์  ๋ถ„์„์„ ํ†ตํ•ด ๋ชจ๋“  ์‹คํ–‰ ๊ฒฝ๋กœ๊ฐ€ ๋ช…ํ™•ํ•˜๊ฒŒ ๋“œ๋Ÿฌ๋‚˜๊ณ , ์ ์ ˆํ•˜๊ฒŒ ๋ณดํ˜ธ๋˜๋ฉฐ, ๋ณด์•ˆ ์ œ์–ด๋ฅผ ์šฐํšŒํ•  ์ˆ˜ ์—†๋„๋ก ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

PCI-DSS ๊ทœ์ • ์ค€์ˆ˜์— ์žˆ์–ด ์ œ์–ด ํ๋ฆ„์ด ์ค‘์š”ํ•œ ์ด์œ 

COBOL์˜ ๊ฒฐ์ œ ๋กœ์ง์—๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์Šน์ธ, ์‚ฌ๊ธฐ ํƒ์ง€, ๊ฒŒ์‹œ ๋ฐ ๋กค๋ฐฑ ๋ฃจํ‹ด์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ œ์–ด ํ๋ฆ„ ์ด์ƒ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

  • ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ๋ณ€์ˆ˜๋กœ ์ธํ•ด ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋‹จ๊ณ„ ๊ฑด๋„ˆ๋›ฐ๊ธฐ
  • ๋“œ๋ฌธ ์กฐ๊ฑด์—์„œ ๊ถŒํ•œ ๋…ผ๋ฆฌ์—์„œ ์ž๋™์œผ๋กœ ์ข…๋ฃŒ๋จ
  • ๋ถ€์ ์ ˆํ•˜๊ฒŒ ์ฒ˜๋ฆฌ๋จ IF or EVALUATE ๊ธฐ๋ณธ ๋ถ„๊ธฐ๊ฐ€ ์—†๋Š” ๋ฌธ์žฅ

๋ฌด๋‹จ ๊ฑฐ๋ž˜ ์ฒ˜๋ฆฌ, ์ƒํƒœ ๋ถˆ์ผ์น˜ ๋˜๋Š” ๊ทœ์ œ ๋…ธ์ถœ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. PCI-DSS๋Š” ๋‹ค์Œ์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค.

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

์–ด๋– ํ•œ ์ฝ”๋“œ ๊ฒฝ๋กœ๊ฐ€ ๊ฑฐ๋ž˜๊ฐ€ ์ธ์ฆ ๋˜๋Š” ์‚ฌ๊ธฐ ๊ทœ์น™์„ ์šฐํšŒํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒฝ์šฐ, ์‹ฌ์ง€์–ด ๋“œ๋ฌธ ์˜ˆ์™ธ ์กฐ๊ฑด์—์„œ๋„ ์‹œ์Šคํ…œ์€ ์œ„๋ฐ˜๋ฉ๋‹ˆ๋‹ค.

PCI-DSS์— ์ •์  ์ œ์–ด ํ๋ฆ„ ๋ถ„์„ ์‚ฌ์šฉ

์ •์  ๋ถ„์„๊ธฐ๋Š” COBOL ํ”„๋กœ๊ทธ๋žจ์˜ ์ œ์–ด ๊ตฌ์กฐ๋ฅผ ๋งคํ•‘ํ•˜์—ฌ ๋‹ค์Œ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

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

์˜ˆ:

IF CARD-STATUS = "ACTIVE"
PERFORM PROCESS-TRANSACTION
ELSE
PERFORM REJECT-TRANSACTION

If CARD-STATUS ํŠน์ • ๊ฒฝ๋กœ์—์„œ๋Š” ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. PROCESS-TRANSACTION ๋ถ€์ ์ ˆํ•˜๊ฒŒ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ์–ด ํ๋ฆ„ ๋ถ„์„์€ ์ด๋Ÿฌํ•œ ์œ„ํ—˜์ด ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ๋ฐœ์ƒํ•˜๊ธฐ ์ „์— ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.

ํ๋ฆ„ ๋ฌด๊ฒฐ์„ฑ ๊ฐ•ํ™”

PCI-DSS ์ œ์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ œ์–ด ํ๋ฆ„ ๊ทœ์น™์— ์ง์ ‘ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.

  • ์˜ˆ๋ฐฉ ๋น„๊ตฌ์กฐํ™”๋œ ์ถœ๊ตฌ ๊ถŒํ•œ ๋ถ€์—ฌ ์ฒด์ธ์—์„œ
  • ์˜๋ฌดํ™” ์™„์ „ํ•œ ์กฐ๊ฑด๋ถ€ ์ ์šฉ ๋ฒ”์œ„๊ฐ™์€ WHEN OTHER in EVALUATE
  • ํ™•์ธ ์ค‘ ์‹คํŒจ ๊ฒฝ๋กœ ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅํ•œ ์กฐ๊ฑด์—์„œ ์กด์žฌํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
  • ๋ฏผ๊ฐํ•˜๊ฑฐ๋‚˜ ์ค‘์š”ํ•œ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ชจ๋“  ์ง€์ ์„ ๋กœ๊น…ํ•˜๊ณ  ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ •์  ๋„๊ตฌ๋Š” ์ด๋Ÿฌํ•œ ํ๋ฆ„์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๊ณ , ์ฃผ์„์ด ๋‹ฌ๋ฆฐ ์ œ์–ด ํ๋ฆ„ ๊ทธ๋ž˜ํ”„๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ๊ฐ์‚ฌ ๋ฐ ์นจํˆฌ ํ…Œ์ŠคํŠธ ์ง€์›์„ ์œ„ํ•œ ๋ณด์•ˆ ๊ด€๋ จ ๋ฌธ์„œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

PCI-DSS ๊ฑฐ๋ฒ„๋„Œ์Šค์˜ ์ด์ 

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

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

์‹ฌ์ธต์ ์ธ ์ œ์–ด ํ๋ฆ„ ํ†ต์ฐฐ๋ ฅ์„ ํ†ตํ•œ COBOL ์‹œ์Šคํ…œ ๋ณด์•ˆ

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

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

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

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