์Šคํ‚ค๋งˆ ๋“œ๋ฆฌํ”„ํŠธ ๊ฐ์ง€

๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ ์‹œ์Šคํ…œ ์ „๋ฐ˜์— ๊ฑธ์นœ ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ ๊ฐ์ง€

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

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

๊ธฐ์กด ์Šคํ‚ค๋งˆ ๊ฒฝ๊ณ„๋ฅผ ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค.

SMART TS XL ๋ฉ”์ธํ”„๋ ˆ์ž„ ํ”„๋กœ๊ทธ๋žจ๊ณผ ์ตœ์‹  ๋ถ„์„ ํ”Œ๋žซํผ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋ชจ๋“  ํ”Œ๋žซ ํŒŒ์ผ ํ˜•์‹ ๊ณ„์•ฝ์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š”โ€ฆ

์ฐจ๋ก€

์Šคํ‚ค๋งˆ ๋“œ๋ฆฌํ”„ํŠธ๋ž€ ๋ฌด์—‡์ด๋ฉฐ, ๋ฌด์—‡์ด ์•„๋‹Œ๊ฐ€

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

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

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

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

์Šคํ‚ค๋งˆ ๋“œ๋ฆฌํ”„ํŠธ์˜ ๋„ค ๊ฐ€์ง€ ์œ ํ˜•

๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ ์‹œ์Šคํ…œ์€ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ์ง€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ํ•„์š”ํ•œ ๋„ค ๊ฐ€์ง€ ์ฐจ์›์—์„œ ์Šคํ‚ค๋งˆ ๋ณ€ํ™”๋ฅผ ์ผ์œผํ‚ต๋‹ˆ๋‹ค.

์œ ํ˜• 1: ๊ตฌ์กฐ์  ๋ณ€์œ„

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

ํƒ์ง€ ๋ฐฉ์‹: ๊ธฐ์ค€์„ ๊ณผ์˜ ์Šคํ‚ค๋งˆ ์Šค๋ƒ…์ƒท ๋น„๊ต; INFORMATION_SCHEMA ํด๋ง; ์Šคํ‚ค๋งˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๋ฒ„์ „ ๋น„๊ต.

์œ ํ˜• 2: ์˜๋ฏธ ๋ณ€ํ™”

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

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

ํƒ์ง€: ๊ฐ’ ๋ถ„ํฌ ๋ชจ๋‹ˆํ„ฐ๋ง; ํ—ˆ์šฉ ๊ฐ’ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๊ทœ์น™; ํŠน์ • ์œ ํšจ ๊ฐ’์„ ๊ฒ€์ฆํ•˜๋Š” ๊ณ„์•ฝ ํ…Œ์ŠคํŠธ.

์œ ํ˜• 3: ํ˜•์‹ ํŽธ์ฐจ

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

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

ํƒ์ง€: ๊ฐ’ ๋ฒ”์œ„ ๋ฐ ํŒจํ„ด์— ๋Œ€ํ•œ ํ†ต๊ณ„์  ํ”„๋กœํŒŒ์ผ๋ง; ํŠน์ • ํ•„๋“œ์— ๋Œ€ํ•œ ํ˜•์‹ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๊ทœ์น™; ๊ฒฝ๊ณ„ ์ผ์น˜ ํ…Œ์ŠคํŠธ.

์œ ํ˜• 4: ๊ณ„์•ฝ ๋ณ€๊ฒฝ

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

๊ฐ์ง€ ๊ธฐ๋Šฅ: ์‹ ์„ ๋„ ๋ชจ๋‹ˆํ„ฐ๋ง; ์šฉ๋Ÿ‰ ์ด์ƒ ๊ฐ์ง€; SLA ๊ธฐ๋ฐ˜ ์•Œ๋ฆผ.

๋ถ„์‚ฐ ์‹œ์Šคํ…œ์ด ๋ฌธ์ œ๋ฅผ ์•…ํ™”์‹œํ‚ค๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ์š”?

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

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

Distributed Schema Drift Propagation Path:

