[유저동향 파악] 개념 공부

김형준·2022년 1월 3일

Today I Learned...

목록 보기
7/13

유저 동향 파악의 필요성

많은 유저를 갖고 있는 서비스라면 다양한 서비스 장애에 노출되기 쉽다. 해당 서비스를 관리하는 기업은, 유저 동향을 파악하여 서비스 장애를 빠르게 파악하고, 문제의 원인을 빨리 밝혀 서비스를 원활히 제공해야 유저들의 이탈을 막을 수 있고, 기업의 서비스에 대한 신뢰를 지킬 수 있다.
놀랍게도 유저들은 다양한 커뮤니티를 통해 서비스를 운영하는 개발자들보다 먼저 문제를 파악하고 이를 공유한다. 정말 감사하게도 우리는 이러한 게시글들을 통해 유저 동향 분석을 할 수 있고, 이는 가장 기초적이면서도 큰 비용 없이 효과적으로 유저 피드백을 받을 수 있는 좋은 도구이다.

크롤링이란?

크롤링의 정의는 웹 페이지를 그대로 가져와서 거기서 데이터를 추출해 내는 행위이다. 그 과정을 간단히 작성하자면,
1. 필요한 정보를 웹에 요청하고
2. 그 결과를 받아서 파싱(다듬기)을 하고
3. 우리가 원하는 공간(DB)에 저장하는 것.
의 순서로 진행된다.

유저 동향 분석을 위해 게시글들을 크롤링해서 유의미한 분석을 진행할 수 있다.

게시판 크롤러의 특이점

해당 게시물을 보기 위해 로그인이 필요한 경우, 1회 로그인을 해줘야 한다.

게시판 크롤링의 원리

크게 게시물 리스트를 수집하는 함수와 게시물을 수집하는 함수가 있다.

게시물 리스트를 수집하는 함수

유니크한 키인 url로 게시물 리스트를 요청한다.
DB에 담겨지지 않은 게시물이거나, 제목, 댓글수, 조회수, 추천수 등이 변화하였다면 수집한다.

def 게시물 리스트 수집 함수:
	Request(게시물 리스트 URL)
    Parsing(게시물 번호, 제목...)
    
    for 게시물 in 게시물_리스트:
    	if not 게시물 in DB:
        	def 게시물 수집 함수(게시물 정보)
            
        if 제목 || 댓글수 변함?
            def 게시물 수집 함수(게시물 정보)
            
        if 조회수 || 추천 || 좋아요 변함?
        	Update DB
     END

게시물을 수집하는 방법

  1. 게시글의 url을 웹 요청을 해서 게시물 html을 받아온다.
  2. 게시물 정보를 포함해서 부족한 부분을 파싱한다.
  3. 주요 정보에 변화가 있거나 없던 게시물이라면 댓글(게시물 리스트에 없던 정보들)도 요청을 해서 수집한다.
  4. DB에 없으면은 Insert를 하고 DB에 있으면은 업데이트한다.
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

profile
긍정의 힘을 믿어요

0개의 댓글