본문 바로가기
IT 정보/IT 용어

'코볼 컬리그' - 초보 메인프레임 개발자를 위한 검색 AI 툴

by J코딩 2022. 9. 16.
반응형

다른 모든 분야와 마찬가지로 소프트웨어 개발에도 생산성이 중요하다. 그런데 일반적으로 개발자가 필요한 변경 작업을 하기 위해 코드를 검색하고 동작을 이해하는 데만 업무 시간의 약 75%를 소비한다.

개발자가 실질적인 작업을 시작하기 전에 맥락을 파악하는 데만 이처럼 많은 시간을 쓴다는 것은 어려운 개발 과제에 대한 창의적인 해결책을 구상하는 데 투자할 시간과 에너지가 그만큼 줄어든다는 것을 의미한다. 더구나 전 세계적인 숙련된 개발자 인력 부족, 그리고 끊임없이 변화하는 비즈니스 요구에 맞춰 빈번하게 애플리케이션을 업데이트해야 할 필요성 등을 고려하면 개발자의 생산성을 높여야 하는 이유는 분명하다.

이런 가운데 인공지능을 이용해 개발자 애플리케이션 지식의 빈틈을 메우고 여러 애플리케이션에 걸쳐 개발자의 생산성을 크게 높여주는 툴이 속속 등장하고 있다. 예를 들어 페이즈 체인지 소프트웨어(Phase Change Software)의 코볼 컬리그(COBOL Colleague)는 개발자가 코볼 코드베이스의 활용 관행을 빠르게 습득하고 코드 작업에 더 집중하는 데 도움이 되는 검색 AI 기반 툴이다.

코볼 컬리그는 레거시 메인프레임 애플리케이션을 사용하는 많은 기업이 필요한 애플리케이션 전문 지식을 즉시 확인하고 애플리케이션에 대한 지적 통제력을 되찾을 수 있도록 하는 툴이다. 앞으로 이와 비슷한 기술을 다른 모든 프로그래밍 언어에 적용하게 될 것이다. 여기서는 메인프레임 애플리케이션을 유지관리하는 개발자가 직면하는 과제를 알아보고, 코볼 소스 코드를 다루는 개발자에게 코볼 컬리그가 어떻게 도움이 되는지 살펴본다.

메인프레임 애플리케이션 현대화

수많은 기업이 다양한 핵심 비즈니스 업무를 여전히 레거시 애플리케이션에 의존한다. 세계 주요 은행과 대형 보험사 및 소매업체의 상당수, 그리고 포천 500대 기업 대다수가 비즈니스에 메인프레임을 활용한다.

전 세계적으로 메인프레임이 처리하는 핵심 프로덕션 워크로드의 비율은 여전히 약 68%에 이른다. 비즈니스가 성장하고 성숙하는 과정에서 이러한 애플리케이션도 정적인 상태로 머물 수 없고 계속해서 유지보수해야 한다.

그러나 매일 조 단위의 트랜잭션을 안정적으로 처리하는 메인프레임 애플리케이션을 유지관리하는 데 따르는 위험은 점점 더 커지고 있다. 숙련된 개발자가 은퇴하거나 회사를 옮기고, 개발자가 복잡한 핵심 시스템을 효과적으로 유지하고 지원할 수 있게 해주는 전문적인 업계 및 기관 지식이 사라지면서 애플리케이션을 안전하게 업데이트하기가 어려워지고 반대로 기업은 갈수록 더 취약해지고 있다.

게다가 많은 현대화 프로젝트는 기존 애플리케이션의 코드에 문제가 없고 분석가와 프로그래머가 그 코드의 기능을 정확히 이해할 수 있다는 '잘못된' 전제에서 출발한다. 그러나 수백만 라인의 코드로 구성된 이와 같은 소스 코드 리포지토리에는 방대한 양의 죽은 코드 또는 비효율적인 코드, 그리고 더 이상 유효하지 않은 오래된 비즈니스 규칙이 포함된 경우가 많다. 결국 현대화 프로젝트 이후의 결과물은 기존 코드를 기반으로 해서 만들어진 '근시안적 솔루션'이고, 이로 인해 변경하고 유지하는 과정에서 심각한 위험을 피하기가 어려운 통제 불능 시스템이 만들어진다.