Order Service          Kafka Topic           Analytics Pipeline
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ orders table    โ”‚โ”€โ”€>โ”‚ order.created โ”‚โ”€โ”€โ”€>โ”‚ orders_fact table    โ”‚
โ”‚ + coupon_id     โ”‚   โ”‚ Avro schema   โ”‚    โ”‚ (missing coupon_id)  โ”‚
โ”‚   (new column)  โ”‚   โ”‚ v1 still used โ”‚    โ”‚ pipeline runs fine   โ”‚
โ”‚                 โ”‚   โ”‚               โ”‚    โ”‚ coupon data silently  โ”‚
โ”‚                 โ”‚   โ”‚               โ”‚    โ”‚ dropped              โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

                           โ–ผ
                   BI Dashboard
                โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                โ”‚ coupon_revenue   โ”‚
                โ”‚ always = $0      โ”‚
                โ”‚ (no error shown) โ”‚
                โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

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

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

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

๊ณ„์ธต๋ณ„ ํƒ์ง€ ์ ‘๊ทผ ๋ฐฉ์‹

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

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ์›จ์–ดํ•˜์šฐ์Šค ๊ณ„์ธต

๊ฐ€์žฅ ์„ฑ์ˆ™ํ•œ ํƒ์ง€ ๊ณ„์ธต์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ์ฃผ์š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค์˜ INFORMATION_SCHEMA ํ…Œ์ด๋ธ”์€ ์ฟผ๋ฆฌ ๊ฐ€๋Šฅํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์Šค๋ƒ…์ƒท์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

SQL

-- Detect structural schema changes since a baseline snapshot
-- Run daily; alert when new differences appear

WITH current_schema AS (
    SELECT
        table_name,
        column_name,
        data_type,
        is_nullable,
        column_default,
        ordinal_position
    FROM information_schema.columns
    WHERE table_schema = 'production'
),
baseline AS (
    -- Previous snapshot stored in schema_baseline table
    SELECT * FROM schema_monitoring.schema_baseline
    WHERE snapshot_date = CURRENT_DATE - 1
)
SELECT
    'ADDED'   AS change_type,
    c.table_name,
    c.column_name,
    c.data_type,
    CURRENT_DATE AS detected_date
FROM current_schema c
LEFT JOIN baseline b
    ON c.table_name = b.table_name
    AND c.column_name = b.column_name
WHERE b.column_name IS NULL

UNION ALL

SELECT
    'REMOVED' AS change_type,
    b.table_name,
    b.column_name,
    b.data_type,
    CURRENT_DATE
FROM baseline b
LEFT JOIN current_schema c
    ON b.table_name = c.table_name
    AND b.column_name = c.column_name
WHERE c.column_name IS NULL

UNION ALL

SELECT
    'TYPE_CHANGED' AS change_type,
    c.table_name,
    c.column_name,
    c.data_type || ' (was: ' || b.data_type || ')' AS data_type,
    CURRENT_DATE
FROM current_schema c
JOIN baseline b
    ON c.table_name = b.table_name
    AND c.column_name = b.column_name
WHERE c.data_type <> b.data_type;

์ด๋Ÿฌํ•œ ํŒจํ„ด์„ ์ž๋™ํ™”ํ•˜๋Š” ๋„๊ตฌ: dbt ์Šคํ‚ค๋งˆ ํ…Œ์ŠคํŠธ, Great Expectations ์—ด ๊ธฐ๋Œ€์น˜, Monte Carlo ํ…Œ์ด๋ธ” ์ƒํƒœ ๋ชจ๋‹ˆํ„ฐ๋ง, Acceldata ์Šคํ‚ค๋งˆ ๋“œ๋ฆฌํ”„ํŠธ ๋ชจ๋‹ˆํ„ฐ๋ง.

์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ ˆ์ด์–ด

Kafka ํ† ํ”ฝ์€ ์Šคํ‚ค๋งˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ(Confluent Schema Registry, AWS Glue Schema Registry, Apicurio)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Avro, Protobuf ๋ฐ JSON ์Šคํ‚ค๋งˆ์˜ ์ง„ํ™”๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋Š” ๊ฒŒ์‹œ ์‹œ์ ์— ํ˜ธํ™˜์„ฑ ๊ทœ์น™์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์–Œ

# Confluent Schema Registry: compatibility rule configuration
# Applied per topic; enforces at producer registration time

