토마토시스템 공통테스트팀 최재석 전무

[컴퓨터월드] 토마토시스템은 UI/UX 분야에서 탄탄한 입지를 확보하고 있는 국산 SW전문기업이다. 2017년 출시한 웹표준 UI/UX 플랫폼 ‘엑스빌더6(eXBuilder6)’를 중심으로 공공 및 교육기관에서 많은 고객들을 확보하고 있다.

지난 2월 토마토시스템은 ‘엑스빌더6’에 최적화된 클라우드 기반 테스트 자동화 솔루션 ‘엑스테스트(eXTest)’를 출시했다. ‘엑스테스트’를 통해 번거로운 테스트 과정을 자동화하고 개발 과정에서 사전에 문제를 인식 및 해결하도록 함으로써 전체 프로젝트 품질을 향상시킬 수 있게 됐다.

토마토시스템 엑스테스트팀 최재석 전무

개발 과정에 테스트 내재화하는 ‘엑스테스트’

SI 프로젝트에는 많은 개발자들이 투입되므로, 제각기 중구난방으로 개발하는 것을 방지하기 위해 사전에 공통된 표준과 가이드라인을 만들게 된다. 모두가 공통표준과 가이드라인을 준수하게 되면 개발 과정에서 혼선을 크게 줄일 수 있다. 그러나 현실적으로 개발자 개개인이 모든 공통표준과 가이드라인을 준수하리라고 기대하기는 어렵다. 대부분의 개발자들은 각자의 스타일대로 개발을 진행하고, 나중에 테스트 과정에서나 공통표준 준수 여부를 점검해 수정한다. 만약 개발을 하는 동안 지속적으로 공통표준 준수 여부를 점검할 수 있다면 테스트 단계에서의 업무와 전체 프로젝트 시간을 단축시킬 수 있을 것이다.

토마토시스템의 ‘엑스테스트’는 인공지능(AI) 기반의 테스트 자동화 솔루션이다. 현재 △공통 UI 표준 체크 △조회 자동 테스트 △개발 진척률 모니터링 △영향도 분석 등의 기능을 갖추고 있다. 핵심 기능인 ‘공통 UI 표준 체크’ 기능을 사용하면 ‘엑스빌더6’로 개발된 모든 UI에 대해 공통표준 준수 여부를 실시간으로 점검할 수 있다. 복잡하고 번거로운 테스트 시나리오를 진행하지 않아도, ‘엑스빌더6’에서 소스코드를 작성하고 저장하면 ‘엑스테스트’가 자동으로 공통표준을 준수하지 않은 항목을 찾아서 알려준다. 개발자는 방금 작성한 소스코드를 저장한 즉시 점검할 수 있기 때문에, 차후에 시간을 들여 재차 확인하는 것보다 생생한 기억을 바탕으로 효율적인 수정이 가능하다. 또 다른 한축을 담당하는 ‘조회 자동 테스트’는 모든 조회 기능을 프로그램 개발 현황에 맞춰 자동으로 전수 테스트해 줌으로써 개발의 신뢰도를 높이는데 도움을 준다.

개발자의 업무 생산성을 높이는 것뿐만 아니라, ‘개발 진척률 모니터링’ 기능을 활용하면 관리 측면에서의 효율성 또한 개선된다. 프로젝트 발주자나 PM 등은 해당 기능이 제공하는 대시보드를 통해 현재 전체 프로젝트 대비 어느 정도의 개발이 이뤄졌는지 볼 수 있으며, 이를 ‘공통 UI 표준 체크’ 기능과 연결하면 현재 작성된 소스코드 중 수정이 필요한 게 어느 정도인지도 확인 가능하다. 이로써 공통표준 준수 여부에 대한 테스트까지 끝난 온전한 코드들과, 공통표준을 지키지 않은 채 우선 작성되기만 한 코드들을 나누어 확인하며 향후 프로젝트 추진 일정과 계획을 보다 세부적으로 조정할 수 있다.

토마토시스템은 차별화된 테스트 자동화 성능과 관리 역량을 제공하는 ‘엑스테스트’를 통해 ‘엑스빌더6’를 도입한 SI 프로젝트들의 생산성을 크게 향상시킴으로써 시장 공략을 가속화할 계획이다. 이를 위해 공공 SI 사업 등에서 많은 경험과 노하우를 갖춘 최재석 전무를 지난해 새롭게 영입, ‘엑스테스트’의 설계와 개발을 총지휘하도록 했다. 토마토시스템의 엑스테스트팀을 이끌고 있는 최재석 전무를 만나 자세한 이야기를 들어봤다.


