메뉴 건너띄기
상단메뉴 바로가기 본문 바로가기

S W T E C H

그 사람에 대한 모든 정보, Memento

  • 2019-12-27 15:03
  • |
  • SW마에스트로
그 사람에 대한 모든 정보, Memento


안녕하세요
! 저는 SW서포터즈 김동환이라고합니다. 

이번 달부터 한텀 동안 SW마에스트로 과정에 있는 팀들의 기술을 조금씩 소개하려고 하는데요.

오늘은 SW마에스트로 7Memento 팀의 기술을 소개하려고 합니다.



Memento일까요?

Memento(메멘토)는 사전적의미로는 기념물이란 뜻입니다

Memento팀은 팬이나 미디어 소식을 알고 싶은 사람이 관심 있는 유명인 에 대해서 알고 싶을 때 “가 살았던 인생을 들려주시는 서비스를 제공합니다.


그들은 어떻게 이런 서비스를 생각해 내었을까요?


주변에 많은 사람들이 연예에 많은 관심을 가지고 있는데, 그 욕구를 적극적으로 해소 할 만한 서비스가 마땅히 없다는 주변 사람들의 조언이 있었습니다.

저희는 이 의견을 나름대로 해석해서 연예와 시사에 대한 이야기를 잘 들려줄 수 있는 서비스를 만들면 재밌겠다는 생각 하에 서비스를 시작하게 되었습니다

막상 서비스를 계속 기획하다 보니, 점점 저희 서비스의 매력에 빠져 들어서 재밌게 프로젝트를 진행하고 있습니다.” 이영수 팀장의 말이다.



오늘도 열심히 개발중인 Memento

이처럼 이영수(팀장), 백동환, 배지운 그리고 최광선 멘토로 구성된 Memento팀의 서비스는 크게 3개의 핵심 기술로 구성됩니다

바로 데이터를 수집하고 이를 분석하고, 사용자에게 보여주는 기술인데요, 오늘은 이 세가지에 대해서 중점적으로 다뤄보겠습니다.


웹 상의 데이터를 모두 수집하라!

한 사람의 이야기를 제대로 들려주려면 먼저 정보들을 모아야 합니다

Memento팀은 웹 상에 흩어진 다양한 정보 중에서도 그 인물의 스토리를 구성할 수 있도록 뉴스 기사를 수집합니다

그리고 이에 해당하는 사진을 모아 이해를 돕고 좋은 시각적 효과를 주도록 했습니다

Memento팀은 추가적으로 변곡점이 될 수 있는 큰 사건들에 대한 유저들의 댓글과 SNS 글을 모아 당시 대중들의 반응까지도 함께 보여주는 것을 목표로 하고 있습니다.

 

그러나 데이터를 수집만 해서는 아무 의미가 없습니다. 데이터를 가공하고 분석해서 사용자가 이해할 수 있는 의미있는 컨텐츠를 생산해 내는 것이 가장 중요한 핵심 기술입니다

Memento팀은 이를 위해서 자연처리기술(Natural Language Processing, NLP), 군집화기술(Clustering), 불필요한 정보를 지우는 기술(Textmining), 

사람들의 반응을 추출하는 기술(Sentimental Analysis), 사건을 요약하는 기술 등 다양한 기술들이 사용되고 있습니다.


*단순한 정보를 의미있는 컨텐츠로, 데이터 분석 기술


그 중에서도 가장 기본이 되는 기술이 바로 자연어 처리 기술(NLP)입니다

NLP어떻게 하면 컴퓨터가 사람의 언어인 텍스트를 이해할 수 있을까?” 라는 질문에서 출발했습니다

요즘 인공지능의 발달로 사람의 말을 이해하는 기계가 생기고 있다고 하지만 사실 컴퓨터가 이해하는 방식과 사람이 이해하는 방식은 아주 큰 차이가 있습니다

단적인 예로 컴퓨는 단어 그 자체를 이해하는 것 이전에 숫자로 만들어줘야만 합니다. 그러한 방식의 대표적인 예로 Word Embedding 기법이 있습니다.



사람이 글을 이해하는 방식과, 컴퓨터가 글을 이해하는 방식은 다르다

기존의 방법인 count-based methods 은 단어를 count하여 길이가 매우 긴 하나의 벡터를 만듭니다