설사 기업이 이미 유지보수 전략을 갖추고 있다 해도 이 행동 계획은 특정 언어 지식을 갖춘 개발자를 찾는 데 초점을 맞출 가능성이 높다. 핵심 애플리케이션을 유지관리하는 데 필요한 애플리케이션 지식의 손실이라는 더 큰 문제는 간과되는 경우가 많다. 시스템을 처음 접하는 개발자는 시스템에 대한 심층적 지식을 보유한 베테랑 개발자와 협업하든 전통적인 코드 검색 및 정적/동적 분석 툴을 사용하든 프로덕션 수준의 변경 작업을할 수 있게 되기까지 보통 18개월 정도가 필요하다. 그러나 대부분의 기업은 개발자가 핵심 레거시 애플리케이션을 보수하고 업데이트할 준비가 되기까지 그렇게 오랜 기간 현장 교육을 할 수 있는 여건이 안 된다.

불충분한 기존 툴

설상가상으로, 특히 시스템 전반적으로 복잡하게 코드가 얽혀 있음을 고려하면 현재의 코드 검색 툴, 린터, 정적 및 동적 분석 툴은 부족한 부분이 많다. 특히 집중적으로 살펴봐야 할 구체적인 코드 라인을 식별하는 데 있어 여전히 미흡하다. 이러한 툴은 개발자 효율성을 높여주지만 그 개선의 폭은 미미하다.

예를 들어 버그의 원인을 찾거나 프로그램을 개선하거나 기능을 추가하는 작업이 있을 때, 많은 현대 소프트웨어 개발 툴은 수백만 라인의 코드를 분석하고 오류를 표시하고 수정안을 제안하거나 권장 사항을 제시한다. 그러나 이러한 툴을 사용하더라도 발견 또는 표시된 코드 조각을 취합해 다운타임이나 기타 피해를 유발하지 않는 변경을 효과적으로 수행하려면 개발자는 여전히 자신의 인간적 인지에 의존해야 한다. 게다가 사람은 실수를 할 수 있으므로 많은 시간이 들고 정신적으로 힘든 이 인지적 노동이 항상 “정답”을 도출하지는 못한다. 오히려 오류를 유발하는 경우도 많다.

규정 준수 업데이트를 생각해 보자. 보안 취약점이 단순해 현재의 툴로 식별이 가능하다 해도 규정을 준수하기 위해 업데이트해야 하는 적절한 코드로 범위를 좁히는 과정은 프로그램을 처음부터 다시 만드는 것보다 더 어렵고 더 많은 시간이 필요할 수 있다. 관련된 코드가 여러 파일에 흩어져 있으므로 개발자는 프로그램이 왜 특정 방식으로 동작하는지 생각해 그 질문을 일련의 작업과 쿼리로 개념화해 문제가 되는 코드를 찾고 업데이트해 규정 준수 문제를 해결해야 하기 때문이다.
또한 검색에서 파일을 제거하든, 관련 가능성이 있는 코드 덩어리를 격리하든, 로직을 시뮬레이션하든, 종속성 분석을 수행하든, 개발자는 각 코드 라인에서 관련된 데이터를 의식해야 하는데 이 과정에서 다뤄야 하는 라인의 수가 상당히 많을 수 있다. 게다가 개발자는 머릿속에서 각 조각을 취합하기 전에 관련성이 없다고 보이는 코드 라인을 배제해야 하는데 이 판단이 틀릴 가능성도 있다.

유능하고 경험이 많은 최상위 소프트웨어 개발자라 해도 관련성이 없어 보이는 방대한 코드 더미 속에서 세부적인 프로그램 실행 경로의 개별적 측면과 연관된 측면을 동시에 추적하기란 매우 어렵다. 가장 큰 문제는 최첨단 툴조차 한 프로그램 영역의 코드 변경이 전체적인 애플리케이션에 어떤 영향을 미칠지 알려주지 않는다는 것이다. 코드 실행에 대한 인지 또는 전방 시뮬레이션 기능이 있다면 개발자에게 확실히 유용하겠지만 그런 기능은 없다.

시스템을 처음 접하는 소프트웨어 개발자는 여전히 코드가 하는 일을 머릿속에서 모델링해서 변경해야 할 동작을 파악해야 한다. 만약 이 지식을 갖추고 매끄럽게 제공하는 툴이 있다면 개발자는 자신이 실행할 변경이 전체 시스템을 멈추게 하지 않음을 확신할 수 있을 것이다.