compatibility:
  BACKWARD:
    # New schema can read data written with old schema
    # Safe: consumers can be updated after producers
    allows: add_optional_fields, remove_fields_with_defaults
    blocks: rename_fields, change_types, add_required_fields

  FORWARD:
    # Old schema can read data written with new schema
    # Safe: consumers can be deployed before producers
    allows: add_required_fields, rename_with_aliases
    blocks: remove_fields_used_by_consumers

  FULL:
    # Both backward and forward compatible
    # Strictest: ensures zero-downtime evolution
    allows: add_optional_fields_with_defaults
    blocks: everything_else

์Šคํ‚ค๋งˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋Š” ์˜๋ฏธ ๋ณ€ํ™”๋ฅผ ๋ฐฉ์ง€ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฆ„๊ณผ ์œ ํ˜•์€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์ง€๋งŒ ์˜๋ฏธ๊ฐ€ ๋ฐ”๋€ ํ•„๋“œ๋„ ํ˜ธํ™˜์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํ†ต๊ณผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜๋ฏธ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์œ„ํ•ด์„œ๋Š” ๊ณ„์•ฝ ํ…Œ์ŠคํŠธ(Pact, AsyncAPI ํ…Œ์ŠคํŠธ)๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

API ๊ณ„์ธต

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

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

๊ธฐ์กด ์‹œ์Šคํ…œ ๊ฒฝ๊ณ„: ๋“œ๋ฆฌํ”„ํŠธ๊ฐ€ ๋ณด์ด์ง€ ์•Š๊ฒŒ ๋˜๋Š” ์ง€์ 

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

ํด๋ผ์šฐ๋“œ ETL ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ์‚ฌ์šฉํ•  ํ”Œ๋žซ ํŒŒ์ผ์„ ๋งค์ผ ๋ฐค ์ƒ์„ฑํ•˜๋Š” COBOL ํ”„๋กœ๊ทธ๋žจ์€ ํŒŒ์ผ ๋””์Šคํฌ๋ฆฝํ„ฐ(FD) ํ•ญ๋ชฉ๊ณผ ์ถœ๋ ฅ ๋กœ์ง์— ์•”๋ฌต์ ์ธ ์Šคํ‚ค๋งˆ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋žซ ํŒŒ์ผ์˜ "์Šคํ‚ค๋งˆ", ์ฆ‰ ๋ฐ”์ดํŠธ ์œ„์น˜, ๋ฐ์ดํ„ฐ ์œ ํ˜•, COMP-3 ํŒฉํ˜• ์‹ญ์ง„์ˆ˜ ํ•„๋“œ ๋ฐ REDEFINES ๊ตฌ์กฐ์ฒด๋Š” ์ตœ์‹  ๊ด€์ฐฐ ๋„๊ตฌ๊ฐ€ ์ฟผ๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋‚˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๊ฐ€ ์•„๋‹Œ COBOL ์†Œ์Šค ์ฝ”๋“œ์— ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

์ฝ”๋ณผ

      *> This FD entry IS the schema contract for the nightly extract
      *> Any change here constitutes schema drift for the downstream ETL
       FD  CUSTOMER-EXTRACT-FILE
           LABEL RECORDS ARE STANDARD
           RECORD CONTAINS 350 CHARACTERS.
       01  CUSTOMER-EXTRACT-REC.
           05  CUST-ID          PIC 9(10).        *> Bytes 1-10
           05  CUST-NAME        PIC X(40).        *> Bytes 11-50
           05  CUST-BALANCE     PIC S9(11)V99 COMP-3. *> Bytes 51-57 (packed)
           05  CUST-STATUS-CD   PIC X(2).         *> Bytes 58-59
           05  CUST-OPEN-DATE   PIC 9(8).         *> Bytes 60-67: YYYYMMDD
           05  FILLER           PIC X(283).       *> Bytes 68-350

