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๊ฐ ์น์ ์ ๋์ ์๋ ์ง์ - ์ฌ๋ฌ ๋ธ๋ก์์ ๊ณต์ ๋ ๋ฌธ๋จ ์ด๋ฆ์ ์ฌ์ฉํ์ง ๋ง์ญ์์ค.
- ๋ช
์์ ์ผ๋ก ์ฌ์ฉํ์ธ์
PERFORMorGO 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๊ตฌ์กฐ๋ ๋ค๋ฅด์ง๋ง ์กฐ์์ ๋ค๋ฆ ๋๋ค - ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์ด ๊ณตํต ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋ํ ์ฐธ์กฐ๋ฅผ ๊ณต์ ํฉ๋๋ค.
COMMAREAorWORKING-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 RETURNCICS ํ๋ก๊ทธ๋จ์ ๋ชจ๋ ์คํ ๊ฒฝ๋ก์ ์๋ ๋ช ๋ น๋ฌธ - ํ์ธ ์ค
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 - ์ฌ์ฉ์ ํผํ๋ค
GOBACKorSTOP 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๋ก ์ข ๋ฃ๋ ์ ์์ต๋๋ค.
์ฃผ์ ์์ธ ๊ด๋ จ ์ด์ ํ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ํ์ผ ์์
ํ ํ์ธ ๋๋ฝ์ด๋
READorWRITE์กฐ์ฉํ ์คํจํ ์๋ ์๋ค - ํฌ์ฐฉ๋์ง ์์ SQLCODE ๊ฐํนํ DB2 ํ๊ฒฝ์์๋ ๋ถ์์ ํ ํธ๋์ญ์ ์ผ๋ก ์ด์ด์ง๋๋ค.
- ์ฒ๋ฆฌ๋์ง ์์ CICS ์์ธ์๊ฐ ์ด๊ณผ๋ ํฐ๋ฏธ๋ ์ฐ๊ฒฐ ๋๊น๊ณผ ๊ฐ์ด ๋น์ ์์ ์ผ๋ก ์ข ๋ฃ๋ ์ ์๋ ๊ฒฝ์ฐ
- ๋ค์๊ณผ ๊ฐ์ ์์คํ
์์ค ๋ช
๋ น
STOP RUNorGOBACK๊ตฌ์กฐํ๋ ๋ณต๊ตฌ ๊ฒฝ๋ก ๋์ ์ฌ์ฉ๋จ
์์ธ ์ฒ๋ฆฌ๋ฅผ ์ํ ์ ์ ๋ถ์์ ๋ค์๊ณผ ๊ฐ์ ์ ์ด ํ๋ฆ์ ์ง์ ์ ์๋ณํ๋ ๋ฐ ์ค์ ์ ๋ก๋๋ค.
- ์ธ๋ถ ์์คํ ๋๋ 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 ABENDorHANDLE CONDITION๋ชจ๋ CICS ํ๋ก๊ทธ๋จ ์์ ์ - ์ค๋ฅ ์ฒ๋ฆฌ๊ธฐ์ ์ ๋ฆฌ ๋ ผ๋ฆฌ์ ์ฌ์ฉ์ ํผ๋๋ฐฑ ๋ฉ์ปค๋์ฆ์ด ํฌํจ๋์ด ์๋์ง ํ์ธ
- ์ฌ์ฉ์ ํผํ๋ค
GOBACKorSTOP 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 STATUSorSQLCODE๋ฌธ์ํ๋์ง ์์๊ฑฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ณ๋ก ๋ค๋ฅผ ์ ์์ - ์ธ๋ผ์ธ ์ค๋ฒ๋ผ์ด๋, ๋ณ์๊ฐ ๊ฒ์ฌ ์ ์ ์ฌํ ๋น๋๋ ๊ฒฝ์ฐ, ์ด๋ ์ข ์ข ์ค๊ณ ๊ฒฐํจ๋ณด๋ค๋ ๋ ๊ฑฐ์ ๋์์ผ๋ก ์ธํด ๋ฐ์ํฉ๋๋ค.
- ๋๋ฌํ ์ ์์ง๋ง ์๋์ ์ธ ์ฝ๋ ๊ฒฝ๋ก๋๋ฒ๊น ์ด๋ ํฅํ ํ์ฅ์ ์ํด ๋จ๊ฒจ๋์์ต๋๋ค.
์๋ฅผ ๋ค์ด :
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์กฐํญ inEVALUATE์ง์ , ์์ธ ์ํฉ์ ์กฐ์ฉํ ์ฒ๋ฆฌํ์ง ์์ - ์ฌ์ฉ
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๋ค์๊ณผ ๊ฐ์ ์ง์PERFORMIF/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๋ ผ๋ฆฌ๋ฅผ ์ฌ์ฌ์ฉํด์ผ ํ ๋ ๋ธ๋ก - ์กฐ๊ฑด๋ถ ์ ํ๋ฅผ ๋ค์์ผ๋ก ๋ณํ
EVALUATEorIF-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๋ณต์ก์ฑ์ ๋ค์ ๋์ ํ๋ค - ๋ค์ํ ์ ์ด ๊ฒฐ์ ํผํฉ
EVALUATEIF๋ธ๋ก์ด๋ ๋ถ์ฐ๋ ๋ ผ๋ฆฌ๋ก ์ด์ด์ง๋ค.
์ ์ ๋ถ์ ๋๊ตฌ๋ ์กฐ๊ฑด๋ถ ์ค์ฒฉ์ ๊น์ด๋ฅผ ์กฐ์ฌํ๊ณ ์ค๋ณต๋๊ฑฐ๋ ๋๋ฌํ ์ ์๋ ๋ถ๊ธฐ๋ฅผ ๊ฐ์งํ๊ณ ๋ชจ๋ ๊ฒ์ ํ์ธํ์ฌ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ์๋ณํฉ๋๋ค. 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 ABENDHANDLE 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 ๋ฐํ์ผ๋ก ๋๋๋์ง ํ์ธํฉ๋๋ค.
- ์ฌ์ฉ
PERFORMorGOTO๋ชจ๋ ์ถ๊ตฌ๋ฅผ ๊ณตํต ๊ฒฝ๋ก๋ฅผ ํตํด ์ฐ๊ฒฐํ๋ ค๋ฉด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๋๋ ๊ทธ ์๋ฌต์ ๋์ - ๋ชจ๋ ํธ๋์ญ์ ํ๋ฆ์ ์ปค๋ฐ ์ง์ ์ด ํฌํจ๋์ด ์๋์ง ํ์ธํ๊ธฐ ์ํ ์คํ ๊ฒฝ๋ก ๋งคํ
- ์กฐ๊ธฐ ์ข
๋ฃ๋๋ ์ง์ ๊ฐ์กฐ
GOBACKorSTOP 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 RETURNCICS ํ๋ก๊ทธ๋จ์ ์ ์ผํ ์ถ๊ตฌ ์ง์ ์ผ๋ก์ - ์ ๊ฑฐํจ
STOP RUNGOBACK๋ชจ๋ ํธ๋์ญ์ ๊ด๋ฆฌ ๋ชจ๋์์ - ์ ์ฉ
HANDLE ABENDorHANDLE 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๊ฐ ๋ ์ฝ๋๋ง๋ค)์ ์กด์ฌ
- ํ์ผ ์ ๋ฐ์ดํธ ์ ์ด ๋๋ ๋งค๊ฐ๋ณ์ ๋ก๋ฉ ์ฌ์์์ ์ํ ํธ์ถ
- ์ฌ์์ ๋งค๊ฐ๋ณ์ ์ฌ์ฉ ๋ถ์กฑ(์: ์์ ์ ํญ์ ์์๋ถํฐ ์ด๊ธฐํ๋จ)
- ์ค์ ๋ฃจํ ๊ตฌ์ฑ(์:
READorPERFORM) ์ค๋จ์ ์ด๋ ์ํ ๋ณด์กด ์์ด ๋ณดํธ๋์ง ์์ ์ํ๋ก ์คํ๋ฉ๋๋ค.
๋ํ 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 THRUGO 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๋ฌธ - ๋งคํ
EVALUATEIF๊ตฌ์กฐ๋ฅผ ๊ฒฐ์ ๋ ธ๋๋ก - ์กฐ๊ฑด๋ฌธ์ ๋ํ ๋ณ์์ ํจ๊ณผ ๋ถ์
- ๋๋ฌํ ์ ์๋ ์ฝ๋ ๋๋ ๋ฌดํ ๋ฃจํ ๊ฐ์ง
์ด ๋ถ์์ ์ค์ ํ๊ฒฝ์์๋ ๋ฐ์ํ์ง ์์ ์ ์๋ ์ ๋ ฅ์ ๋ํด์๋ ๊ฐ๋ฅํ ์คํ ํ๋ฆ์ ์๋ฒฝํ๊ฒ ๋ณด์ฌ์ค๋๋ค. ์ปค๋ฒ๋ฆฌ์ง ๊ฒ์ฆ, ์ด์ ๊ฐ์ง, ํ ์คํธ ์ผ์ด์ค ๊ณํ์ ์ด์์ ์ ๋๋ค.
์ฃผ์ ์ ํ ์ฌํญ
์ ์ ๊ฒฝ๋ก ๋ถ์์ ๊ฐ๋ ฅํ์ง๋ง ํ๊ณ๊ฐ ์์ต๋๋ค.
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 ๊ฐ์ด๋๋ผ์ธ์ ์ ์ ๋ถ์์ ํ์์ ์ธ ๊ตฌ์กฐ์ ํ๋ก๊ทธ๋๋ฐ ์์น์ ์ฅ๋ คํฉ๋๋ค. ์ฃผ์ ์ ์ด ํ๋ฆ ๊ท์น์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ํ๋ก๊ทธ๋จ์ ๋ค์์ ๋ฐ๋ผ์ผ ํฉ๋๋ค. ๋จ์ผ ์ง์ , ๋จ์ผ ์ถ๊ตฌ ๋จ๋ฝ ๋๋ ์น์ ๋ณ ๋ ผ๋ฆฌ
- ์ฌ์ฉ
GOTOALTER๊ถ์ฅ๋์ง ์๊ฑฐ๋ ๊ธ์ง๋ฉ๋๋ค - ๋ชจ๋ ๋ฃจํ์๋ ๋ค์์ด ์์ด์ผ ํฉ๋๋ค. ๋ช ์์ ์ข ๋ฃ ์กฐ๊ฑด
- ์ ์ด ํ๋ฆ์ ๋ค์๊ณผ ๊ฐ์์ผ ํฉ๋๋ค. ์์ธกํ ์์๋, ์จ๊ฒจ์ง ๋๋ ์๋ฌต์ ์ธ ๋ถ๊ธฐ ์์ด
์ ์ ๋ถ์๊ธฐ๋ ๊ฐ 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 - ํด์ค๋ฃจ ๋
ผ๋ฆฌ์ ์ฌ์ฉ
EVALUATEorIF์์ด ๊ตฌ์ฑํ๋คWHEN OTHER - ์กฐ๊ฑด ๋ชจ์์ผ๋ก ์ธํด ์กด์ฌํ์ง๋ง ์คํ๋์ง ์๋ ์ฝ๋ ๋ธ๋ก
๋ชจ๋ฒ ์ฌ๋ก
DO-178C ์ ์ด ํ๋ฆ ๋ฌด๊ฒฐ์ฑ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ ค๋ฉด ๋ค์์ ์ํํ์ญ์์ค.
- ๋ช ์์ ์ด๊ณ ์ ๊ตฌ์ฑ๋ ์ ์ด ๊ตฌ์กฐ๋ง ์ฌ์ฉํ์ญ์์ค.
- ํผํ
GOTO,PERFORM THRU, ๊ทธ๋ฆฌ๊ณ ๋์์ค์ง ์์CALL๋ฌธ - ๋ฌธ์ํ๋ ์ ๋ ฅ ๋ฒ์๋ก ๋ชจ๋ ์กฐ๊ฑด๋ฌธ์ ๊ฒ์ฆํฉ๋๋ค.
- ์ ์ด ํ๋ฆ ๊ทธ๋ํ์ ๋ชจ๋ ๊ฒฝ๋ก๊ฐ ์์คํ ์์ค ์๊ตฌ ์ฌํญ๊น์ง ์ถ์ ๊ฐ๋ฅํ์ง ํ์ธํ์ญ์์ค.
์ด๋ฌํ ๊ดํ์ ์๋ํ๋ ์ ์ ๋ถ์ ๋๊ตฌ์ ๊ฒฐํฉํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ์ฌ์ ์ ์ํ์ ์ ๊ฑฐํ๊ณ , ์ธ์ฆ์ ํ์ํ ๋ ธ๋ ฅ์ ์ค์ด๋ฉฐ, ์๊ฒฉํ ํญ๊ณต ํ์ค์ ๋ฐ๋ผ ์ด์๋๋ ์๋ฌด ์ํ์ ์ค์ํ COBOL ์์คํ ์ ์์ ์ฑ์ ๋ณด์ฅํ ์ ์์ต๋๋ค.
์ค์ ์๋ฃ COBOL ๊ฒฝ๋ก์ FDA ๊ฒ์ฆ
์๋ฃ ๊ธฐ์ ๋ถ์ผ์์ COBOL์ ํ์ ๊ธฐ๋ก ์์คํ , ์ฒญ๊ตฌ ์ ํ๋ฆฌ์ผ์ด์ , ์๋ฃ ์ฅ๋น ์ธํฐํ์ด์ค์ ๋ฐฑ์๋์์ ์ฌ์ ํ ์ค์ํ ์ญํ ์ ํ๊ณ ์์ต๋๋ค. ์ง๋จ, ์น๋ฃ ๋๋ ํ์ ์์ ๊ณผ ๊ด๋ จ๋ ์์คํ ์ ๊ฒฝ์ฐ, ๋ฏธ๊ตญ ์ํ์์ฝ๊ตญ(FDA)์ ์ํํธ์จ์ด๊ฐ ์๊ฒฉํ ๊ฒ์ฆ ๊ธฐ์ค์ ์ถฉ์กฑํ๋๋ก ์๊ตฌํฉ๋๋ค. ์ฌ๊ธฐ์๋ COBOL ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ด ํ๋ฆ์ด ์์ธก ๊ฐ๋ฅํ๊ฒ ๋์ํ๊ณ ๋ชจ๋ ๊ฐ๋ฅํ ๋ฐํ์ ์กฐ๊ฑด์์ ์์ ํ๊ฒ ์คํจํจ์ ์ ์ฆํ๋ ๊ฒ์ด ํฌํจ๋ฉ๋๋ค.
์๋ฃ ์์คํ ์์ ์ ์ด ํ๋ฆ ๋ฌด๊ฒฐ์ฑ์ด ์ค์ํ ์ด์
์๋ฃ ์ํํธ์จ์ด๋ ๋ชจํธํ ๋ ผ๋ฆฌ๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค. ๋ณดํ ์ฒญ๊ตฌ ์ฒ๋ฆฌ๋ ํ์ ๋ชจ๋ํฐ๋ง ํ๋์จ์ด์์ ์ฐ๋์ด๋ , COBOL ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฅํ ๋ชจ๋ ์คํ ๊ฒฝ๋ก๊ฐ ๊ฒํ ๋ฐ ํ ์คํธ๋์๋์ง ํ์ธํด์ผ ํฉ๋๋ค. FDA๋ ์ ์กฐ์ ์ฒด์ ๊ฐ๋ฐ์๊ฐ ๋ค์์ ์ ์ฆํ ๊ฒ์ ์๊ตฌํฉ๋๋ค.
- ์ํํธ์จ์ด์๋ ์ค๋ฅ๋ฅผ ๊ฐ๋ฆด ์ ์๋ ์ ๊ทผ ๋ถ๊ฐ๋ฅํ๊ฑฐ๋ ๋นํ์ฑ ์ฝ๋๊ฐ ํฌํจ๋์ด ์์ง ์์ต๋๋ค.
- ๋ชจ๋ ์์ธ ์ฒ๋ฆฌ ๊ฒฝ๋ก๊ฐ ์ ์ ํ๊ฒ ๊ตฌํ๋๊ณ ํ ์คํธ๋์์ต๋๋ค.
- ํนํ ํ์ ๋ฐ์ดํฐ๋ ์ฅ์น ์๋์ ์ํฅ์ ๋ฏธ์น๋ ๋ชจ๋ ๋ ผ๋ฆฌ ๋ถ๊ธฐ๋ ์๋ํ ๋๋ก ์ํ๋ฉ๋๋ค.
์ ์ด ํ๋ฆ ๊ฒฐํจ์ ๊ฐ์งํ์ง ๋ชปํ๋ฉด ์ค์ ์ํฉ์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. GOTO ๋๋ ์กฐ์ฉํ IF ์กฐ๊ฑด ์คํจ๋ก ์ธํด ์ค์ํ ๋ณด๊ณ ๊ฐ ์ง์ฐ๋๊ฑฐ๋ ํ์ ๋ฐ์ดํฐ๊ฐ ์์๋์ด ์์ ์ค๋ฅ๋ ๊ท์ ์๋ฐ์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
FDA๊ฐ ๊ฒ์ฆ์ ์ํด ์๊ตฌํ๋ ์ฌํญ
FDA์ ์ง์นจ ๋ฌธ์(์: ์ํํธ์จ์ด ๊ฒ์ฆ์ ์ผ๋ฐ ์์น)๋ ์ ์ด ํ๋ฆ ๋ณด์ฆ์ ๋ํ ๊ธฐ๋์น๋ฅผ ๋ช ์ํ๊ณ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค.
- ์ถ์ ์ฑ ๊ด๋ฆฌ ์๊ตฌ ์ฌํญ์์ ์ฝ๋, ํ ์คํธ ์ผ์ด์ค๊น์ง
- ๊ตฌ์กฐ ํผ๋ณต ๋ถ์๋ชจ๋ ์ง์ ๊ณผ ๊ฒฐ์ ์ด ์คํ๋๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋๋ค.
- ์ํ๋ ๋ถ์, ์คํจ ๋ชจ๋์ ์ด๋ฅผ ์ ๋ฐํ ์ ์๋ ์ ์ด ๋ ผ๋ฆฌ๋ฅผ ์๋ณํฉ๋๋ค.
- ๊ฒ์ฆ ๋ฐ ๊ฒ์ฆ ๊ณํ์ ์ด ํ๋ฆ ๊ทธ๋ํ ๋ฐ ์์ธ ๊ฒฝ๋ก ๋ก๊ทธ์ ๊ฐ์ ์ํฐํฉํธ๋ก ์ง์๋จ
COBOL์์ ์ด๋ ๋ช ํํ๊ฒ ์ ์๋ ๋ ผ๋ฆฌ ๋ถ๊ธฐ, ์ผ๊ด๋ ์์ธ ๊ฒฝ๋ก, ์คํ ๋์์ ๋ํ ์์ ํ ๋ฌธ์ํ๋ฅผ ๊ฐ์ถ ๊ตฌ์กฐํ๋๊ณ ์ ์ ์ผ๋ก ๋ถ์ ๊ฐ๋ฅํ ํ๋ก๊ทธ๋จ์ผ๋ก ๋ณํ๋ฉ๋๋ค.
FDA ๊ท์ ์ค์๋ฅผ ์ํ ์ ์ ๋ถ์
๊ณ ๊ธ ์ ์ ๋ถ์์ ๋ค์์ ํตํด FDA ๊ฒ์ฆ์ ์ง์ํฉ๋๋ค.
- ๋ชจ๋ ๋๋ฌ ๊ฐ๋ฅ ๊ฒฝ๋ก์ ์กฐ๊ฑด ๊ฒฝ๋ก๋ฅผ ์๊ฐํํ๋ ์ ์ด ํ๋ฆ ๋ค์ด์ด๊ทธ๋จ ์์ฑ
- ๊ฒ์ฆ๋์ง ์์๊ฑฐ๋ ์นจ๋ฌตํ๋ ์ง์ ์ ํ๋๊ทธ๋ก ํ์ํฉ๋๋ค.
WHEN OTHERorELSE์ ์ฉ ๋ฒ์ - ๋ชจ๋ I/O ๋ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ ผ๋ฆฌ์ ์์ธ ์ฒ๋ฆฌ๊ธฐ๊ฐ ์กด์ฌํ๊ณ ๋๋ฌ ๊ฐ๋ฅํ์ง ํ์ธ
- ๊ฐ์ฌ ๋ฐ ์ถ์ ์ ์ํด ๋ฌธ์ํ๋ ์๊ตฌ ์ฌํญ์ผ๋ก ์ฝ๋ ๊ฒฝ๋ก ๋งคํ
๋ถ์ ์ค ํ์๋ ์ํ ์:
READ PATIENT-FILE INTO WS-PATIENT
IF WS-PATIENT-STATUS = "CRITICAL"
PERFORM ALERT-MEDICAL-TEAM
If WS-PATIENT-STATUS ๋ค๋ฅธ ๊ฐ์ ๋ํด์๋ ๊ฒ์ฆ๋์ง ์์๊ฑฐ๋ ALERT-MEDICAL-TEAM ์ฒด๊ณ์ ์ธ ์ข
๋ฃ๊ฐ ์๋ ๊ฒฝ์ฐ ๋ถ์๊ธฐ๋ ์๋ ๊ฒํ ๋ฅผ ์ํด ๊ฒฝ๋ก๋ฅผ ํ์ํฉ๋๋ค.
์ํ ์ ๋ต
- ๊ต์ฒด
GOTOPERFORM 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์ ๊ฒฐ์ ๋ก์ง์๋ ์ผ๋ฐ์ ์ผ๋ก ์น์ธ, ์ฌ๊ธฐ ํ์ง, ๊ฒ์ ๋ฐ ๋กค๋ฐฑ ๋ฃจํด์ด ํฌํจ๋ฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ ์ ์ด ํ๋ฆ ์ด์ ํ์์ด ๋ฐ์ํฉ๋๋ค.
- ์ด๊ธฐํ๋์ง ์์ ๋ณ์๋ก ์ธํด ์ ํจ์ฑ ๊ฒ์ฌ ๋จ๊ณ ๊ฑด๋๋ฐ๊ธฐ
- ๋๋ฌธ ์กฐ๊ฑด์์ ๊ถํ ๋ ผ๋ฆฌ์์ ์๋์ผ๋ก ์ข ๋ฃ๋จ
- ๋ถ์ ์ ํ๊ฒ ์ฒ๋ฆฌ๋จ
IForEVALUATE๊ธฐ๋ณธ ๋ถ๊ธฐ๊ฐ ์๋ ๋ฌธ์ฅ
๋ฌด๋จ ๊ฑฐ๋ ์ฒ๋ฆฌ, ์ํ ๋ถ์ผ์น ๋๋ ๊ท์ ๋ ธ์ถ๋ก ์ด์ด์ง ์ ์์ต๋๋ค. PCI-DSS๋ ๋ค์์ ์๊ตฌํฉ๋๋ค.
- ์นด๋ ์์ง์ ๋ฐ์ดํฐ์ ๊ด๋ จ๋ ๋ชจ๋ ๊ฒฝ๋ก๋ ๋ช ํํ๊ฒ ์ ์๋๊ณ ๋ชจ๋ํฐ๋ง๋์ด์ผ ํฉ๋๋ค.
- ์ํธํ, ๊ถํ ๋ถ์ฌ ๋ฐ ๋ก๊น ์ ์ ์ดํ๋ โโ๋ ผ๋ฆฌ๋ ์คํ ์ ๋ถ๊ฐํผํฉ๋๋ค.
- ์์คํ ์ ๋ฐ์ดํฐ๊ฐ ์์ ํ๊ณ ๊ฒ์ฆ๋ ๋ฃจํด์ ํตํด์๋ง ์ฒ๋ฆฌ๋๋์ง ํ์ธํฉ๋๋ค.
์ด๋ ํ ์ฝ๋ ๊ฒฝ๋ก๊ฐ ๊ฑฐ๋๊ฐ ์ธ์ฆ ๋๋ ์ฌ๊ธฐ ๊ท์น์ ์ฐํํ ์ ์๊ฒ ํ๋ ๊ฒฝ์ฐ, ์ฌ์ง์ด ๋๋ฌธ ์์ธ ์กฐ๊ฑด์์๋ ์์คํ ์ ์๋ฐ๋ฉ๋๋ค.
PCI-DSS์ ์ ์ ์ ์ด ํ๋ฆ ๋ถ์ ์ฌ์ฉ
์ ์ ๋ถ์๊ธฐ๋ COBOL ํ๋ก๊ทธ๋จ์ ์ ์ด ๊ตฌ์กฐ๋ฅผ ๋งคํํ์ฌ ๋ค์์ ๋ณด์ฅํฉ๋๋ค.
- ๋ชจ๋ ๊ฒ์ฆ ๋ฐ ์ํธํ ๋ฃจํด์ ์ผ๊ด๋๊ฒ ํธ์ถ๋ฉ๋๋ค.
- ๋ชจ๋ ๊ฑฐ๋ ๊ฒฝ๋ก์๋ ๋ก๊น ๋ฐ ๊ถํ ๋ถ์ฌ ๋ก์ง์ด ํฌํจ๋ฉ๋๋ค.
- ์ด๋ ํ ๋ฌธ๋จ์ด๋ ์กฐ๊ฑด๋ ์กฐ๊ธฐ ๊ฑฐ๋ ์น์ธ์ด๋ ์ฐํ๋ฅผ ํ์ฉํ์ง ์์ต๋๋ค.
์:
IF CARD-STATUS = "ACTIVE"
PERFORM PROCESS-TRANSACTION
ELSE
PERFORM REJECT-TRANSACTION
If CARD-STATUS ํน์ ๊ฒฝ๋ก์์๋ ์ด๊ธฐํ๋์ง ์์ต๋๋ค. PROCESS-TRANSACTION ๋ถ์ ์ ํ๊ฒ ์คํ๋ ์ ์์ต๋๋ค. ์ ์ด ํ๋ฆ ๋ถ์์ ์ด๋ฌํ ์ํ์ด ํ๋ก๋์
ํ๊ฒฝ์์ ๋ฐ์ํ๊ธฐ ์ ์ ๊ฐ์งํฉ๋๋ค.
ํ๋ฆ ๋ฌด๊ฒฐ์ฑ ๊ฐํ
PCI-DSS ์ ์ด๋ ๋ค์๊ณผ ๊ฐ์ ์ ์ด ํ๋ฆ ๊ท์น์ ์ง์ ๋งคํ๋ฉ๋๋ค.
- ์๋ฐฉ ๋น๊ตฌ์กฐํ๋ ์ถ๊ตฌ ๊ถํ ๋ถ์ฌ ์ฒด์ธ์์
- ์๋ฌดํ ์์ ํ ์กฐ๊ฑด๋ถ ์ ์ฉ ๋ฒ์๊ฐ์
WHEN OTHERinEVALUATE - ํ์ธ ์ค ์คํจ ๊ฒฝ๋ก ํ ์คํธ ๊ฐ๋ฅํ ์กฐ๊ฑด์์ ์กด์ฌํ ๋ฟ๋ง ์๋๋ผ ํ์ฑํ๋ฉ๋๋ค.
- ๋ฏผ๊ฐํ๊ฑฐ๋ ์ค์ํ ์์ ์ ์ฒ๋ฆฌํ๋ ๋ชจ๋ ์ง์ ์ ๋ก๊น ํ๊ณ ๊ฐ์ฌํฉ๋๋ค.
์ ์ ๋๊ตฌ๋ ์ด๋ฌํ ํ๋ฆ์ ์๋ฎฌ๋ ์ด์ ํ๊ณ , ์ฃผ์์ด ๋ฌ๋ฆฐ ์ ์ด ํ๋ฆ ๊ทธ๋ํ๋ฅผ ์ ๊ณตํ๋ฉฐ, ๊ฐ์ฌ ๋ฐ ์นจํฌ ํ ์คํธ ์ง์์ ์ํ ๋ณด์ ๊ด๋ จ ๋ฌธ์๋ฅผ ์์ฑํฉ๋๋ค.
PCI-DSS ๊ฑฐ๋ฒ๋์ค์ ์ด์
- ๋ชจ๋ ๊ฒฝ๋ก๊ฐ ์ง๋ถ ๊ท์น์ ์ค์ํ๋ค๋ ํ์ ์ ๊ฐํํฉ๋๋ค.
- ๋ฌธ์ํ๋์ง ์๊ฑฐ๋ ๋ถ๋ฒ์ ์ธ ๊ฑฐ๋ ๋ ผ๋ฆฌ์ ์ํ์ ์ค์ ๋๋ค.
- ๊ตฌ์ฒด์ ์ธ ์ํฐํฉํธ๋ฅผ ํตํด ๋ด๋ถ ๋ฐ ์ธ๋ถ ๊ฐ์ฌ์๋ฅผ ์ง์ํฉ๋๋ค.
- ๊ฐ๋ฐ ๋๋ ํ๋ํ ์ค์ ๊ณ ์ํ ์ ์ด ๊ตฌ์กฐ๋ฅผ ํ๋๊ทธ๋ก ํ์ํ์ฌ ์ ์ง ๊ด๋ฆฌ์ฑ์ ํฅ์์ํต๋๋ค.
๊ฒฐ์ ์์คํ ์์๋ ์ ์ด ํ๋ฆ์ ์๋ฐํ ์ค๋ฅ๋ ๊ธ์ต ์ฌ๊ธฐ ๋๋ ์๋ฐ ํ์์ ๋ํ ์ฒ๋ฒ๋ก ์ง๊ฒฐ๋ ์ ์์ต๋๋ค. ์ ์ ๋ถ์์ COBOL ์์คํ ์ ๊ฒฐ์ ๋ก์ง์ด ๊ธฐ๋ฅ์ ์ธ ๊ฒ๋งํผ ํฌ๋ช ํ๊ณ ๋ฐฉ์ด ๊ฐ๋ฅํ์ง ํ์ธํฉ๋๋ค.
์ฌ์ธต์ ์ธ ์ ์ด ํ๋ฆ ํต์ฐฐ๋ ฅ์ ํตํ COBOL ์์คํ ๋ณด์
๋ ๊ฑฐ์ COBOL ์์คํ ์ ๊ธ์ต, ์๋ฃ, ํญ๊ณต, ์ ๋ถ ๋ฑ ๊ฐ์ฅ ์ค์ํ ์ธํ๋ผ๋ฅผ ์ง์์ ์ผ๋ก ๊ตฌ๋ํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ์์คํ ์ ๋ ธํํ์ ๋ณต์ก์ฑ์ ๊ณ ์ ํ ์ํ์ ์ผ๊ธฐํ๋ฉฐ, ์ด๋ฌํ ์ํ์ ๋๋ถ๋ถ์ ๋ฏธ๋ฌํ๊ณ ์ข ์ข ๋์ ๋์ง ์๋ ์ ์ด ํ๋ฆ ๊ตฌ์กฐ์ ๊ธฐ์ธํฉ๋๋ค. ์ฌ์ผ๋ฐํธ ๋ธ๋์น, ์ค์ฉ๋ ์ ํ, ๋ฌดํ ๋ฃจํ, ์ด๊ธฐํ๋์ง ์์ ๋ณ์ ๋ฑ์ ๋ชจ๋ ๊ฐ์ง๋์ง ์์ผ๋ฉด ์ํํธ์จ์ด ๋ฌด๊ฒฐ์ฑ์ ์์์ํฌ ์ ์์ต๋๋ค.
์ ์ ์ ์ด ํ๋ฆ ๋ถ์์ ์ด๋ฌํ ์ด์ ์งํ๊ฐ ์์คํ ๋์, ๋ณด์ ๋๋ ๊ท์ ์ค์์ ์ํฅ์ ๋ฏธ์น๊ธฐ ์ ์ ์ด๋ฅผ ๋ฐ๊ฒฌํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. ์ต์ ์ ์ ๋ถ์ ๊ธฐ์ ์ COBOL ํ๋ก๊ทธ๋จ์ด ๋จ๋ฝ, ์น์ , ํ์ ํ๋ก๊ทธ๋จ ๋ฐ ์์ ์คํธ๋ฆผ ์ ๋ฐ์ ๊ฑธ์ณ ์คํ๋๋ ๋ฐฉ์์ ์ฌ์ธต์ ์ผ๋ก ๋ชจ๋ธ๋งํจ์ผ๋ก์จ ์ค๋๋ ์ ํฌ๋ช ์ฑ ์๊ตฌ์ ๋ง์ถฐ ์ค๊ณ๋์ง ์์๋ ์ฝ๋์ ๋ช ํ์ฑ์ ๋์ฌ์ค๋๋ค.
์ด๋ฌํ ์์ค์ ๋ถ์์ ํฌ์ํ๋ ์กฐ์ง์ ๊ธฐ์ ์ ํต์ฐฐ๋ ฅ ์ด์์ ๊ฒ์ ์ป์ต๋๋ค. ์์คํ ์ ๋ํ ํ์ , ๊ท์ ๊ธฐ๊ด ์๊ตฌ ์ฌํญ ์ค์ ์ ์ฆ , ์์คํ ์ค๋ฅ, ๊ฐ์ฌ ์คํจ ๋๋ ์น๋ช ์ ์ธ ๋ ผ๋ฆฌ ์ค๋ฅ์ ์ํ์ ๋ํ ๋ณต์๋ ฅ์ ํ๋ณดํ๊ฒ ๋ฉ๋๋ค.
๋์งํธ ์ ๋ขฐ๊ฐ ๊ทธ ์์ฒด๋ก ํ๋์ ํตํ์ธ ์๋์ COBOL ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ ์คํ ๊ฒฝ๋ก๋ฅผ ์ดํดํ๊ณ ์ ์ดํ๋ โโ๊ฒ์ ๋จ์ํ ํ๋ช ํ ์ ์ง ๊ด๋ฆฌ๊ฐ ์๋๋ผ ์ค๋ ์ง์๋๋๋ก ๊ตฌ์ถ๋ ์์คํ ์ ๋ํ ํ์์ ์ธ ๊ด๋ฆฌ์ ๋๋ค.