๋ ๊ฑฐ์ COBOL ์์คํ ์ ์ํ, ๋ณดํ, ์๋ฃ ๋ฐ ์ ๋ถ ๊ธฐ๊ด์ ๋ฏธ์ ํฌ๋ฆฌํฐ์ปฌ ์ธํ๋ผ๋ฅผ ์ง์์ ์ผ๋ก ๊ตฌ๋ํ๊ณ ์์ต๋๋ค. ์ด๋ฌํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค๋ ์ธ์ ๊ฒ์ฆ๋์์ง๋ง, ์จ๊ฒจ์ง ์ทจ์ฝ์ ์ฌ๊ฐํ ๋ณด์ ๋ฐ ์ด์ ์ํ์ ์ด๋ํ๋ ๊ฒ๋ค ์ค ๊ฐ์ฅ ๊ฐ๊ณผ๋๊ธฐ ์ฝ์ง๋ง ํฐ ์ํฅ์ ๋ฏธ์น๋ ๊ฒ ์ค ํ๋๋ ๋ฐ์ดํฐ๊ฐ ๊ณ ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฒ์๋ฅผ ์ด๊ณผํ ๋ ๋ฐ์ํ๋ ๋ฒํผ ์ค๋ฒํ๋ก์ฐ ์ค๋ฅ์ ๋๋ค.
์ต์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ฌ๋ฆฌ COBOL์ ๋ฉ๋ชจ๋ฆฌ ์์ ์ฑ์ ์ผ๋์ ๋๊ณ ์ค๊ณ๋์ง ์์์ต๋๋ค. ์๊ฒฉํ ๋ฐ์ดํฐ ์ ์, ๊ณ ์ ๊ธธ์ด ํ๋์ ๋ํ ์์กด์ฑ, ๊ทธ๋ฆฌ๊ณ ๋ค์๊ณผ ๊ฐ์ ๊ตฌ๋ฌธ ์ฌ์ฉ์ผ๋ก ์ธํด MOVE, STRING๊ธ๋ ๋ฐ์ผ REDEFINES ์ด๋ฌํ ๋ฌธ์ ๋ ๋ชจ๋ ์๋์น ์์ ๋ฎ์ด์ฐ๊ธฐ๋ก ์ด์ด์ง ์ ์์ต๋๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ ํ
์คํธ๋ง์ผ๋ก๋ ๊ฐ์งํ๊ธฐ ์ด๋ ต๊ณ , ํนํ ์ฌ๋ฌ ํ์ด ์์ญ ๋
๊ฐ ๊ด๋ฆฌํด ์จ ๋ฐฉ๋ํ ์ฝ๋๋ฒ ์ด์ค์์๋ ๋์ฑ ๊ทธ๋ ์ต๋๋ค.
์จ๊ฒจ์ง ์ค๋ฒํ๋ก ๊ณต๊ฐ
Smart TS XL์ ์ฌ์ฉํ๋ฉด COBOL ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ ๋ฐํ๊ณ ๋น ๋ฅด๊ฒ ์นจ๋ฌต์ ๋ฒํผ ์ค๋ฒํ๋ก๋ฅผ ๊ฐ์งํ ์ ์์ต๋๋ค.
์ง๊ธ ํ์๊ท์ ์ค์, ๋ณด์ ๊ฐํ, ์์คํ ์์ ์ฑ์ ๋ํ ์๊ตฌ๊ฐ ์ฆ๊ฐํจ์ ๋ฐ๋ผ ์ด๋ฌํ ์ทจ์ฝ์ ์ ํ์ ํ๊ณ ์ ๊ฑฐํ๋ ๊ฒ์ด ํ์์ ์ด ๋์์ต๋๋ค. ์๋ ์ฝ๋ ๊ฒํ ๋ ๋๊ท๋ชจ ํ๊ฒฝ์์๋ ๋นํ์ค์ ์ธ ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์, ์กฐ์ง์ ๋ ์ฌ์ธต์ ์ธ ํต์ฐฐ๋ ฅ์ ์ป๊ธฐ ์ํด ์๋ํ๋ ๋ฐฉ๋ฒ์ ์์กดํ๊ฒ ๋ฉ๋๋ค. ์ ์ ๋ถ์ ์ค๋จ์ด๋ ์นจํด๋ก ์ด์ด์ง๊ธฐ ์ ์ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ๋ฐํ๋ผ ์ ์๋ ๊ฐ๋ ฅํ ์๋จ์ ์ ๊ณตํฉ๋๋ค.
COBOL์์ ๋ฒํผ ์ค๋ฒํ๋ก์ฐ๋ฅผ ๊ฐ์งํ๋ ค๋ฉด ์ ๋ฌธ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ด ํ์ํฉ๋๋ค. ๋ณต์กํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ํ์ฑํ๊ณ , ํ๋ ์์ค ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ์๋ฏธ๋ฅผ ์ดํดํ๊ณ , ํ๋ก์์ , ์นดํผ๋ถ, ์ฌ์ง์ด JCL ์คํฌ๋ฆฝํธ ์ ๋ฐ์ ๊ฑธ์น ๋ฐ์ดํฐ ํ๋ฆ์ ์ถ์ ํด์ผ ํฉ๋๋ค. ํ๋ ์ธ์ด์ฉ์ผ๋ก ๊ฐ๋ฐ๋ ๊ธฐ์กด ๋๊ตฌ๋ ์ด๋ฌํ ์ธก๋ฉด์์ ๋ถ์กฑํฉ๋๋ค.
์ ์ ํ ๋ฐฉ๋ฒ๋ก ์ ์ฌ์ฉํ๋ฉด ๋ฒํผ ์ค๋ฒํ๋ก ์ํ์ ์ ํํ๊ฒ ํ์ ํ๊ณ , ์คํ์ง๋ฅผ ์ค์ด๋ฉฐ, ๋ ๊ฑฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฅ๊ธฐ์ ์ธ ์ ์ง ๊ด๋ฆฌ ์ฉ์ด์ฑ๊ณผ ์์ ์ฑ์ ํฅ์์ํฌ ์ ์์ต๋๋ค. ์ด๋ฌํ ์์คํ ์ด ์์ ํ๊ณ ์์ ์ ์ผ๋ก ์ค์ํ ์ญํ ์ ์ํํ ์ ์๋๋ก ํ๋ ค๋ฉด ์ฒด๊ณ์ ์ด๊ณ ์๋ํ๋ ์ ๊ทผ ๋ฐฉ์์ ์ทจํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
COBOL์ ๋ฒํผ ์ค๋ฒํ๋ก ์ดํด
COBOL์ ๋ฒํผ ์ค๋ฒํ๋ก์ฐ๋ ๊ณ ์์ค ๊ตฌ์กฐํ ์ธ์ด๋ผ๋ ํํ ๋๋ฌธ์ ๊ฐ๊ณผ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ณ ์ ๊ธธ์ด ํ๋, ์ฌ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ์ธ๊ทธ๋จผํธ, ๊ทธ๋ฆฌ๊ณ ์ ํ๋ ๋ฐํ์ ๊ฒ์ฌ์ ์์กดํ๋ COBOL์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ชจ๋ธ์ ๋ฏธ๋ฌํ๊ณ ์ ์ฌ์ ์ผ๋ก ์ํํ ์ค๋ฒํ๋ก์ฐ ์ํฉ์ ์ทจ์ฝํ๊ฒ ๋ง๋ญ๋๋ค. ์ด๋ฌํ ์ค๋ฒํ๋ก์ฐ๋ ๋์ ๋์ง ์๋ ๋ฐ์ดํฐ ์์, ๋ ผ๋ฆฌ ์ค๋ฅ, ๊ทธ๋ฆฌ๊ณ ์ต์ ์ ๊ฒฝ์ฐ ์์คํ ์ฅ์ ๋๋ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ์์์ผ๋ก ์ด์ด์ง ์ ์์ต๋๋ค.
COBOL์ ์ง์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ์ถ์ํํ์ง๋ง, ๋ถ์ ์ ํ ๋ฐ์ดํฐ ์ด๋, ๊ฒ์ฆ๋์ง ์์ ๋ฌธ์์ด ์ฐ์ฐ, ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ์ธ๊ทธ๋จผํธ์ ์ค์ฉ์ ์ธ์ ํ๋ ๋ฎ์ด์ฐ๊ธฐ๋ฅผ ์ด๋ํ ์ ์์ต๋๋ค. ์ด๋ ํนํ ๋ฐ์ดํฐ ์ ๋ขฐ์ฑ์ด ์ค์ํ๊ณ ์ข ์ ์์คํ ์ ์ฒด์ ์ฅ์ ๊ฐ ํ์ฐ๋ ์ ์๋ ๊ธ์ต ์์คํ , ์๋ฃ ๊ธฐ๋ก ์ฒ๋ฆฌ, ๊ทธ๋ฆฌ๊ณ ์ผ๊ด ์ฒ๋ฆฌ ์ค์ฌ์ ๋ฉ์ธํ๋ ์ ์ํฌํ๋ก์์ ๋งค์ฐ ์ํํฉ๋๋ค. ์์ ํ๊ณ ์์ ์ ์ธ COBOL ์ ์ง ๊ด๋ฆฌ๋ฅผ ์ํด์๋ ์ด๋ฌํ ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ์ํ๋ ๋ฐฉ์์ ์ดํดํ๋ ๊ฒ์ด ํ์์ ์ ๋๋ค.
๋ฒํผ ์ค๋ฒํ๋ก๋ ๋ฌด์์ธ๊ฐ?
๋ฒํผ ์ค๋ฒํ๋ก๋ ๋ฉ๋ชจ๋ฆฌ ํ๋์ ๊ธฐ๋ก๋ ๋ฐ์ดํฐ๊ฐ ํ ๋น๋ ๊ณต๊ฐ์ ์ด๊ณผํ์ฌ ์ธ์ ๋ฉ๋ชจ๋ฆฌ๋ก ์คํ๋ง(spilling)๋ ๋ ๋ฐ์ํฉ๋๋ค. COBOL์์ ์ด๋ ์ผ๋ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ์ฐ์ฐ์ ํตํด ๋ฐ์ํฉ๋๋ค. MOVE, STRING๋ฐ UNSTRING๋ฐ์ดํฐ ๊ธธ์ด๊ฐ ์ผ์นํ์ง ์๋ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ๋ฅผ ์ ๊ณตํ์ง ์์ ์ ์์ต๋๋ค.
COBOL์๋ ํฌ์ธํฐ ์ฐ์ฐ์ด๋ ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๊ธฐ๋ฅ์ด ์์ง๋ง, ํ๋ ํฌ๊ธฐ๊ฐ ๋๋ฌด ์๊ฑฐ๋ ๋ฐ์ดํฐ ๊ธธ์ด์ ๋ํ ์๋ชป๋ ๊ฐ์ ์ผ๋ก ์ธํด ๋ฒํผ ์ค๋ฒํ๋ก๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ ๋ณ์๊ฐ ๋ค์๊ณผ ๊ฐ์ด ์๊ฒฉํ๊ฒ ์ ์๋๋ ์ธ์ด ์ค๊ณ๋ก ์ธํด ๋์ฑ ์
ํ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. PIC ์กฐํญ์ด ์์ง๋ง ์คํ ์ค์๋ ๊ธธ์ด ๊ฒฝ๊ณ์ ์ ์ฉ์ด ์ต์ํ๋ฉ๋๋ค.
์:
01 CUSTOMER-NAME PIC X(10).
...
MOVE "JonathanSmith" TO CUSTOMER-NAME.
์ด ์์์, CUSTOMER-NAME 10๋ฐ์ดํธ๊ฐ ํ ๋น๋ฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ 13์ ๋ฌธ์์ด์ ์ด๋ํ๋ ค๊ณ ํฉ๋๋ค. "JonathanSmith" ๋ฐ์ดํฐ๋ฅผ ์๋์ผ๋ก ์๋ผ๋
๋๋ค. "JonathanSm"์ค๋ฅ ๋ฐ์ ์์ด ์ฃผ์ ID ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
COBOL์ ์ผ๋ฐ์ ์ธ ๋ฒํผ ์ค๋ฒํ๋ก ์๋๋ฆฌ์ค
๋ ์งง์ ํ๋๋ก ์ด๋:
The MOVE ๋ฌธ์ฅ์ ์๋์น ์์ ์ค๋ฒํ๋ก์ ๊ฐ์ฅ ํํ ์์ธ ์ค ํ๋์
๋๋ค. COBOL์ ๊ธด ๊ฐ์ ๋ ์์ ํ๋๋ก ์ฎ๊ธฐ๋ ๊ฒ์ ๋ง์ง ๋ชปํ๊ธฐ ๋๋ฌธ์, ์๋ฆผ์ด๋ ์๋์น ์์ ๋ฎ์ด์ฐ๊ธฐ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
01 ACCOUNT-NUMBER PIC X(8).
01 INPUT-DATA PIC X(20).
...
MOVE INPUT-DATA TO ACCOUNT-NUMBER.
If INPUT-DATA 8์๋ฅผ ์ด๊ณผํ๋ ๋ฌธ์๋ ์๋์ผ๋ก ์๋ฆฝ๋๋ค. ์ด๋ก ์ธํด ํนํ ์ฌ๋ฌด ๋๋ ๊ณ ๊ฐ ๊ธฐ๋ก ์์คํ
์์ ์ ๋ณด๊ฐ ๋ถ์์ ํ๊ฑฐ๋ ์คํด์ ์์ง๊ฐ ์์ ์ ์์ต๋๋ค.
STRING๊ณผ UNSTRING์ ์ค์ฉ:
๊ด๋ จ ์์
STRING UNSTRING ์ถ๋ ฅ ํ๋์ ํฌ๊ธฐ๋ ๊ตฌ๋ถ์ด ์ ์ ํ์ง ์์ผ๋ฉด ์ทจ์ฝํด์ง ์ ์์ต๋๋ค. ๋์ ํ๋๊ฐ ๋๋ฌด ์งง์ผ๋ฉด ๋ฐ์ดํฐ๊ฐ ์ธ์ ํ๋๋ก ๋์น๊ฑฐ๋ ์ ๋๋ก ์ข
๋ฃ๋์ง ์์ ์ ์์ต๋๋ค.
01 FULL-NAME PIC X(15).
01 FIRST-NAME PIC X(10).
01 LAST-NAME PIC X(10).
...
STRING FIRST-NAME DELIMITED BY SPACE
LAST-NAME DELIMITED BY SIZE
INTO FULL-NAME.
๊ฒฐํฉ๋ ๊ธธ์ด๊ฐ FIRST-NAME LAST-NAME 15์๋ฅผ ์ด๊ณผํ๋ฉด ์ค๋ฒํ๋ก๋ก ์ธํด ์ฑ์ ์ผ๋ถ๊ฐ ์๋ฆฌ๊ฑฐ๋ ์๋ชป๋ ๋ฐ์ดํฐ๊ฐ ์์ฑ๋ฉ๋๋ค.
์ค์ฉ์ ์ฌ์ ์ํฉ๋๋ค.
The REDEFINES ์ ์ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ ๋ณ์๊ฐ ๋์ผํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ณต์ ํ ์ ์์ต๋๋ค. ํ ํ๋์ ๋๋ฌด ๋ง์ ๋ฐ์ดํฐ๊ฐ ์
๋ ฅ๋๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋ ์ด์์์ ๊ณต์ ํ๋ ๋ค๋ฅธ ๋ณ์์ ๋ฐ์ดํฐ๊ฐ ์์๋ ์ ์์ต๋๋ค.
01 PAYMENT-RECORD.
05 PAYMENT-TYPE PIC X(1).
05 PAYMENT-AMOUNT REDEFINES PAYMENT-TYPE
PIC 9(6)V99.
...
MOVE 1234.56 TO PAYMENT-AMOUNT.
์ด ๊ฒฝ์ฐ์๋ ์ฌ์ฉ๋๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ PAYMENT-TYPE ์ ๊ณต์ ๋จ PAYMENT-AMOUNT. ๋ค์ค ๋ฐ์ดํธ ์ซ์ ๊ฐ์ ์ฐ๊ธฐ PAYMENT-AMOUNT ์๋ณธ ๋ฌธ์๋ฅผ ๋ฎ์ด์๋๋ค PAYMENT-TYPE.
์๋ ์ฒจ์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
COBOL์ ๋ฐฐ์ด ์ธ๋ฑ์ฑ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฒ์ ๊ฒ์ฌ๋ฅผ ์ ์ฉํ์ง ์์ต๋๋ค. ์ ์ธ๋ ์ธ๋ฑ์ค ๋ฒ์๋ฅผ ๋ฒ์ด๋ ์์๋ฅผ ์ฐธ์กฐํ๋ฉด ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ชป๋ ์์น์์ ์ฝํ๊ฑฐ๋ ์ฐ์ผ ์ ์์ต๋๋ค.
01 TRANSACTIONS.
05 TRANSACTION OCCURS 10 TIMES
PIC 9(5).
...
MOVE 10000 TO TRANSACTION(11).
์ด ๋ช ๋ น๋ฌธ์ 10๊ฐ ์์๋ก ๊ตฌ์ฑ๋ ๋ฐฐ์ด ๊ฒฝ๊ณ๋ฅผ ๋๋ ์์์ ๋ฐ์ดํฐ๋ฅผ ์๋๋ค. ๋ฉ๋ชจ๋ฆฌ ๋ ์ด์์์ ๋ฐ๋ผ ๊ด๋ จ ์๋ ๋ฐ์ดํฐ๊ฐ ์์๋๊ฑฐ๋ ๋ฐํ์ ๋ถ์์ ์ฑ์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
๋ ๊ฑฐ์ ์์คํ ์์ ๋ฒํผ ์ค๋ฒํ๋ก๊ฐ ์ค์ํ ์ด์
์ค๋๋ ์๋ ์ฌ์ ํ ์ฌ์ฉ๋๊ณ ์๋ ๋ง์ COBOL ์์คํ ์ ๋ฏผ๊ฐํ ์ฌ๋ฌด ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ณ , ๊ท์ ๋ณด๊ณ ๋ฅผ ์ํํ๋ฉฐ, ๊ฑด๊ฐ ๊ธฐ๋ก์ ๊ด๋ฆฌํฉ๋๋ค. ์ด๋ฌํ ํ๊ฒฝ์์ ๋จ์ผ ๋ฒํผ ์ค๋ฒํ๋ก์ฐ ๋ฐ์ ์ ์ ์ฒด ๋ฐ์ดํฐ ๋ฐฐ์น์ ๋ฌด๊ฒฐ์ฑ์ด ์์๋๊ณ , ๊ณ์ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ฑฐ๋, ๋ค์ด์คํธ๋ฆผ ์์คํ ์ ์ฐ์์ ์ธ ์ฅ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. COBOL์๋ ์ต์ ๋ฐํ์ ๋ณดํธ ๊ธฐ๋ฅ์ด ์๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ์ค๋ฅ๋ ์ค์ ํ๊ฒฝ์ ์ํฅ์ ๋ฏธ์น ๋๊น์ง ๊ฐ์ง๋์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
๊ท์ ๋๋ ๋ถ์ผ์์ ๋ฒํผ ์ค๋ฒํ๋ก๋ ๊ท์ ์๋ฐ, ๋ณด์ ๊ฐ์ฌ ์คํจ, ๊ทธ๋ฆฌ๊ณ ํํ ์์์ผ๋ก ์ด์ด์ง ์ ์์ต๋๋ค. ์ถฉ๋์ด๋ ์์ธ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ์๋ ์ต์ ์ํํธ์จ์ด์ ๋ฌ๋ฆฌ, COBOL ํ๋ก๊ทธ๋จ์ ์์๋ ๋ฐ์ดํฐ๋ก ๊ณ์ ์คํ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๋ฐ๋ผ์ ์ค๋ฒํ๋ก ์ํ์ ์ฌ์ ์ ๊ฐ์งํ๊ณ ํด๊ฒฐํ๋ ๊ฒ์ ์ต์ ์ ๋ฐฉ๋ฒ์ผ ๋ฟ๋ง ์๋๋ผ ์ฅ๊ธฐ์ ์ธ ์ด์ ์์ ์ ์ํด ํ์์ ์ธ ์์์ ๋๋ค.
์ด๋ฌํ ์ํ์ ์ํํ๋ ค๋ฉด ๋จผ์ ์ํ์ด ์ด๋ป๊ฒ, ์ด๋์์ ๋ฐ์ํ๋์ง ์ธ์ํด์ผ ํฉ๋๋ค. COBOL ์ฝ๋์ ์ ์ ๋ถ์ ๋ ์ด๋ฌํ ๋ฌธ์ ๊ฐ ์์ฐ ๊ณผ์ ์์ ํผํด๋ฅผ ์ ํ๊ธฐ ์ ์ ํฌ์ฐฉํ ์ ์๋ ๋ช ์ ๋๋ ํ์ฅ ๊ฐ๋ฅํ๊ณ ๋น์นจํฌ์ ์ธ ๋ฐฉ๋ฒ ์ค ํ๋์ ๋๋ค.
COBOL ์ ์ ๋ถ์ ์๊ฐ
์ ์ ๋ถ์์ ์์ค ์ฝ๋๋ฅผ ์คํํ์ง ์๊ณ ๊ฒ์ฌํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ์ด ์ ํ์ ์ธ ์ผ๊ด ์์ ์ด๋ ๋ฉ์ธํ๋ ์ ํ๊ฒฝ์์ ์คํ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ COBOL ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ, ์ ์ ๋ถ์์ ์จ๊ฒจ์ง ์ทจ์ฝ์ ์ ๋ฐ๊ฒฌํ๋ ์์ ํ๊ณ ํ์ฅ ๊ฐ๋ฅํ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ์ ์ ๋ถ์์ ํตํด ์กฐ์ง์ ๊ฐ๋ฐ ๋๋ ์ ์ง ๊ด๋ฆฌ ์ฃผ๊ธฐ ์ด๊ธฐ์ ๋ฒํผ ์ค๋ฒํ๋ก, ๋ฐ๋ ์ฝ๋, ๋ฐ์ดํฐ ์์ ๊ฒฝ๋ก๋ฅผ ๊ฐ์งํ ์ ์์ต๋๋ค.
COBOL ์์คํ ์ ์๋ฐฑ๋ง ์ค์ ์ฝ๋๋ฅผ ํฌํจํ๊ณ , ์์ญ ๋ ์ ๋น์ฆ๋์ค ๋ก์ง์ ํฌํจํ๋ฉฐ, ์ธ๋ถ ์นดํผ๋ถ, JCL ํ์ผ ๋ฐ ๋ฐ์ดํฐ ์ ์์ ์์กดํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋งฅ๋ฝ์์ ์๋ ๊ฒํ ๋ ์๊ฐ์ด ๋ง์ด ์์๋๊ณ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์ฝ์ต๋๋ค. ์ ์ ๋ถ์ ๋๊ตฌ ํ๋ก๊ทธ๋จ ์คํ ์์ด๋ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ํ์ฑํ๊ณ , ์ฝ๋ ๊ตฌ์กฐ์ ๋ํ ์๋ฏธ๋ก ์ ์ดํด๋ฅผ ๊ตฌ์ถํ๊ณ , ๋ฐ์ดํฐ ํ๋ฆ, ์ ์ด ๋ก์ง, ๋ฉ๋ชจ๋ฆฌ ๋ ์ด์์์ ์ถ์ ํ ์ ์์ต๋๋ค. ์ด๋ ์์คํ ์ ์ค๋จํ ์ ์๊ฑฐ๋ ์ด์ ํ ์คํธ ํ๊ฒฝ์ ๋ณต์ ํ๊ธฐ ์ด๋ ค์ธ ๋ ํนํ ์ ์ฉํฉ๋๋ค.
์ ์ ์ฝ๋ ๋ถ์์ด๋?
์ ์ ๋ถ์์ ๋ ผ๋ฆฌ์ ์ค๋ฅ, ๋ณด์ ์ํ ๋ฐ ๊ตฌ์กฐ์ ๊ฒฐํจ์ ํ์งํ๊ธฐ ์ํด ๋ฐํ์ ์ ์ ์์ค ์ฝ๋๋ฅผ ํ๊ฐํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ํ ์คํธ ์ผ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ์คํํด์ผ ํ๋ ๋์ ํ ์คํธ์ ๋ฌ๋ฆฌ, ์ ์ ๋ถ์์ ์ฝ๋๋ฒ ์ด์ค์ ์ง์ ์ ์ฉํ์ฌ ์คํ ๊ฒฝ๋ก์ ๊ด๊ณ์์ด ์ ์ฌ์ ์ธ ๋ฌธ์ ์ ๋ํ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํฉ๋๋ค.
COBOL์์ ์ ์ ๋ถ์์ ๋ฐ์ดํฐ ํ๋ ์ค์ฉ, ๋ถ์ ์ ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต์ , ๋ฌด์ ํ ๋ฐ์ดํฐ ์ด๋, ์์ ํ์ง ์์ ๋ฌธ์์ด ์ฐ์ฐ์ ์๋ณํ๋ ๋ฐ ์ค์ ์ ๋ก๋๋ค. ๋ํ ๋ฐ์ดํฐ ์ข ์์ฑ ๊ฐ์ง ๊ทธ๋ฆฌ๊ณ ์ฌ๋ณธ, ํ๋ก๊ทธ๋จ, ์ฌ์ง์ด ํ์ ์์คํ ์ ๋ฐ์ ๊ฑธ์น ํ์ฅ ๊ด๊ณ.
์ฅ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค :
- ์์ฐ์ ๋ค์ด๊ฐ๊ธฐ ์ ์ ์ฝ๋ฉ ๊ฒฐํจ์ ์กฐ๊ธฐ์ ๊ฐ์ง
- ๋ฐํ์ ์์คํ ์ ์ํฅ์ ์ฃผ์ง ์๊ณ ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์บํ๋ ๊ธฐ๋ฅ
- ๊ฐ์ฌ, ๋ฌธ์ํ ๋ฐ ๊ท์ ์ค์๋ฅผ ์ํ ์ถ์ ์ฑ
- ์ ์ง ๊ด๋ฆฌ ์ฃผ๊ธฐ ๋์ ๋ฐ๋ณต ๊ฐ๋ฅํ ์ฝ๋ ์ํ ๊ฒ์ฌ ์๋ํ
COBOL ๊ด๋ จ ์ ์ ๋ถ์ ๊ณผ์
ํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์๋ ์ ์ ๋ถ์์ด ์ผ๋ฐ์ ์ด์ง๋ง COBOL์ ๋ ๊ฑฐ์ ์ค๊ณ, ์ ์ฐจ์ ๊ตฌ์กฐ, ์ ์ฒ๋ฆฌ๊ธฐ ์ง์๋ฌธ์ ๋ํ ์์กด์ฑ์ผ๋ก ์ธํด ๊ณ ์ ํ ๊ณผ์ ๋ฅผ ์๊ณ ์์ต๋๋ค.
1. ๋ฐฉ์ธ ๋ค์์ฑ
COBOL์ IBM Enterprise COBOL, Micro Focus COBOL, RM/COBOL ๋ฑ ๋ค์ํ ์ธ์ด๋ก ์กด์ฌํฉ๋๋ค. ์ด๋ฌํ ์ธ์ด๋ค์ ๊ตฌ๋ฌธ ํ์ฅ, ์์คํ
์ธํฐํ์ด์ค, ๊ทธ๋ฆฌ๊ณ ๋์ ๋ฐฉ์์ด ์๋ก ๋ค๋ฆ
๋๋ค. ํจ๊ณผ์ ์ธ ๋ถ์ ๋๊ตฌ๋ ์ด๋ฌํ ์ฐจ์ด๋ฅผ ์ดํดํ๊ณ ์ด์ ์ ์ํด์ผ ํฉ๋๋ค.
2. ์นดํผ๋ถ๊ณผ JCL ํตํฉ ํ์ฉ
COBOL ํ๋ก๊ทธ๋จ์ ์์ฒด ํฌํจ ํ์ผ๋ก ์กด์ฌํ๋ ๊ฒฝ์ฐ๊ฐ ๊ฑฐ์ ์์ต๋๋ค. ํ๋ก๊ทธ๋จ ์ ์ฒด์์ ์ฌ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๋ ํฌํจ๋ ์นดํผ๋ถ์ ์์กดํฉ๋๋ค. ์ด๋ฌํ ์ธ๋ถ ํ์ผ์ ๋ถ์ ๊ณผ์ ์์ ์์ ํ ํด์๋์ด์ผ ํฉ๋๋ค. ๋ํ, ํ๋ก๊ทธ๋จ์ด JCL ์คํฌ๋ฆฝํธ๋ ๋ฉ์ธํ๋ ์ ๋ฐํ์ ๊ตฌ์ฑ์ ์ข
์๋ ์ ์์ด ์ํฉ์ ๋ฐ๋ผ ๋ณต์กํด์ง ์ ์์ต๋๋ค.
3. ๋ณต์กํ ๋ฐ์ดํฐ ์ ์ ๋ฐ ์ฌ์ ์
์ ์ ๋ถ์์ ํนํ ๋ณ์๊ฐ ๋ฉ๋ชจ๋ฆฌ์์ ์ด๋ป๊ฒ ์ํธ ์์ฉํ๋์ง ํด์ํด์ผ ํฉ๋๋ค. REDEFINES, OCCURS๋ฐ ๊ณ์ธต์ ๊ทธ๋ฃน ํ๋. ์ด๋ฌํ ๊ด๊ณ๋ฅผ ์๋ชป ํด์ํ๋ฉด ์ค๋ฒํ๋ก ๊ฐ์ง๊ฐ ๋ถ์ ํํด์ง๊ฑฐ๋ ์คํ์ง๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
4. ์ ํ๋ ๋ช
์์ ํ์ดํ ๋ฐ ์ ์ด ํ๋ฆ ๋ช
ํ์ฑ
COBOL์ ๊ฐ๋ ฅํ ํ์ดํ์ด ๋ถ์กฑํ๊ณ ์ข
์ข
์๋ฌต์ ์ธ ์ ์ด ํ๋ฆ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ฌ์ธต์ ์ธ ์๋ฏธ ๋ถ์ ์์ด๋ ๋ณ์ ๊ฒฝ๊ณ๋ ์คํ ๊ฒฝ๋ก๋ฅผ ๊ฒฐ์ ํ๊ธฐ๊ฐ ๋ ์ด๋ ต์ต๋๋ค. ์ค์ฒฉ PERFORM, GO TO๊ธ๋ ๋ฐ์ผ THRU ๋ฌธ์ฅ์ ๋
ผ๋ฆฌ์ ํ๋ฆ์ ๋ชจํธํ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
5. ๋ด์ฅ SQL ๋๋ CICS/IMS ํธ์ถ
๋ง์ COBOL ํ๋ก๊ทธ๋จ์ SQL์ ๋ด์ฅํ๊ฑฐ๋ ๋ค์๊ณผ ๊ฐ์ ํธ๋์ญ์
์์คํ
์ ์ฌ์ฉํฉ๋๋ค. CICS ๊ทธ๋ฆฌ๊ณ IMS. ์ด๋ ์ ์ ๋ถ์๊ธฐ๊ฐ ์๋ฎฌ๋ ์ด์
ํ๊ฑฐ๋ ์์ ํ๊ฒ ์ถ์ํํด์ผ ํ๋ ์ธ๋ถ ์ข
์์ฑ๊ณผ ๋ถ์์ฉ์ ์ผ๊ธฐํฉ๋๋ค.
๋ณต์ ๋ณ์ ์ค๋ณต์ ์:
01 EMPLOYEE-RECORD.
05 EMP-ID PIC 9(5).
05 EMP-NAME PIC X(20).
05 EMP-DATA REDEFINES EMP-NAME.
10 EMP-FIRST PIC X(10).
10 EMP-LAST PIC X(10).
์ด ๊ตฌ์กฐ์์๋ ํ๋ ๊ธธ์ด๋ ๋ฐฉ๋ฒ์ ๋ํ ์๋ชป๋ ๊ฐ์ ์ด ์์ต๋๋ค. EMP-NAME ์ฑ์์ง๋ฉด ์ผ๋ถ๋ฅผ ๋ฎ์ด์ธ ์ ์์ต๋๋ค. EMP-LAST ๋ฐ์ดํฐ ๊ฒฝ๊ณ๊ฐ ์ค์๋์ง ์๋ ๊ฒฝ์ฐ, ์ ๋ฅํ ์ ์ ๋ถ์ ๋๊ตฌ๋ ์ค๋ฒํ๋ก ์ํ์ ๊ฐ์งํ๊ธฐ ์ํด ์ฌ์ ์๋ ํ๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๊ณ๋ฅผ ์ดํดํด์ผ ํฉ๋๋ค.
์ด๋ฌํ COBOL ํน์ ์ ๋ณต์ก์ฑ์ ์ดํดํ๋ ๊ฒ์ ์ ์ ๋ถ์์ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ํ๊ณ ํด์ํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ ์ ๋ถ์์ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑํ๋ฉด ์จ๊ฒจ์ง ์ค๋ฒํ๋ก๋ฅผ ํ๋ฉดํํ๊ณ ๋ ๊ฑฐ์ ์ฝ๋๋ฒ ์ด์ค์ ์์ ์ฑ๊ณผ ๋ณด์์ ํฅ์์ํค๋ ๊ฐ๋ ฅํ ๋ฐฉ๋ฒ์ด ๋ฉ๋๋ค.
Smart TS XL์ ์ฌ์ฉํ์ฌ COBOL์์ ๋ฒํผ ์ค๋ฒํ๋ก ๊ฐ์ง
๋๊ท๋ชจ COBOL ์์คํ ์๋ ์ธ์ด์ ๊ตฌ์กฐ, ๋ฉ๋ชจ๋ฆฌ ๋ชจ๋ธ ๋ฐ ์คํ ํ๊ฒฝ์ ์ฒ๋ฆฌํ๋๋ก ํน๋ณํ ์ค๊ณ๋ ๋ถ์ ๋๊ตฌ๊ฐ ํ์ํฉ๋๋ค. ์ด๋ฌํ ๋งฅ๋ฝ์์ ๋ฒํผ ์ค๋ฒํ๋ก์ฐ๋ฅผ ํ์งํ๋ ค๋ฉด ๋จ์ํ ํจํด ๋งค์นญ ์ด์์ ์์ ์ด ํ์ํฉ๋๋ค. ๋ฉ์ธํ๋ ์ ์ธ์ด ๊ตฌ๋ฌธ ๋ถ์, ๊ณ์ธต์ ๋ฐ์ดํฐ ์ ์ ํด์, ์นดํผ๋ถ ๋ฐ JCL๊ณผ ๊ฐ์ ์ธ๋ถ ์ข ์์ฑ ํด๊ฒฐ, ๊ทธ๋ฆฌ๊ณ ์ฌ์ ์ ๋ฐ ๋ฐฐ์ด ๊ตฌ์กฐ๋ฅผ ํตํ ๋ฐ์ดํฐ ํ๋ฆ ๋ชจ๋ธ๋ง์ด ๊ฐ๋ฅํ ์์ง์ด ํ์ํฉ๋๋ค. Smart TS XL์ ์ด๋ฌํ ์๊ตฌ ์ฌํญ์ ์ ํํ ์ผ๋์ ๋๊ณ ์ค๊ณ๋์์ผ๋ฉฐ, COBOL ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค๋ฒํ๋ก์ฐ ์ทจ์ฝ์ ํ์ง์ ๋งค์ฐ ์ ํฉํฉ๋๋ค.
์ด ํ๋ซํผ์ ๊ตฌ๋ฌธ ๊ฒ์ฌ ๊ทธ ์ด์์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์๋ฏธ ๋ถ์์ ์ํํ๊ณ , ๋ฉ๋ชจ๋ฆฌ ๊ฒฝ๊ณ๋ฅผ ํ์ ํ๋ฉฐ, ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์ดํฐ ์ํธ์์ฉ์ ๋งคํํฉ๋๋ค. ์ด๋ฅผ ํตํด ์กฐ์ง์ด ํ ์คํธ๋ ์๋ ๊ฒํ ๊ณผ์ ์์ ๊ฐ๊ณผํ ์ ์๋ ์ํํ ์ค๋ฒํ๋ก์ฐ๋ฅผ ๋ฐ๊ฒฌํ๋ ๋ฐ ๋์์ ์ค๋๋ค. ํนํ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ๊ณผ ์ถ์ ์ฑ์ด ํ์์ ์ธ ๊ท์ ์ฐ์ ์์ ์ด ํ๋ซํผ์ ์ญํ ์ ๋์ฑ ์ค์ํด์ง๋๋ค.
Smart TS XL ๊ฐ์
Smart TS XL์ COBOL, PL/I, JCL๊ณผ ๊ฐ์ ๋ ๊ฑฐ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ํ ์ ์ ๋ถ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ํธ๋์ญ์ ํ๋ก์ธ์, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ก์ธ์ค ๊ณ์ธต, ๋ณต์กํ ์์ ์ ์ด ํ๋ฆ ๋ฑ ๋ฉ์ธํ๋ ์ ์์คํ ์ ์ธ๋ถ์ ์ธ ์ฌํญ์ ์ดํดํ๋๋ก ์ค๊ณ๋์์ต๋๋ค.
์ฃผ์ ํน์ง์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- COBOL ์ฌ๋ณธ, ์ค์ฒฉ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๋ฐ REDEFINES์ ๋ํ ์ ์ฒด ๊ตฌ๋ฌธ ๋ถ์ ์ง์
- ๋ฐ์ดํฐ ์ด๋, ๋ณ์ ํฌ๊ธฐ ๋ฐ ์ ์ด ๋ ผ๋ฆฌ์ ์๋ฏธ ๋ชจ๋ธ๋ง
- ์๋ฐฑ๋ง ์ค์ ์ฒ๋ฆฌํ ์ ์๋ ๋๊ท๋ชจ ์๋ํ๋ ์ฝ๋ ๊ธฐ๋ฐ ์์ง
- ๋ฉํ๋ฐ์ดํฐ ์ ์ฅ์, DevOps ํด์ฒด์ธ ๋๋ ์ฌ์ฉ์ ์ ์ ๋ณด๊ณ ๊ณ์ธต๊ณผ์ ํตํฉ
ํ๋ ์์ค ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ๋ชจ๋ธ๋งํ๊ณ ๋ฐ์ดํฐ ์ด๋์ ์๋ฎฌ๋ ์ด์ ํ๋ ๊ธฐ๋ฅ์ ํตํด ๋ฒํผ ์ค๋ฒํ๋ก๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์๋ ์์น๋ฅผ ์ ํํ๊ฒ ๊ฐ์งํ ์ ์์ต๋๋ค.
๋ฒํผ ์ค๋ฒํ๋ก ๊ฐ์ง๋ฅผ ์ํ ์ฃผ์ ๊ธฐ๋ฅ
Smart TS XL์ COBOL์์ ์ค๋ฒํ๋ก๊ฐ ์์ฃผ ๋ฐ์ํ๋ ํน์ ๊ตฌ์กฐ์ ์ด์ ์ ๋ง์ถฅ๋๋ค. ์ฌ๊ธฐ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค.
- ์ผ์นํ์ง ์๋ ํ๋ ๊ธธ์ด ์ฌ์ด์ MOVE ์์
- ํฌ๊ธฐ๊ฐ ์ถฉ๋ถํ์ง ์์ ๋์์ STRING ๋ฐ UNSTRING์ ์ ์ฉํฉ๋๋ค.
- ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ๋ค๋ฅธ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๊ฒฝ๊ณ๋ฅผ ๋์ด์ ์ฐ๋ ์ฌ์ ์ ์ค๋ฒ๋ ์ด
- ๋ฒ์๋ฅผ ๋ฒ์ด๋ ์๋ธ์คํฌ๋ฆฝํธ๋ก ์ก์ธ์ค๋ ์ธ๋ฑ์ฑ๋ OCCURS ํ ์ด๋ธ
์ โ MOVE ๋ถ์ผ์น ๊ฐ์ง:
01 PRODUCT-NAME PIC X(12).
01 INPUT-FIELD PIC X(30).
...
MOVE INPUT-FIELD TO PRODUCT-NAME.
๋ถ์ ์์ง์ ์์ค ํ๋๊ฐ ๋์ ํ๋๋ณด๋ค ํจ์ฌ ํฌ๊ณ , ์๋ฆผ ๋ฐฉ์ง ์ฅ์น๋ ์ฌ์ ๊ฒ์ฆ ๋ก์ง์ด ์๊ธฐ ๋๋ฌธ์ ์ด ์ค์ ํ๋๊ทธ๋ฅผ ์ง์ ํฉ๋๋ค. ๋ถ์ ์์ง์ ์ด๋ฅผ ์ธ์ ํ๋๋ฅผ ๋ฎ์ด์ธ ์ ์๋ ์ ์ฌ์ ์ธ ๋ฌด์ ์ค๋ฒํ๋ก๋ก ์ธ์ํฉ๋๋ค.
Smart TS XL์ ์ฌ๋ฌ ๋ฌธ๋จ๊ณผ ํ๋ก๊ทธ๋จ์์ ๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ํ๋ฅด๋์ง ์ถ์ ํ์ฌ ์ ๋ ฅ ๊ฐ์ด ์ํ ์ง์ ์ผ๋ก ์ ํ๋๋ ๋ฐฉ์์ ๋ํ ์ ์ฒด ๋งต์ ๊ตฌ์ถํ ์๋ ์์ต๋๋ค.
Smart TS XL์ด ์ ์ ๋ถ์์ ์ด๋ป๊ฒ ๋์์ด ๋๋๊ฐ
์ด ๋๊ตฌ๋ COBOL ์ฝ๋๋ฒ ์ด์ค์ ์ถ์ ๋ชจ๋ธ์ ๊ตฌ์ถํ์ฌ ๋ชจ๋ include, ์ฌ์ ์ ๋ฐ ์ ์ด ์ ์ก์ ํด๊ฒฐํฉ๋๋ค. ํ๋ ํฌ๊ธฐ, ๋ณ์ ๋ฒ์ ๋ฐ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ์ธ๊ทธ๋จผํธ๋ฅผ ํฌํจํ๋ ํตํฉ ๋ฐ์ดํฐ ์ฌ์ ์ ์์ฑํ ๋ค์, ๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ์กฐ์๋๊ณ ์ด๋๋๋์ง ๋ถ์ํฉ๋๋ค.
์ค๋ฒํ๋ก ๊ฐ์ง์ ๊ด๋ จ๋ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ํ๋ก๊ทธ๋จ ๊ฐ ๋ฐ์ดํฐ ์ถ์ (์: ์ ๋ ฅ์์ ์ต์ข ์ฌ์ฉ๊น์ง ํ๋ ์ถ์ )
- ํ๋ ์ ๋ ฌ ๋ฐ ํฌ๊ธฐ ์ ์ฉ ๋ ผ๋ฆฌ
- ์ค๋ฒํ๋ก ์ง์ ์ผ๋ก ์ด์ด์ง๋ ๋ฐ์ดํฐ ํ๋ฆ ๊ฒฝ๋ก์ ์๊ฐ์ ๋งคํ
- COBOL ์ธ์ด ๋ณํ ๋ฐ ๋ฐํ์ ์ต์ ์ ์กด์คํ๋ ์ปจํ ์คํธ ์ธ์ ๊ตฌ๋ฌธ ๋ถ์
์ด ๋ชจ๋ธ๋ง์ ํตํด ๋๊ตฌ๋ ๋ช ๋ฐฑํ ๊ธธ์ด ๋ถ์ผ์น๋ฅผ ๊ฐ์งํ ๋ฟ๋ง ์๋๋ผ ๋ณต์กํ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฌ์ฉ์ด๋ ๊ฐ์ ํ ๋น ํจํด๊ณผ ๊ด๋ จ๋ ์์ธ ์ฌ๋ก๋ ํฌ์ฐฉํ ์ ์์ต๋๋ค.
Smart TS XL ์ฌ์ฉ์ ์ด์
COBOL ์ ์ ๋ถ์์ ๊น์ด, ์ ํ์ฑ, ๊ทธ๋ฆฌ๊ณ ๊ท๋ชจ๋ฅผ ๋ชจ๋ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. Smart TS XL์ ์ด ์ธ ๊ฐ์ง ์ธก๋ฉด์ ๋ชจ๋ ์ถฉ์กฑํฉ๋๋ค.
- ๋ถ์์ ์ํด ๋ ๊ฑฐ์ ์ฝ๋๋ฅผ ๋ฆฌํฉํ ๋งํ๊ฑฐ๋ ๋ณํํ ํ์๊ฐ ์์ต๋๋ค.
- COBOL ํน์ ๊ตฌ๋ฌธ ๋ฐ ๋ฐ์ดํฐ ์๋ฏธ ์ธ์์ ๋ํ ๋์ ์ถฉ์ค๋
- ๋ ธ์ด์ฆ๋ฅผ ์ค์ฌ ์คํ ๊ฐ๋ฅํ ์ค๋ฒํ๋ก ์ํ๋ง ๊ฐ์กฐํ๋๋ก ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
- ๊ท์ ์ค์ ๋๋ ๊ฐ๋ฐ ํ์ ์ํ ์ถ์ ๊ฐ๋ฅํ๊ณ ๊ฐ์ฌ ๊ฐ๋ฅํ ๋ณด๊ณ ์๋ฅผ ์์ฑํฉ๋๋ค.
๋ฐ์ดํฐ ์ค๋ฅ๊ฐ ์ฌ๋ฌด์ ๋ถ์ผ์น, ๊ท์ ์๋ฐ ๋๋ ๊ณ ๊ฐ ๋๋ฉด ์ฅ์ ๋ก ์ด์ด์ง ์ ์๋ ํ๊ฒฝ์์ ์ด ํ๋ซํผ์ ํ์ฉ์ ๊ทธ ๊ฐ์น๋ฅผ ์ ์ฆํ์ต๋๋ค. ์ ๋ฐ์ฑ๊ณผ ๊ธฐ์กด ์์คํ ํธํ์ฑ์ ์ค์ ์ ๋์ด, ์ด ํ๋ซํผ์ ์ฒ ์ ํ๊ณ ์ค์ฉ์ ์ธ ์ค๋ฒํ๋ก ๊ฐ์ง๋ฅผ ๋ณด์ฅํฉ๋๋ค.
Smart TS XL ์์ํ๊ธฐ
๋ฐฐํฌ์๋ ๋ค์์ ํฌํจํ ์ ์ฒด COBOL ์ ํ๋ฆฌ์ผ์ด์ ํ๊ฒฝ ์ค์บ์ด ํฌํจ๋ฉ๋๋ค.
- ์์ค ์ฝ๋(ํ๋ก๊ทธ๋จ, ์ฌ๋ณธ)
- JCL ํ์ผ ๋ฐ ๊ด๋ จ ๊ตฌ์ฑ
- ๋ฐฉ์ธ ํด์์ ์ํ ํ๊ฒฝ๋ณ ๋ ผ๋ฆฌ
ํ๋ซํผ์ ์์งํ๋ฉด ํ์ ์ฌ์ฉ์ ์ ์ ๊ท์น์ ์ ์ํ๊ณ , ์ํ ์ ํ์ ์ฐ์ ์์๋ฅผ ์ง์ ํ๊ณ , ๋ผ์ธ ์์ค ๋ฌธ์ , ์ ์ด ํ๋ฆ ๋ค์ด์ด๊ทธ๋จ, ์ํ ์์ฝ์ ํฌํจํ๋ ์์ธํ ์ถ๋ ฅ์ ์์ฑํ ์ ์์ต๋๋ค.
์ด๊ธฐ ์ค์ ์๋ ๊ธฐ์กด ๊ฐ๋ฐ ํ์ดํ๋ผ์ธ์ด๋ QA ์์คํ ๊ณผ์ ํตํฉ์ด ํฌํจ๋ ์ ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ ๊ฒ์ฌ ํ, ์กฐ์ง์ ์ง์์ ์ธ ๋ถ์์ ์์ฝํ๊ฑฐ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ณ๊ฒฝ ๊ด๋ฆฌ ํ๋ก์ธ์ค์ ํตํฉํ ์ ์์ต๋๋ค.
Smart TS XL์ ์ค๊ณ๋ ๊ฐ๋ ์ค์ง๊ฐ ํ์ฉ๋์ง ์๊ณ ๋ฒํผ ์ค๋ฒํ๋ก์ ๊ฐ์ ์จ๊ฒจ์ง ๋ฌธ์ ๋ฅผ ํฌ์ฐฉํ๋ ๊ฒ์ด ์ค์ ์ด์์ ๊ฐ์น๊ฐ ์๋ ํ๋ก๋์ ๋ฑ๊ธ ์์คํ ์ ๋ง์ถฐ ์ ์๋์์ต๋๋ค.
๋ฒํผ ์ค๋ฒํ๋ก ๊ฐ์ง๋ฅผ ์ํ ๋จ๊ณ๋ณ ํ๋ก์ธ์ค
COBOL์์ ๋ฒํผ ์ค๋ฒํ๋ก์ฐ๋ฅผ ๋ฐ๊ฒฌํ๊ธฐ ์ํ ์ ์ ๋ถ์์ ์ํํ๋ ค๋ฉด ์ฒด๊ณ์ ์ด๊ณ ๋ฐ๋ณต ๊ฐ๋ฅํ ์ํฌํ๋ก๊ฐ ํ์ํฉ๋๋ค. ๋ ๊ฑฐ์ ์์คํ ์ ์ข ์ข ๋ฐ์ ํ๊ฒ ๊ฒฐํฉ๋ ๋ชจ๋, ๋ด์ฅ๋ ์นดํผ๋ถ, ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ์ ์, ๊ทธ๋ฆฌ๊ณ ์์ญ ๋ ๊ฐ์ ์์ ๊ณผ์ ์ ๊ฑธ์ณ ๋ถ์ฐ๋ ๋น์ฆ๋์ค ๋ก์ง์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๊ฐ์ด๋ ํ๋ก์ธ์ค๊ฐ ์๋ค๋ฉด, ์๋ฌด๋ฆฌ ์ ๋ฅํ ๋ถ์ ๋๊ตฌ๋ผ๋ ๋ถ์์ ํ๊ฑฐ๋ ์คํด์ ์์ง๊ฐ ์๋ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ๊ฒ ๋ฉ๋๋ค. ์ด ์น์ ์์๋ ์กฐ์ง์ด ์ค๋ฒํ๋ก์ฐ ์ํ์ ์ ํํ๊ณ ํจ์จ์ ์ผ๋ก ๋ฐ๊ฒฌํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ์ค์ฉ์ ์ธ ๋ฐฉ๋ฒ๋ก ์ ์ค๋ช ํฉ๋๋ค.
๋ชฉํ๋ ์ ์ฒด ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ค์บํ๊ณ , ๋ฐ์ดํฐ ํ๋ฆ ๋ฐฉ์์ ๋ชจ๋ธ๋งํ๊ณ , ํ๋ ํฌ๊ธฐ ๋ถ์ผ์น ์ง์ ์ ๊ฐ์งํ๊ณ , ์ค๋ฒํ๋ก๋ฅผ ์ ๋ฐํ ์ ์๋ ์์ ์ ํ๋ฉดํํ๋ ๊ฒ์ ๋๋ค. ๊ฐ ๋จ๊ณ๋ ์ด์ ๋จ๊ณ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋์ด ํ๋ ์์ค์ ์ธ์ฌ์ดํธ๊ฐ ์ ์ฒด ํ๋ก๊ทธ๋จ ๋งฅ๋ฝ์ ๊ธฐ๋ฐํ๋๋ก ๋ณด์ฅํฉ๋๋ค.
1๋จ๊ณ โ ์์ค ์ฝ๋ ์ค๋น
ํจ๊ณผ์ ์ธ ๋ถ์์ ์ํ ์ฒซ ๋ฒ์งธ ์๊ฑด์ ๋ชจ๋ ๊ด๋ จ ์์ค ์๋ฃ๋ฅผ ์์งํ๋ ๊ฒ์ ๋๋ค. ์ฌ๊ธฐ์๋ COBOL ํ๋ก๊ทธ๋จ๋ฟ๋ง ์๋๋ผ ์นดํผ๋ถ, ์์ ์ ์ด ์ธ์ด(JCL) ์คํฌ๋ฆฝํธ, ๊ทธ๋ฆฌ๊ณ ํ๊ฒฝ๋ณ ๋งคํฌ๋ก๋ ๊ตฌ์ฑ ํ์ผ๋ ํฌํจ๋ฉ๋๋ค. ์นดํผ๋ถ์ด ํ๋๋ผ๋ ๋๋ฝ๋๋ฉด ๋ฐ์ดํฐ ์ ์ ๊ตฌ์กฐ๊ฐ ์๊ณก๋์ด ๋ถ์ ๊ณผ์ ์์ ์๋ชป๋ ๊ฒฐ๋ก ์ ๋์ถํ ์ ์์ต๋๋ค.
ํ์ผ์ ์ผ๊ด๋๊ณ ์ ๊ทผ ๊ฐ๋ฅํ ๊ตฌ์กฐ๋ก ๊ตฌ์ฑํ์ธ์.
- ํ๋์ ๋๋ ํ ๋ฆฌ์ ์๋ ํ๋ก๊ทธ๋จ
- ๋ช ํํ๊ฒ ์ฐธ์กฐ๋ ํ์ ๋๋ ํ ๋ฆฌ์ ์ฌ๋ณธ
- ์คํ ํ๋ฆ๋ณ๋ก ๊ทธ๋ฃนํ๋ JCL ๋ฐ ๊ตฌ์ฑ ์คํฌ๋ฆฝํธ
ํ๊ฒฝ๋ณ ๋ณ์๋ฅผ ํ์ธํ๊ณ ํ์ํ ๊ฒฝ์ฐ ํ์ผ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๋จ์ํํฉ๋๋ค. ๋ถ์ ๋๊ตฌ๋ ๋ณ์์ ๋์๊ณผ ์ด๋์ ์ ํํ๊ฒ ๋ชจ๋ธ๋งํ๊ธฐ ์ํด ๊ฐ ํ๋ก๊ทธ๋จ ๋จ์์ ๋ํ ์์ ํ๊ณ ์ค๋จ ์๋ ๋ทฐ๊ฐ ํ์ํฉ๋๋ค.
2๋จ๊ณ โ ์ ์ ๋ถ์๊ธฐ ๊ตฌ์ฑ
์์ค๊ฐ ์ด์ ๋ธ๋ง๋๋ฉด ๋ค์ ๋จ๊ณ๋ ์ฌ์ฉ์ ํ๊ฒฝ์ ๋ง๊ฒ ๋ถ์๊ธฐ๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ ๋๋ค. COBOL์๋ ๋ค์ํ ์ธ์ด๊ฐ ์กด์ฌํ๋ฉฐ, ์๋ชป๋ ์ธ์ด๋ฅผ ์ ํํ๋ฉด ํ์ฑ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ฑฐ๋ ์ํ์ ๊ฐ๊ณผํ ์ ์์ต๋๋ค.
๋ค์ ๊ตฌ์ฑ์ ์ค์ ํ์ธ์.
- COBOL ๋ฐฉ์ธ(์: IBM Enterprise COBOL)
- ๋ผ์ธ ํ์(๊ณ ์ ๋๋ ์์ )
- ๋ณต์ฌ๋ถ ํฌํจ ๊ฒฝ๋ก
- ์ ์ฒ๋ฆฌ๊ธฐ ์ง์๋ฌธ(์กฐ๊ฑด๋ถ ์ปดํ์ผ ๋ ผ๋ฆฌ์ฉ)
๋ฉ๋ชจ๋ฆฌ ๋ชจ๋ธ๋ง ๊ธฐ๋ณธ ์ค์ ์ ์ ์ํ๋ ๊ฒ๋ ์ค์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ซ์ ํ๋ ํฌ๊ธฐ๊ฐ ์๋ฆด ๊ฒฝ์ฐ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ์์ํฌ์ง, ๊ทธ๋ฆฌ๊ณ ๋ถ์ ๋ ผ๋ฆฌ์์ REDEFINES ์ธ๊ทธ๋จผํธ๋ฅผ ์ํธ ๋ฐฐํ์ ๋๋ ์ค๋ณต์ผ๋ก ์ฒ๋ฆฌํ ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
3๋จ๊ณ โ ์ค๋ฒํ๋ก ๊ฐ์ง ๊ท์น ๋ง๋ค๊ธฐ ๋๋ ํ์ฑํ
๋๋ถ๋ถ์ ๋ถ์๊ธฐ์๋ ์ค๋ฒํ๋ก ๊ฐ์ง๋ฅผ ์ํ ๊ธฐ๋ณธ ๊ท์น์ด ํฌํจ๋์ด ์์ง๋ง, COBOL ํ๊ฒฝ์์๋ ์ฌ์ฉ์ ์ ์๊ฐ ํ์ํ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์ฐ์ฐ ๋ฐ ๊ตฌ๋ฌธ ์ ํ์ ๋ง๊ฒ ๊ท์น์ ์กฐ์ ํ์ธ์.
ํ๊ฒ์ผ๋ก ์ผ์ ์ ์๋ ์ํํ ํจํด์ ์:
- ๊ธด ์์ซ์ ํ๋์์ ์งง์ ํ๋๋ก ์ด๋
- ๋ฌด์ ํ ์ฌ์ฉ์ ์ ๋ ฅ์ ๊ฒฐํฉํ๋ STRING ์์
- ๊ต์ฐจ ํ๋ ํฌ๊ธฐ ์ ํ์ ์ฌ์ ์ํฉ๋๋ค.
- ์ธ๋ฑ์ค ๋ฒ์ ๊ฒ์ฆ ์์ด ์ก์ธ์ค๋ ๋ฐฐ์ด์ด ๋ฐ์ํฉ๋๋ค.
๊ท์น ๋ ผ๋ฆฌ์ ์:
๊ฐ์งํ ๋ MOVE ์์ค ํ๋์๋ PIC X(30) ๋๋ ๋ ํฌ๊ณ ๋์์๋ ๋ค์์ด ์์ต๋๋ค. PIC X(10) ๋๋ ๋ ์์ต๋๋ค. ๋๊ตฌ๋ ์ค๊ฐ ์๋ฆผ ๋
ผ๋ฆฌ๊ฐ ๋ฐ๊ฒฌ๋์ง ์์ผ๋ฉด ์ด๋ฅผ ํ๋๊ทธ๋ก ํ์ํด์ผ ํฉ๋๋ค. INSPECT or IF LENGTH OF ํ์ธ.
4๋จ๊ณ โ ๋ถ์ ์คํ ๋ฐ ๊ฒฐ๊ณผ ๊ฒํ
๊ท์น์ด ์ค์ ๋๋ฉด ์ ์ฒด ์ฝ๋๋ฒ ์ด์ค์ ๋ํ ๊ฒ์ฌ๋ฅผ ์คํํ์ธ์. ๋๊ตฌ๋ ์ ํ, ์ฌ๊ฐ๋, ์์น๋ณ๋ก ๋ถ๋ฅ๋ ๊ฒฝ๊ณ ๋๋ ๊ฒฐ๊ณผ ๋ชฉ๋ก์ ์์ฑํฉ๋๋ค.
๊ฒํ ๊ณผ์ ์์ ๋น์ฆ๋์ค ์ํฅ๋์ ํ์ฉ ๊ฐ๋ฅ์ฑ์ ๊ธฐ์ค์ผ๋ก ์กฐ์ฌ ๊ฒฐ๊ณผ์ ์ฐ์ ์์๋ฅผ ์ ํฉ๋๋ค. ์:
- ๊ณ์ข๋ฒํธ ํ๋์ ์ค๋ฒํ๋ก๋ ๊ณ ๊ฐ ์๋ณ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
- ์์คํ ์ ์ด ํ๋์ ์ค๋ฒํ๋ก๋ก ์ธํด ์ผ๊ด ์์ ์ด ์คํจํ ์ ์์ต๋๋ค.
- ๋ณด๊ณ ์ ์์ฑ ๋ชจ๋์ ๋ฌธ์ ๋ ์ถ๋ ฅ ์ ์ฉ์ธ ๊ฒฝ์ฐ ์ํ์ด ๋ฎ์ ์ ์์ต๋๋ค.
์ํ์ฑ์ด ๋ฎ์ ๊ฒฝ๊ณ ๋ฅผ ์์ ํ ๋ฌด์ํ์ง ๋ง์ญ์์ค. ๋์ ๋์ง ์๊ฒ ์ํฉ์ด ์ ํ๋ ์ ์์ต๋๋ค.
5๋จ๊ณ โ ๋ณด๊ณ ๋ฐ ์์
๋ฌธ์ ๋ฅผ ๋ถ๋ฅํ ํ, ๊ฐ๋ฐํ์ด๋ ๊ฐ์ฌํ์ ์ ํฉํ ํ์์ผ๋ก ๊ฒฐ๊ณผ๋ฅผ ๋ด๋ณด๋ ๋๋ค. ๋ณด๊ณ ์์๋ ๋ค์ ๋ด์ฉ์ด ํฌํจ๋์ด์ผ ํฉ๋๋ค.
- ํ๋ก๊ทธ๋จ ์ด๋ฆ ๋ฐ ์ค ๋ฒํธ
- ์ค๋ฒํ๋ก ๋๋ ๋ถ์ผ์น ์ ํ
- ์ ์๋ ์์ ๋๋ ์ฐธ์กฐ ๋ ผ๋ฆฌ ํจํด
- ํด๋น๋๋ ๊ฒฝ์ฐ ๊ต์ฐจ ์ฐธ์กฐ ๋ฐ์ดํฐ ํ๋ฆ
๊ฐ์ ์ฌํญ์๋ ๋ค์์ด ํฌํจ๋ ์ ์์ต๋๋ค.
- ํ๊ฒ ํ๋ ํ์ฅ
- ์๋ฆผ ๊ฒ์ฌ ์๊ฐ
- REDEFINES ๋ ์ด์์ ์ฌ๊ตฌ์ฑ
- MOVE ๋๋ STRING ์์ ์ ์ ๊ธธ์ด ์ ํจ์ฑ ๊ฒ์ฌ ์ถ๊ฐ
์ถ์ ์ฑ๊ณผ ๊ฑฐ๋ฒ๋์ค๋ฅผ ์ ์งํ๊ธฐ ์ํด ๋ฒ์ ๊ด๋ฆฌ ์ํฌํ๋ก ๋๋ ๋ณ๊ฒฝ ์์ฒญ ์์คํ ์ ์์ ๋จ๊ณ๋ฅผ ํตํฉํ์ญ์์ค. ๊ฐ๋ฅํ๋ค๋ฉด ์ ๋ฐ์ดํธ ํ ์ ์ ๋ถ์์ ๋ค์ ์คํํ์ฌ ๋ฌธ์ ๊ฐ ์์ ํ ํด๊ฒฐ๋์๊ณ ์๋ก์ด ์ํ์ด ๋ฐ์ํ์ง ์์๋์ง ํ์ธํ์ญ์์ค.
์ด ํ๋ก์ธ์ค๋ฅผ ์ ๊ธฐ์ ์ธ ์ ์ง ๊ด๋ฆฌ ์ฃผ๊ธฐ์ ํฌํจ์ํค๋ฉด ๊ธฐ์กด COBOL ์์คํ ์ ๋ณด์๊ณผ ๊ฐ์ฌ ๊ฐ๋ฅ์ฑ์ ์ ์งํ๊ณ ์ค๋ฒํ๋ก๋ก ์ธํ ์จ๊ฒจ์ง ๋ฐ์ดํฐ ์์์ ์ ํญํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
COBOL ๋ฒํผ ์ค๋ฒํ๋ก ๊ฐ์ง๋ฅผ ์ํ ์ฌ์ฉ์ ์ ์ ๊ท์น ์์ฑ
์ ์ ๋ถ์์ ๊ท์น ์์ง์ด COBOL ์์คํ ์ ์ค์ ํ๋ก๊ทธ๋๋ฐ ํจํด์ ๋ง์ถฐ ์กฐ์ ๋ ๋ ๊ฐ์ฅ ํจ๊ณผ์ ์ ๋๋ค. ๊ธฐ๋ณธ ๊ท์น ์ธํธ๋ ์ผ๋ฐ์ ์ธ ์ค๋ฒํ๋ก ์๋๋ฆฌ์ค๋ฅผ ๋ค๋ฃจ์ง๋ง, ๋ ๊ฑฐ์ ์ฝ๋์๋ ์ฌ์ฉ์ ์ง์ ๊ท์น ๊ฐ๋ฐ์ด ํ์ํ ๋๋ฉ์ธ๋ณ ๊ตฌ์ฑ ์์, ๋ช ๋ช ๊ท์น ๋๋ ๋ฉ๋ชจ๋ฆฌ ๋ ์ด์์์ด ํฌํจ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด๋ฌํ ๊ท์น์ ์์ฑํ๋ฉด ๋ณด์ ํ๊ณผ ๊ฐ๋ฐ์๊ฐ ์์ ํ์ง ์์ ๋์์ ์ฌ์ ์ ํฌ์ฐฉํ๊ณ , ์คํ์ง๋ฅผ ์ค์ด๋ฉฐ, ์ฌ์ ์ ์ค๋ฒํ๋ก ๋๋ ์ค์ฒฉ ํ๋์ ์๋ ์๋ฆผ๊ณผ ๊ฐ์ ํ์งํ๊ธฐ ์ด๋ ค์ด ๋ฌธ์ ์ ๋ํ ์ ์ฉ ๋ฒ์๋ฅผ ํ๋ํ ์ ์์ต๋๋ค.
์ฌ์ฉ์ ์ง์ ๊ท์น์ ๊ตฌ์กฐ์ ํ์ง(ํน์ COBOL ๋ช ๋ น๋ฌธ์ด๋ ์ ๋ฑ)์ ์๋ฏธ์ ์๋(๋ณดํธ๋์ง ์๋ ๋ฐ์ดํฐ ์ด๋์ด๋ ์์ ํ์ง ์์ ํ๋ ํฌ๊ธฐ ๊ฐ์ ์๋ณ ๋ฑ)๋ฅผ ๊ฒฐํฉํด์ผ ํฉ๋๋ค. ์ด ์น์ ์์๋ ์ด๋ฌํ ๊ท์น์ ์ ๋ฐํ๊ณ ํจ์จ์ ์ผ๋ก ์ค๊ณํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
์ ์ ๊ท์น ์์ง์ ์ฌ์ฉํ ํจํด ๋งค์นญ
COBOL์ ์ง์ํ๋ ์ ์ ๋ถ์๊ธฐ๋ ์ผ๋ฐ์ ์ผ๋ก ๋๋ฉ์ธ๋ณ ์ธ์ด, XML ์คํค๋ง, ํจํด ํธ๋ฆฌ ๋๋ ์คํฌ๋ฆฝํ ์ธํฐํ์ด์ค๋ฅผ ํตํด ๊ท์น ๊ตฌ์ฑ์ ์ ๊ณตํฉ๋๋ค. ์ค๋ฒํ๋ก๋ฅผ ํฌ์ฐฉํ๋ ค๋ฉด ๊ท์น์ด ํฌ๊ธฐ ๋ถ์ผ์น๋ฅผ ์ ๋ฐํ ์ ์๋ ์ ํํ ์ฐ์ฐ์ ์๋ณํ๊ณ ํด๋น ์ฐ์ฐ์ ์ ์๊น์ง ์ถ์ ํด์ผ ํฉ๋๋ค.
์: ์์ ํ์ง ์์ MOVE ์์ ๊ฐ์ง
๋ฒํผ ์ค๋ฒํ๋ก ๊ฐ์ง๋ฅผ ์ํ ์ผ๋ฐ ํจํด MOVE ๋ค์๊ณผ ๊ฐ์ด ๋ณด์
๋๋ค.
IF operation = "MOVE"
AND length(source-field) > length(target-field)
AND no truncation or validation logic is present
THEN flag overflow risk
์ผ๋ถ ๋ถ์๊ธฐ๋ AST(์ถ์ ๊ตฌ๋ฌธ ํธ๋ฆฌ) ์์ค ์ ๊ทผ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ, ๋ค์ ์ฌํญ์ ํ์ธํ์ฌ ๊ท์น์ ๊ตฌ์ฒดํํ ์ ์์ต๋๋ค.
- ์์ค ํ๋๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋ฉ๋๋ค.
PIC X(n)์ฌ๊ธฐ์ n > ์๊ณ๊ฐ(์: 30) - ๋์ ํ๋๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋ฉ๋๋ค.
PIC X(m)์ฌ๊ธฐ์ m < ์๊ณ๊ฐ(์: 15) - The
MOVE์กฐ๊ฑด ์์ด ๋ฐ์IF LENGTH OForINSPECT์ธ๊ทผ - ๋ ํ๋ ๋ชจ๋ ๊ทธ๋ฃน ๋ณ์๋ฅผ ํตํด ์ง์ ๋งคํ๋๊ฑฐ๋ ๊ณต์ ๋ฉ๋๋ค.
REDEFINES
์ฝ๋ ์ํ :
01 EMAIL-ADDRESS PIC X(40).
01 USERNAME PIC X(12).
...
MOVE EMAIL-ADDRESS TO USERNAME.
์ด๋ ๊ท์น ์ผ์น๋ฅผ ํธ๋ฆฌ๊ฑฐํด์ผ ํฉ๋๋ค. EMAIL-ADDRESS ํ ๋น๋์ ์ด๊ณผํฉ๋๋ค USERNAME, ์ ํจ์ฑ ๊ฒ์ฌ๊ฐ ์์ต๋๋ค. ์ ์์ฑ๋ ๊ท์น์ ๋ฐ์ดํฐ ์ถ์ฒ๋ฅผ ๋ฐ๋ผ์ผ ํฉ๋๋ค. EMAIL-ADDRESS ์ฌ์ฉ์ ์
๋ ฅ์ด๋ ์ธ๋ถ ๊ธฐ๋ก์์ ๋ฐ์ํ๋ ๊ฒฝ์ฐ ์ํ์ด ์ฆ๊ฐํ๋ฏ๋ก ์ฌ๊ฐ๋๋ ๊ทธ์ ๋ฐ๋ผ ์กฐ์ ํด์ผ ํฉ๋๋ค.
๊ณ ๊ธ ๊ฐ์ง:
๊ณ์ธต์ ๋ ผ๋ฆฌ๋ ๋ณต์กํ ํ๋ฆ์ด ์๋ ํ๋ก๊ทธ๋จ์ ๊ฒฝ์ฐ ๊ท์น์ ๋ค์์ ์ง์ํด์ผ ํ ์ ์์ต๋๋ค.
- ๋จ๋ฝ ๊ฐ ๋ณ์ ์ถ์
- PERFORMed ๋ฃจํด์ ๋ํ ๋ถ์
- ์ค๋ฒํ๋ก๊ฐ ๊ฐ์ ์ ์ผ๋ก ๋ฐ์ํ๋ MOVE ์ฒด์ธ(A TO B, B TO C)์ ํ๋๊น ํฉ๋๋ค.
- ์๋ฆผ์ด ์ ์ ํ๊ฒ ์ฒ๋ฆฌ๋ ๋ ์กฐ๊ฑด๋ถ ๊ท์น ์ต์
๋ณ์ ํฌ๊ธฐ ๋ฐ ๊ฒฝ๊ณ ์ถ์
์ค๋ฒํ๋ก ๊ฐ์ง๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐ์ดํฐ ์์์ ์ ์ธ๋ ํฌ๊ธฐ์ ์ค์ ํฌ๊ธฐ๋ฅผ ์ดํดํ๋ ๊ฒ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. COBOL์ ๊ฒฝ์ฐ, ์ด๋ ๊ตฌ๋ฌธ ๋ถ์์ ํฌํจํฉ๋๋ค. PIC ์กฐํญ, ๋ชจ๋ ์ ์ฉ VALUE or USAGE ์์ฑ ๋ฐ ์ฌ์ ์๋ ์ ์ฅ ์์ญ ํด๊ฒฐ.
๊ท์น์์ ๋ชจ๋ธ๋งํ ํต์ฌ ์์:
PIC์์์ ์์๋ฅผ ํฌํจํ ํฌ๊ธฐ(์:9(6)V99์ด 8๋ฐ์ดํธ์ ๊ฐ์ต๋๋ค)OCCURS์ ์ฒ๋ฆฌ, ๋ฐฐ์ด ๊ฒฝ๊ณ๊ฐ ์กด์ค๋๋๋ก ๋ณด์ฅ- ๋ถ๋ชจ ํ๋์ ์ค์ฒฉ๋ ํ์ ํ๋๊ฐ ํฌํจ๋ ๊ทธ๋ฃน ํ๋ ์ง๊ณ
REDEFINES์ค๋ณต์ผ๋ก ์ธํด ๊ณต์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ผ๊ด๋์ง ์๊ฒ ์ฌ์ฉ๋ ์ ์์
OCCURS ์ค์ฉ์ ์:
01 TRANSACTION-HISTORY.
05 ENTRY OCCURS 10 TIMES.
10 DATE PIC 9(8).
10 AMOUNT PIC 9(5)V99.
...
MOVE 12345 TO AMOUNT(11).
์ด๋ฅผ ํฌ์ฐฉํ๋ ค๋ฉด ๊ท์น์์ ๋ค์ ์ฌํญ์ ์ดํดํด์ผ ํฉ๋๋ค.
- ์ ์ธ๋ ์ํ ๊ฒฝ๊ณ(
OCCURS 10) - ํด๋น ์ธ๋ฑ์ค 11์ ๋ฒ์๋ฅผ ๋ฒ์ด๋ฌ์ต๋๋ค.
- ๋ ผ๋ฆฌ์ ๊ฒฝ๊ณ ๊ฒ์ฌ๊ฐ ์๋ค๋ ๊ฒ
์ผ๋ถ ๋ถ์๊ธฐ์์๋ ๋์ ์๊ณ๊ฐ์ด๋ ์ฌ์ฉ์ ์ ์ ์์๋ฅผ ๋ชจ๋ธ๋งํ ์ ์์ต๋๋ค. ์ธ๋ฑ์ค๊ฐ ๋ณ์์ ์ํด ๊ฒฐ์ ๋๋ ๊ฒฝ์ฐ(AMOUNT(I)), ๊ทธ๋ฌ๋ฉด ๊ท์น์๋ ๋ค์์ ํ์ธํ๋ ๋
ผ๋ฆฌ๊ฐ ํฌํจ๋์ด์ผ ํฉ๋๋ค. I ์ฌ์ฉ ์ ์ ๊ฒ์ฆ์ ๊ฑฐ์นฉ๋๋ค.
์์ ๊ท์น ๋ ผ๋ฆฌ(์์ฌ ์ฝ๋):
IF variable = OCCURS-array-access
AND subscript-value > OCCURS-declared-size
AND no prior validation of subscript
THEN flag as potential out-of-bounds write
๋์ฑ ๋ฐ์ ๋ ํด์ ์ฌ์ฉํ๋ฉด, ํ ์ธํธ ๋ถ์์ ํตํด ๊ท์น์ ๋์ฑ ๊ฐํํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์์ง์ ์์ ํ์ง ์์ ๊ฐ์ด ์ฌ์ฉ์ ์ ๋ ฅ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ ์ฝ๋ ๋๋ ์ธ๋ถ ํ์ผ์์ ๋ฐ์ํ๋์ง ์ถ์ ํ์ฌ ์ด๋ก ์ ์ธ ์ธก๋ฉด๋ฟ ์๋๋ผ ๊ณต๊ฒฉ๊ณผ ๊ด๋ จ๋ ์ค๋ฒํ๋ก ์ํ์ ํ์ ํ ์ ์์ต๋๋ค.
๊ท์น ์ค๊ณ๋ฅผ ์ํ ๊ธฐํ ๊ธฐ์
- ์ปจํ ์คํธ ์ธ์ ์ต์ : ํน์ ์ ์ด ๋ธ๋ก(์: ์๋ ค์ง ์์ ํ ์๋ฆผ ๋ ผ๋ฆฌ) ๋ด์ ํ๋๊ทธ๊ฐ ์ง์ ๋ ์ฝ๋๋ฅผ ์ ์ธํฉ๋๋ค.
- ์ฌ๊ฐ๋ ์ ์: ์ค๋ฒํ๋ก ์ ํ, ๋ฐ์ดํฐ ์ค์๋ ๋๋ ๋ ธ์ถ ์์ค์ ๊ธฐ์ค์ผ๋ก ์์๋ฅผ ๋งค๊ฒจ๋ณด์ธ์.
- ํ๋ ํ๊ทธ ์ง์ : ๋ ์๊ฒฉํ ์ค๋ฒํ๋ก ์๊ณ๊ฐ์ ์ ์ฉํ๋ ค๋ฉด ์ค์ ํ๋(ID, ์์ก ๋๋ ์ ์ด ํ๋๊ทธ ๋ฑ)์ ๋ฉํ๋ฐ์ดํฐ ํ๊ทธ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
ํ๊ทธ ์ฌ์ฉ ์:
01 CUSTOMER-ID PIC X(10). *> #critical
๊ทํ์ ๊ท์น ๋
ผ๋ฆฌ๋ ํ๊ทธ๊ฐ ์ง์ ๋ ํ๋์ ๋ ๋์ ์์ค์ ๊ฐ์๋ฅผ ์ ์ฉํ ์ ์์ต๋๋ค. #critical ๋์ฑ ๋์ ๋๋ ์๋ฆผ์ ์์ฑํฉ๋๋ค.
๊ฐ๋ ฅํ ์ฌ์ฉ์ ์ง์ ๊ท์น์ ์์ฑํ๋ ค๋ฉด ๊ฐ๋ฐ์, QA, ๋ณด์ ํ ๊ฐ์ ๊ธด๋ฐํ ํ์ ์ด ํ์ํฉ๋๋ค. ๊ท์น์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๋ฉ ํจํด ๋ฐ ๋๋ฉ์ธ ๋ก์ง๊ณผ ์ผ์นํ๋ฉด, ๊ฐ๊ณผ๋ ๋ฒํผ ์ค๋ฒํ๋ก๋ก ์ธํ ์๋ฐํ ๋ฐ์ดํฐ ์์์ ๋ฐฉ์งํ๋ ๊ฐ๋ ฅํ ๋ณดํธ ์ฅ์น๊ฐ ๋ฉ๋๋ค.
๋ชจ๋ฒ ์ฌ๋ก ๋ฐ ์ ๋ฌธ๊ฐ ํ
COBOL์์ ๋ฒํผ ์ค๋ฒํ๋ก์ฐ๋ฅผ ํ์งํ๋ ๊ฒ์ ์ผํ์ฑ ์์ ์ด ์๋๋๋ค. ํนํ ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์๋ ์ฝ๋๋ฅผ ์์ฑํ ์ฌ๋๋ณด๋ค ์ค๋ ์ง์๋๋ ๋ ๊ฑฐ์ ํ๊ฒฝ์์๋ ์ง์์ ์ธ ์ฃผ์๊ฐ ํ์ํฉ๋๋ค. ์ ์ ๋ถ์์ ์์ ํ ๊ฐ๋ฐ ๋ฐ ์ฅ๊ธฐ์ ์ธ ์์คํ ๊ด๋ฆฌ๋ผ๋ ๋ ๊ด๋ฒ์ํ ๋ฌธํ์ ํฌํจ๋ ๋ ๊ฐ์ฅ ํจ๊ณผ์ ์ ๋๋ค. ์ด ์น์ ์์๋ COBOL ์์คํ ์์ ๋ฒํผ ์ค๋ฒํ๋ก์ฐ ํ์ง์ ์ ํ์ฑ, ์์ ์ฑ ๋ฐ ๊ฐ์น๋ฅผ ํฅ์์ํค๊ธฐ ์ํ ์ฃผ์ ๋ชจ๋ฒ ์ฌ๋ก์ ์ ๋ฌธ ๊ธฐ์ ์ ์ค๋ช ํฉ๋๋ค.
์ ์ ๋ถ์๊ณผ ์๋ ์ฝ๋ ๊ฒํ ๊ฒฐํฉ
์ ์ ๋ถ์ ๋๊ตฌ๋ ๋น ๋ฅธ ์๋์ ์ ์ฉ ๋ฒ์๋ฅผ ์ ๊ณตํ์ง๋ง, ์ฌ๋์ ๊ฐ๋ ์ด ํ์ํ๋ค๋ ์ ์ด ํฐ ์ฅ์ ์ ๋๋ค. ๋ง์ COBOL ํ๋ก๊ทธ๋จ์๋ ์ผ๋ฐ์ ์ธ ๊ท์น ์งํฉ์ผ๋ก๋ ์๋ฒฝํ๊ฒ ์ดํดํ ์ ์๋ ๋๋ฉ์ธ๋ณ ๋ก์ง์ด ํฌํจ๋์ด ์์ต๋๋ค. ์๋ํ๋ ๊ฒ์ฌ์ ํน์ ๋์์ ๋์์ผ๋ก ํ๋ ์๋ ๊ฒํ ๋ฅผ ๊ฒฐํฉํ๋ฉด ๋ชจํธํ ๊ฒฐ๊ณผ๋ฅผ ๋ช ํํ ํ๊ณ ์ค์ ์ํ์ ๊ฒ์ฆํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
ํ์ด๋ธ๋ฆฌ๋ ๋ถ์์ ์ํ ์ ๋ต:
- ๋น์ฆ๋์ค์ ์ค์ํ ๋ชจ๋์์ ํ๋๊ทธ๊ฐ ์ง์ ๋ ๊ฒฐ๊ณผ๋ฅผ ์๋ ๊ฒ์ฌ๋ฅผ ์ํด ์ฐ์ ์์ ์ง์
- ์ฌ๋ฌ ๋ฌธ๋จ์ด๋ ํ๋ก๊ทธ๋จ์ ๊ฑธ์ณ ์๋ MOVE ์ฒด์ธ์ ๋ํ ๋ฆฌ๋ทฐ์ ์ง์คํ์ธ์.
- ๋ณต์กํ REDEFINES ๊ตฌ์กฐ ํด์์ ๊ณ ์ COBOL ๊ฐ๋ฐ์ ํฌํจ
- ๋๋ฃ ๊ฒํ ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฑฐ์ง ์์ฑ์ด ๋ ์ฌ๊ฐํ ๋ฌธ์ ๋ฅผ ๊ฐ๋ฆฌ์ง ์๋์ง ํ์ธํ์ญ์์ค.
์:
์ ์ ๋ถ์๊ธฐ๋ MOVE๋ฅผ ํ๋๊ทธ๋ก ํ์ํ ์ ์์ต๋๋ค. FIELD-A ์ FIELD-B ํฌ๊ธฐ ๋ถ์ผ์น๋ก ์ธํด ์ํํ ์ ์์ต๋๋ค. ๊ฐ๋ฐ์๋ ์ด๋ฅผ ์ธ์ํ ์ ์์ต๋๋ค. FIELD-B ํญ์ ์ฌ์ ์ ์น์ธ๋๊ฑฐ๋ ๋ก๊น
์ฉ์ผ๋ก๋ง ์ฌ์ฉ๋ฉ๋๋ค. ์๋ ๊ฒํ ๋ ๋ฐ๊ฒฌ ์ฌํญ์ ๋ฑ๊ธ์ ๋ฎ์ถ๊ฑฐ๋ ๊ฐ์ฌ์๋ฅผ ์ํด ์ค๊ณ๋ฅผ ๋ฌธ์ํํ ์ ์์ต๋๋ค.
๋์ ์ฝํ ์ธ ๋ ๊ตฌ์ฑ ํ์ผ์ด ์ค์ ๋์์ ์ง์ํ ๋ ๋ชจํธํ ํ๋ ํฌ๊ธฐ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ๋ ์๋ ์ ๋ ฅ์ด ์ค์ํฉ๋๋ค. ์๋ ๊ฒํ ๋ฅผ ํตํด ์ฝ๋ ๊ตฌ์กฐ์ ๋น์ฆ๋์ค ๋ก์ง ๊ฐ์ ๊ฐ๊ทน์ ๋ฉ์ธ ์ ์์ต๋๋ค.
๋ถ์ ์ํฌํ๋ก ์ ์ง ๊ด๋ฆฌ ๋ฐ ์๋ํ
์ ์ ๋ถ์์ ์ผ์์ ์ธ ์ํฌํ๋ก์ ํฌํจ๋ ๋ ๋์ฑ ๊ฐ๋ ฅํด์ง๋๋ค. ์์๋ฐฉํธ์ผ๋ก ์๋์ผ๋ก ๊ฒ์ฌ๋ฅผ ์คํํ๋ฉด ์ข ์ข ์ค๋๋ ๊ฒฐ๊ณผ์ ํ๊ท ๋ถ์ ๋๋ฝ์ผ๋ก ์ด์ด์ง ์ ์์ต๋๋ค. ๋์ , ํต์ ๋๊ณ ๋ฒ์ ๊ด๋ฆฌ๋๋ ํ๋ก์ธ์ค์ ๋ถ์์ ํตํฉํ์ฌ ์ฝ๋๋ฒ ์ด์ค์ ํจ๊ป ๊ฒฐ๊ณผ๊ฐ ์งํํ๋๋ก ํ์ธ์.
์ํฌํ๋ก ํตํฉ ํ:
- ์ ๊ธฐ์ ์ธ ์ ์ฒด ๊ฒ์ฌ ์ผ์ ์ ์ก์ผ์ธ์(๋งค์ฃผ, ๋งค์ ๋๋ ๊ฐ ๋ฆด๋ฆฌ์ค ์ฐฝ ์ดํ)
- ์์ค ์ฝ๋์ ํจ๊ป ์ ์ฅ์์ ์ ์ฅํ๊ณ ๋ฒ์ ์ค์บ ์ถ๋ ฅ์ ์ ์ฅํฉ๋๋ค.
- ๊ฒฐ๊ณผ๋ฅผ ๋ณ๊ฒฝ ๊ด๋ฆฌ ์์คํ ์ด๋ ํฐ์ผ ๋๊ธฐ์ด์ ํตํฉํฉ๋๋ค.
- ์๋ก์ด ์ค๋ฒํ๋ก ๋๋ ์ฌ๋์ ๋ ์ค๋ฒํ๋ก๋ฅผ ๊ฐ์งํ๊ธฐ ์ํด ๊ธฐ์ค์ ๋น๊ต๋ฅผ ์๋ํํฉ๋๋ค.
๋๊ท๋ชจ ํ์ด๋ ๊ท์ ๋ ํ๊ฒฝ์ ๊ฒฝ์ฐ, ๊ฐ์ฌ ํจํค์ง์ ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ ํฌํจํ๋ ๊ฒ์ ๊ณ ๋ คํด ๋ณด์ธ์. ์ด๋ ์ทจ์ฝ์ ์ด ๊ฐ์ง๋์์ ๋ฟ๋ง ์๋๋ผ, ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ทจ์ฝ์ ์ ์ง์์ ์ผ๋ก ์ถ์ ํ๊ณ ํด๊ฒฐํ๊ธฐ ์ํ ๋ ธ๋ ฅ์ด ์ด๋ฃจ์ด์ง๊ณ ์์์ ๋ณด์ฌ์ค๋๋ค.
์๋ ํผ๋๋ฐฑ ๋ฃจํ ์:
- ๊ฐ๋ฐ์๊ฐ ํ๋ ํฌ๊ธฐ ์์ ์ ํฌํจํ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ถํฉ๋๋ค.
- ์ ์ ๋ถ์๊ธฐ๋ ํด๋น ๋ถ์ผ์ ๊ด๋ จ๋ ์๋ก์ด ์ํ์ ํ์ํฉ๋๋ค.
- ๋๊ตฌ๋ ํ์ผ ์ด๋ฆ, ์ค ๋ฒํธ ๋ฐ ์ ์๋ ์์ ์ฌํญ์ ํฌํจํ๋ ํฐ์ผ์ ์๋์ผ๋ก ์์ฑํฉ๋๋ค.
- ๊ฒํ ์๊ฐ ๋ฌธ์ ๋ฅผ ํ์ธํ๊ณ ์์ ์กฐ์น๋ฅผ ํ ๋นํฉ๋๋ค.
- ๋ณ๊ฒฝ ์ฌํญ์ ์ฌ๋ถ์์ ํตํด ํด๊ฒฐ์ด ํ์ธ๋ ํ์๋ง ๋ณํฉ๋ฉ๋๋ค.
์ด๋ฌํ ์ ํ์ ํผ๋๋ฐฑ ๋ฃจํ๋ ๊ฐ๋์ฉ ์ํํ๋ ๋ณด์ ์์ ์ด ์๋ ์ผ์์ ์ธ ํ์ง ๊ธฐ์ค์ผ๋ก ์ค๋ฒํ๋ก ์์ ์ ๊ฐํํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
ํ์ฅ ์์ ์ ์ํ ๋ช ํํ ์ฝ๋ฉ ํ์ค ์๋ฆฝ
๋ฒํผ ์ค๋ฒํ๋ก์ฐ์ ๋ํ ๊ฐ์ฅ ํจ๊ณผ์ ์ธ ์ฅ๊ธฐ์ ๋ฐฉ์ด์ฑ ์ค ํ๋๋ ํ๋์ ํฌ๊ธฐ, ์ ๊ทผ ๋ฐฉ์, ๊ทธ๋ฆฌ๊ณ ์ฌ์ ์ ๋ฐฉ์์ ์ ์ํ๋ ๊ฒ์ ๋๋ค. ๋ง์ ๊ธฐ์กด COBOL ์์คํ ์ ํ์คํ๋ ์ง์นจ์ด ๋ถ์กฑํ๋ฉฐ, ํนํ ์ฌ๋ฌ ๊ณต๊ธ์ ์ฒด์์ ๊ฐ๋ฐํ๊ฑฐ๋ ์์ญ ๋ ์ ๊ฑธ์ณ ๊ฐ๋ฐ๋ ๊ฒฝ์ฐ ๋์ฑ ๊ทธ๋ ์ต๋๋ค.
๊ถ์ฅ๋๋ ์ฌ๋ก:
- ๊ฒ์ฆ๋์ง ์์ ๊ฒฝ์ฐ ํฌ๊ธฐ ๋ถ์ผ์น๊ฐ ์๋ ํ๋ ๊ฐ์ MOVE ์์ ์ ํผํ์ญ์์ค.
- ์ฃผ์์ ์ฌ์ฉ ๋ฐ ์์ ๊ฐ ํ๋๋ฅผ ๋ช ํํ๊ฒ ์ฌ์ ์ํฉ๋๋ค.
- ํ์์ ์ด๊ณ ์ ๋ฌธ์ํ๋์ง ์์ ํ REDEFINES ๋ด์ OCCURS๋ฅผ ์ค์ฒฉํ์ง ๋ง์ญ์์ค.
- ์ค์ ๋ฐ์ดํฐ ๊ธธ์ด ์์์ ๋ฐ์ํ๋ PIC ์ ๊ท์น์ ์ฌ์ฉํ์ธ์.
- ๊ท์น ํ๊ฒํ ๋ฐ ๊ฒํ ์ด์ ์ ๊ฐ์ ํ๊ธฐ ์ํด ์ฃผ์์ ์ค์ ํ๋์ ํ๊ทธ๋ฅผ ์ง์ ํฉ๋๋ค.
์ด๋ฌํ ๊ดํ์ ๊ณต์ํํ๋ฉด ํ์ ์ค๋ฒํ๋ก ์ค๋ฅ ๋ฐ์ ๊ฐ๋ฅ์ฑ๊ณผ ์๋ ์ค์บ ๊ฒฐ๊ณผ์ ๋ ธ์ด์ฆ ์์ ๋ชจ๋ ์ค์ผ ์ ์์ต๋๋ค.
๊ฒฐ๊ณผ๋ฅผ ์ด์ ๋ฐ์ดํฐ์ ์ฐ๊ด์ํต๋๋ค.
๋ถ์ ๊ฒฐ๊ณผ๋ ์ด์ ํ๊ฒฝ์ ๋ฏธ์น๋ ์ํฅ๊ณผ ์ฐ๊ณ๋ ๋ ํจ์ฌ ๋ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ ์ ์์ต๋๋ค. ๋ก๊น ๋ฐ์ดํฐ, ์ธ์๋ํธ ๊ธฐ๋ก, ํธ๋์ญ์ ๋ก๊ทธ๋ฅผ ํ์ฉํ์ฌ ์ ์ ๋ถ์ ๊ฒฐ๊ณผ์ ์ฐ์ ์์๋ฅผ ์ ํ์ญ์์ค. ์ค์ ์ธํฐํ์ด์ค์ ์์ ์ค๋ฒํ๋ก๋ ๋ณด๊ณ ์ ์ถ๋ ฅ ๋ฃจํด์ ํฐ ์ค๋ฒํ๋ก๋ณด๋ค ๋ ์๊ธํ ์ ์์ต๋๋ค.
์๊ด๊ด๊ณ๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ:
- ํ๋๊ทธ๊ฐ ์ง์ ๋ ๋ณ์๋ฅผ ์ฌ์ฉ์ ์งํฅ ์์์ด๋ API ์ ๋ ฅ์ ๋งคํํฉ๋๋ค.
- ์๋ ค์ง ์ฌ๊ณ ๋๋ ๊ฒฐํจ ๋ณด๊ณ ์์ ๋ํ ๋งํฌ ๋ถ์ ๊ฒฐ๊ณผ
- ๋ฐํ์ ๋น๋ ๋ฐ ๋ฐ์ดํฐ ๋ณ๋์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฒํผ ์ํ ํ๊ฐ
์ด๋ฌํ ๋งฅ๋ฝ์ ํ์ค์ ์ผ๋ก ๊ฐ์ฅ ๋์ ์ํ์ฑ์ด ์๋ ๋ฌธ์ ์ ๋ํ ์์ ๋ ธ๋ ฅ์ ์ง์คํ๊ณ ๊ธฐ์กด ๋ชจ๋์ ํ๋ํํ๋ ๋ฐ ๋ํ ํฌ์ ์ฌ๋ก๋ฅผ ๊ฐ์ ํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
์ด๋ฌํ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด๋ฉด ์กฐ์ง์ ๋ฐ์ํ ์ค์บ๋์ ๋์ด COBOL ์์คํ ์ ๋ํ ์ง์ ๊ฐ๋ฅํ๊ณ ๋์ ๋ฌด๊ฒฐ์ฑ์ ๊ฐ์ถ ์ ์ง ๊ด๋ฆฌ ๋ชจ๋ธ๋ก ๋์๊ฐ ์ ์์ต๋๋ค. ๋ฒํผ ์ค๋ฒํ๋ก๋ ๋จ์ํ ๊ธฐ์ ์ ๋ฒ๊ทธ๊ฐ ์๋๋ผ ์ฅ๊ธฐ์ ์ธ ์ฝ๋ ์ํ์ ์ํคํ ์ฒ ์์ ์ฑ์ ๋ํ๋ด๋ ์งํ์ ๋๋ค.
์จ๊ฒจ์ง ์ํ ์ ๊ฑฐ๋ฅผ ํตํ ๋ ๊ฑฐ์ ์ฝ๋ ๊ฐํ
COBOL์ ๋ฒํผ ์ค๋ฒํ๋ก์ฐ๋ ๋ ๊ฑฐ์ ์ปดํจํ ํ๊ฒฝ์์ ์จ๊ฒจ์ ธ ์์ง๋ง ์ง์์ ์ธ ์ํ์ ๋๋ค. ์๋ ๊ฐ ๊ฐ์ง๋์ง ์๊ณ ๋จ์ ๋ฐ์ดํฐ ์ ํ์ฑ, ์ด์ ์์ ์ฑ, ๊ทธ๋ฆฌ๊ณ ์์คํ ๋ณด์์ ์กฐ์ฉํ ์ ํดํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ต์ ํ๋ก๊ทธ๋๋ฐ ํ๊ฒฝ๊ณผ ๋ฌ๋ฆฌ COBOL ์ค๋ฒํ๋ก์ฐ๋ ๋์ ๋๋ ์ถฉ๋์ด๋ ๊ฒฝ๊ณ ๋ฅผ ๊ฑฐ์ ์ผ์ผํค์ง ์์ต๋๋ค. ๋์ , ์ถ์ ํ๊ธฐ๋ ์ด๋ ต์ง๋ง ๋ฌด์ํ๊ธฐ์๋ ํฐ ๋น์ฉ์ด ๋๋, ์กฐ์ฉํ ์๋ฆผ, ์์๋ ๋ ์ฝ๋, ๋๋ ์ค๋ช ํ ์ ์๋ ๋น์ฆ๋์ค ๋ก์ง ์ค๋ฅ๋ก ๋ํ๋ฉ๋๋ค.
์ ์ ๋ถ์์ ์ด๋ฌํ ์ทจ์ฝ์ ์ ์กฐ๊ธฐ์ ๋๊ท๋ชจ๋ก ์๋ณํ๋ ๊ฐ์ฅ ํจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ ์ค ํ๋์ ๋๋ค. ์ ๋๋ก ๊ตฌ์ฑํ๋ฉด ์นดํผ๋ถ, ์ฌ์ ์, ์ ์ฐจ์ ๋ถ๊ธฐ ๋ฑ์์ ๋ฐ์ดํฐ ์ด๋์ ์ถ์ ํ์ฌ ํ๋ ๊ฒฝ๊ณ๋ฅผ ์ด๊ณผํ๊ฑฐ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ด ๋ฎ์ด์์์ง ์์น๋ฅผ ์ ํํ ํ์ ํ ์ ์์ต๋๋ค. ์ด ๊ธ์์ ์ดํด๋ณด์๋ฏ์ด, COBOL์์ ๋ฒํผ ์ค๋ฒํ๋ก์ฐ ํ์ง๋ ๋จ์ํ ์ฝ๋ ์ค์ ๊ฒ์ฌํ๋ ๊ฒ์ด ์๋๋๋ค. ๋ฉ๋ชจ๋ฆฌ ๋ชจ๋ธ์ ์ดํดํ๊ณ , ํ๋ก๊ทธ๋จ ๊ตฌ์กฐ๋ฅผ ํด์ํ๊ณ , ์ค์ ์ํ์ ๋ฐ์ํ๋ ํน์ ๊ท์น์ ์ ์ฉํ๋ ๊ฒ์ ๋๋ค.
์ฑ๊ณต์ ๋ช ๊ฐ์ง ํต์ฌ ์์น์ ๋ฌ๋ ค ์์ต๋๋ค. ์์ค ์ ๋ ฅ์ ์ฒ ์ ํ ์ค๋น, ์ ํํ ๊ท์น ์ ์, ๊ฒฐ๊ณผ์ ๋ํ ์ ์คํ ํด์, ๊ทธ๋ฆฌ๊ณ ์ ๊ธฐ์ ์ธ ์ํฌํ๋ก์ ๋ถ์์ ํฌํจ์ํค๋ ค๋ ์์ง์ ๋๋ค. COBOL ์ ์ ๋ถ์์ ํนํ๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ ๋ฐ๊ฒฌ ์ฌ๋ถ๊ฐ ํ์ธ๋๋๋ผ๋ ๋ช ์ฃผ ๋์ ์์์ ๊ฒํ ๋ฅผ ๊ฑฐ์ณ์ผ ํ๋ ๋ฌธ์ ๋ฅผ ํ๋ฉดํํ ์ ์์ต๋๋ค.
๋ฒํผ ์ค๋ฒํ๋ก์ฐ๋ฅผ ๊ฐ์งํ๊ณ ํด๊ฒฐํ๋ ๋ ธ๋ ฅ์ ๋ ๊ฑฐ์ ์์คํ ์ ๋ณด์, ์์ ์ฑ, ์ ๋ขฐ์ฑ์ ์ ์งํ๋ ค๋ ๋ ํฐ ๋ชฉํ์ ์ผํ์ ๋๋ค. ์ด๋ฌํ ์์คํ ์ ํต์ฌ ๋น์ฆ๋์ค ์ด์์ ์ง์์ ์ผ๋ก ๋ท๋ฐ์นจํ๋ฉฐ, ์ต์ ํ๋ซํผ๊ณผ ๋์ผํ ์์ค์ ์ฒ ์ ํ ๊ฒํ ์ ๋ณดํธ๊ฐ ํ์ํฉ๋๋ค. ์ ์ ๋ถ์์ COBOL ๊ฐ๋ฐ ๋ฐ ์ ์ง ๊ด๋ฆฌ ์ ๋ต์ ํฌํจํจ์ผ๋ก์จ ์กฐ์ง์ด ์์กดํ๋ ํต์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฅ๊ธฐ์ ์ธ ์์ ์ฑ๊ณผ ๋ฌด๊ฒฐ์ฑ์ ํฌ์ํ๋ ๊ฒ์ ๋๋ค.