πŸ“Ί μ˜μƒ μš”μ•½ μ•„μΉ΄μ΄λΈŒ
← λͺ©λ‘

How We Mapped a 35-Million-Line Mainframe in 4 Days - Stephen Chin, Neo4j & Neeraj Deshmukh, Blitzy

AI Engineer Β· 2026-11-07 05:00 Β· 19:44

ν•œ 쀄 핡심

λ ˆκ±°μ‹œ λ©”μΈν”„λ ˆμž„ μ½”λ“œλ₯Ό 지식 κ·Έλž˜ν”„λ‘œ 역곡학해 μ—μ΄μ „νŠΈμ—κ²Œ μ •ν™•ν•œ λ¬Έλ§₯을 κ³΅κΈ‰ν•˜λ©΄, λŒ€κ·œλͺ¨ ν˜„λŒ€ν™”λ„ 인간 승인과 κ°•ν•œ 검증을 μœ μ§€ν•œ 채 λΉ λ₯΄κ³  μ•ˆμ „ν•˜κ²Œ μˆ˜ν–‰ν•  수 μžˆλ‹€.

μ‹œκ°„λ³„ μš”μ•½

  1. 0:00
    μ†Œκ°œ λŒ€κ·œλͺ¨ 금육 μ‹œμŠ€ν…œ ν˜„λŒ€ν™”μ—μ„œ 핡심은 λ‹¨μˆœν•œ μ½”λ“œ λ³€ν™˜μ΄ μ•„λ‹ˆλΌ, 였래된 μ‹œμŠ€ν…œ 전체λ₯Ό μ΄ν•΄ν•œ λ’€ μ•ˆμ „ν•˜κ²Œ λ°”κΎΈλŠ” 방법을 μ°ΎλŠ” 데 μžˆλ‹€.
  2. 0:14
    ν˜„λŒ€ κΈˆμœ΅μ„ λ– λ°›μΉ˜λŠ” 였래된 μ‹œμŠ€ν…œ λ‰΄μš• 금육ꢌ의 λ§Žμ€ μ„œλΉ„μŠ€λŠ” λͺ¨λ°”일 μ•± 뒀에 μˆ¨μ€ 배치 μž‘μ—…, λΉ„μ¦ˆλ‹ˆμŠ€ κ·œμΉ™, 데이터 계약 μœ„μ—μ„œ λŒμ•„κ°€λ©°, μž‘μ€ μ½”λ“œ 변경도 전체 μž₯μ• λ‘œ μ΄μ–΄μ§ˆ 수 μžˆλ‹€. 과거의 COBOL λ©”μΈν”„λ ˆμž„ ν˜„λŒ€ν™”κ°€ μ–΄λ ΅κ³  μ‹€νŒ¨ν•˜κΈ° μ‰¬μ› λ˜ μ΄μœ λ„ ν…ŒμŠ€νŠΈ ν•œκ³„μ™€ λ³΅μž‘ν•œ μƒν˜Έμ˜μ‘΄μ„± λ•Œλ¬Έμ΄λ‹€.
  3. 1:58
    λ©”μΈν”„λ ˆμž„μ˜ 이자 계산 μ˜ˆμ‹œ 이자 계산은 단일 μˆ˜μ‹μ΄ μ•„λ‹ˆλΌ 배치 μž‘μ—…, copybook, layout, VSAM 데이터, κ³„μ’Œ μ—…λ°μ΄νŠΈκΉŒμ§€ ν•¨κ»˜ λ§žμ•„μ•Ό μ˜¬λ°”λ₯Έ κ²°κ³Όκ°€ λ‚˜μ˜¨λ‹€. 같은 계산이라도 μž…λ ₯κ³Ό μ‹€ν–‰ λ§₯락에 따라 κ²°κ³Όκ°€ λ‹¬λΌμ§€λ―€λ‘œ, 전체 흐름을 ν•¨κ»˜ 봐야 ν•œλ‹€.
  4. 3:06
    μ™œ AIλŠ” μ‹œμŠ€ν…œμ˜ λ‚˜λ¨Έμ§€λ₯Ό λ†“μΉ˜λŠ”κ°€ AIκ°€ COBOL을 Java둜 바꾸더라도 보톡은 μˆ˜μ‹λ§Œ μ°Ύκ³  기둝 정밀도, κ³„μ’Œ μ—…λ°μ΄νŠΈ, 거래 좜λ ₯, 배치 계약 같은 μ£Όλ³€ κ·œμΉ™μ€ λ†“μΉœλ‹€. κ²°κ΅­ μ‹€νŒ¨ 원인은 μ½”λ“œλ₯Ό λͺ» μ¨μ„œκ°€ μ•„λ‹ˆλΌ, κ·Έ 둜직이 μ“°μ΄λŠ” 14개 μ΄μƒμ˜ μœ„μΉ˜λ₯Ό μ•Œμ§€ λͺ»ν•˜κΈ° λ•Œλ¬Έμ΄λ‹€.
  5. 4:02
    μ™œ 더 큰 μ»¨ν…μŠ€νŠΈ μœˆλ„μš°λ‘œλŠ” ν•΄κ²°λ˜μ§€ μ•ŠλŠ”κ°€ 벑터DB, κ΄€κ³„ν˜• DB, MCP μ„œλ²„, 큰 μ»¨ν…μŠ€νŠΈ μœˆλ„μš°λŠ” λͺ¨λ‘ 일뢀 정보λ₯Ό 넣을 μˆ˜λŠ” μžˆμ§€λ§Œ, 닀쀑 홉 관계와 μ •ν™•ν•œ μ—°κ²° ꡬ쑰λ₯Ό μΆ©λΆ„νžˆ 보μž₯ν•˜μ§€λŠ” λͺ»ν•œλ‹€. λͺ¨λΈμ€ 100만 토큰을 κ΄‘κ³ ν•˜λ”λΌλ„ μ‹€μ œλ‘œλŠ” 훨씬 적은 유효 λ¬Έλ§₯만 ν™œμš©ν•˜λ―€λ‘œ, 관계λ₯Ό λ³΄μ‘΄ν•œ μ •λ°€ν•œ μ»¨ν…μŠ€νŠΈ 섀계가 ν•„μš”ν•˜λ‹€.
  6. 6:03
    μ½”λ“œλ₯Ό κ·Έλž˜ν”„λ‘œ λ°”κΎΈκΈ° μ½”λ“œ, μž‘μ—…, ν¬ν•¨λœ copybook, 좜λ ₯λ¬Ό, 심볼, μ†ŒμŠ€ μŠ€νŒ¬μ„ κ·Έλž˜ν”„λ‘œ μ—°κ²°ν•˜λ©΄ 각 μ—£μ§€μ˜ μΆœμ²˜μ™€ κ·Όκ±°κ°€ λ³΄μ‘΄λœλ‹€. μ €μž₯μ†Œκ°€ λ°”λ€” λ•Œλ§ˆλ‹€ κ·Έλž˜ν”„λ„ κ°±μ‹ λ˜μ–΄ 였래된 정보가 μžλ™μœΌλ‘œ λ¬΄νš¨ν™”λœλ‹€.
  7. 7:08
    각 μ—μ΄μ „νŠΈμ— λ§žλŠ” μ»¨ν…μŠ€νŠΈ 제곡 각 μ—μ΄μ „νŠΈλŠ” μž‘μ—… μ„€λͺ…뿐 μ•„λ‹ˆλΌ κ·Έλž˜ν”„μ—μ„œμ˜ μœ„μΉ˜, ν•„μš”ν•œ μ œμ•½, ν™•λ³΄λœ 증거, 아직 풀리지 μ•Šμ€ μ§ˆλ¬ΈκΉŒμ§€ ν¬ν•¨ν•œ μž‘μ—…μš© μ»¨ν…μŠ€νŠΈ νŒ¨ν‚·μ„ λ°›λŠ”λ‹€. μ΄λ ‡κ²Œ ν•΄μ•Ό 전체 μ½”λ“œλ₯Ό μ™Έμš°λŠ” 것이 μ•„λ‹ˆλΌ, ν•„μš”ν•œ 정보λ₯Ό ν•„μš”ν•œ μ‹œμ μ— μ •ν™•νžˆ μ“°λŠ” 방식이 λœλ‹€.
  8. 7:53
    인간 μ£Όλ„ν˜• Blitzy ν”„λ‘œμ„ΈμŠ€ 전체 μ†Œν”„νŠΈμ›¨μ–΄ μžμ‚°μ„ 역곡학해 λΉ„μ¦ˆλ‹ˆμŠ€ 둜직과 μ˜μ‘΄μ„±μ„ μΆ”μΆœν•œ λ’€, μ‚¬μš©μž μš”κ΅¬λ₯Ό μ‹€ν–‰ κ°€λŠ₯ν•œ μ—μ΄μ „νŠΈ κ³„νšμœΌλ‘œ λ³€ν™˜ν•œλ‹€. μ€‘μš”ν•œ μ˜μ‚¬κ²°μ •μ€ 항상 인간 μŠΉμΈμ„ 거치고, μƒμ„±λœ μ½”λ“œλŠ” pull request와 검증 λ¬Έμ„œ ν˜•νƒœλ‘œ λ‚¨μœΌλ©°, λŸ°νƒ€μž„ λ™μž‘κΉŒμ§€ κ΄€μ°°ν•΄ λ°˜μ˜ν•œλ‹€.
  9. 9:32
    수천 개의 μ—μ΄μ „νŠΈμ™€ 지속적 ν…ŒμŠ€νŠΈ 수천 개의 μ—μ΄μ „νŠΈκ°€ λ™μΌν•œ κ³„νšμ„ κ³΅μœ ν•˜λ©΄μ„œλ„ λ¬Έλ§₯ 손싀 없이 ν˜‘μ—…ν•˜κ³ , μ½”λ“œ 생성보닀 ν…ŒμŠ€νŠΈμ— 더 λ§Žμ€ 연산을 μ“΄λ‹€. μ‹œμŠ€ν…œ λ¬Έλ§₯, 지속적 검증, λ³΄μ•ˆΒ·κ±°λ²„λ„ŒμŠ€ κ°€λ“œλ ˆμΌ, 인간 μ±…μž„ ꡬ쑰가 ν•¨κ»˜ μžˆμ–΄μ•Ό 생산 κ°€λŠ₯ν•œ μ½”λ“œκ°€ λ‚˜μ˜¨λ‹€.
  10. 11:35
    μƒˆ μ½”λ“œκ°€ κΈ°μ‘΄ μ½”λ“œμ™€ κ°™μŒμ„ 증λͺ…ν•˜κΈ° 정밀도, 반올림, μƒνƒœ, μž”μ•‘, 거래 기둝, 였λ₯˜ λ™μž‘κΉŒμ§€ κΈ°μ‘΄ λ©”μΈν”„λ ˆμž„κ³Ό ν˜„λŒ€ μ½”λ“œκ°€ μ™„μ „νžˆ μΌμΉ˜ν•΄μ•Ό ν•˜λ©°, 이λ₯Ό κ°€μ •μ΄λ‚˜ 약속이 μ•„λ‹ˆλΌ ν…ŒμŠ€νŠΈλ‘œ μž…μ¦ν•΄μ•Ό ν•œλ‹€. 각 μ½”λ“œ 생성 λ‹¨κ³„μ—μ„œ unit test, build, 톡합, 데이터 parity, end-to-end workflowλ₯Ό 검증해 byte for byte λ™μΌν•œ κ²°κ³Όλ₯Ό ν™•μΈν•œλ‹€.
  11. 13:28
    1μ„ΌνŠΈ 반올림 버그 Cobolκ³Ό JavaλŠ” 반올림 λ™μž‘μ΄ λ‹¬λΌμ„œ, κ²‰λ³΄κΈ°μ—λŠ” λ§žμ•„ 보여도 1μ„ΌνŠΈ 차이가 λ‚˜λŠ” 버그가 생길 수 μžˆλ‹€. 이런 λ―Έμ„Έν•œ μ°¨μ΄λŠ” λŒ€κ·œλͺ¨ κ±°λž˜μ—μ„œλŠ” 큰 μ†μ‹€λ‘œ μ΄μ–΄μ§€λ―€λ‘œ, parity testκ°€ μ—†μœΌλ©΄ λ†“μΉ˜κΈ° 쉽닀.
  12. 14:27
    은행과 λ³΄ν—˜μ‚¬μ˜ μ‹€μ œ κ²°κ³Ό ν•œ tier one bank의 λͺ¨λ†€λ¦¬μ‹ μ‹œμŠ€ν…œμ€ PostgreSQL, Java, TypeScript, Python 기반의 6개 λͺ¨λ“ˆλ‘œ λ°”λ€Œμ—ˆκ³  18 days λ§Œμ— λλ‚¬μœΌλ©°, 4,000개 μ΄μƒμ˜ ν…ŒμŠ€νŠΈκ°€ μž‘μ„±λ˜μ—ˆλ‹€. 35 million line mainframe은 4 days λ§Œμ— μ—­κ³΅ν•™λ˜μ—ˆκ³ , 25 million line λͺ¨λ†€λ¦¬μ‹μ€ 9λ°° λΉ λ₯΄κ²Œ ν˜„λŒ€ν™”λ˜μ–΄ λŒ€κ·œλͺ¨ μžμ‚°μ—μ„œλ„ νš¨κ³Όκ°€ μž…μ¦λ˜μ—ˆλ‹€.
  13. 16:37
    ν˜„λŒ€ν™”λ₯Ό λ„˜μ–΄ 이 접근법은 λ‹¨μˆœν•œ λ ˆκ±°μ‹œ ꡐ체가 μ•„λ‹ˆλΌ, μƒˆ κΈ°λŠ₯ μΆ”κ°€, λ³΄μ•ˆ μˆ˜μ •, 감사 λŒ€μ‘, 규제 μ€€μˆ˜, 사기 탐지 같은 λΉ„μ¦ˆλ‹ˆμŠ€ ν™•μž₯으둜 이어진닀. ν˜„λŒ€ν™”λœ 지식 κ·Έλž˜ν”„ μœ„μ— μƒˆλ‘œμš΄ κ·œμΉ™κ³Ό ν…ŒμŠ€νŠΈλ₯Ό λ”ν•˜λ©΄, μ‹œμŠ€ν…œ 전체λ₯Ό 더 λΉ λ₯΄κ³  μ‹Έκ²Œ ν™•μž₯ν•  수 μžˆλ‹€.
  14. 18:47
    자료 Nodes conference와 Blu Age sandbox, 그리고 AWS card demoλ₯Ό 톡해 지식 κ·Έλž˜ν”„ 기반 ν˜„λŒ€ν™”μ™€ 직접 μ²΄ν—˜ν•  수 μžˆλŠ” 자료λ₯Ό μ œκ³΅ν•œλ‹€. μžμ‹ μ˜ μ½”λ“œλ‘œ 직접 μ‹€ν—˜ν•΄ 보며 κ°œλ…μ„ 검증해 λ³΄λΌλŠ” λ©”μ‹œμ§€λ‘œ λ§ˆλ¬΄λ¦¬ν•œλ‹€.

