본문 바로가기

블로그

LG CNS 기술블로그 DX Lounge에서 최신 IT 소식을 만나보세요!

솔루션

개발 방법론의 과거와 현재, 그리고 미래!

2016.10.06

안녕하세요? LG CNS 대학생 기자단 6기 박찬호입니다.

어느덧 청량한 바람이 부는 가을이 찾아왔습니다. 맑은 하늘이 지속될수록 집 안에 있기보다는 야외 활동을 즐기려는 사람들이 늘어나고 있는데요. 요즘은 과거와 달리 야외 활동을 위한 실시간 정보들을 찾기 쉬워졌습니다. 스마트폰 검색만으로 기상 정보, 실시간 교통 정보, 위치 정보 등 각종 정보를 수신할 수 있게 되었는데요.

이렇게 IT 서비스는 우리 생활 곳곳에서 편리함을 더해주는 요소로 자리 잡고 있으며, 대부분이 정보시스템을 바탕으로 운영되고 있습니다. 몇 년 전까지만 하더라도 기업의 업무 절차를 도와주는 도구에 지나지 않았던 정보시스템은 사업의 범위가 확장되고 공공부문의 전산화가 진행됨에 따라 IT 인프라의 핵심적인 요소로 자리 잡게 되었는데요.

오늘은 기업이나 조직은 물론 우리 생활에서도 필수로 자리 잡은 정보시스템이 어떻게 구축되는지를 개발 방법론과 함께 살펴보겠습니다.

시스템 통합 사업과 개발 방법론

과거에는 해당 기업의 특성을 가장 잘 이해하는 관리자를 주축으로 정보시스템을 설계•기획하고 운영했습니다. 그러나 최근에는 인프라 규모가 점점 커지고 사용하는 기술이 복잡해짐에 따라 관리자가 자체적으로 시스템을 구현하기란 불가능해졌는데요.

이런 사회적 흐름과 더불어 나타난 것이 시스템 통합 사업입니다. 시스템 통합(System Integration, SI)이란 서로 다른 환경에 있는 기업이나 기관에 맞는 정보시스템을 기획하고 설계하며 유지 보수 및 운영을 해주는 IT 인프라 서비스를 말합니다.

시스템 통합 사업의 특성상 기업에 맞는 개발 방식이나, 절차, 산출물 등을 따로 정리해 놓은 체계가 필요했는데요. 그러한 표준화된 프레임워크를 개발 방법론이라 부르고 시대에 따라 다양한 방법으로 발전시켜 왔습니다.

정보시스템 구축의 핵심, SDLC(System Development Life Cycle)

