마이그레이션기술강좌 집필자 : 박성희마이그레이션전략 / 기획팀장 psh@metam.co.kr 010-3027-0354 @migration_club 메타마이닝공식블로그 : mmcmobile.wordpress.com 필자는경희대학교물리과를졸업하고호서벤처전문대학원석사과정이수중이며마이그레이션진단컨설팅및전략기획을담당하고있다. ------------------------------------------------------------------------------------------------------- 데이터베이스성공적인교체를위한전략 배경 최근오라클사에서기고한글에서 DBMS 유지보수에대한현실화에대한글을읽어보았다. 현실을외면한내용으로일관되고있다. 지금국내시장은 50% 를상회하는시장점유율을보유하고있는오라클사의유지보수비용을대폭상승하는것은잔뜩이나금융위기속에서예산에허덕이고있는고객의입장과는현실을외면한내용으로이해된다. 지금국내 DBMS시장은거의포화상태이고결국성능, 가격그리고전략을가지고있는공급자에게매우호기로작용하고있다. 이를계기로 IBM을필두로마이크로소프트, 사이베이스그리고국내 DBMS 공급자들의움직임은매우발빠르게움직이고있다. 여기에중요한마이그레이션성공요소를정리해보기로하자. 비용 1
성능 마이그레이션방법과절차 DBMS를공급하는기업들을보면세계최고의기업들이제작한제품들이다. Oracle, DB2, SQL Server 2008, Sybase 등의이름만들어도성능이나안정성은이미충분하게입증이되고있으며이를위한성공사이트는충분하게제공되고있다. 지금은분명히비용부분이가장부각되고있고, 오라클사의독점적인시장지배에 대하여 공급선다변화 라는중요한이슈에대한시장싸움이치열하게진행되고 있다는점이다. 얼마전 IBM과메타마이닝은대형업체에경쟁업체와마이그레이션경쟁을치열하게벌인바있었다. 문제는공급사들의충분한지원으로가격과성능에대한부분에대하여오라클사의제품을교체하는데큰문제가없었으나, 실제로사용하고자하는개발자에게는 마이그레이션기술적인문제 에대하여매우민감하다는것을알았다. 아무리좋은제품이라할찌라도원하는 DBMS로마이그레이션이정확하여야하고또한그과정이어떻게전개되는지에대한정확성에의외로많은관심을가지고있는것을느꼈다. IBM과 메타마이닝은우수한성능의 DB2, 가격프로모션그리고자동변환솔루션인메타블루 (MetaBlue) 를통해 Java로개발된프로그램 10,000여본과오라클로작성된 SQL 문장들을자동으로변환하여고객들로부터많은찬사를받은바있다. 이러한전략은향후오라클을윈백하는데매우중요한전략으로자리를매김할것으로판단하다. 마이그레이션프로젝트는매우간단하면서도그과정이나내용면에서매우복잡하고어려운작업이며, 대부분정책결정자들이가장까다롭고, 어려운작업으로판단하고있다. 그렇다고새로운기술이나장비또는성능대비비용적인측면을고려할때피할수없는과정인것이다. 마이그레이션의프로젝트핵심은 안정성, 정확성, 적시성, 그리고비용절감 등의효과가있어야한다. 현실적으로가장간단한방법인수작업을통해이러한문제점을해결할수없는것은여러분이더잘알것이다. 새로운시스템을개발한다면일정한병행기간을통해안정성과정확성을이루어갈수있지만기존에잘운영되던시스템을새로운시스템으로전환한다는것은매우위험하며, 상황이다르다. 즉, 전환이완료된후에문제점이발견되면가장먼저사용자가민감하게반응할것이 2
고결과적으로문제의파장은순식간에심각한상황으로전개될수있다. 그러면주변에수작업을통해마이그레이션프로젝트의문제점을살펴보기로하자. 실패사례 1 A라는기업이새로운데이터베이스와어플리케이션도입을결정하였다. 데이터베이스도기존의관계형데이터베이스를사용하고있기때문에커다란문제가없었고또한어플리케이션프로그램도그대로사용하기때문에비교적간단하게프로젝트가완료될것을기대하였으나실제로 3개월프로젝트로일정을잡았지만, 6개월이지나도해결이되지않았고, 비로서 1년이지나서야어느정도운영할수있는환경을갖추게되었다. 이로인해데이터베이스를공급하는입장이나, 이를쉽게생각하고프로젝트를진행했던기업은큰어려움을겪었고, 가장큰피해자는뭐라해도고객일것이다. 간단하게데이터베이스만교체하면기술적으로전혀문제없다는계획에많은차질이발생한것이다. 본사례에서교훈을찾아볼수있는것은, 마이그레이션프로젝트에대한중요성과인식에대한제고가필요하다는점이다. 마이그레이션프로젝트와기존프로젝트개발절차에많은차이가있다는점을공급자나사용자가깊이생각해야한다는점이다. 실패사례 2 B라는제조업체는데이터베이스도다양하고프로그램언어만도 16종을사용하고있는경우인데, 이업체는외국산마이그레이션도구를도입하여해결하기위해비교적완벽한계획을세우고프로젝트에착수하기이르렀다. 워낙방대한프로젝트를진행하였던터라과정중에많은예기치못한문제도발생하였지만, 커다란문제점이두가지가발생한것이다. 첫째, 비용절감을위해자동화도구를선택하지않고수작업으로강행하였다는점이다. 이는마이그레이션프로젝트에대한방관이아닐까생각한다. 실제로 20여만본이나되는많은프로그램을수작업으로변환하고이를컴파일하고제대로작동이되는지를확인하는작업이너무엄청난작업이고나아가새로운오류가발생하면반복작업으로인해단순한작업이라고생각했던것이지연이되어더욱많은인력이투입이되었다. 둘째, 마이그레이션자동화도구를사용한다고제안을하였지만, 비용절감을위해사 3
용하지않았다. 물론프로그램난이도가낮았기때문에그렇게진행을하였겠지만, 실제로수작업으로완벽하게마이그레이션하기란거의불가능에가깝다고할수있겠다. 순조롭게진행될것만같았던그마이그레이션프로젝트에적신호가켜졌다. 바로완료보고하는자리에서발생한것이다. 새로운프로세스가발생하면서문제점이그자리에서발견된것이다. 즉, 수작업으로마이그레이션하는것은비록프로젝트가완료되었다하더라도잠시라도마음을놓을수없다. 그렇다면자동화도구를활용하면모든문제점이완전히해소되는가? 그렇지않다단지문제점을자동화도구를통해신속하고정확하게발견하고수정한다는데장점이있을뿐이다. 그리고자동화도구를통해모든정보를투명하게시각화하여이를추적하는시스템을구축하는것이바로사전점검과발견즉시해결하는해법만있을뿐이다. 본사례에서교훈을찾아볼수있는것은, 마이그레이션프로젝트에대한업무범위와수행방법에대한신중함이필요하다는것이다. 수많은프로그램과데이터베이스에대한검증과정은수작업으로이를해결하는것은엄청난시간과수작업이따라야하는데, 한정된예산과시간그리고정확성을요구하는프로젝트에는무리가따른다. 본자료에서이를해결하는방안중하나로 자동화도구 를통한마이그레이션에관한해법을제시하고자하는것이다. 지금부터 MetaBlue 라는자동화도구를활용한마이그레이션프로젝트과정을소개하기로하겠다. 자동화도구를활용한마이그레이션프로젝트 대부분마이그레이션을수작업으로처리하였기때문에일반적인소프트웨어개발절차와동일하였지만자동화도구를적용하였을때는개발절차에있어서많은차이가있다. 첫째, 마이그레이션범위 지금부터 자동화도구를이용한마이그레이션프로젝트 에대하여소개하기로하 자. 4
Migration AS-IS system Operation System Application, SQL(Schema..) WAS, Framework DBMS(SP, Table, Data) TO-BE system < 그림 > 마이그레이션범위 마이그레이션이란, 기존환경에서새로운환경으로시스템을변환혹은이행하는과정을의미한다. 광의적으로는하드웨어에서네트워크, 소프트웨어전분야에걸쳐이동하는방법에서작게는데이터베이스혹은어플리케이션시스템만변환하는과정을선택하는경우가있다. 다양한시스템 ( 하드웨어, 소프트웨어, 데이터베이스 ) 을사용함으로나타나는고비용, 저능률을해소하기위해시스템을마이그레이션하는경우가있으나, 최근에는공급자간에자사의제품확대를위해윈백 (Win back) 전략으로많이활용되기도한다. 위그림에서나타난바와같이마이그레이션범위는하드웨어, 운영체제, 데이터베이스, 미들웨어그리고프로그램언어모두가해당이된다. 우선마이그레이션전략을수립할때, 어디까지를대상에포함시킬것인가를파악하여야하는데, 단순히일부만을착수하기보다는대상범위의연관관계와영향도를면밀하게분석한후범위를결정하여야한다. 5
둘째, 마이그레이션프로젝트진행전고려사항 마이그레이션범위가선정이되었다면다음은어떠한점을고려할것인가를정리하 여야한다. Tool Methodology 마이그레이션고려사항? 어떤 Data/Program 을이전? 어떻게수행하는가? 얼마나시간이소요되는가? 프로그램재사용은어떻게? 기대효과는어떠한가? 자동화된툴고려사항은? 기존개발자들은어떻게? 기타문제점은없는가? MetaBlue RE-Method (v2.0) DBMS/Application 이전범위선정 Migration 효율적인분석, 대안제시 Tool 사용에서얻은시간을품질활용 빠른진행으로소요시간, 비용절감 표준화된환경제공으로경쟁력강화 지속적인자동화된관리기법제공 개발문서자동산출로조기문제발견 거버넌스기반구축 < 그림 > 자동화도구를활용할때고려사항 마이그레이션에는필수적으로자동화도구와개발방법론특히어떠한분석문서를 출력하는지가매우중요한사항이다. 그렇다면위에언급한고려사항을구체적으 로설명하기로하겠다. 어떠한데이터베이스와프로그램을마이그레이션할것인가? 매우중요한사안이다. 데이터베이스와프로그램은많은시간을걸쳐서누적된기업의지적재산이다. 문제는이러한지적재산의이력이정리가잘안되어어떤데이터베이스가사용하고있는지혹은사용하지않은지를파악하는매우중요하고, 어려운일이다. 필자가웃지못할경험을하였는데, 우리나라대표기업의 CIO가어플리케이션프로그램과데이터베이스에대한정확한현황을정확하게파악하고있지못하고주먹구구식으로만알고있을뿐이었다. 현재데이터베이스테이블개수가어느정도인지와사용하고있는테이블은몇개쯤되느냐물었을때모두가고개를좌우로흔들면서대충몇개정도라는대답을들었을뿐이었고그결과치도자동화도구를통해정확하게파악한자원과는 20-30% 가차이나는결과를얻었다. 6
정확한현황분석, 영향분석없이마이그레이션대상을판단하는것이란매우섣부 른결정이고또한마이그레이션을실행하는데있어서분석단계는가장중요한고려 사항인것이다. 어떻게마이그레이션을실행할것인가? 크게두가지이다. 수작업으로할것인가아니면, 자동화도구를통해실행할것인가하는것이다. 먼저인식할문제는마이그레이션의난이도, 정확도, 적시성, 비용절감등에대하여결정을내리는것을중요시해야한다. 수작업과자동화도구사용은매우다른결과를얻게될것이다. 아래그림은자동화도구를활용하여개발할경우의절차도이다. 2 메타데이터저장소 프레임워크저장소 3 8 1 현행시스템분석작업 3 현행시스템변환작업 4 TO- BE 시스템 6 변환오류 TO - BE 시스템성능개선 7 유지보수관리 3 5 6 8 프로그램문법 DB 오류보완 5 오류보완 변환완료 9 GAP 분석품질 / 검증 9 차이분석 문제점추적 (Impa ct) 소스코드정제화 ( 품질 ) 통계 / 분석 / 연관자료 < 그림 > 자동화도구를활용할때프로세스일반적으로전체적인업무범위를마이그레이션하는회수는 5차례이상을반복작업이필요로하게되는데, 이작업을수작업으로진행한다면, 엄청난시간과비용그리고많은오류를범할우려가있다. 현행시스템인프로그램과데이터베이스정보를분석하고, 이를변환 (Migration) 하되단순하게변환되는것이아니라, 프로그램언어나, 데이터베이스버전에따라차이부분을프로그램 / 데이터베이스문법저장소에 Mapping 정보를통해저장된자료를근거로변환하게된다, 오류나형태 ( 혹은템플릿 ) 를등록하고자할때저장소에정보를저장한후에재작업마이그레이션을수행하게된다. 또한변환된 TO-BE시스템을필요에따라성능을개선하게되는데, 이는대부분수작업으로수행하게되며, 이부분도대부분자 7
동화된템플릿으로업데이트하여재작업으로거의 ( 필자의경험으로 97% 이상 ) 해 결되는기능이다. 변환작업이완료된이후에이를검증하는절차가남게되는것 이다. 성공적인마이그레이션전략은무엇인가성공적인마이그레이션전략에는철저한사전계획수립과문제점에대비한비상계획수립절차그리고마이그레이션절차를단계별로세부적으로수립하여야할것이다. 또한데이터베이스, 프로그램그리고하드웨어장비에따른다양한소프트웨어에대한이행절차를수립하여야한다. 성공적인시스템이행 이행계획수립 비상계획수립 이행절차수립 통합이행대상정의 이행일정계획 이행수행방향정의시스템정확한이행대상의정의 위험요소및대처방안수립 복구방안수립 복구절차수립데이터어플리케이션 이행전담조직구성및역할정의현행시스템이행경험인력투입및기술지원조직활용 이행준비작업 이행환경구축 데이터 / 어플리케이션이행 시험및정합성검증 이행결과확인위험요소의최소화 전환프로그램에대한검증 어플리케이션과데이터의손실방지 시스템장애및환경변화요인대체 작업소요시간초과요소제거 데이터의부정확성원인제거 < 그림 > 성공적인마이그레이션이행전략도 8
셋째, 자동화도구적용절차 아래그림은본자료의가장핵심적인요소로 마이그레이션자동화도구 를어떻 게실행에옮기는가를나타낸다. Biz Logic Tool Customizing SQL Verification Test Conversion 1. Applicatio 분석 - > 분석산출물제공 2. 분석산출물을통한변경범위영향평가및성능향상요인식별 3. 변환에대한표준화 ( 변환룰 ) 마련 4. 변환룰을적용한 tool Customizing 5. 문법 DB 구축 1. 변환 Tool 을적용한 Code 변환 2. Source Diff 기능을이용한변환부분 Checking 3. 변환된 Code Syntax Check 4. 미적용부분작업방향선택 1. SQL 문장추출 2. 추출된 SQL 문장 Tokenizing 3. 문법 DB Mapping 4. 문법 DB 에따른 Token 재배열및치환 5. Target DB Function 적용 6. SQL 문검증 1. 시험절차단위시험 - > 통합시험 - > 시범운영 2. Application 기능일치성 3. 기능일치성확인후성능 Test 4. SQL 튜닝 5. Application 튜닝 < 그림 > 자동화도구적용절차 마이그레이션 ( 어플리케이션 / 프로그램 ) 에필요한자동화도구는크게 3가지종류기능을제공하여야한다. 첫째, 어플리케이션 / 데이터베이스를자동으로분석하는도구를지원하여야한다. 둘째, 어플리케이션프로그램을사용자가원하는프로그램으로자동으로변환하여야한다. 셋째, 데이터베이스의 SQL과실제데이터를이관하는자동화기능을제공하여야한다. 실제로필자회사 ( 메타마이닝 ) 는국내에서유일하게 3가지기능모두를지원하는도구를보유하고있을뿐만아니라자동화도구를활용한성공사례를보유하고있다. 자동화도구적용하는데중요한몇가지를소개하기로하자. 반드시 POC(Proof of Concept) 와검증절차를반드시실행하여야한다. POC는마이그레이션환경이모두가다르고목표또한다르기때문이기도하지만, 반드시필요한몇가지이유가있다. 이를살펴보면, 첫째, 어플리케이션프로그램이모든기업들이특성있게작성되었기때문이다. 둘째, 데이터베이스가제품별로 SQL문이서로다르기때문이다. 셋째, 모든프로세스가사용자환경에맞게작성되었기때문에판단은사용자의몫이기때문이다. 9
이러한사유로인해반드시사용자환경에맞게간이테스트를거친후에마이그레이션프로젝트를수행해야되는것이다. 아래그림은어플리케이션마이그레이션의검증방법에대한프로세스를나타내주고있다. 어플리케이션소스의 p a tte rn m a p p in g 검증방법 전환후검증프로그램어플리케이션 in p u t o u tp u t 검증결과 검증프로그램의검증결과체크 Pa tte rn m a p 목록작성 전환전소스 a Pa tte rn m a p p in g 전환후소스 1 각프로그램의전환전소스와전환후소스를비교하여전환 p a tte rn 으로수정되었는지확인 전환 To o l 사용 어플리케이션기능의일치성 검증방법 A 전환전 B in p u t 어플리케이션 o u tp u t 동일한 in p u t 을입력했을때 비교 전환 A 전환후전어플리케이션과전환후어 B 어플리케이션플 in p u t o u tp u t 리케이션의 o u tp u t 이동일한 지 어플리케이션성능 확인 검증방법 A 전환전처리량 / 전환후 in p u t 어플리케이션평균처리어플리케이션 in p u t 속도비 A 검교증확인항목 처리속도 동일한 in p u t 을입력해서수행하는처리속도의전환전 / 후비교 < 그림 > POC 를통한검증절차도 위그림을살펴보면, 3 단계로검증작업을거치게된다. 첫째, 마이그레이션전후의 Mapping 자료를작성하여관리한다. 둘째, 어플리케이션과데이터베이스의기능이일치하는가를확인한다. 셋째, 성능이제대로나오는가를확인한다. 이를수행하기위해서수작업으로는불가능하며, 문제가발생하였을때이력관리와문제점추적은거의불가능하다. 자동화도구를통해어플리케이션프로그램과 SQL 문의 OLD/NEW에관련된연결정보 (Mapping Table) 를추출하여이를지속적으로관리하여야한다. 다음으로, 기능이일치하는가를확인하는작업이다. 동일한데이터값을입력하였을 때동일한결과를제공하는지를확인한다. 모든절차가완료되면, 실제로성능이 나오는지를확인하게되는데이때, 전문가들의자문을받아근본적인문제점을해 10
결하는작업을하게된다. 다음은자동화도구기대효과에대하여알아보자 자동화도구를활용함으로얻는장점은무엇일까? 아래도표는 정성적효과 부분을나타낸것이다. 경제성 품질향상 정확한모델링과의사소통으로생산성을향상시켜 Project 에소요되는시간과비용절감 체계적인방법론과 Tool 에의한시스템품질향상 Document Project 과정시진행과정의문서자동생성 유지보수비용절감 생산성 기술습득 Tool 을활용하여유지보수하므로유지보수소요비용이줄고개발인력교체시에도유연하게대처반복되는수작업을 Tool 에컴퍼넌트화하여일괄생성시켜 50% 이상기초코딩작업을자동화표준화된소스코드의자동생성으로컴포넌트기반개발방법론을쉽게습득 < 그림 > 자동화도구를활용한경우의정성적효과 아래도표는 정량적효과 부분을나타낸것이다. 100% 85% 66% 46% 0% 비용 / 공수 기간 전환율 44% 절감 54% 단축 85% 이상 < 그림 > 자동화도구를활용한경우의정량적효과 11
정성적효과 ( 간접적 ) 는일반적으로자동화도구를도입하면얻을수있는효과를나타 낸것이라면, 정량적효과 ( 직접효과 ) 는수작업대비비용, 개발기간, 그리고변환율 에대하여나타낸그림을보여주고있다. 비용절감효과가 44% 효과를나타내었다. 실제로업종, 자원상태등에따라비용절감효과는차이가나타나겠지만, 보편적으로 30-50% 비용절감효과를마이그레이션단계에서나타나는것으로확인되었다. 단순히비용효과뿐만아니라정확도, 안정성문제까지언급한다면실제로그효과는대단하다고할수있겠다. 개발기간 54% 단축효과를나타내었다. 개발기간이나변환율모두가비용절감효과에직접적인영향을미치지만, 개발기간이란, 적시성과밀접하게되어짧을수록사용자에게많은 Benefit을제공하고있다. 새로운환경에맞게빨리적용할수있다면그만큼기회비용이줄게되기때문이다. 자동변환율 85% 이상을나타내었다. 변환율은실제로 95% 이상의효과를지금까지나타내주고있다. 단지 80% 이상 의자동화율이되어야경제성이있다는것이다. 결론적으로, 마이그레이션은기존의시스템개발방식으로처리하여서는안되며, 마이그레이션전문기업과자동화도구를통해과정을중시하고모든절차를사용자가검증할수있는시스템이제공되어야한다. 프로젝트에자동화도구를활용하는것은필수적인작업이고나아가시스템의안정성과완료후의유지보수문제만하더라도반드시자동화도구를도입하는것이바람직할것이다. 기타마이그레이션에관하여많은의문점이나실제사례에관한문의는아래담당자에게문의를바란다. 박성희 Sunghee, Park (@migration_club) 공식블로그 (@mmcmobile) 기획팀팀장 ( 주 ) 메타마이닝 Mobile ) 010-3027-0354 e-mail ) psh@metam.co.kr Address) 서울시성동구성수 2가 3동 277-25 브랭땅빌딩 9층 Tel ) 02-462-5901 Fax ) 02-462-5903 www.metam.co.kr 12