IT Solutions

성공적인 프로젝트로 가는 첫걸음 ‘DevOnFrame’

2017.09.04 09:30

2000년 초기, LG CNS는 개발 생산성 향상을 목표로 하는 개발자 요건 중심의 LAF/J라는 자사 프레임워크를 만들었습니다. 이후 LAF/J를 발전시킨 고객 요건 중심의 DevOn Framework를 만들어 수많은 프로젝트에서 사용되면서 철저한 검증을 받았습니다.


2010년 이후로는 프레임워크로 인한 종속성 문제가 대두되었습니다. 고객들의 오픈소스 프레임워크에 대한 요구가 증가함에 따라 LG CNS도 오픈소스 기반의 프레임워크인 DevOnFrame을 2014년에 발표하였습니다. 이후로 DevOnFrame은 현재까지 수백 곳의 사이트에서 사용되며 프로젝트를 성공적으로 이끌고 있습니다.



LG CNS의 전사 표준 프레임워크인 DevOnFrame은 Enterprise 시스템 개발을 효과적으로 진행하기 위한 아키텍처, 공통 컴포넌트, 템플릿 프로젝트 등을 제공합니다. 이를 통해 빠른 설계 및 개발이 가능하며 유지보수를 용이하게 진행할 수 있습니다. DevOnFrame은 자바 기반의 애플리케이션 프레임워크로써, 업계 표준으로 활용되는 다양한 오픈 소스들로 구성되어 있습니다.


또한, 오픈 소스를 활용하여 비즈니스 애플리케이션을 개발하는 과정에서 어려움을 느끼게 되는 오픈 소스의 선택, 활용 방법, 테스트 등에 대한 솔루션을 정형화된 가이드와 사례를 통해 제공하고 있는데요. 여기에 오픈 소스에는 없는 LG CNS만의 특화된 노하우들이 집약되어 있어, 더욱 생산적이고 효율적인 프로젝트 진행을 가능하게 만들어 주는 것이 바로 DevOnFrame입니다.



 Best Practice

Enterprise 프로젝트를 수행하는 데 있어, 요즘 대세인 Spring Framework만을 사용하여 잘 만들 수 있을까요? 그것이 정답은 아니라고 말씀드릴 수 있습니다. Spring은 기반 프레임워크로써 전체적인 구조와 각각의 영역에 특화된 잘 만들어진 오픈 소스들을 수월하게 Integration 할 수 있게 해주는 역할을 합니다. 하지만 오픈 소스들을 잘 조합해서 사용하는 능력은 상당히 중요하고도 어렵습니다.


예를 들어, Web 프레임워크로는 여러 종류가 있습니다. 프로젝트 시작 전에 이런 여러 가지 프레임워크를 비교하고 분석하여 사용할 프레임워크를 찾는다는 것은 많은 선행지식과 선별과정이 필요합니다. 그 자체만으로도 큰 노력이 필요한 것이죠. 


많은 노력에도 불구하고, 프로젝트의 AA에 따라 전혀 다른 선별 결과가 나올 수 있고 이로 인해 아키텍처 구조 및 구현의 방법, 기타 OSS 의 종류가 달라져 표준 확립이 어려워질 수도 있습니다. 또한, 표준 확립의 어려움으로 인해 신규 프로젝트 수행, 혹은 운영 시 개발 생산성 저하 및 효율 감소가 예상될 수도 있습니다. 그 외, 검증되지 않은 OSS 사용시 라이센스 문제, 버그, 성능, 보안적인 문제 등이 발생할 여지가 있습니다.


DevOnFrame은 위와 같은 문제를 해결하고자 숙련된 OSS 전문가들의 많은 아키텍처 경험을 바탕으로 최선의 OSS를 선별했습니다. 최적화된 아키텍처 및 안정성 보장, 명확한 표준 확립으로 개발 및 관리를 용이하게 해주며, 품질관리를 지원함으로써 프로젝트의 성공을 이끌어 나갑니다.



 Specialized Function

위에서 언급한 대로 최적의 OSS 조합을 찾는 것도 중요하지만, Enterprise에 특화된 기능이 없다면 DevOnFrame이 지금과 같이 하나의 브랜드로 자리 잡을 수 없었을 것입니다. DevOnFrame은 Laf/J서부터 DevOn Framework를 거쳐온 LG CNS의 기술력과 OSS의 수많은 기능을 결합하여 만든 프레임워크 기술의 결정체라고 할 수 있습니다. 그럼 어떤 면에서 뛰어나다고 할 수 있을까요?

기능적인 면을 살펴보면 대표적인 기술로는 Refresh 기능이 있습니다. Hot Deploy 라고도 하는 이 기술은 소스에 변경이 발생했을 경우, 서버의 재시작 없이 응용 프로그램의 동적 변경을 바로 적용하는 기능을 말합니다. DevOnFrame은 Spring의 ApplicationContext를 비롯해 각종 properties, xml, Query, class 파일 등 거의 전 영역에 걸쳐서 Refresh 기능을 제공함으로써 개발자들이 쓸데없는 시간을 낭비하지 않고 효율적인 개발을 진행할 수 있도록 해줍니다.

보안 측면에서 살펴보면, DevOnFrame은 The Open Web Application Security Project(OWASP)의 취약점 권고를 주기적으로 캐치업하여 프레임워크에 반영하고 있습니다. 프레임워크 단에서 조치를 취하여 개발자는 Injection, XSS, CSRF, Broken Access Control 등의 공격에 신경 쓰지 않고 오롯이 개발에 전념할 수 있게 합니다.


또한, 개발하기 까다로운 보안 쪽 기능인 IAM(Identity and Access Management) 관련 컴포넌트도 보안 공통기능으로 제공함으로써, 안전한 애플리케이션 개발 및 외부의 침입으로부터 시스템을 보호하는 기능을 제공합니다.

성능적인 면을 살펴보면 Spring의 큰 단점인 로딩 시간(Server Start-Up Time)을 크게 줄였습니다. 요청 시점에 쿼리를 로딩하여 캐싱하는 기능과 공통 DAO 사용을 통한 로딩 객체(Bean) 감소를 통해 로딩속도를 향상하였습니다.

DevOnFrame Batch는 Spring Batch 대비 평균 2.5배 이상의 성능향상을 보이며, 처리 건수를 점차 증가시킬수록 더 좋은 성능을 보입니다. Persistent 프레임워크로 사용하고 있는 MyBatis도 성능을 극대화하여 답답하지 않은 빠른 개발 및 운영을 할 수 있습니다.

대표적인 기능들만을 기술했지만, DevOnFrame에는 이 외에도 성공적인 프로젝트 수행을 위한 수많은 컴포넌트와 유틸리티가 존재합니다. 확실히 프로젝트를 빠르게 진행할 수 있겠죠?

l DevOnFrame 구성도


지금까지 DevOnFrame에 대해서 살펴보았습니다. DevOnFrame은 많은 곳에서 많은 이들에게 사용되고 있습니다. 많은 이들이 사용하는 제품에는 이유가 있습니다. 사람들의 선택을 믿으시고 사용해 보세요. 그러면 여러분의 프로젝트도 어느덧 성공을 향해 가고 있을 것입니다.


글 | LG CNS 아키텍처솔루션팀


* 해당 콘텐츠는 저작권법에 의하여 보호받는 저작물로 LG CNS 블로그에 저작권이 있습니다.

* 해당 콘텐츠는 사전 동의없이 2차 가공 및 영리적인 이용을 금하고 있습니다.


저작자 표시 비영리 변경 금지
신고
Posted by IT로 만드는 새로운 미래를 열어갑니다 LG CNS
위로