그래서 해당 단어가 존재하면 count하고 존재하지 않으면 count하지 않음으로서 하나의 문서를 characterize합니다

이때의 가정(Distributional Hypothesis)은 같은 context에 있는 단어는 같은 semantic meaning을 공유한다는 것입니다

따라서 두 문서가 같은 context에 있다면 그 문서의 벡터의 유사도는 높을 것입니다. 그러나 이러한 방법에는 단점들이 존재했습니다

존재하지 않는 단어들로 인해서 벡터(데이터)가 굉장히 Sparse하다는 것과, 이러한 vectorization이 무작위적이라는 것입니다

때문에 성공적인 분석을 위해서는 굉장히 많은 데이터가 필요했습니다.

이에 반해 word2vec 기술은 original 문서로부터 Word Embedding을 학습하는 계산효율성이 좋은 predictive model입니다

이 기술은 크게 CBOW(continuous bag-of-words)Skip-Gram model 이라는 두 가지 방법으로 구현되는데요, CBOW는 문서로부터 목표 단어를 예측합니다

예를 들어, “물고기는 바다에 산다라는 문장에서 물고기라는 목표 단어를 예측합니다

, 문맥을 이용하여 특정 단어가 나올 확률을 예측합니다. 이에 반해 Skip-Gram model물고기라는 목표 단어로부터 물고기는 바다에 산다라는 문장을 예측합니다

쉽게 말해 하나의 단어로부터 문맥의 단어가 나올 확률을 예측합니다.



CBOW모델은 주어진 단어 앞뒤의 단어를 Input으로 주어진 단어를 맞추기 위해 학습하는 네트워크를 구성하고

Skip-gram 모델은 단어 하나를 가지고 주위의 단어가 나올 확률을 추론합니다

이와 같은 방법을 통해서 하나하나의 단어들을 벡터 공간상의 하나의 점으로 맵핑해줄 수 있게 됩니다.


Memento팀은 효과적인 데이터 분석을 위하여 다양한 기술들을 사용하였습니다. 영어와 달리 한국어는 띄어쓰기가 아닌 형태소 단위의 단어 분석이 필요합니다

따라서 KoNLPy와 같은 라이브러리를 이용하여 형태소를 분석하고, Word2vec, Doc2vec, 계층분석(Hierarchy Clustering), 

TextRank 등의 알고리즘을 서비스의 특성에 맞게 수정하여 사용하였습니다. 최근에는 머신러닝 알고리즘을 사용하여 분석의 활용도를 높이고 있다고도 합니다.



사용자가 한눈에 볼 수있도록 하는 데이터 시각화

데이터를 잘 분석하는 것도 중요하지만 분석된 데이터를 어떻게보여주느냐에 따라서 사용자가 느끼는 서비스의 품질이 결정됩니다

Memento 팀은 분석 작업을 거친 가공 데이터를 다시 DB에 저장합니다이때 사람과 사건을 연결하는 작업이 수반됩니다

이후에는 웹의 형태로 특정 인물에 대한, 혹은 특정 사건에 대한 매거진을 만들고, 사용자는 만들어진 매거진을 보며 그 사람에 대한 스토리를 들을 수 있습니다

특별히 운용 비용을 낮추고 서비스 속도를 높일 수 있도록 정적 웹 방식을 사용하였습니다.

   

*정적 웹

사용자(혹은 클라이언트)URL를 통해 서버에 웹페이지를 요청하였을 때, 서버 안에 이미 만들어져 있는 HTML문서를 사용자에게 보내주는 경우 이를 정적 웹페이지라고 한다

웹페이지의 내용이 요청하는 사용자마다 달라질 필요가 없는 정적인 정보인 경우 사용되며, 모든 사용자는 같은 결과의 웹페이지를 서버에 요청하고 응답받는다

예를 들어 회사소개, 음식메뉴, 뉴스 등이 있다.


이러한 정적 웹 방식은 Memento 서비스에 아주 적절합니다. 사용자에게 보여줄 컨텐츠는 사용자가 원할 때마다 새롭게 정보를 수집하고 분석하여 보여줄 필요가 없습니다