축적된 PM 경험으로 현실적인 테스트 솔루션 개발
Q. ‘엑스테스트’ 개발을 맡게 된 이유는?

KAIST에서 경영공학 박사학위를 받은 직후 IT 현장에 뛰어든 이후 약 20여년 동안 주로 통신 분야의 데이터 분석 업무나 민간‧공공 IT 시스템 구축사업 PM을 오랫동안 맡아왔다. 이니셜만 들어도 알 만한 대기업이나 선관위, 산자부, 행안부 등 주요 공공기관이 발주하는 대형 프로젝트에서 PM을 수행하면서 경험을 쌓았다. 그 와중에 현재 토마토시스템의 주력 제품 ‘엑스빌더’ 시리즈의 전신인 ‘엑스리아(eXria)’도 사용해보면서 첫 인연이 생겼다.

이렇게 경험을 쌓는 동안 대형 SI 사업의 프로젝트 과정을 보다 효율적으로 수행할 수 있는 제품의 필요성을 느껴왔다. PM 입장에서 사업 관리를 잘 하기 위해서는 개발자들이 맡은 분량을 어느 정도 소화했는지, 작성한 소스코드에 문제는 없는지 여부를 쉽게 파악할 수 있다면 큰 도움이 된다. 또한 개발자들도 자신이 개발한 소스코드의 문제 여부를 지속적으로 확인하고 직접 수정할 수 있다면, 처음에는 귀찮아도 장기적으로는 사업관리자의 개입없이 업무 효율을 높일 수 있을 것이다.

이러한 것들을 지원해주는 제품의 필요성을 느끼던 차에 토마토시스템의 ‘엑스빌더6’로 만든 산출물들을 자동화으로 테스트하는 기능을 개발 중이라는 것을 알게 됐다. 아직 제품화까지는 되지 않은 상황이었는데, 기능을 완성시켜 제품화를 한다면 사용자들에게 큰 도움이 될 것이라는 판단이 섰다. 그래서 토마토시스템에 합류해 ‘엑스테스트’ 개발을 총괄하게 됐다. 오랜 기간 동안 민간‧공공 IT 사업의 PM을 맡으며 쌓은 경험을 결합해 더욱 실제 필드에 적합한 형태가 되도록 만들고 있다.


Q. ‘엑스테스트’와 다른 테스트 솔루션의 차별점은?

기본적으로 문제 여부를 판단하는 방법부터가 다르다. 일반적인 테스트 도구들은 사전에 정해진 절차에 따라 프로시저(procedure)하게 맞는지 틀렸는지 여부를 확인한다. 그러니 정해진 룰에서 조금이라도 벗어나거나 특징적인 이상 여부에 대해서는 개별적으로 대응하기가 어렵다. 내가 토마토시스템에 갓 참여한 시점에 ‘엑스빌더’에 탑재돼 있던 테스트 도구 역시 그랬다.

반면 ‘엑스테스트’의 방식은 기존과 다르다. ‘엑스테스트’의 작동 방식은 전통적인 테스트 도구보다는 오히려 데이터 분석 도구의 방식에 가깝다고 보면 된다. ‘엑스빌더6’에서 나온 산출물 자체를 하나의 원본 데이터로 보고, 이를 정제하고 분석하고 시각화와 더불어 지능화된 분석 기법을 활용해 문제 여부를 판단한다. 소스코드 덩어리 자체를 하나의 데이터로 보면 좀 더 직관적이고 쉽게 접근할 수 있다. 그 결과 ‘엑스테스트’의 개발 방향은 처음과 상당히 달라졌으며, AI 기반의 데이터 분석 도구라는 콘셉트로 기존에 없었던 기능들도 대거 추가할 수 있었다. 통신사에서의 데이터 분석 경험과 세부전공이었던 네트워크 최적화가 새로운 관점으로 접근하고 문제를 해결하는데 많은 도움을 준 것 같다.

‘엑스테스트’의 4가지 핵심 기능

개발 전 과정의 생산성과 관리 역량 향상
Q. ‘엑스테스트’의 대표적인 기능을 소개한다면?

