편집 : 2020.8.13 목 12:16
피플/칼럼
“DB SQL 성능품질의 당면과제와 해결 사례”[기고]오픈메이드 컨설팅 금은섭 연구소장
오픈메이드 컨설팅 금은섭 연구소장  |  gold@openmade.co.kr
폰트키우기 폰트줄이기 프린트하기 메일보내기 신고하기
승인 2020.07.21  18:28:52
트위터 페이스북 미투데이 요즘 네이버 구글 msn
   
 

최근 들어 기업의 디지털 혁신(Digital Transformation) 및 그에 따른 새로운 IT 기술들의 발전, 적용이 어지러울 정도로 급변하고 있으며 이에 따라 각 기업과 이들의 IT 시스템 구축을 수행하는 시스템 통합사업자들도 여러 가지 도전을 받고 있는 상황이다.

또한, 최근 들어 개발 생태계는 각 기술분야의 풍부한 경험을 보유한 인력을 공급받기가 점차 어려워져 가는 상황으로 발전하고 있는 가운데, 작년부터는 정부의 주 52시간 근무제의 도입으로 이전의 프로젝트 관행에서 벗어나 추가 근무없이 업무시간 수행 만으로 납기를 맞춰야 하는 상황도 시스템 통합사업자들에게는 새로운 도전이 되고 있다.

특히, 경험이 많지 않은 개발자들에게 있어서 최적화된 품질의 SQL 개발은 더더욱 어려우며, 이런 상황에서 개발 생산성을 높이면서 동시에 애플리케이션 성능과 품질까지 확보해야 하는 어려움은 SI 업체들에게는 반드시 해결해야 될 큰 과제 되고 있다.

이를 해결하기 위해 개발 파트너들에 대한 전략적인 제휴와 역량 평가관리를 강화하고, 개발프로세스와 도구들을 자사의 개발 프레임워크와 연동한 자동화 및 개발품질관리를 통해 대응하고자 하는 시도들이 중대형 SI 업체를 중심으로 현재 활발히 이루어지고 있는 중이다.

시장의 이같은 고민은 비단 SI 업체들만의 문제가 아니라 기업 내부 IT부서에서도 점차 문제가 되고 있다.

기업내 외주 개발인력들의 만족스럽지 못한 개발결과물로 인해 운영시스템의 성능저하와 유지보수의 어려움이 계속 가중되고 있으며, 이러한 성능 이슈를 해결하기 위해 근본적 대응책 수립에 앞서 H/W 인프라를 증설하는 응급조치를 반복하는 딜레마에 빠지는 경우도 있다.

일반적으로 대규모 IT서비스를 제공하는 기업들의 경우, 차세대 신시스템 구축 이후 애플리케이션의 상당 부분이 기능적으로 동작은 잘 이뤄지지만, 비효율적인 데이타 액세스 방법으로 인해 시스템 성능에 악영향을 미치는 상황이 종종 발생하고, 이러한 성능문제의 반복현상은 심각한 DB성능 장애를 유발해 결국 업무서비스를 지연시키거나 운영 DB시스템을 멈추게 하는 최악의 경우로 이어지는 상황도 가끔씩 목격되기도 한다.

설명한 문제들을 보다 적극적으로 대응하기 위해서는 데브옵스(DevOps) 기반의 개발 체계 도입 시 기능 중심의 테스트 및 품질관리 뿐 만 아니라 성능 최적화에 대한 체계적인 품질점검 관리도 함께 이뤄져야 하며, 이는 사람에 의한 수작업 방식이 아닌 자동화 되고 시스템화 된 품질점검 체계를 통해 이뤄지도록 개선해야 한다.

즉, 수작업 중심의 사후 대응 관리 방식이 아닌 사전예방 중심의 자동화된 품질관리 체계를 지향해야 하며 개발 프로세스 단계별로 기능 및 성능결함에 대한 리스크들을 사전 자동 점검하고 개선해야 한다.

이를 통해 경험이 많지 않은 개발자들에게서 흔히 발생할 수 있는 SQL 성능결함을 조기 발견하여 제거하고 개발 완료된 애플리케이션의 배포 전 사전검증을 통해 잠재적 성능장애 요인까지 사전예방 함으로써 운영시스템에 ‘무결함코드’ 배포가 이뤄지도록 해야 한다.

결함이 사후 운영시스템에서 발견될 경우 발생하는 비용은 개발 시 비용에 비해 기하급수적으로 커질 뿐 만 아니라 운영시스템 환경의 특성상 아예 수정 자체가 쉽지 않을수도 있기 때문에 ‘개발-테스트-배포-적용-운영’에 이르는 전 과정에서의 체계적인 성능의 품질점검을 적용하는 것은 기업과 SI 사업자 모두에게 있어 앞으로 선택이 아닌 필수사항이 될 것으로 예측된다.

이러한 시장 상황에 대응하는 솔루션 오픈팝(Open-POP : SQL 성능 최적화 관리 솔루션)을 도입, 적용했던 사례를 살펴보고자 한다. 