오히려 주기적으로 정보가 업데이트 되는 매거진 방식을 사용하여 사용자는 웹상에 올라간 컨텐츠만 볼 수 있게 되는 것이 더 효율적입니다

이를 위해 Memento 팀은 서비스에 특화된 새로운 정적 웹 서비스 Jikji(직지)를 개발하여 주기적으로 매거진을 생성하였습니다.


실제 Memento 서비스는 어떤 모습일까?

아직 Memento 서비스는 완벽하게 구현되어 있지는 않습니다

그러나 우리는 가상으로 그 모습을 확인할 수 있었습니다. 그 모습은 아래와 같습니다.


Memento 서비스의 예시

예를들어, “김태희라는 사람을 검색하면 그 사람의 타임라인과 함께 사건, 대중들의 관심, 관련 키워드 관련 기사등이 한꺼번에 등장합니다. 개발만 된다면 정말 유용할 것 같네요!


SW마에스트로와 함께한 개발 과정

그러나 이러한 개발 과정이 순탄했던 것 만은 아니다. 웹 상의 정보를 모아 의미있는 정보로 구성하는 작업은 한국에서 

전문적으로 연구되어 정형화된 분야가 아니었기 때문에 아이디어 구상 과정부터 지금까지 도움의 손길들이 있었다.

Memento 팀은 프로젝트를 진행하다 보면 서비스에 심취해서 주관적인 시선으로만 프로젝트를 보며 진행하게 된다

“SW마에스트로 과정을 통해 팀 외부에서 피드백을 받으면서, 객관적인 시선에서 다시 한번 프로젝트를 보게 될수 있었다고 말했다.

뿐만 아니라 SW마에스트로 과정의 최대 장점 중 하나인 멘토님의 도움도 컸다고 한다

아직 학생이다 보니 프로젝트 진행에 있어 다양한 부분이 미약한데 오랫동안 사회에서 다양한 경험을 쌓은 멘토님께 전 범위에 걸쳐 피드백을 받았고 

프로젝트에 있어 상당한 도움이 되었다, 서비스 기획은 단순히 저희의 생각만으로 진행되는 것이 아닌 객관적으로 논리적인 관점으로 진행해야 함을 배웠고 

설계와 구현 과정에서도 다양한 관점과 지식을 쌓을 수 있었다고 말했다

또한 프로젝트를 체계적으로 진행하기 위해선 어떤 식으로 일을 해야 하는지와 개발을 진행하면서의 방향성 제시도 상당한 도움이 되었다며 최광선 멘토님에 대한 칭찬을 아끼지 않았다.


Memento 서비스의 미래는 어떠한 모습일까?

Memento 서비스는 사람을 중심으로 한 컨텐츠를 제공하는 것을 목표로 하고 있다

이영수 팀장은 사람들이 유명인에 대한 다양하고 정보를 얻기 위해 즐겨 찾게 되고, 실제 유명인들이 저희 서비스를 통해 그 사람들과 소통할 수 있다면 

일종의 미디어 플랫폼 형태로 발전할 수 있어 상당한 파급효과가 있게 될 것으로 예상된다고 말했다

또한 한국 이외에도 한류에 대해 관심을 갖는 세계의 다양한 팬들에게 저희 서비스를 번역하여 제공하게 된다면 

세계적으로도 한류를 퍼트림과 동시에 서비스를 확장시켜 나갈 수 있을 것이라 생각한다, 글로벌 시장을 향한 당찬 포부를 밝혔다.


Memento 팀에게 SW마에스트로란?

순수하게 개발에 대한 열정으로 들어왔지만 기획 심사를 2번이나 떨어지는 등 다양한 난관을 겪었고 지금도 밤을 새가며 프로젝트를 진행하고 있습니다

정말 힘들고 가끔은 그만두고 싶다는 생각도 했지만 그만큼 다양한 경험을 할 수 있었고, 다시 SW마에스트로를 하겠냐고 물어본다면 망설이지 않고 다시 할 것이라 대답할 것 같습니다

남은 기간 최선을 다해서 SW마에스트로 과정을 진행하고 후회없는 1년으로 남았으면 합니다.”

우리는 유명인사가 아니지만 미래에는 우리 개인의 모습도 이렇게 한 눈에 보게 될 날이 오지 않을까요?