‘엑스테스트’는 크게 4가지 기능으로 구성돼 있지만, 가장 기본이 되는 것은 역시 공통 UI 표준 체크 기능이다. 일반적인 SI 프로젝트에는 많은 개발자들이 투입되므로 이들이 같은 형상으로 개발할 수 있도록 표준과 가이드를 제공한다. 하지만 이를 제대로 지켜가며 개발하는 사람은 드물다. 관리‧감독하는 입장에서 하나하나 체크하기에는 시간이 너무 많이 걸린다. 이렇게 내버려둔 문제들은 결국 테스트하고 검증하는 단계에서 문제가 된다.

‘엑스테스트’의 표준 체크 기능을 실행하면 ‘엑스빌더6’에서 작성한 소스코드를 가지고 와서 자동으로 잘못된 부분을 표시해준다. 어떤 항목을 어겼는지, 무엇이 잘못돼 있는지 조회할 수 있다. 다시 ‘엑스빌더6’로 돌아가 해당 부분을 수정하고 소스를 커밋하면, ‘엑스테스트’에서 곧바로 해당 부분의 문제 표시가 사라진 모습을 확인할 수 있다. 소스코드를 작성하는 것과 동시에 문제 여부를 확인할 수 있으니 수정도 손쉽다.

현재 ‘엑스테스트’에는 국내 SI 사업에서 주로 활용되는 25개의 공통 표준들이 탑재돼있다. 현장에서 SI 프로젝트를 경험하면서 자주 필요로 했던 표준들은 대부분 갖춰놓았다. 프로젝트에 따라 간혹 새로운 표준을 만들어넣는 경우도 있겠지만, 대개 설정값 정도만 수정하면 되는 수준에서 커버할 수 있을 것으로 예상한다.

또 다른 주요한 기능은 자동 조회 테스트 기능이다. 해당 기능은 말 그대로 조회 테스트를 자동으로 수행해준다. 테스트 단계에서는 조회 기능에 임의의 값을 넣어서 정상적인 값이 호출되는지 확인하게 되는데, 자동 조회 테스트 기능이 이 업무를 대신한다. ‘엑스테스트’가 입력할 수 있는 값을 개발된 화면에 맞춰 최적으로 구성한 후 여러 가지 넣어보고 정상적인 값이 반환되는지를 확인한다. 하다못해 정상적이지 않은 값이 반환되더라도, 조회가 된다는 것은 최소한 DB까지 연결은 돼있다는 게 검증되는 셈이니 무엇을 고쳐야 할지 알 수 있게 된다. 이것만 해도 테스트 공수가 상당히 줄어든다. 간단한 기능이나 프로그램간 연결 확인 등 최소한의 검증이 안 된 채로 테스트 단계로 넘어오면, 정작 중요한 통합 테스트는 시작조차 못하고 중요한 인력이 단위 테스트에 묶여있게 되는 상황을 겪게 되지 않는가?

‘엑스테스트’의 자동 조회 테스트 기능을 실행해두고 지금까지 개발된 메뉴들을 호출하면 각 항목에 자동으로 임의의 값이 입력되고 결과값이 반환되는지를 확인해 주는데, 이때 조회시간도 확인할 수 있어서 실제 시스템 운영 시 지연시간이 발생할 수 있는 프로그램 및 DB를 미리 튜닝할 수 있다.


Q. 테스트 이외에도 차별화된 기능이 있다면?

일반적인 표준 준수 점검 제품에서는 찾아보기 힘든 기능인데, ‘엑스테스트’에는 개발 진척률을 실시간으로 모니터링하는 기능이 탑재돼있다. 앞서 공통 UI 표준 체크 기능이나 자동 조회 테스트 기능 등에 기반해, 프로젝트에서 개발해야 하는 전체 컴포넌트 수 대비 현재 완료된 부분이 어느 정도인지 확인할 수 있다. 기존에는 프로젝트 진척도를 정확히 집계할 수 있는 방법이 없기 때문에 어느 정도는 감과 근사치에 의존해야 했다. 그런데 ‘엑스테스트’의 개발 진척률 모니터링 기능은 실제 테스트까지 통과한 분량을 정확히 계산해주기 때문에 정확한 프로젝트 진척률을 실시간으로 파악할 수 있다.

