소속 회사 POC 과정 중에 사용했던 ‘SQL 자동 재현’ 방식은 1개 업무에 대해 훌륭히 그 역할을 수행하였지만 전체 업무를 재현하기에는 여러 가지 한계가 존재함을 앞장에서 소개하였다.
그리고 티맥스는 그 한계를 넘어선 소속 회사의 전체 업무를 재현할 수 있는 솔루션 ‘티베로 리플레이’를 3개월 만에 개발완료하여 전환 프로젝트에 선보였다. 제조사가 상이한 데이터베이스에서 수행되는 모든 SQL을 어떻게 ‘저장’하고 티베로 데이터베이스에 ‘재현’할 수 있는 것일까?
리플레이의 핵심은 와스서버가 데이터베이스와 통신할 수 있도록 인터페이스 역할을 수행하는 JDBC 드라이버(소속 회사는 90% 이상의 업무에 JDBC를 사용한다)를 이용하는데 있다.
JDBC 드라이버는 와스서버가 요청한 SQL들이 데이터베이스까지 이동할 때 이용하는 일종의 교통 인프라(도로, 다리 등) 역할을 수행하므로 이곳을 통해 지나 다니는 모든 SQL들을 빠르게 복사하여 마치 포장(wrapping)하듯이 정해진 공간에 ‘저장’(jwl(JDBC Wrapper Log) 파일)하는 기능을 리플레이의 JDBC Wrapper 드라이버가 제공한다.
즉, JDBC Wrapper 드라이버를 기존 JDBC 드라이버가 존재하는 경로에 저장하고 JDBC 설정 파일만 일부 수정하면 원하는 시간동안 수행된 모든 SQL을 정해진 경로에 손쉽게 파일 형태로 저장할 수 있다.
한편, jwl 파일을 생성할 때는 운영 중인 와스서버에 가해지는 부하를 최소화하기위해 별도의 정리 작업 없이 있는 그대로 SQL 및 관련 정보들을 저장하게 되는데, 리플레이 ‘재현’을 담당하는 플레이어(Player)는 원활한 재현을 위해 jwl 파일에 저장된 로그를 순서와 세션별로 최대한 정리하고 정렬한 뒤 별도의 rpf(Replay PlanFile) 파일을 만들고 해당 플랜에 따라서 티베로에 부하를 재현하게 된다.
리플레이의 주요 특징을 요약해보면 다음과 같다.
note : 본 내용은 전환 프로젝트를 위해 개발된 리플레이를 바탕으로 작성되었으므로 제품화된 리플레이의 구조와 기능과는 다소 상이할 수 있음을 참고하기 바란다.
- 강좌 URL : http://www.gurubee.net/lecture/2972
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.