COBOL ํŒ€์ด ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒฝ์šฐ CUST-BALANCE ์— PIC S9(11)V99 COMP-3 ์— PIC S9(13)V99 COMP-3๋” ํฐ ์ž”์•ก ๊ฐ’์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋‘ ์ž๋ฆฌ ์ •๋ฐ€๋„๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด์„œ ํ•ด๋‹น ํ•„๋“œ๋Š” ํŒฉํ˜• ์‹ญ์ง„์ˆ˜ ํ˜•์‹์œผ๋กœ 7๋ฐ”์ดํŠธ์—์„œ 8๋ฐ”์ดํŠธ๋กœ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค. 50๋ฒˆ์งธ ๋ฐ”์ดํŠธ ์ดํ›„์˜ ๋ชจ๋“  ํ•„๋“œ๋Š” ํ•œ ์ž๋ฆฌ์”ฉ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ETL ํŒŒ์ดํ”„๋ผ์ธ์ด ์ฝ๋Š” ํ”Œ๋žซ ํŒŒ์ผ์—์„œ CUST-BALANCE ์ดํ›„์˜ ๋ชจ๋“  ํ•„๋“œ๋Š” ์ด์ œ ์ž˜๋ชป๋œ ๋ฐ”์ดํŠธ ์œ„์น˜์— ์žˆ์Šต๋‹ˆ๋‹ค. ETL ํŒŒ์ดํ”„๋ผ์ธ์€ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค์ง€ ์•Š๊ณ  51~57๋ฒˆ์งธ ๋ฐ”์ดํŠธ๋ฅผ CUST-BALANCE๋กœ ์ฝ๊ณ  ๋‹ค์Œ ๋ฐ”์ดํŠธ(์ด์ œ CUST-BALANCE์˜ ํ™•์žฅ๋œ ํ‘œํ˜„์˜ ์ฒซ ๋ฒˆ์งธ ๋ฐ”์ดํŠธ)๋ฅผ CUST-STATUS-CD์˜ ์ผ๋ถ€๋กœ ํ•ด์„ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ดํ”„๋ผ์ธ์€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ˆซ์ž๋Š” ์ž˜๋ชป๋˜์—ˆ์ง€๋งŒ ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ ๊ฒฝ๊ณ ๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

๊ธฐ์กด ๊ฒฝ๊ณ„์˜ ๋ณ€๋™์„ ํŠนํžˆ ์œ„ํ—˜ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์„ธ ๊ฐ€์ง€ ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ•ด๋‹น ์Šคํ‚ค๋งˆ๋Š” ๊ด€์ฐฐ ๋„๊ตฌ์—์„œ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Monte Carlo๋Š” VSAM ํŒŒ์ผ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๊ณ , Acceldata๋Š” ํŒŒ์ผ ๋””์Šคํฌ๋ฆฝํ„ฐ(FD) ํ•ญ๋ชฉ์„ ์กฐํšŒํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ฐ์ง€ํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ COBOL ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ด์ „ ๋ฒ„์ „๊ณผ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์ธ๋ฐ, ์ด๋Š” ๋ฐ์ดํ„ฐ ๋ชจ๋‹ˆํ„ฐ๋ง ์ž‘์—…์ด ์•„๋‹Œ ์ฝ”๋“œ ๋ถ„์„ ์ž‘์—…์ž…๋‹ˆ๋‹ค.

๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์กฐ์šฉํžˆ ์ „ํŒŒ๋ฉ๋‹ˆ๋‹ค. ํ”Œ๋žซ ํŒŒ์ผ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋ ˆ์ฝ”๋“œ ๊ตฌ์กฐ์˜ ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•˜์ง€ ์•Š๊ณ  ๋ฐ”์ดํŠธ๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค. ๋ฐ”์ดํŠธ ๋ ˆ์ด์•„์›ƒ์ด ๋ณ€๊ฒฝ๋˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ์•„๋‹Œ ์ž˜๋ชป๋œ ๊ฐ’์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

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

์Šคํ‚ค๋งˆ ๊ณ„์•ฝ: ์ผ๋ฐ˜์ ์œผ๋กœ ์•”๋ฌต์ ์ธ ๊ฒƒ์„ ํ˜•์‹ํ™”ํ•˜๊ธฐ

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