모든 기업에게 SQL 성능품질의 최적화가 필요하지만 특히, 대규모 고객을 대상으로 대용량 트랜잭션을 발생시키는 업무에서는 더욱 DB/SQL 성능 최적화가 요구된다.

KB카드의 경우, 차세대시스템 구축 프로젝트 초기부터 SQL의 품질관리를 위한 솔루션으로 오픈팝을 적용했다.

차세대시스템의 구축 후 운영과정에서 발생할 수 있는 애플리케이션의 성능저하로 인한 DB장애를 선제적으로 방지하기 위해 개발단계부터 오픈팝의 품질점검 기능을 활용, 애플리케이션의 모든 SQL에 대한 품질(표준·오류·성능)의 점검 및 개선(튜닝)을 적극 수행했다.

KB카드 차세대 프로젝트는 많은 개발자들이 투입돼 개발이 이뤄지는 관계로, 초급 개발자나 DB/SQL 개발경험이 부족한 개발자들에게서 발생할 수 있는 결함들을 방지하기 위해, SQL 표준준수/성능점검 기능을 적극 수행했다. 

이 프로젝트의 SQL 튜닝팀은 개발 초기단계부터 실시간으로 SQL 품질 점검현황을 파악하고, 문제 발견 시 개선작업 및 그에 따른 개선 공정관리를 통해 조기에 차질없이 문제점을 해결, 반영하도록 했다.

또한, DB설계 과정에서 수천개에 달하는 테이블에 대한 인덱스의 생성을 기존 인력에 의존하던 방식이 아니라, ‘오픈팝’에서 자동으로 추천해주는 ‘인덱스 자동가이드’ 기능을 활용해 테이블의 인덱스를 설계·생성, 애플리케이션 성능 최적화에 대한 생산성을 극대화 시킬 수 있었다. 

‘오픈팝’의 강력한 기능 중에 하나인 ‘인덱스의 자동설계’는 개발된 모든 SQL을 주기적으로 수집해 액세스 패치(Access Patch)를 분석한 후 테이블별로 필요한 인덱스 설계를 가이드 해주는 기능이다.

특히, ‘개발 완료된 애플리케이션의 배포통제’ 기능은,

배포 요청된 APP에 대해 KB카드사의 통합품질 기준에 의한 성능품질 지표를 만족한 SQL에 대해서만 배포될 수 있도록 KB카드사의 통합품질관리시스템(IQMS)의 형상/배포 관리도구와 연계,  배포 전 SQL의 최종 성능검증에서 배포까지의 자동화 프로세스를 구현해 성능부적합 애플리케이션/SQL의 운영배포를 원천적으로 차단한다. 

즉, ‘개발 완료된 애플리케이션의 배포통제’는 향후 운영과정에서 애플리케이션의 성능저하로 인한 DB장애 및 개선작업을 위한 시간적 투자를 미연에 방지하고, 업무서비스 품질을 향상시켜 오픈팝 도입의 만족도를 가장 높인 기능이다.

KB카드는 차세대 구축 초기과정에서부터 ‘오픈팝’의 적용을 통해 DB/SQL 성능안정화를 조기에 확보했고, 그 결과 통합테스트 단계부터 차세대시스템 오픈까지 성능이슈를 최소화 할 수 있었다

차세대시스템 오픈 이후 KB카드는 운영환경에서도 추가 애플리케이션의 수정 및 신규개발시 이미 내부적으로 프로세스화 된 ‘오픈팝’을 활용한 DB/SQL 성능품질 관리와 배포통제를 지속 운영, 차세대시스템이 조기에 안정적 성능을 유지하는데 큰 기여를 했다.

최근에는, 운영과정에서 자연스럽게 발생될 수 있는 애플리케이션의 성능저하를 예방하는 선제적 대응을 위해 ‘오픈팝’의 새로운 기능 ‘신규 배포 SQL에 대한 성능진단 기능’과 일정기간 동안 모든 실행 SQL에 대한 ‘시계열적 성능변화 추이분석’ 기능 그리고 운영중인 ‘DB/SQL의 성능에 대한 온라인 종합진단’ 기능을 보강(Upgrade)해, 예측 불가하게 발생할 수 있는 애플리케이션 성능의 저하로 인한 DB의 운영장애를 사전에 적극적으로 예방하고 있다.<그림1 ‘오픈팝을 활용한 SQL 품질 최적화 워크플로우(Workflow)’ 참조>

   
▲ 그림1 ‘오픈팝을 활용한 SQL 품질 최적화 워크플로우(Workflow)’

KB카드는 오픈팝을 활용, (그림1)과 같이 SQL 품질관리 워크플로우를 구축함으로써, 체계적이고 자동화된 기능들을 통해 애플리케이션 개발단계부터 운영과정까지 모든 과정에서 SQL 품질에 대한 점검·통제·추적·진단을 통해 안정적인 DB운영을 수행 중이다.

