(1) 서울 카페 추천 웹페이지 만들기 - Prologue

Updated:


2020-10-21부터 2020-12-28까지 진행했던 서울시 25개구 카페추천 웹페이지 만들기 팀프로젝트 개발에 대한 포스팅이다. 이 글에서는 프로젝트 주제선정 배경과 구현단계를 소개하였다.

0. 첫번째 프로젝트 시작

2020년 6월 22일에 시작한 빅데이터에 대한 기초교육(JAVA, Python, SQL, MongoDB, ORACLE, Hadoop, Linux, 딥러닝 등) 이 끝나고, 2020년 10월 21일부터 12월 28일까지 프로젝트를 개발하였다. 이곳에 발을 들인지 3개월이 채 되지 않은(코로나로 휴강기간 有) 내가 어쩌다보니 팀장을 맡게 되었고 이 팀(총 인원 3명)을 이끌면서… 그렇게 나의 “존버 반 + 열정 반” 정신이 드디어 빛을 발하기 시작하였다.(라고 쓰고 고난의 시작이라고 읽는다.)

아이디어

1. 프로젝트 주제 선정 배경

본 프로젝트는 “고객 맞춤 서울시 25개구 카페추천 웹 페이지 만들기” 를 주제로 시작되었다. 프로젝트 주제를 정한 배경엔 비트교육센터를 다니면서 점심을 사먹어야 되는 데 매번 사먹다보니 오전 10시 50분부터 11시 사이의 쉬는 시간엔 오늘은 어디 갈지, 뭘 먹을 지 고민하면서 구글링하는 것이 아주 귀찮은 일과 중 하나가 되어버렸다.

그러다 문득 이런 생각이 들었다. 나한테 딱 맞춘 음식점을 쉽고 빠르게 찾을 수 있었으면 좋겠다고… 가령 위생적이고, 가성비 있고, 맛있고, 화장실도 깨끗하고, 테이블도 넓고, 많이 붐비지 않는 그런 음식점…을 원클릭으로 찾고 싶었다. 이런 생각을 기반으로 고객의 이용목적을 충족시켜주는 맛집 웹페이지를 구현하고자 했다.

허나!!! 음식점을 타겟으로 잡기엔 한식, 양식, 일식, 중식, 분식, 동남아 음식 등등… 그 범위가 너무 방대하여 빅데이터 공부한 지 3달이 채 안된 나의 수준으론 2개월 안에 이 프로젝트를 완성시킬 수 있을 지에 대한 의문이 들었다. 그래서 음식의 범위를 좁히고 좁혀, 항상 점심을 먹고 오후 3시쯤에 커피를 마시는 습관이 있는 터라 “음식점”에서 “카페” 로 그 범위를 확 줄였다.

2. 추천 카페 위치 선정

이 다음의 문제는 추천 카페의 위치를 선정하는 것이다. 전국을 다 하자니 인터넷상의 카페정보를 크롤링하기엔 시간이 턱없이 모자르고…그래서 정한 것이 핫한 카페는 서울에 다 있다는 생각(모로 가도 서울만 가면 된다.)으로 서울시 25개구(区) 카페를 대상으로 선정하였다.

3. 카페 데이터 텍스트 마이닝

먼저 카카오맵의 서울시 25개구(区) 카페 정보를 크롤링하여 카페 데이터를 수집하였다. 또한 고객이 카페를 갈 때, 어떠한 이용목적으로 가는 지, 그 이용 목적을 만족하기 위해 어떤 요소를 고려하는 지에 대해서 제대로 파악하고 있어야 추천 웹페이지의 기본 틀을 만들 수 있기 때문에 구글맵의 카페 후기를 크롤링해서 얻은 결과물을 자연어 처리(Natural Language Processing) 를 통해 단어의 빈도수를 분석하여 각 카페 이용 목적에 따른 요소들을 분류하고자 했다.

3.1. 텍스트 마이닝이란?

텍스트를 언어학, 수학, 통계학, 컴퓨터공학 등의 학문적 지식을 이용하여 특정 목적에 맞게 유의미한 정보를 추출하는 분석 및 처리 과정을 텍스트 마이닝(text mining)이라고 한다. - 출처: 통계청 통계교육원

3.2. 텍스트 마이닝 4단계 절차

  • 1단계 : 텍스트 수집 (crawling, scrapping)
  • 2단계 : 텍스트 정제 (Natural Language Processing)
  • 3단계 : 텍스트 분석 ( word cloud & TF-IDF, SNA, cluster analysis,topic modeling, word embedding, sentiment analysis)
  • 4단계 : 평가 및 적용 (data visualization, dashboard)
    • 출처 : 윤태일, 이수안, 『파이썬으로 텍스트 분석하기』, 늘봄(2018), 23.


4. 프로젝트 구현단계

프로젝트 구현단계를 보다 쉽게 파악하기 위해 크게 7단계로 나눠서 설명해보자면 다음과 같다.

구현단계

  1. 텍스트 마이닝 1단계: 데이터 수집 (크롤링)
  2. 텍스트 마이닝 2단계 데이터 정제 (자연어 처리)
  3. 텍스트 마이닝 3단계 : 빈도수 데이터를 분석 (워드카운터)
  4. 텍스트 마이닝 4단계 : 10가지 카페테마를 지정
    위와 같이 데이터 수집, 정제, 분석 과정의 텍스트 마이닝을 적용해 카페 데이터를 확보했다.
  5. 또한 Django 프레임 워크에
  6. My SQL db를 연동하여 데이터 테이블 생성 및 적재를 진행하였고,
  7. 이러한 데이터 개발환경을 기반으로 웹페이지를 구현하였다.


5. 소프트웨어 아키텍쳐

아케텍쳐

  • Django(발음주의! ‘디장고’ 아니고 ‘장고’)를 중심으로
    • 프론트에서는 html,css,JavaScript,
    • 백앤드에서는 Python과 Kakao Developers,
    • 데이터베이스는 My SQL db,
  • 개발환경으로는 PyCharm과 Google Colab을 사용하였다.

6. 총정리

카카오맵과 구글맵에서 카페 데이터 수집 및 자연어처리 모델을 제작하여 도출한 데이터를 기반으로 웹 상에서 사용자가 원하는 환경적 요소나 사용 목적을 설정하여 이용자의 카페 이용 목적을 충족시켜주는 카페추천시스템을 구현했다. 이러한 과정을 통해, 내가 속한 팀은 “서울시 25개 구(区)의 고객 맞춤 카페 추천 웹페이지를 만들기”로 최종결정하였다.

Leave a comment