๊ณ„์•ฝ ๊ณ„์ธต๊ด€ํ•  ๋ฒ”์œ„๋„๊ตฌ๊ธฐ์กด ์‹œ์Šคํ…œ๊ณผ ๋™์ผ
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค DDLํ…Œ์ด๋ธ” ๊ตฌ์กฐ, ์ปฌ๋Ÿผ ์œ ํ˜•, ์ œ์•ฝ ์กฐ๊ฑด๋ฆฌํ€ด๋ฒ ์ด์Šค, ํ”Œ๋ผ์ด์›จ์ด, ์•„ํ‹€๋ผ์ŠคDB2 DDL ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์Šคํฌ๋ฆฝํŠธ
์ด๋ฒคํŠธ ์Šคํ‚ค๋งˆKafka/์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆผ ๊ตฌ์กฐ์ปจํ”Œ๋ฃจ์–ธํŠธ ์Šคํ‚ค๋งˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ, ์•„ํ”ผ์ฟ ๋ฆฌ์˜คํ•ด๋‹น ์—†์Œ (ํ”Œ๋žซ ํŒŒ์ผ์—๋Š” ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค)
API ๊ณ„์•ฝREST/gRPC ์ธํ„ฐํŽ˜์ด์Šค ๊ธฐ๋Œ€ ์‚ฌํ•ญ์˜คํ”ˆ API, ํŒฉํŠธ, ๋น„๋™๊ธฐ APIํ•ด๋‹น ์‚ฌํ•ญ ์—†์Œ (ํŒŒ์ผ ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•œ ์‚ฌ์–‘์ด ์—†์Šต๋‹ˆ๋‹ค)
๋ฐ์ดํ„ฐ ํ’ˆ์งˆ๊ฐ€์น˜ ๋ถ„ํฌ, ์‹ ์„ ๋„, ์šฉ๋Ÿ‰์œ„๋Œ€ํ•œ ๊ธฐ๋Œ€, dbt ํ…Œ์ŠคํŠธํ•ด๋‹น ์‚ฌํ•ญ ์—†์Œ (๊ธฐ๋ณธ ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ ์—†์Œ)
ํŒŒ์ผ ํ˜•์‹ ๊ณ„์•ฝํ”Œ๋žซ ํŒŒ์ผ ๋ฐ”์ดํŠธ ๋ ˆ์ด์•„์›ƒ, ํ•„๋“œ ์œ„์น˜COBOL FD ํ•ญ๋ชฉ(์ง„์‹ค์˜ ์›์ฒœ)์‚ฌ๋ณธ ๋ฒ„์ „ ๊ด€๋ฆฌ

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

๊ต์žฌ ๋ณ€๊ฒฝ ์Šน์ธ ์›Œํฌํ”Œ๋กœ:

  1. ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. CUSTMSTR.CPY
  2. ์˜ํ–ฅ ๋ถ„์„์€ ๋‹ค์Œ์„ ํฌํ•จํ•˜๋Š” ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. CUSTMSTR.CPY (์ •์  ๋ถ„์„)
  3. ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ƒ์„ฑ๋˜๋Š” ๋ชจ๋“  ํ”Œ๋žซ ํŒŒ์ผ์€ ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ ์ด๋ฒคํŠธ๋กœ ์‹๋ณ„๋ฉ๋‹ˆ๋‹ค.
  4. ํ•ด๋‹น ํ”Œ๋žซ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ํ•˜์œ„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋ฆผ์ด ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
  5. ์ƒˆ๋กœ์šด ๋ ˆ์ด์•„์›ƒ์— ๋Œ€ํ•œ ์†Œ๋น„์ž ๊ฒ€์ฆ ํ…Œ์ŠคํŠธ๊ฐ€ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.
  6. ํ•ด๋‹น ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋ชจ๋“  ์†Œ๋น„์ž๊ฐ€ ํ˜ธํ™˜์„ฑ์„ ํ™•์ธํ•œ ๊ฒฝ์šฐ์—๋งŒ ์Šน์ธ๋ฉ๋‹ˆ๋‹ค.

์ด ์›Œํฌํ”Œ๋กœ๋Š” ๊ธฐ๋ณธ ์Šคํ‚ค๋งˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” COBOL ๊ณ„์ธต์— ์ ์šฉ๋˜๋Š” ์Šคํ‚ค๋งˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ํ˜ธํ™˜์„ฑ ๊ฐ•์ œ ํŒจํ„ด์„ ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค.

๋ถ„์‚ฐ ์Šคํ‚ค๋งˆ ๋“œ๋ฆฌํ”„ํŠธ ๋ชจ๋‹ˆํ„ฐ๋ง ์•„ํ‚คํ…์ฒ˜

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

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

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

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

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

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

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

๋ฐฉ๋ฒ• SMART TS XL ๊ธฐ์กด ํ™˜๊ฒฝ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

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

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

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

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

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

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

์•„๋ฌด๋„ ์ž‘์„ฑํ•˜์ง€ ์•Š์€ ๊ณ„์•ฝ๋„ ์—ฌ์ „ํžˆ ๊ณ„์•ฝ์ด๋‹ค

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

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

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