00:00:00개발자들이 Clod Code를 활용해 COBOL 코드베이스를 현대화하는 방법을 살펴보겠습니다.
00:00:05이 데모에서는 AWS의 메인프레임 현대화 데모 저장소를 사용하겠습니다.
00:00:11약 100개 파일로 구성된 중간 규모의 신용카드 관리 시스템으로,
00:00:15COBOL 프로그램,
00:00:16카피북,
00:00:17JCL 스크립트가 포함되어 있습니다.
00:00:191단계 – 발견 및 문서화 우리의 COBOL 코드베이스는 거의 문서화되지 않았습니다.
00:00:25이것은 물론 레거시 코드베이스에서 흔한 일인데,
00:00:28중요한 비즈니스 로직과 규제 요구사항이 문서화되지 않은 코드에 포함되어 있고,
00:00:34코드를 작성한 개발자들은 이미 떠났으며,
00:00:36COBOL에 능숙한 개발자를 고용하기 어렵습니다.
00:00:40먼저 Clod Code의 /agent 명령을 사용하여 특화된 서브에이전트를 만들었습니다.
00:00:44이것이 우리의 COBOL 문서화 전문가이자 번역가였습니다.
00:00:47서브에이전트는 Clod Code에 의해 병렬로 호출될 수 있으며,
00:00:51메인 스레드를 오염시키지 않도록 격리된 컨텍스트 윈도우로 작동합니다.
00:00:56사고 모드를 활성화하고 Clod Code에 코드베이스의 아키텍처를 분석해 달라고 요청했습니다.
00:01:01Clod Code는 94개 파일 모두의 할 일 목록을 작성하고 진행 상황을 추적하여 파일이 두 번 처리되지 않고 놓친 것이 없도록 했습니다.
00:01:09Clod가 작성한 문서는 단순한 코드 주석을 넘어섰습니다.
00:01:13예를 들어, 이자 계산 프로그램 CBACT04C를 살펴봅시다.
00:01:20전체 비즈니스 워크플로우,
00:01:21프로그램이 거래 카테고리 잔액을 읽는 방식,
00:01:24계정 그룹별 이자율을 조회하는 방식,
00:01:26폴백 이자율에 대한 비즈니스 규칙을 적용하는 방식,
00:01:29그리고 계정 레코드를 업데이트하는 방식을 추출했습니다.
00:01:33Clod는 각 파일에 대해 이를 수행했을 뿐만 아니라 평문으로 두 개의 메모리 파일을 작성했습니다.
00:01:39Catalog.txt는 CBACT04C 같은 암호화된 이름을 이자 계산기 배치 프로그램으로 변환합니다.
00:01:48Relationships.txt는 간단한 파이프 구분 형식을 사용하여 모든 종속성을 매핑합니다.
00:01:55이러한 인덱스를 사용하여 Clod는 머메이드 다이어그램을 생성했고,
00:01:59거래 입력에서 전기,
00:02:00이자 계산,
00:02:01최종적으로 고객 명세서까지 데이터가 흐르는 방식을 보여주는 일일 배치 처리 워크플로우의 완전한 맵을 생성했습니다.
00:02:08이 데모에서 Clod Code는 100페이지 이상의 문서를 작성하기 위해 1시간 동안 계속 실행되었지만,
00:02:15Clod Code는 30시간 이상 자율적으로 실행할 수 있으며,
00:02:19여기서 사용된 기술은 훨씬 더 큰 코드베이스로 확장됩니다.
00:02:232단계.
00:02:24마이그레이션 및 검증.
00:02:26Cobalt 코드베이스를 철저히 문서화한 후,
00:02:28Clod에 핵심 기능 중 하나를 Java로 마이그레이션해 달라고 요청했습니다.
00:02:31Clod가 파일을 조기에 편집하지 않고 전체 마이그레이션 전략을 신중하게 생각하도록 계획 모드로 전환했습니다.
00:02:39Clod는 이전에 CBACT04C로 알려진 프로그램을 분석하고 줄 바꿈 처리 및 다중 파일 조정과 같은 복잡한 Cobalt 패턴을 식별했습니다.
00:02:50Clod는 이 기능에 대해 5단계로 구성된 마이그레이션 계획을 개발했습니다.
00:02:541.
00:02:55프로젝트 구조를 만듭니다.
00:02:562.
00:02:57카피북에서 Java 클래스로 데이터 모델을 변환합니다.
00:02:593.
00:03:00원본 파일 형식과 호환되는 I/O 레이어를 구축합니다.
00:03:044.
00:03:05Cobalt 특정 동작을 보존하면서 비즈니스 로직을 변환합니다.
00:03:08그리고 마지막으로 원본 코드베이스의 경우 GNU Cobalt 3.2.0을 사용하고 Java 17을 사용하는 이중 테스트 하네스를 만듭니다.
00:03:17결과 Java 코드는 단순한 구문 변환을 넘어섰습니다.
00:03:20Clod는 적절한 디자인 패턴, 오류 처리, 로깅이 포함된 적절한 Java 클래스를 만들었습니다.
00:03:25현대적인 개발 팀이 실제로 유지보수할 관용적인 Java입니다.
00:03:30다음은 새로운 Java 코드가 대체하는 Cobalt 코드와 동일하게 작동하는지 확인하는 검증입니다.
00:03:37Clod는 여러 테스트 데이터 파일을 만들고 원본 Cobalt와 새 프로그램 모두에 대해 실행했습니다.
00:03:43검증은 최종 출력뿐만 아니라 중간 계산, 파일 쓰기, 데이터 변환을 비교했습니다.
00:03:50결과는 완벽한 비트 대 비트 충실도였습니다.
00:03:53모든 계산, 비즈니스 규칙, 엣지 케이스가 보존되었습니다.
00:03:57물론 이 데모 애플리케이션은 레거시 Cobalt 코드베이스보다 훨씬 작습니다.
00:04:02하지만 여기서 사용된 모든 기술은 확장 가능합니다.
00:04:04Clod Code는 개발자들이 단 12개월 전에는 불가능했을 신뢰도와 효율성으로 코드베이스를 현대화할 수 있도록 힘을 실어줄 것입니다.