엔터프라이즈 프레임워크의 미래

엔터프라이즈 프레임워크의 미래

엔터프라이즈 프레임워크(Enterprise Framework) 발전 배경

엔터프라이즈 프레임워크는 기업의 비즈니스 도메인(금융, 제조, 통신 등)에서 사용할 애플리케이션을 개발하기 위한 프레임워크를 말합니다. 대표적인 예로 삼성SDS의 오픈소스 기반 Java 애플리케이션 개발 프레임워크인 애니프레임(Anyframe)을 들 수 있습니다.

엔터프라이즈 프레임워크는 2000년대 초반 메인프레임(Mainframe)을 유닉스(Unix)로 전환하는 차세대 시스템 구축 사업을 통해 비약적인 발전을 이루었습니다. 차세대 시스템 사업은 빠르게 발전하는 IT 인프라와 기업 비즈니스 도메인의 확장을 위해 하드웨어 및 소프트웨어 전반을 교체하는 대규모 프로젝트로 금융권을 중심으로 추진하였습니다. 차세대 시스템이 도입된 배경은 △ 메인프레임 기반의 시스템 노후화로 유지보수 비용 증가, △ 신상품 개발 등 현업의 요구사항에 즉각 대응이 어려운 IT 구조, △ 시스템 간 복잡한 연계, △ 금융 비즈니스 환경의 급격한 변화에 따른 IT 대처 능력 부족 등을 꼽을 수 있습니다.

차세대 시스템 사업은 IT 인프라를 바꾸는 것을 넘어 비즈니스 확장에 재빨리 대응할 수 있는 애플리케이션의 유연한 구조 변경 목적이 가장 컸으며 그 중심에 프레임워크가 있었습니다.

메인프레임에 대응하는 오픈 시스템
IBM 메인프레임 오픈시스템
OS OS390 Unix (HP-UX, AIX)
DB DB2 RDBMS (DB2, Oracle)
Middleware CICS TP-Monitor, WAS
Online Transaction CICS Framework
Batch Job JES Framework
메인프레임에 대응하는 오픈 시스템

애플리케이션의 유연한 구조 변경을 위해 프레임워크가 많은 부분을 담당하면서 엔터프라이즈 시스템의 핵심으로 자리매김하였습니다. 특히, 소프트웨어 컴포넌트를 조합하는 방식의 CBD(Component Based Development) 개발방법론과 프레임워크가 합쳐지면서 레거시(Legacy) 시스템의 비즈니스 로직을 공통화해 중복을 제거하였고, 분산된 데이터를 단일 데이터베이스로 통합하였습니다. 이를 통해 개발 비용은 낮추고 SW 품질은 높일 수 있었습니다.

CBD 개발방법론과 프레임워크가 통합되면서 개발 효율이 향상되었고 엔터프라이즈 시스템의 핵심으로 자리 잡았습니다. CBD 개발방법론과 프레임워크가 통합되면서 개발 효율이 향상되었고 엔터프라이즈 시스템의 핵심으로 자리 잡았습니다.

엔터프라이즈 프레임워크의 대표적인 기능은 △ 공통 및 시스템 관리 기능 제공(개발자는 비즈니스 로직에 집중), △ 시스템 관점에서 선∙후행 처리, 업무 공통 영역에서 선∙후 처리 기능, △ 채널 연계, 다채널, △ 형상∙배포 관리 등이 있습니다. 이들 기능 외에 개발 표준을 제공함으로써 생산성 및 품질 향상 효과를 얻을 수 있는데 대표적인 개발 표준으로 개발 방법론, 개발 프로세스, 개발 환경, DevOps 등이 있습니다.

프레임워크는 지속적으로 기능을 추가하면서 비즈니스 애플리케이션을 더욱 쉽고 빠르게 개발할 수 있도록 발전해왔습니다. 그러나 이에 대한 반대급부로 애플리케이션의 프레임워크에 대한 의존도가 높아지고 프레임워크의 복잡도 또한 상승하면서 불확실성이 높은 현대 비즈니스 환경에 유연하게 대처하지 못하는 원인이 되기도 합니다.

디지털 트랜스포메이션(Digital Transformation)과 프레임워크

기업들은 광속으로 변하는 시장 환경에 대응하기 위해 디지털 트랜스포메이션으로 사업 모델과 비즈니스 방식의 혁신을 꾀하고 있습니다. 과거 차세대 시스템 붐이 일었던 것과 비슷한 현상으로 볼 수 있습니다. 그러나 전통적인 기업들이 비즈니스 모델 전환에 어려움을 겪는 동안 IT 전문기업이 시장 변화에 더 빨리 대응하면서 앞질러 나가는 경우가 발생하고 있습니다.

예를 들어, 모 인터넷 전문은행의 경우 IT 회사에서 금융사업을 시작한 것임에도 불구하고 디지털 트랜스포메이션을 통해 신용대출 시장에서 5대 시중은행 다음으로 성장하였습니다. IT 전문기업이 기존의 산업 영역에 뛰어들어 급부상하면서 전통기업들을 불안하게 하였고, 해당 기업들 역시 디지털 트랜스포메이션을 통한 혁신을 추진할 수밖에 없도록 만들고 있습니다.