마지막은 영향도 분석 기능이다. 이미 개발이 완료된 부분을 수정할 때 다른 소스들에게 미치는 영향을 분석해 예상되는 문제를 미리 파악할 수 있다. DB처럼 많은 프로그램들과 연결된 요소를 함부로 건드리면 이미 개발해놓은 요소들을 전부 수정해야 하는 사태가 발생할 수 있으니, 영향도 분석 기능을 통해 이를 사전에 예측하고 문제상황을 방지하는 것이 큰 도움이 된다. 이미 문제가 생겼을 경우에도 소스코드의 변경 내역을 실제로 입력한 쿼리 내용까지 확인 가능한 모니터링 기능이 탑재돼 있어 보다 빠르게 원인을 찾고 대응할 수 있다. 다만 영향도 분석 기능은 아직 시제품 형태이기 때문에 고도화가 조금 더 필요한 부분이다.


Q. ‘엑스테스트’ 출시 후 사용자들의 반응은?

현재 ‘엑스테스트’는 외부 공공 프로젝트에 납품된 것 을 포함해 총 4개 사이트에 적용됐다. 그런데 사이트에 따라서 평가가 극명하게 나뉘고 있다. 좋은 평가를 내린 곳에서는 뛰어난 테스트 자동화 성능과 프로젝트 진척률 모니터링 기능에 높은 만족도를 보였다. 초기 도입 단계에서는 표준 준수를 하지 않은 컴포넌트가 약 5천 건 정도 있는 것으로 나타났는데, 한 달 안에 거의 대부분의 문제가 사라져 테스트 단계의 공수를 온전히 확보할 수 있게 됐다. 또한 PM 입장에서는 항상 전체 진척률에 대한 전수조사가 가능하다는 점이 프로젝트 관리에 많은 도움을 주기도 했다.

 “‘엑스테스트’가 가진 뛰어난 개발 생산성과 관리 측면의 편리함을 인정받을 수 있도록 적극적인 고도화와 시장 공략을 추진해나가겠다.”
 “‘엑스테스트’가 가진 뛰어난 개발 생산성과 관리 측면의 편리함을 인정받을 수 있도록 적극적인 고도화와 시장 공략을 추진해나가겠다.”

한편 불만의 목소리도 있었다. 대부분 내부 사이트였다. ‘엑스테스트’ 개발과정에서 자사 프로젝트들에 적용했었는데 문제가 발생했을 때, 이를 신속히 대응하지 못해서 불만을 더 키웠다고 판단하고 깊이 반성하고 있다. 한편, 실제 성능과 효율성이 어떤지를 떠나서, 개발 과정에서 해야하는 일이 늘어난데다 본인들의 업무 진행도가 실시간으로 감시된다는 느낌을 받는다는 이유도 있었다. 하지만 궁극적으로는 나중에 해야할 일을 당장의 추가적인 업무로 더하는 대신에 추후 최종적인 테스트에 집중할 수 있고, 개발 생산성이 크게 향상되는데다, 개발자들은 본인의 업무 진행 속도와 실력을 객관적으로 증명할 수 있어 오히려 좋다고 하는 경우도 있었다. 특히 ‘엑스테스트’는 자사 제품인 ‘엑스빌더6’와의 호환성을 기반으로 전부 자체 개발한 것이기 때문에, 사용자들의 불편사항이나 새로운 아이디어에 대해 빠른 피드백과 개선이 가능하다는 큰 장점이 있어 이를 충분히 활용하고 있다.

향후 ‘엑스테스트’는 장기적으로 ‘엑스빌더6’만이 아닌 타사 제품과의 호환도 생각하고 있다. 물론 솔루션마다 사용하고 있는 문법이 다르고 제각기 특별한 요소들이 더해져있기 때문에 쉽지는 않겠지만, 결국은 UI라고 하는 특성이 있으니 크게 다를 것이라고는 생각지 않는다. 가령 전자정부 프레임워크, 다시 말해 스프링 프레임워크를 공통적으로 지원하는 부분이 있으니 유사한 부분도 상당할 것이다. ‘엑스테스트’의 우수한 성능과 편의성을 경험해보면 타사 제품을 사용하는 곳에서도 필요성을 느끼게 될 것으로 예상한다. ‘엑스테스트’가 가진 뛰어난 개발 생산성과 관리 측면의 편리함을 시장에서 인정받을 수 있도록 적극적인 고도화와 시장 공략을 추진해나가고자 한다.

저작권자 © 컴퓨터월드 무단전재 및 재배포 금지