많은 유저를 갖고 있는 서비스라면 다양한 서비스 장애에 노출되기 쉽다. 해당 서비스를 관리하는 기업은, 유저 동향을 파악하여 서비스 장애를 빠르게 파악하고, 문제의 원인을 빨리 밝혀 서비스를 원활히 제공해야 유저들의 이탈을 막을 수 있고, 기업의 서비스에 대한 신뢰를 지킬 수 있다.
놀랍게도 유저들은 다양한 커뮤니티를 통해 서비스를 운영하는 개발자들보다 먼저 문제를 파악하고 이를 공유한다. 정말 감사하게도 우리는 이러한 게시글들을 통해 유저 동향 분석을 할 수 있고, 이는 가장 기초적이면서도 큰 비용 없이 효과적으로 유저 피드백을 받을 수 있는 좋은 도구이다.
크롤링의 정의는 웹 페이지를 그대로 가져와서 거기서 데이터를 추출해 내는 행위이다. 그 과정을 간단히 작성하자면,
1. 필요한 정보를 웹에 요청하고
2. 그 결과를 받아서 파싱(다듬기)을 하고
3. 우리가 원하는 공간(DB)에 저장하는 것.
의 순서로 진행된다.
유저 동향 분석을 위해 게시글들을 크롤링해서 유의미한 분석을 진행할 수 있다.
해당 게시물을 보기 위해 로그인이 필요한 경우, 1회 로그인을 해줘야 한다.
크게 게시물 리스트를 수집하는 함수와 게시물을 수집하는 함수가 있다.
유니크한 키인 url로 게시물 리스트를 요청한다.
DB에 담겨지지 않은 게시물이거나, 제목, 댓글수, 조회수, 추천수 등이 변화하였다면 수집한다.
def 게시물 리스트 수집 함수:
Request(게시물 리스트 URL)
Parsing(게시물 번호, 제목...)
for 게시물 in 게시물_리스트:
if not 게시물 in DB:
def 게시물 수집 함수(게시물 정보)
if 제목 || 댓글수 변함?
def 게시물 수집 함수(게시물 정보)
if 조회수 || 추천 || 좋아요 변함?
Update DB
END
def 게시물 수집 함수(게시물 정보):
Request(게시물 URL...)
Parsing(게시물 제목, 본문...)
Request(댓글 URL...)
Parsing(댓글)
if not 게시물 in DB:
Insert DB
else:
Update DB
END
유저 동향 분석을 통해 에러에 빠르게 대응할 뿐만 아니라, 유저들의 피드백을 가장 가까이서 실시간으로 받으며, 우리 서비스의 개선점이나 유저들이 어떤 것에 열광하는지 알아낼 수 있다는 점이 정말 인상 깊었다. 좋은 서비스를 만들기 위해 유저들의 목소리에 귀를 기울이는 유저동향 분석이라는 분야가 참 매력적인것 같다.
참고:http://ndcreplay.nexon.com/NDC2016/sessions/NDC2016_0056.html