싀무 μΈμ‚¬μ΄νŠΈ

  • λ ˆκ±°μ‹œ ν˜„λŒ€ν™”μ—μ„œ 핡심 병λͺ©μ€ μ½”λ“œ λ³€ν™˜ λŠ₯λ ₯이 μ•„λ‹ˆλΌ, μ½”λ“œκ°€ μ°Έμ‘°ν•˜λŠ” 관계와 계약을 μ–Όλ§ˆλ‚˜ μ •ν™•νžˆ λ³΅μ›ν•˜λŠλƒμ΄λ‹€.
  • μ—μ΄μ „νŠΈ λ„μž…μ˜ μ„±νŒ¨λŠ” 더 큰 λͺ¨λΈλ³΄λ‹€ 더 μ •ν™•ν•œ λ¬Έλ§₯ 섀계와 검증 체계에 달렀 있으며, κ·Έλž˜ν”„κ°€ κ·Έ λ¬Έλ§₯의 쀑심 역할을 ν•œλ‹€.
  • κΈˆμœ΅Β·λ³΄ν—˜μ²˜λŸΌ κ·œμ œμ™€ 정밀도가 μ€‘μš”ν•œ μ˜μ—­μ—μ„œλŠ” 인간 승인, ν…ŒμŠ€νŠΈ, 데이터 parityκ°€ ν•¨κ»˜ μžˆμ–΄μ•Όλ§Œ AIλ₯Ό 생산 μ‹œμŠ€ν…œμ— 넣을 수 μžˆλ‹€.