[보안뉴스 문정후 기자] 소프트웨어 사용자들에게는 ‘경험’이 대단히 중요하다. 소프트웨어를 사용하다가 좋지 않은 경험을 하게 된다면 미련 없이 다른 소프트웨어로 옮겨 간다. 여기서 말하는 ‘좋지 않은 경험’이란 예를 들어 자주 다운이 된다거나, 오류가 자주 뜬다거나, 사용자 인터페이스가 매우 복잡하다거나 하는 것들이다.

[이미지 = gettyimagesbank]
그렇기 때문에 소프트웨어 개발자들은 어떻게든 사용자가 좋은 경험만 하도록 여러 가지 방법을 고안하는데, 최근에는 ‘예측 분석’ 기술이 각광을 받기 시작했다. 사용자의 데이터 히스토리와, 통계학적인 모델링과, 머신 러닝 등을 고루 사용하는 것이 핵심이다.
예측 분석으로 소프트웨어 개발자들이 눈을 돌리는 이유는 간단하다. 바꾸만 변하는 사용자들의 요구를 미리 파악해 대응하고자 하는 것이다. 그렇게 함으로써 더 좋은 경험을 제공하겠다는 것인데, 그러므로 정확한 예측 분석 알고리즘과 모델을 차용하는 것이 그 무엇보다 중요하다. 그리고 그 분석 장치를 잘 사용하는 것도 중요한데, 그러려면 다음 몇 가지 절차를 밟는 것이 적잖은 도움이 될 것이다.
1. 모든 문제들을 파악하라
예측 분석 모델을 써서 최적의 결과를 얻고자 하는 소프트웨어 개발자가 제일 먼저 할 일은 현재 소프트웨어의 문제점들을 파악하는 것이다. 예를 들어 현재 소프트웨어가 특정 장비와 호환이 되지 않는 문제가 있는데, 그 장비의 인지도가 점점 올라가고 있다면 소프트웨어 개발사 입장에서는 꽤나 심각한 타격이 될 수 있다.
현존하는 문제들을 전부 파악했다면 다음으로는 시급히 해결해야 하는 것과 조금 더 시간의 여유가 있는 것들을 구분해야 한다. 이 단계에서는 데이터 수집의 ‘매개변수’를 정하기도 해야 한다. 무슨 말이냐면, 어떤 정보를 중점적으로 모을 것인지를 결정해야 한다는 것이다. 해결하고자 하는 문제에 따라 수집 대상이 되는 정보는 사용자들의 평균 소프트웨어 사용 시간이 될 수도 있고, 소프트웨어 로딩 시간이 될 수도 있으며, 사용자들의 선호도나 취향이 될 수도 있고, 연령이나 종교 등이 될 수도 있다.
어떤 데이터를 어느 정도나 수집할 것인지를 결정했다면 데이터를 수집하는 데 장애가 될 만한 것들을 예상하고 해결책을 모색해야 한다. 이 때 중요한 건 데이터를 수집해 이루고자 하는 것이 무엇인지를 늘 기억하는 것이다. 데이터를 모으다 보면 데이터 수집 자체에 빠져서 본래 목적을 잊는 경우가 많다. 이 데이터를 모으는 목적이 무엇인지를 기억해서 수집 행위 자체에 과몰입하지 않도록 하자.
2. 목적 달성에 부합한 데이터를 선택하라
어떤 문제를 어떤 식으로 해결해야 하는지 파악했다면 그 다음은 필요한 ‘사용자 데이터’의 유형을 선택해야 한다. 예를 들어 온라인 설문을 통해 소프트웨어에 대한 사용자의 피드백이나 의견들을 모으는 것이 있을 수 있다. 그 외에도 수집을 고려해야 하는 ‘사용자 데이터’에는 바이오(프로파일) 데이터, 실 사용 시간, 소프트웨어가 설치된 장비 관련 데이터 등 여러 가지가 있을 수 있다.
그래서 여기서도 데이터 수집의 궁극적 목적을 계속해서 상기해야 한다. 그래야 필요한 사용자 데이터만 효율적으로 모아 분석할 수 있다. 여기서 궁극적 목적이란 소프트웨어의 사용성을 높이는 것이므로, 그것에 도움이 되는 데이터에만 집중하도록 하자. 또 하나 중요한 건 사용자 데이터를 모으는 방식이 합법적이고 적절해야 한다는 것이다. 그리고 수집된 데이터를 안전하게 저장하고 때에 맞게 폐기하는 방법도 반드시 고안해야 한다.
3. 데이터 수집 모델을 만들어 적용하라
예측 분석 모델을 구축하기 위해 사용할 수 있는 데이터 수집 방법에는 여러 가지가 있다. 또한 데이터를 분석하는 기술도 다양하다. 그러니 가장 정확한 결과를 내주는 것을 골라내야 한다. 이건 데이터에 따라, 그리고 분석의 목적에 따라 달라서 현장에서 그 때 그 때 결정해야 한다.
하지만 판단이 잘 되지 않는다면 일단 로우 데이터(raw data)를 구조화 하는 데 가장 도움이 되는 것을 찾는 게 좋다. 소프트웨어 시장의 경쟁은 극심하기 때문에 소프트웨어 개발자의 모든 시간은 금이며, 따라서 데이터 수집과 분석의 시간을 줄이는 것도 반드시 고려해야 한다. 그렇기 때문에 데이터의 구조화는 어느 시점에든 반드시 이뤄내야 할 것일 수밖에 없다.
또 하나 고려해야 할 것은 사용의 편리성이다. 소프트웨어 개발 및 향상에 투입되는 직원은 개발자 한 명이 아니라 한 팀일 때가 많다. 그러므로 모두가 편리하게 사용할 수 있어야 한다. 분석 알고리즘 자체는 좋은데 사용하기가 까다로워 팀원마다 다른 결과를 낸다면 곤란하다. 사용자의 경험을 향상시키는 데 아무런 도움이 되지 않는다.
4. 결과의 정확도를 평가하라
위의 모든 과정을 거쳤고, 드디어 데이터를 분석한 결과가 나오기 시작했다면 그 결과의 정확도를 평가할 차례다. 여러 데이터를 잘 모아 분석했더니 정말 고객의 필요와 반응에 대한 예측이 정확해졌을까? 이 질문을 꾸준히 해가며 실험을 반복하고 적절한 수정 단계를 거치면 윤곽이 잡히기 시작할 것이다.
이미 상관관계가 밝혀진 데이터와 결과를 이용해 실험을 하는 것이 먼저다. A라는 데이터를 분석하면 B라는 결과가 나와야 하는데, 정말로 답이 그대로 나온다면 일단 그 예측 분석 알고리즘은 최소한의 적정선을 통과한 것이나 다름 없다. 실험할 데이터의 범위를 조금씩 늘러가면서 단계별로 결과의 정확도를 측정하고, 어떤 상황에서 이상한 답이 나오는지도 확인하여 보강을 하면 더욱 효과적이다.
아직 예측 분석 알고리즘을 통해 사용자 경험을 향상시키고자 하는 조직들의 수 자체는 많다고 할 수 없다. 통계에 따라 다르지만 많아 봐야 전체 기업의 1/4 정도 되는 것으로 알려져 있다. 하지만 이런 알고리즘의 정확도는 갈수록 높아지는 중이며, 따라서 사용자에게 좋은 경험을 제공해야만 하는 모든 업체들은 언젠가 이 분석 기술에 의존도를 높일 수밖에 없을 것으로 예상된다.
글 : 폴리나 티베츠(Polina Tibets), 비즈니스 운영 총괄, Pangea.ai
[국제부 문정후 기자(globoan@boannews.com)]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>