왜 IT 전문기업이 전통기업보다 디지털 트랜스포메이션에 강할까요? 그 이유는 비즈니스와 IT의 결합을 잘 이끌어 낼 수 있기 때문입니다. 비즈니스와 IT의 성공적인 결합을 위해서는 1) 비즈니스 민첩성(Agility)∙데브옵스(DevOps), 2) 애플리케이션 현대화(Application Modernization), 3) IT 역량 내재화 같은 요소들이 필요합니다. 이 중 1)∙2)번은 전통기업의 레거시 시스템에서 엔터프라이즈 프레임워크와 밀접하게 엮여 있습니다. 엔터프라이즈 프레임워크는 비즈니스 애플리케이션의 개발부터 배포 및 운영에 이르는 통합 개발환경 역할, 즉 데브옵스를 맡고 있어 1번 항목에 대응합니다. 여기에 수많은 애플리케이션의 보조 기능까지 내재하고 있다 보니 MSA(Microservices Architecture) 전환이나 클라우드 네이티브(Cloud Native) 환경 구현을 위해 엔터프라이즈 프레임워크로부터 어떻게 분리시켜야 할지가 큰 관건이 되며 이는 2번 항목과 연관됩니다.

IT 전문기업이 디지털 트랜스포메이션에 강한 이유는 비즈니스와 IT를 결합해내는 역량이 뛰어나기 때문입니다. IT 전문기업이 디지털 트랜스포메이션에 강한 이유는 비즈니스와 IT를 결합해내는 역량이 뛰어나기 때문입니다.

나아갈 방향

레거시 시스템에 적용된 엔터프라이즈 프레임워크의 변경 혹은 업그레이드는 비즈니스 애플리케이션의 프레임워크에 대한 높은 의존성을 해결하기가 어려워 차세대 사업과 같이 빅뱅 방식의 시스템 구조 변화를 추진하는 경우에만 가능했습니다. 하지만 최근 들어 빅뱅 방식의 변화는 기피하는 추세에 있습니다. 왜냐하면 과거보다 시스템 규모와 데이터양이 더 거대해졌고 ITO(IT Outsourcing) 사업모델로 인해 전체 비즈니스를 이해하고 분석∙설계할 수 있는 역량을 가진 주체가 없는 데다 프로젝트에 따르는 비용과 위험 부담이 크기 때문입니다.

따라서 디지털 트랜스포메이션의 추진 과정에서 엔터프라이즈 프레임워크 또한 자체적으로 업그레이드하고 개선할 수 있는 모델이 필요합니다. 어떻게 하면 프레임워크도 민첩(Agility)하게 발전하면서 기존과 같은 풍부한 기능을 제공할 수 있을까요? 사실 엔터프라이즈 프레임워크의 역할은 최근 개발 플랫폼(스펙 기반)과 비즈니스 애플리케이션이 결합하는 양상과 비슷합니다. 프레임워크 본연의 기능과 비즈니스 애플리케이션의 필요로 인해 추가된 기능을 분리한 후 스펙(Spec.) 정의를 통한 재결합이 필요합니다. 예를 들어, 애플리케이션에서 외부 요청에 대해 EAI(Enterprise Application Integration)를 활용하여 정보를 가져오는 기능이 필요하다면 기존에는 프레임워크에 전용 클라이언트 라이브러리(JAR)를 포함했습니다. 하지만 프레임워크와 EAI가 서로 합의된 형태의 스펙을 정의, 즉 호출하는 형태와(호출 방식, API, 전달하는 파라미터) 응답이 오는 형태(응답에 대한 프로토콜, 응답 구조)를 스펙 기반으로 개발, 제공하는 구조로 구현할 수 있습니다. 이렇게 만들어진 구조에서는 스펙만 준수하면 개발 플랫폼, 엔터프라이즈 프레임워크, 비즈니스 애플리케이션의 독립적인 업그레이드가 가능해져 개별적으로 유연하게 발전해 나갈 수 있게 됩니다.

오래전에 도입된 프레임워크도 나름의 기술 컨셉과 유용한 기능성을 가지고 있음을 부인할 수 없습니다. 다만 변화무쌍한 IT 환경에서 치열하게 경쟁하는 다른 요소 기술 및 솔루션들과 마찬가지로 프레임워크 영역 또한 진화해야 할 시점이 도래하고 있을 뿐입니다. 디지털 트랜스포메이션 시대에 걸맞은 엔터프라이즈 프레임워크 모델의 개선과 발전을 기대해봅니다.



▶  해당 콘텐츠는 저작권법에 의하여 보호받는 저작물로 기고자에게 저작권이 있습니다.
▶  해당 콘텐츠는 사전 동의 없이 2차 가공 및 영리적인 이용을 금하고 있습니다.


공유하기 열기
김성민
김성민 IT 테크놀로지 전문가

에스코어㈜ 소프트웨어사업부 개발플랫폼그룹

프레임워크 파트장으로서 애니프레임(Anyframe) 개발, 구축 및 기술지원 업무를 담당하고 있습니다.