또 다른 적용사례의 B기관은 대국민 공공 서비스를 제공하는 기관으로 대규모 트랜잭션의 DB구조를 가지고 있으며, 차세대 시스템 오픈 이후 많은 시간이 경과한 시점에서 지속적으로 성능이슈가 발생했다. 

‘오픈팝’ 도입 전 조사에 의하면, 계속된 수정 및 고도화 개발로 문제 SQL들이 유입됐고 그 결과 운영 중인 SQL 중 상당수가 장애유발의 위험성을 가지고 있기에 이에 대한 성능 최적화가 필요한 상황이었다.

이 문제를 해결하기 위해 ‘오픈팝’을 시범적용 형태로 도입했고, 근본적 대응책으로 ‘오픈팝’을 근간으로 7단계의 표준화·자동화된 DB/SQL 품질관리 체계를 수립하고 기존의 사후대응 중심에서 사전 장애예방 중심의 체계로 전환, 사전 예방점검 및 그에 따른 조치, 개선이 이뤄지도록 운영을 시험적으로 수행하고 있다.<그림2 ‘오픈팝을 활용한 DB/SQL 사전예방점검 및 품질관리체계’ 참

   
▲ 그림2 ‘오픈팝을 활용한 DB SQL 사전예방점검 및 품질관리체계’.

이 B기관은 목표체계인 사전 예방점검을 ‘오픈팝’의 시범운영을 통해 시스템화 한 이후, 이를 통한 DB/SQL 성능결함을 선제적으로 예방하는데 많은 성과를 얻고 있다.

기존, 운영 시 실시간으로 노출되는 심각한 성능 문제만을 중심으로 이슈 별 사후 대응했던 방식에서 벗어나, 애플리케이션의 개발 및 수정·보완 과정에서 ‘오픈팝’의 자동화된 사전 점검체계를 활용, 성능저하 SQL의 발생을 최소화하고 개발 완료된 애플리케이션의 배포 전 사전 성능검증을 통해 성능품질 부적격 SQL의 운영 적용(배포)을 원천적으로 차단, 업무서비스 안정성이 더욱 향상됐다.

이제는 한발 더 나아가 ‘오픈팝’의 새롭게 강화된 기능들을 적용, 개발자들이 자신의 개발도구에서 직접 ‘SQL 표준-오류-성능 품질’을 점검할 수 있도록 하고, 또한 배포 적용된 SQL도 운영시스템 적용 후 다시 일정기간 동안 성능의 변화 트렌드를 지속적으로 추적·분석해 운영DB의 조기 안정화를 구현함으로써, 개발부터 운영까지 워크플로우 기반의 DB 성능장애 예방을 위한 전사적 차원의 SQL 품질관리 시스템을 구축할 예정이다.

<오픈메이드 컨설팅 금은섭 연구소장>gold@openmade.co.kr

< 저작권자 © BI KOREA 무단전재 및 재배포금지 >
오픈메이드 컨설팅 금은섭 연구소장의 다른기사 보기  
폰트키우기 폰트줄이기 프린트하기 메일보내기 신고하기
트위터 페이스북 미투데이 요즘 네이버 구글 msn 뒤로가기 위로가기
이 기사에 대한 댓글 이야기 (0)
자동등록방지용 코드를 입력하세요!   
확인
- 200자까지 쓰실 수 있습니다. (현재 0 byte / 최대 400byte)
- 욕설등 인신공격성 글은 삭제 합니다. [운영원칙]
이 기사에 대한 댓글 이야기 (0)
1
<초점>금융데이터 거래소 출범 3개월 성과를 보면…
2
“코로나 이후 프리랜서 경제 낙관적”
3
퀀텀 ‘액티브스케일’-‘빔 백업 및 복제’ 호환
4
삼성전자, ‘갤럭시 노트20’ 스튜디오 오픈
5
OK저축은행 차세대 사업자 발표, “안하나 못하나(?)”
6
VM웨어, ‘디지털 워크스페이스’ 공개
7
슈나이더, ‘갤럭시 VS 3상 UPS 전력 범위’ 확장 버전 출시
8
국민은행, ‘디지털자산’ 전략적 기술 협력
9
포티넷 ‘포티프록시 시큐어 웹 게이트웨이’, 美 DODIN APL 인증 획득
10
다임러, ‘IBM 퍼블릭 클라우드’ 성공 구축
회사소개기사제보광고문의불편신고개인정보취급방침청소년보호정책이메일무단수집거부
서울시 영등포구 여의대방로65길 13, 904(여의도동 유창빌딩)| Tel: 02-785-5108 | Fax 02-785-5109
이메일주소무단수집거부 | (주)비아이코리아닷넷 | 대표이사 : 김동기 | 사업자 등록번호:107-87-99085 | 개인정보관리책임자 : 김동기
등록번호 : 서울 아01269 | 등록일자 : 신고일자 2008.10.22 | 발행인:김동기 | 발행일자:2010.06.01 | 편집인 : 김동기 | 청소년보호책임자 : 김동기
Copyright © 2012 BI KOREA. All rights reserved. mail to webmaster@bikorea.net