엔터프라이즈 프레임워크(Enterprise Framework) 발전 배경
엔터프라이즈 프레임워크는 기업의 비즈니스 도메인(금융, 제조, 통신 등)에서 사용할 애플리케이션을 개발하기 위한 프레임워크를 말한다. 대표적인 예로 삼성SDS의 오픈소스 기반 Java 애플리케이션 개발 프레임워크인 애니프레임(Anyframe)을 들 수 있다.
엔터프라이즈 프레임워크는 2000년대 초반 메인프레임(Mainframe)을 유닉스(Unix)로 전환하는 차세대 시스템 구축 사업을 통해 비약적인 발전을 이루었다. 차세대 시스템 사업은 빠르게 발전하는 IT 인프라와 기업 비즈니스 도메인의 확장을 위해 하드웨어 및 소프트웨어 전반을 교체하는 대규모 프로젝트로 금융권을 중심으로 추진되었다. 차세대 시스템이 도입된 배경은 △메인프레임 기반의 시스템 노후화로 유지보수 비용 증가 △신상품 개발 등 현업의 요구사항에 즉각 대응이 어려운 IT 구조 △시스템간 복잡한 연계 △금융 비즈니스 환경의 급격한 변화에 따른 IT 대처 능력 부족 등을 꼽을 수 있다.
차세대 시스템 사업은 IT 인프라를 바꾸는 것을 넘어 비즈니스 확장에 재빨리 대응할 수 있는 애플리케이션의 유연한 구조 변경 목적이 가장 컸으며 그 중심에 프레임워크가 있었다.
애플리케이션의 유연한 구조 변경을 위해 프레임워크가 많은 부분을 담당하게 되면서 엔터프라이즈 시스템의 핵심으로 자리매김 하였다. 특히 소프트웨어 컴포넌트를 조합하는 방식의 CBD(Component Based Development) 개발방법론과 프레임워크가 합쳐지면서 레거시(Legacy) 시스템의 비즈니스 로직을 공통화해 중복을 제거하였고 분산된 데이터를 단일 데이터베이스로 통합하였다. 이를 통해 개발 비용은 낮추고 SW 품질은 높일 수 있었다.
엔터프라이즈 프레임워크의 대표적인 기능은 △공통 및 시스템 관리 기능 제공(개발자는 비즈니스 로직에 집중) △시스템 관점에서 선∙후행 처리, 업무 공통 영역에서 선∙후 처리 기능 △채널 연계, 다채널 △형상∙배포 관리 등이 있다. 이들 기능 외에 개발 표준을 제공함으로써 생산성 및 품질 향상 효과를 얻을 수 있는데 대표적인 개발 표준으로 개발 방법론, 개발 프로세스, 개발 환경, 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번 항목과 연관된다.
나아갈 방향
레거시 시스템에 적용된 엔터프라이즈 프레임워크의 변경 혹은 업그레이드는 비즈니스 애플리케이션의 프레임워크에 대한 높은 의존성을 해결하기가 어려워 차세대 사업과 같이 빅뱅 방식의 시스템 구조 변화를 추진하는 경우에만 가능했다. 하지만 최근 들어 빅뱅 방식의 변화는 기피하는 추세에 있다. 왜냐하면 과거보다 시스템 규모와 데이터 양이 더 거대해졌고 ITO(IT Outsourcing) 사업 모델로 인해 전체 비즈니스를 이해하고 분석∙설계할 수 있는 역량을 가진 주체가 없는데다 프로젝트에 따르는 비용과 위험 부담이 크기 때문이다.
따라서 디지털 트랜스포메이션의 추진 과정에서 엔터프라이즈 프레임워크 또한 자체적으로 업그레이드 되고 개선할 수 있는 모델이 필요하다. 어떻게 하면 프레임워크도 민첩(Agility)하게 발전하면서 기존과 같은 풍부한 기능을 제공할 수 있을까?
사실 엔터프라이즈 프레임워크의 역할은 최근 개발 플랫폼(스팩 기반)과 비즈니스 애플리케이션이 결합하는 양상과 비슷하다. 프레임워크 본연의 기능과 비즈니스 애플리케이션의 필요로 인해 추가된 기능을 분리한 후 스팩(Spec.) 정의를 통한 재결합이 필요하다.
예를 들어 애플리케이션에서 외부 요청에 대해 EAI(Enterprise Application Integration)를 활용하여 정보를 가져오는 기능이 필요하다면 기존에는 프레임워크에 전용 클라이언트 라이브러리(JAR)를 포함시켰다. 하지만 프레임워크와 EAI가 서로 합의된 형태의 스팩을 정의, 즉 호출하는 형태와(호출방식, API, 전달하는 파라미터) 응답이 오는 형태(응답에 대한 프로토콜, 응답 구조)를 스팩 기반으로 개발, 제공하는 구조로 구현할 수 있다. 이렇게 만들어진 구조에서는 스팩만 준수하면 개발 플랫폼∙엔터프라이즈 프레임워크∙비즈니스 애플리케이션의 독립적인 업그레이드가 가능해져 개별적으로 유연하게 발전해 나갈 수 있게 된다.
사용한지 오래된 낡은 프레임워크도 나름의 기술 컨셉과 유용한 기능성을 가지고 있음을 부인할 수 없다. 다만 변화무쌍한 IT 환경에서 치열하게 경쟁하는 다른 요소 기술 및 솔루션들과 마찬가지로 프레임워크 영역 또한 진화해야 할 시점이 도래하고 있을 뿐이다. 디지털 트랜스포메이션 시대에 걸맞는 엔터프라이즈 프레임워크 모델의 개선과 발전을 기대해본다.
김성민 프로
에스코어㈜ 소프트웨어사업부 개발플랫폼그룹
프레임워크 파트장으로서 애니프레임(Anyframe) 개발, 구축 및 기술지원 업무를 담당하고 있습니다.
Register for Download Contents
- 이메일 주소를 제출해 주시면 콘텐츠를 다운로드 받을 수 있으며, 자동으로 뉴스레터 신청 서비스에 가입됩니다.
- 뉴스레터 서비스 가입 거부 시 콘텐츠 다운로드 서비스가 제한될 수 있습니다.
- 파일 다운로드가 되지 않을 경우 s-core_mktg@samsung.com으로 문의해주십시오.