l 시스템 개발 생명주기(SDLC) (출처: https://en.wikipedia.org/wiki/Systems_development_life_cycle 재구성)

개발 방법론을 적용하기에 앞서 설계 단계에서는 시스템 개발 생명주기(System Development Life Cycle, SDLC)라는 일정한 절차를 따르는데요. SDLC는 프로젝트의 비용 산정과 개발 계획 등을 수립하는 프로젝트의 전체 윤곽을 잡는 활동이라고 할 수 있습니다. SDLC는 각 개발 과정을 분리시켜 개발 이후에 유지 보수를 간단하게 만드는 역할을 합니다.

개발 방법론의 역사와 발전

대략적인 SDLC가 세워지고 나면 본격적으로 소프트웨어 개발 업무에 들어가는데요. 소프트웨어 개발 방식은 과거의 주먹구구식 방법에서 비용 효율과 업무 프로세스 구축을 위한 표준화된 방법론으로 진화하게 되었습니다.

① 구조적 방법론

l 폭포수 모형 (출처: https://ko.wikipedia.org/wiki/폭포수_모델 재구성)

우리에게 폭포수 모형으로 잘 알려진 구조적 방법론은 코드를 제한된 구조에서 생성하여 순차적으로 실행시키는 것을 특징으로 합니다. 알고리즘의 단위인 순차(sequencing), 선택(selection), 반복(iteration)의 구조로 코드를 표현하고 프로세스 단위로 문제를 해결함으로써 코드의 보안을 유지하고 유지 보수를 용이하게 합니다.

분석에 있어서는 도형 중심 분석 도구인 자료 흐름도(Data Flow Diagram, DFD)와 자료사전(Data Dictionary, DD), 단위 명세서(Mini Specification, MS)를 사용하는데요. 이러한 도구들은 프로세스를 보다 시각화하여 사용자의 이해를 돕는다는 장점을 가지고 있습니다.

② 정보 공학적 방법론

l 정보 공학 프로세스

1980년대에 와서는 정보 시스템이 단순한 업무 지원의 도구를 넘어 경영 전략을 창출하는 경영정보 시스템(Management Information System, MIS)으로 진화하게 되었는데요. 따라서 방법론은 ‘경영진의 전략을 어떻게 잘 수용할 수 있을까’에 맞춰 발전하게 되었습니다.

정보 공학 방법론은 설계, 구현 단계에서 데이터를 우선적으로 개발하는데요. 문제 영역을 세분화하고 Top-Down 방식으로 전개하며, CASE Tool1을 적극 활용하여 기존보다 훨씬 빠르게 결과물을 낸다는 특징을 갖습니다.

정보 공학 방법론은 초기에는 생산성과 품질 개선에 초점을 둔 전략이었으나, 점차 기업 경영 전략을 창출하는 정보 전략 계획(Information Strategy Planning, ISP)으로 진화하게 되었습니다.

③ 객체 지향 방법론

l Rational Unified Process (출처: https://en.wikipedia.org/wiki/Rational_Unified_Process)

1990년대에는 객체 지향을 바탕으로 하는 객체 지향 방법론이 대두되었는데요. 이 방법은 분석과 설계 과정의 전 단계를 데이터 중심(Data-Oriented)으로 개발함으로써, 데이터의 동적 측면을 강화하는 특징을 가지고 있습니다.

개발 단계에서는 반복과 점증적(Iterative and Incremental) 모델을 사용하여 사용자 요구 사항을 반영하는데요. 프로젝트를 세분화하고 모든 단계를 유기적으로 협력시켜 전체 프로세스의 방향성을 유지하고 재사용성을 강화시킵니다.

④ CBD(Component Based Development) 분석 설계 방법론

l CBD 분석 방법론

2000년대에는 컴포넌트 기반의 개발 방식(Component Based Development, CBD)이 대두되었는데요. 이 방식은 문제를 조각으로 나누어 각각의 컴포넌트를 생성한 후 다시 조합하는 재사용성에 초점을 둔 방식입니다. 여기서 컴포넌트란 같은 성격의 업무를 수행하는 클래스들의 조합을 뜻하는데요.

아무리 복잡하게 얽힌 시스템이라도 단계별로 나누어 생각하기 때문에 전체 시스템에 영향을 주지 않고 문제를 해결한다는 특징을 가지고 있습니다. 또한 이미 구현된 것을 사용하기 때문에 전체적인 개발 속도가 빨라지고 검증된 컴포넌트를 사용함으로써 품질 향상과 일관성의 효과를 거둘 수 있다는 장점도 가지고 있습니다.

⑤ 애자일 방법론

1990년대 이후로 제기되었던 ISO9000, Prince와 같은 방법론들은 일련의 절차와 기반을 바탕으로 개발되어 왔는데요. 하지만 이러한 방식들은 개발 과정에서의 과도한 문서화나 형식적인 절차에 상당한 비용을 치르면서 최근에는 애자일(Agile) 방법론이라는 적응적(adaptive) 방법론이 각광을 받고 있습니다.

애자일 방법론은 고객과의 협력을 중시하고 프로세스나 도구에 치우치지 않는 자기 적응적(self-adaptive) 방식을 적용하는데요. 일정한 주기를 가지고 프로토 타입을 만들어내기 때문에 고객이 원하는 사항을 반영하기가 쉽고, 지속적인 변화에도 빠르게 대처할 수 있습니다.

  • ‘애자일 방법론’ 더 알아보기
    애자일(Agile), IT 개발에 민첨함을 더하다: http://blog.lgcns.com/1065

개발 방법론 도입 사례

① 드림(Dream) 2.0

l 증권사 차세대 시스템 프로세스

LG CNS가 2012년 구축한 교보증권의 차세대 시스템 ‘드림(Dream) 2.0’ 은 증권업계 최초로 차세대 시스템 ‘JUST IN TIME’을 이뤄냈는데요. 증권코어 서비스, 정보계, 홈트레이딩 시스템 개발에 애자일 방법론을 적용하여 서로 다른 구축 일정을 유기적으로 연결하고, 시스템의 완성도를 높였습니다.

체계적인 프로젝트 관리를 통해 보다 수준 높은 차세대 시스템을 구축하였으며, 글로벌 표준인 CMMI를 적용하여 분석, 설계, 통합 테스트를 기한 내에 완료할 수 있었습니다. 이뿐만 아니라 종합계좌체계의 개선과 개인 정보 관련 데이터 암호화 및 마스킹 서비스를 구현함으로써 금융업계 내 모범적인 프로젝트 모델로 자리 잡게 되었습니다.

  • ‘증권차세대시스템’ 더 알아보기
    증권차세대시스템 구축 성공의 길은 LG CNS에 있다: http://blog.lgcns.com/22

② 전북은행 차세대 시스템

CBD 방법론을 통해서 프로젝트를 성공한 사례도 있습니다. LG CNS가 국내 최초로 FULL-MDD 방식을 통해 구축한 ‘전북은행 차세대 시스템’을 들 수 있는데요. 전북은행 차세대 시스템은 MDA(Model-Driven Architecture) 방식을 채택하여 Core Banking 시스템의 고도화와 국내 최초의 제1금융권 차세대 시스템 구축이라는 성과를 이뤄낼 수 있었습니다.

l 논리 설계 모델을 통한 프로그램 자동 개발 방식

여기서 MDA 란 프로그램 설계자가 원하는 업무 모델을 자동으로 자바 소스 코드와 문서로 바꾸는 것을 말하는데요. MDA를 통해 초급 개발자와 고급 개발자의 간극을 줄이고 프로그래밍의 품질을 확보함으로써 시스템 일원화와 유지 보수 단계를 획기적으로 줄일 수 있게 되었습니다.

비즈니스 중심의 개발을 통해 고객에 맞는 최적의 설계를 구축하고, IT 운영의 효율성을 높임으로써 기존 프로젝트 대비 개발 생산성을 향상시키는 결과를 가져오게 되었습니다.

  • ‘MDD 개발 방식’ 더 알아보기
    ‘기술’에서 ‘비즈니스’ 중심으로 – MDD(Model Driven Development), 모델 기반 개발 방식의 변화: http://blog.lgcns.com/681

새로운 대안, 데브옵스(DevOps)

몇 년 전부터 전 세계에 유행처럼 번지는 데브옵스(DevOps) 바람은 사업의 다각화로 정체되어 있는 전통적 개발 방법론의 새로운 대안으로 평가받고 있습니다.

데브옵스는 개발(Development)과 운영(Operations)의 합성어이자 기업 내 모든 구성원들의 소통, 협업을 강조하는 새로운 비즈니스 철학을 말하는데요.

갈수록 복잡해지는 IT 환경에서는 과거와 같이 한 사람의 경험이나 지식만으로 전체 시스템을 구축할 수 없기 때문에, 조직 구성원들 간에 팀워크를 강화할 수 있고 개발자와 운영자, 고객 사이에 소통이 가능한 데브옵스가 주목을 받고 있습니다.

IT 기술은 점차 엔지니어 고유의 영역에서 서비스나 비즈니스 영역으로 넘어가고 있는데요. 끊임없이 변하는 IT 시장에서 살아남기 위해서는 개발자와 비개발자를 구분 짓지 않는 유기적인 시스템의 구축과 조직원 모두가 비즈니스 공감대를 형성하는 것이 앞으로 더욱 중요해질 것입니다.

  • CASE는 소프트웨어 개발과정의 일부 또는 전체를 자동화하여 소프트웨어의 품질을 향상하고, 개발기간을 단축하며, 유지보수에 필요한 노력과 비용을 절감하기 위한 소프트웨어 도구이다. 일반적으로 CASE는 개발 단계 별로 작성해야 하는 문서들을 자동으로 작성하며, 이전 단계에서 만들어진 각종 개발 자료를 다음 단계에서 사용하여 개발 과정의 생산성 향상, 품질유지 및 개발과정의 표준화와 일관성을 유지할 수 있게 한다. [네이버 지식백과] [본문으로]

챗봇과 대화를 할 수 있어요