AI 동료와의 협업

메인프레임 개발자를 위한 검색 AI 파트너인 코볼 컬리그는 인텔리전스 증강을 사용해 이런 애플리케이션 지식의 빈틈을 메운다. 애플리케이션 코드에 대해 심볼릭 머신러닝을 사용하는데, 개발자가 동작을 “요청”하기만 하면 원하는 동작을 모사하기 위해 필요한 정확한 코드와 데이터가 즉각 반환된다는 점에서 기존 툴과 다르다. 코볼 컬리그는 애플리케이션의 이전 개발자가 애플리케이션을 만들고 수정했을 때 알고 있던 것을 이해하는 AI 에이전트이며, 개발자와 협업하면서 자신의 지식을 공유하는 기능이 탁월하다.

예를 들어 일반적인 버그 수정 방법의 하나는 정상적으로 동작하는 코드를 찾아서 개발자가 이 코드를 기반으로 잘못 동작하는 코드를 찾도록 하는 것이다. 여기서 개발자는 두 가지를 머릿속에서 비교할 수 있다. 코볼 컬리그가 없다면 개발자는 두 가지 동작을 수행하는 코드 및 관련 데이터를 추적하고 현재 진행되는 처리 과정을 머릿속으로 비교해야 한다. 개발자가 하는 이 비교 작업은 단순한 코드 차이 비교가 아니다.

반면 코볼 컬리그의 의미 차이(Semantic Diff) 기능을 이용하면, 코드가 정상 작동할 때와 잘못 작동할 때의 코드 실행 경로 시뮬레이션 트레이스를 생성한다. 이러한 시뮬레이션 트레이스는 텍스트 비교를 훨씬 뛰어넘어 개발자가 루프 구조 내에서 충분히 동작을 비교할 수 있게 해준다. 잘못된 기능이 루프의 두 번째 반복에서만 드러나는 경우가 존재할 수 있는데 이런 경우 텍스트 비교는 도움이 되지 않지만 코볼 컬리그를 사용하면 확인할 수 있다.

코볼 컬리그는 인텔리전스 증강을 사용해 계산이 나타내는 것을 재해석하고 적시에, 직관적인 방식으로 개발자가 이해하기 쉬운 개념으로 변환하므로 수백만 라인의 코드를 수동으로 검색해 문제가 되는 동작을 찾을 필요가 없다. 코볼 컬리그는 이와 같은 방식으로 검색 AI를 채용함으로써 코드 리포지토리를 사람이 생각하는 것과 같은 인과관계로 소스 코드를 표현하는 지식 리포지토리로 변환한다. 이 표현은 개발자가 궁극적으로 찾는 것, 즉 코드 및 관련 데이터와 연동된다.

이처럼 코볼 컬리그는 코볼 소스 코드로부터 학습하고 복잡한 핵심 메인프레임 애플리케이션을 이해하는 데 필요한 지식을 수집하는 검색 AI 에이전트다. 메인프레임 개발자가 프로덕션 코드 결함을 안전하고 효율적, 효과적으로 격리하고 규정 준수를 위한 변경이 필요한 코드를 파악하고 핵심 레거시 애플리케이션의 현대화에 따르는 위험을 낮춰준다.

기업에서 코볼 컬리그를 활용하면 소프트웨어 개발팀은 애플리케이션에 대해 학습하면서 창의적으로 생각하고 생산성을 유지하고 더 많은 생각이 필요한 작업에 집중할 수 있다. 물론 코볼 컬리그가 개발자를 대체할 수는 없다. 코볼 컬리그는 개발자가 작업을 시작하는 첫날부터 개발자의 스킬을 강화하고 창의성을 끌어내고 생산성을 크게 높여주는 툴이다.

반응형

'IT 정보 > IT 용어' 카테고리의 다른 글

딥러닝  (2) 2022.09.22
애플 페이  (0) 2022.09.16
딥러닝 프레임워크  (2) 2022.09.08
비주얼 스튜디오 코드의 새로운 확장 모델 이해하기  (0) 2022.09.06
AI(인공지능)  (0) 2022.08.31

댓글