로봇김삿갓
프로젝트 개요
기술개발 과제
국문 : 머신러닝을 활용한 시 추천 어플리케이션 개발
영문 : Development of poem recommendation application using machine learning.
과제 팀명
로봇 김삿갓
지도교수
이병정 교수님
개발기간
2020년 9월 ~ 2020년 12월 (총 4개월)
구성원 소개
서울시립대학교 공간정보공학과 20159300** 김*중(팀장)
서울시립대학교 컴퓨터과학부 20149200** 김*석
서울시립대학교 컴퓨터과학부 20149200** 류*현
서울시립대학교 컴퓨터과학부 20149200** 이*근
서론
개발 과제의 개요
개발 과제 요약
◇ 코로나 시대, 메마른 감성으로 일상을 살아가는 사람들에게 적절한 위로와 격려를 하고자 본 프로젝트를 진행하게 되었음. 머신러닝을 활용하여 한글 시를 자연어 처리하여 시의 분위기에 맞는 주제를 태깅 및 데이터베이스에 저장함. 이후, 스마트폰 애플리케이션에서 사용자 데이터를 기반으로 상황에 맞는 적절한 시를 추천하는 것을 목표로 함.
개발 과제의 배경
◇ 코로나 레드, 블루로 감정에 대한 위로가 필요함. 그래서 ‘시’로 위로를 하면 좋겠다고 판단하였음. ◇ 많이 사용하는 스마트폰의 앱을 통해서 시를 제공하기로 결정. ◇ 개인에게 맞춤형 시 내용을 제공하기 위해 머신러닝을 활용. ◇ 한글 시들에 대한 머신러닝 분석, 시에 대한 관심 재고. ◇ 사용자가 시를 직접 창작하고 이를 게시할 수 있도록 하여 참여형 커뮤니티를 형성.
개발 과제의 목표 및 내용
◇ 머신러닝으로 한글 시 분석하여 3가지 주제(날씨, 감정, 시간대)에 대한 태깅. ◇ 태깅된 시를 데이터베이스에 저장하고, 앱에서 시 데이터 호출. ◇ 초기 로그인 API 사용자 정보와 간단한 설문조사를 바탕으로 시 맞춤 추천. ◇ 어플리케이션 사용자가 시를 작성하여, 작성된 자작시를 DB에 저장. 해당 시를 다른 사용자에게 추천.
관련 기술의 현황
관련 기술의 현황 및 분석(State of art)
- 전 세계적인 기술현황
- 머신러닝: 컴퓨터는 데이터를 분석하고 스스로 학습하는 과정을 거치고 나면 패턴을 인식할 수 있는 능력을 갖추게 된다. 이렇게 되면 입력하지 않은 정보에 대해서도 판단, 결정할 수 있게 되는 것이며, 이것이 바로 기계 학습이다. 다시 말해, 방대한 양의 데이터 가운데 비슷한 것끼리 묶어내고 서로 관계있는 것들의 상하구조를 인식하여 이것을 바탕으로 앞으로의 행동을 예측하는 기술인 것이다.
- 장점: 더 빠른 의사 결정, 실시간 데이터 처리로 높은 적응성, 알고리즘 활용 비즈니스, 인간이 알지 못하는 더 깊은 통찰력 얻음, 대량의 데이터 처리와 정확한 결과 예측으로 인한 높은 효율성
- Django: 2005년부터 시작된 Python의 오픈 소스 웹 프레임워크이자 풀 스택 프레임워크. Django 소프트웨어 재단은 소셜 댓글 서비스 디스커스(Disqus)를 만든 곳. Python을 이용해 제작. Django는 Python 기반 웹 프레임워크 중에 가장 널리 퍼져있다.
- 장점: ORM을 기본적으로 제공, MVT 패턴에서 Model 의 경우 데이터베이스와 연동이 편함, 기본적으로 Model에 해당하는 DBMS는 SQLite를 사용하여 Django Admin 기능을 통해 쉽게 조회/편집이 가능,관리자 페이지를 기본적으로 제공, 자주 사용되는 로직들을 묶어서 기본적으로 제공, 만들어진 엔티티에 따라 권한 목록을 알아서 제공.
- SQLite: SQLite는 MSSQL, MySQL과 같은 데이터베이스 관리 시스템이지만, 서버가 아니라 오프라인에서 응용 프로그램에 넣어 사용하는 비교적 가벼운 임베디드 데이터베이스이다. 일반적인 RDBMS에 비해 대규모 작업에는 적합하지 않지만, 중소 규모라면 속도도 손색이 없다. 또, API는 단순히 라이브러리를 호출하는 것만 있으며, 데이터를 저장하는 데 하나의 파일만을 사용하는 것이 특징이다. 안드로이드 SDK에도 기본 탑재되어 있으며, 안드로이드 앱의 데이터 관리에 필수적인 컴포넌트라 할 수 있을 정도로 널리 사용되고 있다.
- Android OS: 안드로이드(Android)는 리눅스 커널을 기반으로 구글에서 제작한 스마트폰과 같은 플랫폼의 모바일 운영 체제와 미들웨어 및 중요 애플리케이션이 포함된 소프트웨어 집합이다. 구글은 새로운 운영 체제의 버전 공개와 동시에 소스를 공개하고 있다. 이렇게 공개된 소스를 AOSP라고 한다.
- 머신러닝: 컴퓨터는 데이터를 분석하고 스스로 학습하는 과정을 거치고 나면 패턴을 인식할 수 있는 능력을 갖추게 된다. 이렇게 되면 입력하지 않은 정보에 대해서도 판단, 결정할 수 있게 되는 것이며, 이것이 바로 기계 학습이다. 다시 말해, 방대한 양의 데이터 가운데 비슷한 것끼리 묶어내고 서로 관계있는 것들의 상하구조를 인식하여 이것을 바탕으로 앞으로의 행동을 예측하는 기술인 것이다.
장점
- 자바기반 : 안드로이드를 개발할 많이 사용하는 언어는 자바. 따라서 전 세계의 많은 자바 개발자들이 안드로이드 앱 개발에 뛰어들 수 있었고 안드로이드가 빠르게 성장할 수 있는 계기가 됨.
- 오픈소스 : 안드로이드는 오픈소스를 기반으로 하고 있으며 아파치 2.0라이선스를 사용.
- 완벽한 컴포넌트 : 오픈소스임에도 불구하고 스마트폰을 위한 완벽한 컴포넌트들을 제공. 핵심적인 커널 부분만 제공하고 다른 부분들은 개발자에게 맡기는 방식이 아니라 제공된 소스를 사용하면 스마트폰이라는 전화기가 그대로 만들어지므로 대부분의 개발자들은 그 위에 올라가는 앱만 제작하면 사용가능.
- 높은 점유율 : 위에서 언급한 3가지를 주축으로 안드로이드는 빠르게 성장하여 애플의 IOS를 제치고 80%가 넘는 점유율을 가지게 되었으며 심지어 최근에는 Windows의 점유율마저 넘어섰다는 보도가 나옴.
- 높은 이식성 : 안드로이드는 리눅스를 기반으로 높은 이식성을 가지고 있으며 새로운 하드웨어의 기능을 쉽게 연동가능. 모바일 뿐 만이 아니라 태블릿, PMP 등의 각종 통신 기기에 사용가능. 나아가 가전 기기를 넘어서 자동차까지도 적용가능.
- 쉬운연동 : 안드로이드로 만든 앱은 다른 안드로이드 앱에서 쉽게 연동하여 사용 가능
- 특허조사 및 특허 전략 분석
내용
- 기술 로드맵
내용
시장상황에 대한 분석
- 경쟁제품 조사 비교
내용
- 마케팅 전략 제시
내용
개발과제의 기대효과
기술적 기대효과
내용
경제적, 사회적 기대 및 파급효과
내용
기술개발 일정 및 추진체계
개발 일정
내용
구성원 및 추진체계
내용
설계
설계사양
제품의 요구사항
내용
설계 사양
내용
개념설계안
내용
이론적 계산 및 시뮬레이션
내용
상세설계 내용
내용
결과 및 평가
완료 작품의 소개
프로토타입 사진 혹은 작동 장면
내용
포스터
내용
관련사업비 내역서
내용
완료작품의 평가
내용
향후계획
내용
특허 출원 내용
내용