+ - 0:00:00
Notes for current slide
Notes for next slide

Shiny로 네이버 뉴스 검색하기

- 소스를 중심으로

유충현

1 / 19

발표자와 자료 소개


발표자 소개

  • 현) 한화생명 Data Analytics팀
  • 현) 한국R사용자회 대표
  • 다수의 데이터 분석 프로젝트 수행
  • 데이터 분석 솔루션 개발
  • 현) 분석가? 개발자? 정체성 혼란중

자료소개

2 / 19

미트업 FAQ

Q - 발표 자료를 공유해 줄 수 있나요?

Q - 앱에서 사용한 한글 형태소분석기는 어떻게 설치하나요?

3 / 19

Shiny 애플리케이션이란 무엇일까?

4 / 19

We...

have 데이터 파일, 혹은 DBMS의 테이블 데이터

want 웹 어플리케이션 안에서 데이터 분석 기능의 구현

5 / 19

바늘과 실, 그리고 R과 Shiny

  • R을 사용 웹 애플리케이션 프레임워크
  • 오픈소스 R 패키지 및 서버
  • HTML, CSS, JS 지식 없이 앱 개발

6 / 19

분석이라 쓰고 개발이라 읽습니다!!!

간단한 toy 앱을 어렵지 않게 작성합니다.

복잡한 비즈니스 로직과 분석을 구현하면서, 분석가가 아닌 개발자의 모습을 발견합니다.


Shiny 활용 Toy Shiny Custom Shiny Enterprise Shiny
주된 활용 분야 재미와 학습 수준의 활용 연구 및 가벼운 응용 프로그램 비즈니스 요건의 구현
구현의 난이도
유지보수 난이도 없음 중간 아주 높음
마인드 관심 열정 의무
요구사항 R 언어 소양 웹 어플리케이션 이해 JS, CSS, 프레임워크, 보안, DevOps, ...
7 / 19

앱 개발을 위한 시나리오

8 / 19

분석 주제 선정의 배경

데이터 분석 주제를 선정하는 것부터 데이터 분석이 시작됩니다.

네이버 뉴스 검색하기 주제 선정 이유

  • API 기반의 데이터 수집의 이해

    • 뉴스 데이터 수집의 흥미 유발
    • 최근 사회적 이슈는 무엇인가?
  • 텍스트 데이터의 핸들링 이해

    • 가벼운 형태소 분석
      • Mecab 형태소분석기 소개
    • 가벼운 텍스트 데이터 시각화
9 / 19

첫번 째 시나리오

네이버 뉴스를 수집합니다.

  • 무엇으로 뉴스를 수집할까?

    • koscrap 패키지
    • 아파트실거래, NAVER의 뉴스검색 데이터를 수집
    • toy 패키지
  • 개인의 API 키는 비밀유지가 필수라는데?

    • 앱 소스에 API 키 정보 미 기입
      • 앱 화면에서 입력
    • 사용자 입력정보의 파일 저장
      • 재구동 시 입력안해도 됨
      • base64 인코딩 저장
10 / 19

두번 째 시나리오

기사의 내용을 어떻게 파악할까요?

  • 어떻게 기사를 읽을까?

    • 뉴스 내용 요약을 출력해서 대략의 맥락 파악하기
    • 뉴스 링크를 눌러 원문 읽기
      • 네이버 뉴스 섹션 링크
      • 개별 신문사 페이지 링크
    • 날짜순/유사도순 정렬 선택, 검색건수 선택
  • 어떤 단어들이 발화되는가?

    • 수집된 전체 뉴스내용 요약을 대상으로
    • 워드클라우드 플로팅
      • 상위 최대 돗수 단어 제외하기
      • 포함할 최소 돗수 선택하기
11 / 19

주요 기능 소개

12 / 19

뉴스 검색 기능

API 키/패스워드 입력후, 검색어를 입력합니다. 정렬옵션검색 건수선택사항입니다.

13 / 19

기사 읽기 기능

목록의 뉴스 링크를 클릭하여 개별 뉴스를 읽을 수 있습니다.

14 / 19

시각화 기능

워드클라우드를 조회합니다. 몇개의 파라미터를 지원합니다.

15 / 19

주요 기능 소개

16 / 19

API 키 핸들링

입력의 번거로움을 없애고 싶습니다.

그렇다고 하드코딩으로 소스에 기술하면 안됩니다.

  • 시나리오

    • 소스의 배포 과정에서 API 키가 묻어 나가면 안됩니다.
  • 구현

    • 최초 사용 시 1회 입력
      • 이때 API 키를 base64 인코딩으로 히든 파일에 저장
    • 이후 파일을 읽어, 사용자 입력을 패스
    • git 배포를 전제로 .gitignore에 히든 파일 등록
17 / 19

워드 클라우드

뉴스에 발화되는 명사들을 살펴보고 싶습니다.

좋은 토크나이저는 무엇인가요?

  • 형태소 분석

    • 은전한닢 형태소분석기 with MeCab
      • 시스템 사전에 NIADic 추가
    • bitTA with RMeCab
    • 속도가 빠르고 성능이 좋음
  • 로직

    • 개별 뉴스 요약에서 일반명사(NNG) 추출
    • 개별 추출 일반명사들을 병합하여 시각화
18 / 19

Q & A

19 / 19

발표자와 자료 소개


발표자 소개

  • 현) 한화생명 Data Analytics팀
  • 현) 한국R사용자회 대표
  • 다수의 데이터 분석 프로젝트 수행
  • 데이터 분석 솔루션 개발
  • 현) 분석가? 개발자? 정체성 혼란중

자료소개

2 / 19
Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
Esc Back to slideshow