<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
		<id>https://capstone.uos.ac.kr/cdc/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%ED%98%B8%ED%98%B8%EC%A1%B0</id>
		<title>cdc wiki - 사용자 기여 [ko]</title>
		<link rel="self" type="application/atom+xml" href="https://capstone.uos.ac.kr/cdc/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%ED%98%B8%ED%98%B8%EC%A1%B0"/>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php/%ED%8A%B9%EC%88%98:%EA%B8%B0%EC%97%AC/%ED%98%B8%ED%98%B8%EC%A1%B0"/>
		<updated>2026-04-11T12:07:33Z</updated>
		<subtitle>사용자 기여</subtitle>
		<generator>MediaWiki 1.28.2</generator>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=KOS%EC%A1%B0&amp;diff=1515</id>
		<title>KOS조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=KOS%EC%A1%B0&amp;diff=1515"/>
				<updated>2019-06-20T15:28:53Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 특허 출원 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' EOS기반 분산형 클라우드 게이밍 플랫폼 개발&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' Development of distributed cloud gaming platform based on EOS&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
KOS&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
김성환 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 김*준&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 노*선&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 임*범&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 장*석&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
게임 산업 규모는 매 년 커져감에 반해 하드웨어의 보급의 속도는 그렇지 못한 편이다. 이에 블록 체인 기술과 함께 분산형 클라우드 게이밍 플랫폼 서비스를 제공, 사용자(게이머)로 하여금 다양 한 플랫폼에서 고사양의 게임을 플레이 할 수 있도록 도와주는 것이 주된 개발 과제이다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
 ◇ EOS Block Chain을 활용한 분산형 클라우드 게이밍 DApp(Decentralized Application)&lt;br /&gt;
&lt;br /&gt;
 ◇ 저사양 PC를 소유한 게이머가 고사양 게임을 플레이 할 수 있는 Platform&lt;br /&gt;
&lt;br /&gt;
 ◇ 트랜잭션 처리 시 수수료가 필요 없는 EOS를 이용한 경제적인 서비스&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS의 월등한 트랙잭션 처리 속도로 인한 빠른 게임 플레이 환경 제공&lt;br /&gt;
&lt;br /&gt;
 ◇ 웹 플랫폼 기반 클라우드 게이밍 플랫폼 &lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
  ◇ 비디오, 음악 및 기타 서비스에 이어 게임 역시 클라우드로 전환하고 있다. 게이머들에게 클라우드 게임은 개인의 게임 하드웨어를 소유하는 것보다 10배 저렴하고, 공유 경제원리를 활용하고 있다.&lt;br /&gt;
     GPU, 인터넷 및 낮은 지연 스트리밍 개발을 통해, 개인 게임 하드웨어의 수요가 감소하고있다. 실제로 차세대 콘솔은 하드웨어를 기반으로하는 마지막 콘솔이 될 것이다 &lt;br /&gt;
    &lt;br /&gt;
 ◇ 게임을 클라우드 기술로 전환시키는 것은 피할 수 없다. Steam 플레이어의 70%는 GTA V와 같은 AAA 타이틀을 고해상도로 플레이 할 수 없으며, 플레이어의 30%는 PC에서 그런 게임을 실행하는 것 조차 할 수 없다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 클라우드 게임의 수요는 앞으로도 증가할 것이다. 최신 세대의 하드웨어에 대한 수요와 자원 집약적 VR 기술에 의한 게임이 발전함에 따라 가정용 하드웨어를 더 비싼 가격으로 만들고 이는 일반적인 게이머에게 비현실적인 가격이 될 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 업계 1인자들의 예상으로는 게임산업의 미래는 스트리밍이다. 해당 과제의 미션은 탈중앙화의 초기 단계에서 클라우드 게임의 가능성을 보는 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 분산형 클라우드 게이밍 플랫폼 개발을 통한 향상된 스트리밍 서비스 제공한다 따라서 기존의 클라우드 게이밍 플랫폼과 비교하여 스트리밍 지연속도가 감소할 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 기존 시장에서 사용되던 이더리움 기반이 아닌 EOS 기반 플랫폼을 개발하여 이더리움보다 월등한 EOS의 초당 트랜잭션 처리 수가 게임의 처리 속도의 향상을 제공할 것이다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
 ◇ Web-RTC를 활용한 화면공유 및 원격제어&lt;br /&gt;
&lt;br /&gt;
 ◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 토큰 거래를 통한 게임 플레이&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 기반의 DApp개발로 다양한 경쟁력 확보&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
&lt;br /&gt;
◇ 3세대 블록체인 후보 이오스(EOS) &lt;br /&gt;
&lt;br /&gt;
1) EOS란? &lt;br /&gt;
&lt;br /&gt;
① 프로젝트로서의 EOS&lt;br /&gt;
 • EOS는 블록체인 프로젝트로서, 최초의 블록체인 OS(First Blockchain Operating System)을 표방함. 즉, EOS는 DApp을 개발하고 구동하기 위한 플랫폼을 개발하는 프로젝트라 할 수 있음&lt;br /&gt;
 ※ ( DApp 이란? ) 탈중앙화 어플리케이션(Decentralized Application)의 약자. 데이터의 흐름, 저장, 로직이 탈중앙화 되어 있어서 중앙화된 어플리케이션의 대표적인 문제점인 운영자의 탈선, 해킹으로 인한 데이터 위변조, 개인 정보 유출, 서버 다운 등의 문제가 일어날 가능성을 극도로 낮춰줌&lt;br /&gt;
&lt;br /&gt;
 • DApp의 한계&lt;br /&gt;
 근간이 되는 블록체인의 성능 자체가 대부분 중앙화 서버대비 떨어지기 때문에 스케일링이 어렵고사용자들이 트랜잭션을 일으킬 때마다 비용을 지불해야함. 또, 중앙화된 서버에서의 개발 방식과는전혀 다르기 때문에, 해킹에 취약해지거나 퍼포먼스가 떨어지는 문제가 있을 수 있음&lt;br /&gt;
&lt;br /&gt;
 • EOS는 이러한 한계를 극복하기 위한 프로젝트라고 할 수 있음.&lt;br /&gt;
&lt;br /&gt;
 • 고성능을 요구하는 상용 서비스(거래소, 소셜미디어 등)가 가능한 수준의 스케일링이 가능&lt;br /&gt;
&lt;br /&gt;
 • 사용자들이 플랫폼을 사용할 때마다 지불해야 되는 비용(가스)가 없음&lt;br /&gt;
&lt;br /&gt;
② 소프트웨어로서의 EOS&lt;br /&gt;
 • Block.one이 개발중인 EOS.IO를 의미함&lt;br /&gt;
&lt;br /&gt;
③ 토큰으로서의 EOS&lt;br /&gt;
 • ERC20 : 이더리움 블록체인 상에 그 수량과 교환방식 등이 정의된 토큰&lt;br /&gt;
 • EOS21이라는 프로토콜을 통해 EOS기반의 토큰으로 전환할 수 있게 됨&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) EOS의 BP 시스템&lt;br /&gt;
① DPoS 방식의 EOS&lt;br /&gt;
&lt;br /&gt;
 • 대표자들은 전체적인 블록체인의 방향을 설정하고 블록 생성을 담당. 이러한 대표자를 블록프로듀서(Block Producer,BP)라고 부름&lt;br /&gt;
&lt;br /&gt;
② EOS DPoS의 대표자, BP의 역할과 보상&lt;br /&gt;
 • EOS BP의 역할&lt;br /&gt;
 1. EOS 메인 블록체인의 지원&lt;br /&gt;
     - 개발자, 플랫폼 커뮤니티 지원&lt;br /&gt;
     - 이오스 관련 콘텐츠 배급 등&lt;br /&gt;
 2. 이오스 메인 블록체인의 운영&lt;br /&gt;
     - 매 라운드 ( 126초 ) 동안 0.5초당 1개 블록 생성&lt;br /&gt;
&lt;br /&gt;
 • EOS BP의 혜택&lt;br /&gt;
     1. 1년 동안 EOS 발행량의 1%를 보상으로 받음&lt;br /&gt;
     2. 총 보상의 25%는 상위 21명 BP, 나머지 75%는 상위BP와 백업BP를 포함한 모든 BP가 투표율에 따라 &lt;br /&gt;
         받음&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) 스마트 컨트랙트&lt;br /&gt;
&lt;br /&gt;
① Contract를 구현하고, 강제하고, 실행시켜주는 code&lt;br /&gt;
&lt;br /&gt;
 • 믿지않는 사용자간의 areement+coordination&lt;br /&gt;
 • 블록체인에 복잡한 기능을 제공&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
② Smart contract의 안전성?&lt;br /&gt;
&lt;br /&gt;
 • Token economy - Decentralized governance구조와 Incentive mechanism으로 정의&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) 2세대 블록체인 이더리움(ETHEREUM)과 이오스(EOS)&lt;br /&gt;
&lt;br /&gt;
5) 나날이 증가하는 EOS 플랫폼 상의 DApp 수&lt;br /&gt;
&lt;br /&gt;
 • 해가갈수록 급격한 증가폭을 보여줌&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6) 다양한 장르의 EOS 플랫폼 상 DApp&lt;br /&gt;
&lt;br /&gt;
 • 게임, 도박, 부동산, 지갑, 소셜 등 다양한 장르의 플랫폼 상의 DApp 존재&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7) EOS.IO가 제공하는 기능&lt;br /&gt;
&lt;br /&gt;
 • 무료 평가판 제한 거래&lt;br /&gt;
 • 낮은 대기 시간 블록 확인(0.5초)&lt;br /&gt;
 • 오버 헤드가 낮은 비잔틴 오류 내성 결말&lt;br /&gt;
 • 선택적으로 높은 오버 헤드, 낮은 대기 시간의 BFT 최종기증&lt;br /&gt;
 • 웹 어셈블리를 기반으로 하는 스마트 계약 플랫폼&lt;br /&gt;
 • 스파스 헤더 라이트 클라이언트 검증용으로 설계&lt;br /&gt;
 • 정기 반복 트랜잭션&lt;br /&gt;
 • 시간 지연 보안&lt;br /&gt;
 • 계층적 역할 기반 권한&lt;br /&gt;
 • 생체 인식 하드웨어 보안 키 지원&lt;br /&gt;
 • 문맥 무효 검증 논리의 병렬 실행&lt;br /&gt;
 • 블록 체인 간 통신&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
나. 기술 로드맵&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
① 블록체인 기반 기술&lt;br /&gt;
 • 고성능 저비용 합의 기술&lt;br /&gt;
 • 스마트 계약 검증 기술&lt;br /&gt;
&lt;br /&gt;
② 블록체인 확장 기술&lt;br /&gt;
 • 대용량 데이터 처리 기술, 외부 데이터 연동 기술&lt;br /&gt;
 • 대규모 서비스 제공을 위한 확장성 확보 기술&lt;br /&gt;
&lt;br /&gt;
③ 블록체인 서비스 기술&lt;br /&gt;
 • 거래 추적 및 분석 기술&lt;br /&gt;
 • 산업 분야별 기존 시스템 연동 기술&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
다. 특허조사&lt;br /&gt;
&lt;br /&gt;
 ◇ 최근 비트코인 등 암호 화폐에 대한 관심이 증가함에 따라, 그 기술적 기반인 블록체인 관련 특허출원도 전 세계적으로 폭발적 증가 추세인 것으로 나타났다. 특허청(청장 성윤모)에 따르면, 지식재산 선진 5개국(IP4, 한국•미국•일본•중국•유럽)에 출원되어 조사 시점(‘18년 1월말 기준)까지 공개된 블록체인 관련 전 세계 특허 출원은 모두 1,248건으로 나타났다 특허 출원의 양은 많지 않으나, ’09년 블록체인이 최초 구현된 이래, ‘13년 27건에서 매년 2~3배 증가’해 ‘15년에는 257건, ’16년에는 594건(미공개건 제외)에 이르는 것으로 조사됐다. 출원인의 국적별로 살펴보면, 누적건수로는 미국이 1위로 집계되었지만, ‘16년 이후 중국이 연간 특허출원 건수에서 미국을 제치고 1위로 올라섰다. 조만간 누적건수에서도 중국이 1위를 차지할 것으로 예측된다.&lt;br /&gt;
&lt;br /&gt;
 ◇ G2(미국, 중국)로의 편중 현상도 심해, 미국과 중국이 전체 특허 출원의 대부분(78%)을 점유했으며, 3, 4위를 차지한 우리나라와 일본의 점유율은 8%, 3%에 불과했다. 한편, 특허출원의 질적 수준을 나타내는 간접지표인, 해외출원 비율에서는 미국이 중국을 제치고 압두적인 선두를 지켰다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 주체별로는, 전 세계 블록체인 특허출원 중 81%를 기업이 주도하고 있고, 미국은 은행 등 금융기업에 의한 특허출원도 활발한 편이다. 한편 우리나라는 대기업보다 벤처기업 등의 중소기업 비중(66.7%)이 매우 높은 특징을 보였으며, 금융기업에 의한 특허출원은 아직까진 없는 것으로 조사(‘18.1월말 조사 시점까지 공개된 특허출원 기준)되었다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 블록체인의 기본 개념은 이미 Open Source로 공개되어 누구도 특허를 갖지 못하는 자유 기술이다. 따라서 특허출원은 주로 보안, 운용, 활용 등 주변 기술을 중심으로 이뤄지고 있다. 특히, 블록체인이 암호 화폐에서 물류•의료•공공 서비스 등으로 활용 범위가 점차 확대됨에 따라 특허출원도 덩달아 활용 분야를 중심으로 증가할 것으로 전망된다.&lt;br /&gt;
&lt;br /&gt;
 ◇ KB금융그룹의 ‘블록체인을 활용한 모바일 앱 보안 솔루션 관련 기술특허’는 서비스 부문과 보안부분을 분리해 보안부문의 암호화키를 블록체인망에 보관해 안정성을 높였다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 골드만삭스의 ‘세틀코인(SETLcoin)’은 주식, 채권 등 실시간 거래뿐만 아니라 거래내역도 블록체인의 분산원장에 적용하여 위, 변조가 불가능한 첨단 핀테크를 가능하게 한다. &lt;br /&gt;
&lt;br /&gt;
 ◇ 미국의 대형 은행인 BoA(뱅크 오브 아메리카)도 15건의 특허를 출원했고, 20건 정도의 추가 특허를 출원할 예정이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
라. 특허전략&lt;br /&gt;
&lt;br /&gt;
 특허에서 공개된 비즈니스 모델은 블록체인 업체의 비즈니스 모델과 유사한 부분이 존재한다. 개인정보를 제공하고, 개인정보에 따른 보상금을 지급하는 구조이다. 위의 특허는 기존 특허에 대한 하나의 예시이고, 개인정보에 따른 보상과 관련된 기술, 개인 데이터를 추적하는 기술은 다른 특허에도 많이 기술되어 있기 때문에 이러한 기존의 비즈니스 모델 특허와 블록체인 특허가 차별점을 가지기 위해서는 블록체인과 블록체인과 트랜잭션을 발생시키는 노드 간의 동작에 대한 구체화, 블록 상에서의 데이터 처리 등에 관련된 특징들이 반드시 필요하다.&lt;br /&gt;
&lt;br /&gt;
 예를 들어, 블록체인에 올라간 스마트 콘트랙트를 기반으로 수집된 개인 정보가 블록체인과는 어떠한 관계를 가지고 처리되는지, 개인 정보의 거래는 블록체인 상에서 어떻게 수행되는지 보상은 블록체인 상에서 어떻게 발생되는지&lt;br /&gt;
위와 같은 블록체인, 블록과 연관된 구체적인 트랜잭션들이 블록체인 특허에 도시되고 기술되어야한다. 이러한 특징이 있다면, 블록체인 특허가 기존 특허와 차별화를 가질 수 있고 등록 가능성도 높아지게 됩니다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
가. 경쟁제품 조사 비교&lt;br /&gt;
◇ PlayKey&lt;br /&gt;
    &lt;br /&gt;
    - P2P와 블록체인 기술 기반의 게이머를 위한 세계 최초의 탈중앙화 클라우드 게이밍 플랫폼&lt;br /&gt;
    - 고성능의 컴퓨터를 가진 전세계 수십명의 독립적인 소유자가 커뮤니티 내에 결속하여 클라우드 게임 서비스 업체(채굴자)로 활동&lt;br /&gt;
    - 시스템 내 유일한 보편적인 에코 시스템 암호화폐 -PKT 토큰- 이 ICO를 통해 발급됨&lt;br /&gt;
    - 채굴자-게이머의 스마트 컨트랙트 형태로 구성되어 클라우드 게임 서비스의 높은 통합 수준을&lt;br /&gt;
      제공&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Google STADIA&lt;br /&gt;
  &lt;br /&gt;
 -  중앙집권형 클라우드 게이밍 플랫폼&lt;br /&gt;
 -  유튜브 기반이기 때문에 유튜브 재생만 가능하다면 저사양 PC든 스마트폰이든 태블릿 PC든 실시간 스트리밍 &lt;br /&gt;
을 통해 FHD 60프레임으로 게임 플레이 가능&lt;br /&gt;
 - 웹 브라우저에서 바로 실행되며 클릭 한/두 번으로 게임 플레이 가능&lt;br /&gt;
&lt;br /&gt;
나. 마케팅 전략&lt;br /&gt;
 1) EOS블록체인 기반 서비스를 제공함으로써&lt;br /&gt;
  ◇ 채굴자는 개인으로서 경제적이득(가상화폐)을 얻을 기회가 생긴다.&lt;br /&gt;
  ◇ 채굴자는 시장 활성화가 커져갈수록, 같은 서비스 제공으로 더 많은 이득을 얻을 수 있다.&lt;br /&gt;
  ◇ 사용자(게이머)는 저성능의 컴퓨터를 소유하고 있더라도, 약간의 이용료를 지불하여 고사양의 게임을 최고의 &lt;br /&gt;
 퀄리티로 즐길 수 있다.&lt;br /&gt;
  ◇ 사용자(게이머)는 기존 클라우드 게이밍 서비스보다도 훨씬 더 저렴한 가격으로 이용할 수 있다.&lt;br /&gt;
  ◇ 5G 상용화와 더불어 안정적인 서비스 제공을 통해 커다란 시장이 형성될 수 있다.&lt;br /&gt;
&lt;br /&gt;
 2) 월등한 EOS의 초당 트랜잭션 처리 수로 인한 게임 처리 속도의 향상&lt;br /&gt;
  ◇ 쾌적한 게임 플레이 가능&lt;br /&gt;
&lt;br /&gt;
 3) 국내에서 인기 있는 게임 위주 서비스 제공&lt;br /&gt;
  ◇ 기존의 클라우드 게이밍 플랫폼에서 제공되는 게임들은 해외에서 인기있는 게임 위주였기 때문 에 국내 게이 &lt;br /&gt;
 머들의 관심을 끌기 어려웠다.&lt;br /&gt;
  ◇ 국내에서 인기 있는 게임 위주로 서비스를 제공하여 국내 게이머들의 관심도 증가&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
&lt;br /&gt;
◇ 분산형 컴퓨팅을 통한 안정적인 서비스 제공&lt;br /&gt;
&lt;br /&gt;
◇ 저사양 플랫폼에서 고사양 게임 가능&lt;br /&gt;
&lt;br /&gt;
◇ 이더리움보다 월등한 EOS의 초당 트랜잭션 처리 수가 게임 처리 속도의 향상을 제공&lt;br /&gt;
&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
&lt;br /&gt;
◇ 새로운 기술 보급을 통한 시장 흐름 변화&lt;br /&gt;
&lt;br /&gt;
◇ 개인의 소비 패턴 변화(기존 : 하드웨어 성능 중시 → 서비스 제공이후 : 클라우드 서비스 중시)&lt;br /&gt;
&lt;br /&gt;
◇ 생소했던 클라우드 게이밍에 국내 인지도 상승&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
◇ 먼저 AWS 서비스를 기반으로 Node.js 웹 서버를 구축한 후, Ejs/CSS 등을 이용하여 간단하고 기본적인 페이지 라우팅 구조(Back-End), UI/UX(Front- End) 등을 구축해놓는다.&lt;br /&gt;
&lt;br /&gt;
◇ 그 다음, EOS.IO기반 로컬 체인을 구축하고, 웹 서버와 연동한 뒤 사용자 회원가입/지불 시스템 등의 로직을 Smart Contract로 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ Smart Contract 구현에 성공하면, 실 게임 구동 서버-클라이언트 간 기본적인 실시간 스트리밍 서비스를 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ 실시간 스트리밍 서비스 구현에 성공하면, Smart Contract로 사용자 - 게임 구동 서버 매칭 로직을 구현하고, 스트리밍 시 전송되는 비디오/오디오 데이터를 EOS.IO Storage 기반으로 저장하는 방식으로 EOS.IO 위에 올려서 스트리밍 서비스를 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ 마지막으로 세부적인 기능들을 구현한 뒤 UI/UX를 다듬고 테스트한다.&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
가. 개발 일정&lt;br /&gt;
&lt;br /&gt;
3월 : 기존 EOS 기술 및 클라우드 시스템 분석 &lt;br /&gt;
&lt;br /&gt;
분산형 클라우드 시스템 설계 및 구현 &lt;br /&gt;
&lt;br /&gt;
4월 : 게임 스트리밍 서비스 설계 및 구현&lt;br /&gt;
&lt;br /&gt;
5월 : 매칭 시스템 설계 및 구현&lt;br /&gt;
&lt;br /&gt;
6월 : 전체 시스템 테스트 및 검토&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
나. 구성원 및 추진체계&lt;br /&gt;
&lt;br /&gt;
◇김용준: 분산형 클라우드 시스템, 매칭 시스템 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇노기선: 분산형 클라우드 시스템, 게임 스트리밍 서비스 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇ 임종범: 기존 시스템 분석, 게임 스트리밍 서비스 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇ 장원석: 기존 시스템 분석, 매칭 시스템 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
1. 기능적 요구사항&lt;br /&gt;
&lt;br /&gt;
◇1) 사용자가 보유한 토큰양을 불러와 서비스 사용 가능 시간을 산출해준다.&lt;br /&gt;
&lt;br /&gt;
◇2) 게임 별로 각각 다른 비용을 책정하여, 그에 맞게 사용 시간을 차감한다. (고사양일수록 비용 상승)&lt;br /&gt;
&lt;br /&gt;
◇3) 서비스 사용 시작부터 종료시 까지, 사용자가 플레이 하는 게임의 영상을 스트리밍 서비스 형태로 제공한다.&lt;br /&gt;
&lt;br /&gt;
◇4) 키보드, 마우스 등 사용자가 게임 플레이를 위해 입력하는 입력 신호를 송/수신한다.&lt;br /&gt;
&lt;br /&gt;
◇5) 스피커, 스크린샷 등 사용자 컴퓨터에 출력되는 출력 신호를 송/수신한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. 비기능적 요구사항&lt;br /&gt;
&lt;br /&gt;
◇1) EOS와 AWS를 이용한 SmartContract 환경을 조성한다.&lt;br /&gt;
&lt;br /&gt;
◇2) IPFS를 이용하여 영상 스트리밍은 최소 30FPS에서 최대 60FPS까지 서비스 할수 있도록 한다.&lt;br /&gt;
&lt;br /&gt;
◇3) 게임 플레이 시 입/출력 신호의 딜레이 최소화는 아주 중요하다. 이 딜레이는 반드시 짧아야한다.&lt;br /&gt;
&lt;br /&gt;
◇4) 블록에는 게임 이용시간, 사용한 토큰 수, 플레이한 게임의 종류 등을 포함한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
◇ 웹 플랫폼 기반으로 구축함으로써 다양한 기기(데스크탑, 모바일 기기 등)에서 접근하기가 용이하다.&lt;br /&gt;
&lt;br /&gt;
- 언제 어디서든 기기만 있으면 원하는 게임 실행 가능한 환경 구축&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
&lt;br /&gt;
- 고사양이 필요한 게임도 지원하여 하드웨어의 장벽 완화&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 실시간 게임 플레이 영상 및 입출력 조작 신호 송/수신(스트리밍)&lt;br /&gt;
&lt;br /&gt;
- IPFS 시스템을 이용해 빠른 속도의 오디오/비디오 데이터 전송&lt;br /&gt;
&lt;br /&gt;
- 기존의 실시간 스트리밍 방식에 비해 빠르고, 안전하고, 개방적임&lt;br /&gt;
&lt;br /&gt;
- 실시간 스트리밍 서비스에서 가장 중요한 요소인 지연 시간(Latency) 개선 가능&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ EOS 기반의 DApp으로 안정성 및 보안성, 가격 경쟁력 확보&lt;br /&gt;
&lt;br /&gt;
- EOS는 타 블록체인 기반의 DApp(이더리움 등)에 비해 많은 트랜잭션 처리가 가능하도록 설계되어 있어 안정적이고, 그 외 수많은 장점 덕에 점점 사용률이 높아지는 DApp 플랫폼이다.&lt;br /&gt;
&lt;br /&gt;
- 트랜잭션 당 사용료(Gas)를 내야 하는 이더리움(Ethereum)에 비해, EOS는 DApp 사용 시에 요금을 낼 필요가 없어 사용자 입장에서 경제적이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 블록체인에 정보를 기록함으로써 토큰 거래 정보의 위변조를 방지, 신뢰성을 보장한다.&lt;br /&gt;
&lt;br /&gt;
- 컴퓨팅 파워 제공자/게이머, 게임 플레이 관련 정보를 블록체인에 기록한다&lt;br /&gt;
&lt;br /&gt;
- 컴퓨팅 파워 제공자와 게이머의 매칭은 스마트 컨트랙트로 수행된다&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Adaptive HTTP Protocol을 활용하여 쾌적한 스트리밍 환경을 제공한다.&lt;br /&gt;
&lt;br /&gt;
- 동영상 콘텐츠를 다양한 해상도로 인코딩하고 여러 데이터 조각으로 나누어 저장한다.&lt;br /&gt;
&lt;br /&gt;
- 네트워크 상황에 따라 실시간으로 적절한 해상도를 가진 영상 데이터 조각들이 다운로드 되어 버퍼링 없는 스트리밍 환경을 제공한다.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
1 CLIENT : 웹 페이지를 통해 DApp에 접근하도록 구성, Node.js 기반 웹 Back-End, Front-End 구현(자체 구현)&lt;br /&gt;
&lt;br /&gt;
2 EOS.IO 기반 DApp : 오픈소스 소프트웨어인 EOS.IO를 기반으로 게이밍 플랫폼 DApp 개발(오픈소스 기반 구현)&lt;br /&gt;
&lt;br /&gt;
3 Smart Contract : 사용자(CLIENT)와의 이용권 - 요금 지불 시스템 및 요금을 지불한 사용자를 대상으로 게임을 구동할 수 있는 서버(SERVER)와 매칭 시스템 구현(자체 구현)&lt;br /&gt;
&lt;br /&gt;
4 IPFS File Storage : EOS.IO 내부에 IPFS 방식으로 설계되어 있는 EOS.IO Storage를 기반으로 구현(오픈소스기반 구현)&lt;br /&gt;
&lt;br /&gt;
5 Server : 게임을 실제 구동하는 서버, 구동 중 실시간으로 출력된 오디오/비디오 데이터를 캡처하여 오픈소스 소 프트웨어인 ffmpeg을 이용하여 인코딩 후, DApp 내부 IPFS File Storage에 업로드하고 사용자(CLIENT) 단말기에 서 받아 화면에 출력하는 방식으로 구현. 서버에 전달된 게이머의 입력신호는 서버에서 구동되는 게임의 입력으로 처리되도록 구현. (오픈소스 기반 구현)&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
없음&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
없음&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
 ◇ 웹 플랫폼 기반으로 구축&lt;br /&gt;
 장점 : 다양한 기기에서 실행 가능&lt;br /&gt;
 단점 : 따로 설정해 두지 않으면 웹 페이지 방문이 번거로울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
 장점 : 게이머의 선택의 폭이 넓어짐&lt;br /&gt;
 단점 : 상대적으로 관심이 적은 게임에 약간의 낭비된 비용이 생길 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 실시간 게임 플레이 영상 및 입출력 조작 신호 송/수신(스트리밍)&lt;br /&gt;
 장점 : WebRTC를 이용해 빠르고 안전하고 개방적임&lt;br /&gt;
 단점 : 다소 구현이 어려울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 기반의 DApp으로 안정성 및 보안성, 가격 경쟁력 확보&lt;br /&gt;
 장점 : 안정적이고, 경제적임&lt;br /&gt;
 단점 : EOS 기반 구현이 다소 어려울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 블록체인에 정보를 기록함으로써 토큰 거래 정보의 위변조를 방지, 신뢰성을 보장&lt;br /&gt;
 장점 : 보안적으로 뛰어남&lt;br /&gt;
 단점 : 블록생성만으로 자원을 많이 쓰기때문에 자원 낭비가 심함&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임목록창에서 게임선택시 바로 게임 어플리케이션이 실행될 수 있도록 상세구현&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임플레이 화면에서 클라이언트측 마우스와 게임서버측 마우스의 위치가 일치할 수 있는 방안 &lt;br /&gt;
    모색 -&amp;gt; 실제 게임플레이시 전체화면 모드로 실행 되도록&lt;br /&gt;
&lt;br /&gt;
 ◇ 웹페이지에서 회원설정 정보 확인 및 변경 기능을 추가 구현&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임플레이시 EOS 계정에 저장된 토큰을 활용한 게임 비용 지불 서비스 개발&lt;br /&gt;
&lt;br /&gt;
 ◇ 안드로이드/IOS 등 다양한 하드웨어에서도 원활히 서비스가 제공될 수 있는 방안 모색&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
없음&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=KOS%EC%A1%B0&amp;diff=1514</id>
		<title>KOS조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=KOS%EC%A1%B0&amp;diff=1514"/>
				<updated>2019-06-20T15:28:09Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 이론적 계산 및 시뮬레이션 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' EOS기반 분산형 클라우드 게이밍 플랫폼 개발&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' Development of distributed cloud gaming platform based on EOS&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
KOS&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
김성환 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 김*준&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 노*선&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 임*범&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 장*석&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
게임 산업 규모는 매 년 커져감에 반해 하드웨어의 보급의 속도는 그렇지 못한 편이다. 이에 블록 체인 기술과 함께 분산형 클라우드 게이밍 플랫폼 서비스를 제공, 사용자(게이머)로 하여금 다양 한 플랫폼에서 고사양의 게임을 플레이 할 수 있도록 도와주는 것이 주된 개발 과제이다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
 ◇ EOS Block Chain을 활용한 분산형 클라우드 게이밍 DApp(Decentralized Application)&lt;br /&gt;
&lt;br /&gt;
 ◇ 저사양 PC를 소유한 게이머가 고사양 게임을 플레이 할 수 있는 Platform&lt;br /&gt;
&lt;br /&gt;
 ◇ 트랜잭션 처리 시 수수료가 필요 없는 EOS를 이용한 경제적인 서비스&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS의 월등한 트랙잭션 처리 속도로 인한 빠른 게임 플레이 환경 제공&lt;br /&gt;
&lt;br /&gt;
 ◇ 웹 플랫폼 기반 클라우드 게이밍 플랫폼 &lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
  ◇ 비디오, 음악 및 기타 서비스에 이어 게임 역시 클라우드로 전환하고 있다. 게이머들에게 클라우드 게임은 개인의 게임 하드웨어를 소유하는 것보다 10배 저렴하고, 공유 경제원리를 활용하고 있다.&lt;br /&gt;
     GPU, 인터넷 및 낮은 지연 스트리밍 개발을 통해, 개인 게임 하드웨어의 수요가 감소하고있다. 실제로 차세대 콘솔은 하드웨어를 기반으로하는 마지막 콘솔이 될 것이다 &lt;br /&gt;
    &lt;br /&gt;
 ◇ 게임을 클라우드 기술로 전환시키는 것은 피할 수 없다. Steam 플레이어의 70%는 GTA V와 같은 AAA 타이틀을 고해상도로 플레이 할 수 없으며, 플레이어의 30%는 PC에서 그런 게임을 실행하는 것 조차 할 수 없다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 클라우드 게임의 수요는 앞으로도 증가할 것이다. 최신 세대의 하드웨어에 대한 수요와 자원 집약적 VR 기술에 의한 게임이 발전함에 따라 가정용 하드웨어를 더 비싼 가격으로 만들고 이는 일반적인 게이머에게 비현실적인 가격이 될 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 업계 1인자들의 예상으로는 게임산업의 미래는 스트리밍이다. 해당 과제의 미션은 탈중앙화의 초기 단계에서 클라우드 게임의 가능성을 보는 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 분산형 클라우드 게이밍 플랫폼 개발을 통한 향상된 스트리밍 서비스 제공한다 따라서 기존의 클라우드 게이밍 플랫폼과 비교하여 스트리밍 지연속도가 감소할 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 기존 시장에서 사용되던 이더리움 기반이 아닌 EOS 기반 플랫폼을 개발하여 이더리움보다 월등한 EOS의 초당 트랜잭션 처리 수가 게임의 처리 속도의 향상을 제공할 것이다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
 ◇ Web-RTC를 활용한 화면공유 및 원격제어&lt;br /&gt;
&lt;br /&gt;
 ◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 토큰 거래를 통한 게임 플레이&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 기반의 DApp개발로 다양한 경쟁력 확보&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
&lt;br /&gt;
◇ 3세대 블록체인 후보 이오스(EOS) &lt;br /&gt;
&lt;br /&gt;
1) EOS란? &lt;br /&gt;
&lt;br /&gt;
① 프로젝트로서의 EOS&lt;br /&gt;
 • EOS는 블록체인 프로젝트로서, 최초의 블록체인 OS(First Blockchain Operating System)을 표방함. 즉, EOS는 DApp을 개발하고 구동하기 위한 플랫폼을 개발하는 프로젝트라 할 수 있음&lt;br /&gt;
 ※ ( DApp 이란? ) 탈중앙화 어플리케이션(Decentralized Application)의 약자. 데이터의 흐름, 저장, 로직이 탈중앙화 되어 있어서 중앙화된 어플리케이션의 대표적인 문제점인 운영자의 탈선, 해킹으로 인한 데이터 위변조, 개인 정보 유출, 서버 다운 등의 문제가 일어날 가능성을 극도로 낮춰줌&lt;br /&gt;
&lt;br /&gt;
 • DApp의 한계&lt;br /&gt;
 근간이 되는 블록체인의 성능 자체가 대부분 중앙화 서버대비 떨어지기 때문에 스케일링이 어렵고사용자들이 트랜잭션을 일으킬 때마다 비용을 지불해야함. 또, 중앙화된 서버에서의 개발 방식과는전혀 다르기 때문에, 해킹에 취약해지거나 퍼포먼스가 떨어지는 문제가 있을 수 있음&lt;br /&gt;
&lt;br /&gt;
 • EOS는 이러한 한계를 극복하기 위한 프로젝트라고 할 수 있음.&lt;br /&gt;
&lt;br /&gt;
 • 고성능을 요구하는 상용 서비스(거래소, 소셜미디어 등)가 가능한 수준의 스케일링이 가능&lt;br /&gt;
&lt;br /&gt;
 • 사용자들이 플랫폼을 사용할 때마다 지불해야 되는 비용(가스)가 없음&lt;br /&gt;
&lt;br /&gt;
② 소프트웨어로서의 EOS&lt;br /&gt;
 • Block.one이 개발중인 EOS.IO를 의미함&lt;br /&gt;
&lt;br /&gt;
③ 토큰으로서의 EOS&lt;br /&gt;
 • ERC20 : 이더리움 블록체인 상에 그 수량과 교환방식 등이 정의된 토큰&lt;br /&gt;
 • EOS21이라는 프로토콜을 통해 EOS기반의 토큰으로 전환할 수 있게 됨&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) EOS의 BP 시스템&lt;br /&gt;
① DPoS 방식의 EOS&lt;br /&gt;
&lt;br /&gt;
 • 대표자들은 전체적인 블록체인의 방향을 설정하고 블록 생성을 담당. 이러한 대표자를 블록프로듀서(Block Producer,BP)라고 부름&lt;br /&gt;
&lt;br /&gt;
② EOS DPoS의 대표자, BP의 역할과 보상&lt;br /&gt;
 • EOS BP의 역할&lt;br /&gt;
 1. EOS 메인 블록체인의 지원&lt;br /&gt;
     - 개발자, 플랫폼 커뮤니티 지원&lt;br /&gt;
     - 이오스 관련 콘텐츠 배급 등&lt;br /&gt;
 2. 이오스 메인 블록체인의 운영&lt;br /&gt;
     - 매 라운드 ( 126초 ) 동안 0.5초당 1개 블록 생성&lt;br /&gt;
&lt;br /&gt;
 • EOS BP의 혜택&lt;br /&gt;
     1. 1년 동안 EOS 발행량의 1%를 보상으로 받음&lt;br /&gt;
     2. 총 보상의 25%는 상위 21명 BP, 나머지 75%는 상위BP와 백업BP를 포함한 모든 BP가 투표율에 따라 &lt;br /&gt;
         받음&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) 스마트 컨트랙트&lt;br /&gt;
&lt;br /&gt;
① Contract를 구현하고, 강제하고, 실행시켜주는 code&lt;br /&gt;
&lt;br /&gt;
 • 믿지않는 사용자간의 areement+coordination&lt;br /&gt;
 • 블록체인에 복잡한 기능을 제공&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
② Smart contract의 안전성?&lt;br /&gt;
&lt;br /&gt;
 • Token economy - Decentralized governance구조와 Incentive mechanism으로 정의&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) 2세대 블록체인 이더리움(ETHEREUM)과 이오스(EOS)&lt;br /&gt;
&lt;br /&gt;
5) 나날이 증가하는 EOS 플랫폼 상의 DApp 수&lt;br /&gt;
&lt;br /&gt;
 • 해가갈수록 급격한 증가폭을 보여줌&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6) 다양한 장르의 EOS 플랫폼 상 DApp&lt;br /&gt;
&lt;br /&gt;
 • 게임, 도박, 부동산, 지갑, 소셜 등 다양한 장르의 플랫폼 상의 DApp 존재&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7) EOS.IO가 제공하는 기능&lt;br /&gt;
&lt;br /&gt;
 • 무료 평가판 제한 거래&lt;br /&gt;
 • 낮은 대기 시간 블록 확인(0.5초)&lt;br /&gt;
 • 오버 헤드가 낮은 비잔틴 오류 내성 결말&lt;br /&gt;
 • 선택적으로 높은 오버 헤드, 낮은 대기 시간의 BFT 최종기증&lt;br /&gt;
 • 웹 어셈블리를 기반으로 하는 스마트 계약 플랫폼&lt;br /&gt;
 • 스파스 헤더 라이트 클라이언트 검증용으로 설계&lt;br /&gt;
 • 정기 반복 트랜잭션&lt;br /&gt;
 • 시간 지연 보안&lt;br /&gt;
 • 계층적 역할 기반 권한&lt;br /&gt;
 • 생체 인식 하드웨어 보안 키 지원&lt;br /&gt;
 • 문맥 무효 검증 논리의 병렬 실행&lt;br /&gt;
 • 블록 체인 간 통신&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
나. 기술 로드맵&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
① 블록체인 기반 기술&lt;br /&gt;
 • 고성능 저비용 합의 기술&lt;br /&gt;
 • 스마트 계약 검증 기술&lt;br /&gt;
&lt;br /&gt;
② 블록체인 확장 기술&lt;br /&gt;
 • 대용량 데이터 처리 기술, 외부 데이터 연동 기술&lt;br /&gt;
 • 대규모 서비스 제공을 위한 확장성 확보 기술&lt;br /&gt;
&lt;br /&gt;
③ 블록체인 서비스 기술&lt;br /&gt;
 • 거래 추적 및 분석 기술&lt;br /&gt;
 • 산업 분야별 기존 시스템 연동 기술&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
다. 특허조사&lt;br /&gt;
&lt;br /&gt;
 ◇ 최근 비트코인 등 암호 화폐에 대한 관심이 증가함에 따라, 그 기술적 기반인 블록체인 관련 특허출원도 전 세계적으로 폭발적 증가 추세인 것으로 나타났다. 특허청(청장 성윤모)에 따르면, 지식재산 선진 5개국(IP4, 한국•미국•일본•중국•유럽)에 출원되어 조사 시점(‘18년 1월말 기준)까지 공개된 블록체인 관련 전 세계 특허 출원은 모두 1,248건으로 나타났다 특허 출원의 양은 많지 않으나, ’09년 블록체인이 최초 구현된 이래, ‘13년 27건에서 매년 2~3배 증가’해 ‘15년에는 257건, ’16년에는 594건(미공개건 제외)에 이르는 것으로 조사됐다. 출원인의 국적별로 살펴보면, 누적건수로는 미국이 1위로 집계되었지만, ‘16년 이후 중국이 연간 특허출원 건수에서 미국을 제치고 1위로 올라섰다. 조만간 누적건수에서도 중국이 1위를 차지할 것으로 예측된다.&lt;br /&gt;
&lt;br /&gt;
 ◇ G2(미국, 중국)로의 편중 현상도 심해, 미국과 중국이 전체 특허 출원의 대부분(78%)을 점유했으며, 3, 4위를 차지한 우리나라와 일본의 점유율은 8%, 3%에 불과했다. 한편, 특허출원의 질적 수준을 나타내는 간접지표인, 해외출원 비율에서는 미국이 중국을 제치고 압두적인 선두를 지켰다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 주체별로는, 전 세계 블록체인 특허출원 중 81%를 기업이 주도하고 있고, 미국은 은행 등 금융기업에 의한 특허출원도 활발한 편이다. 한편 우리나라는 대기업보다 벤처기업 등의 중소기업 비중(66.7%)이 매우 높은 특징을 보였으며, 금융기업에 의한 특허출원은 아직까진 없는 것으로 조사(‘18.1월말 조사 시점까지 공개된 특허출원 기준)되었다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 블록체인의 기본 개념은 이미 Open Source로 공개되어 누구도 특허를 갖지 못하는 자유 기술이다. 따라서 특허출원은 주로 보안, 운용, 활용 등 주변 기술을 중심으로 이뤄지고 있다. 특히, 블록체인이 암호 화폐에서 물류•의료•공공 서비스 등으로 활용 범위가 점차 확대됨에 따라 특허출원도 덩달아 활용 분야를 중심으로 증가할 것으로 전망된다.&lt;br /&gt;
&lt;br /&gt;
 ◇ KB금융그룹의 ‘블록체인을 활용한 모바일 앱 보안 솔루션 관련 기술특허’는 서비스 부문과 보안부분을 분리해 보안부문의 암호화키를 블록체인망에 보관해 안정성을 높였다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 골드만삭스의 ‘세틀코인(SETLcoin)’은 주식, 채권 등 실시간 거래뿐만 아니라 거래내역도 블록체인의 분산원장에 적용하여 위, 변조가 불가능한 첨단 핀테크를 가능하게 한다. &lt;br /&gt;
&lt;br /&gt;
 ◇ 미국의 대형 은행인 BoA(뱅크 오브 아메리카)도 15건의 특허를 출원했고, 20건 정도의 추가 특허를 출원할 예정이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
라. 특허전략&lt;br /&gt;
&lt;br /&gt;
 특허에서 공개된 비즈니스 모델은 블록체인 업체의 비즈니스 모델과 유사한 부분이 존재한다. 개인정보를 제공하고, 개인정보에 따른 보상금을 지급하는 구조이다. 위의 특허는 기존 특허에 대한 하나의 예시이고, 개인정보에 따른 보상과 관련된 기술, 개인 데이터를 추적하는 기술은 다른 특허에도 많이 기술되어 있기 때문에 이러한 기존의 비즈니스 모델 특허와 블록체인 특허가 차별점을 가지기 위해서는 블록체인과 블록체인과 트랜잭션을 발생시키는 노드 간의 동작에 대한 구체화, 블록 상에서의 데이터 처리 등에 관련된 특징들이 반드시 필요하다.&lt;br /&gt;
&lt;br /&gt;
 예를 들어, 블록체인에 올라간 스마트 콘트랙트를 기반으로 수집된 개인 정보가 블록체인과는 어떠한 관계를 가지고 처리되는지, 개인 정보의 거래는 블록체인 상에서 어떻게 수행되는지 보상은 블록체인 상에서 어떻게 발생되는지&lt;br /&gt;
위와 같은 블록체인, 블록과 연관된 구체적인 트랜잭션들이 블록체인 특허에 도시되고 기술되어야한다. 이러한 특징이 있다면, 블록체인 특허가 기존 특허와 차별화를 가질 수 있고 등록 가능성도 높아지게 됩니다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
가. 경쟁제품 조사 비교&lt;br /&gt;
◇ PlayKey&lt;br /&gt;
    &lt;br /&gt;
    - P2P와 블록체인 기술 기반의 게이머를 위한 세계 최초의 탈중앙화 클라우드 게이밍 플랫폼&lt;br /&gt;
    - 고성능의 컴퓨터를 가진 전세계 수십명의 독립적인 소유자가 커뮤니티 내에 결속하여 클라우드 게임 서비스 업체(채굴자)로 활동&lt;br /&gt;
    - 시스템 내 유일한 보편적인 에코 시스템 암호화폐 -PKT 토큰- 이 ICO를 통해 발급됨&lt;br /&gt;
    - 채굴자-게이머의 스마트 컨트랙트 형태로 구성되어 클라우드 게임 서비스의 높은 통합 수준을&lt;br /&gt;
      제공&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Google STADIA&lt;br /&gt;
  &lt;br /&gt;
 -  중앙집권형 클라우드 게이밍 플랫폼&lt;br /&gt;
 -  유튜브 기반이기 때문에 유튜브 재생만 가능하다면 저사양 PC든 스마트폰이든 태블릿 PC든 실시간 스트리밍 &lt;br /&gt;
을 통해 FHD 60프레임으로 게임 플레이 가능&lt;br /&gt;
 - 웹 브라우저에서 바로 실행되며 클릭 한/두 번으로 게임 플레이 가능&lt;br /&gt;
&lt;br /&gt;
나. 마케팅 전략&lt;br /&gt;
 1) EOS블록체인 기반 서비스를 제공함으로써&lt;br /&gt;
  ◇ 채굴자는 개인으로서 경제적이득(가상화폐)을 얻을 기회가 생긴다.&lt;br /&gt;
  ◇ 채굴자는 시장 활성화가 커져갈수록, 같은 서비스 제공으로 더 많은 이득을 얻을 수 있다.&lt;br /&gt;
  ◇ 사용자(게이머)는 저성능의 컴퓨터를 소유하고 있더라도, 약간의 이용료를 지불하여 고사양의 게임을 최고의 &lt;br /&gt;
 퀄리티로 즐길 수 있다.&lt;br /&gt;
  ◇ 사용자(게이머)는 기존 클라우드 게이밍 서비스보다도 훨씬 더 저렴한 가격으로 이용할 수 있다.&lt;br /&gt;
  ◇ 5G 상용화와 더불어 안정적인 서비스 제공을 통해 커다란 시장이 형성될 수 있다.&lt;br /&gt;
&lt;br /&gt;
 2) 월등한 EOS의 초당 트랜잭션 처리 수로 인한 게임 처리 속도의 향상&lt;br /&gt;
  ◇ 쾌적한 게임 플레이 가능&lt;br /&gt;
&lt;br /&gt;
 3) 국내에서 인기 있는 게임 위주 서비스 제공&lt;br /&gt;
  ◇ 기존의 클라우드 게이밍 플랫폼에서 제공되는 게임들은 해외에서 인기있는 게임 위주였기 때문 에 국내 게이 &lt;br /&gt;
 머들의 관심을 끌기 어려웠다.&lt;br /&gt;
  ◇ 국내에서 인기 있는 게임 위주로 서비스를 제공하여 국내 게이머들의 관심도 증가&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
&lt;br /&gt;
◇ 분산형 컴퓨팅을 통한 안정적인 서비스 제공&lt;br /&gt;
&lt;br /&gt;
◇ 저사양 플랫폼에서 고사양 게임 가능&lt;br /&gt;
&lt;br /&gt;
◇ 이더리움보다 월등한 EOS의 초당 트랜잭션 처리 수가 게임 처리 속도의 향상을 제공&lt;br /&gt;
&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
&lt;br /&gt;
◇ 새로운 기술 보급을 통한 시장 흐름 변화&lt;br /&gt;
&lt;br /&gt;
◇ 개인의 소비 패턴 변화(기존 : 하드웨어 성능 중시 → 서비스 제공이후 : 클라우드 서비스 중시)&lt;br /&gt;
&lt;br /&gt;
◇ 생소했던 클라우드 게이밍에 국내 인지도 상승&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
◇ 먼저 AWS 서비스를 기반으로 Node.js 웹 서버를 구축한 후, Ejs/CSS 등을 이용하여 간단하고 기본적인 페이지 라우팅 구조(Back-End), UI/UX(Front- End) 등을 구축해놓는다.&lt;br /&gt;
&lt;br /&gt;
◇ 그 다음, EOS.IO기반 로컬 체인을 구축하고, 웹 서버와 연동한 뒤 사용자 회원가입/지불 시스템 등의 로직을 Smart Contract로 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ Smart Contract 구현에 성공하면, 실 게임 구동 서버-클라이언트 간 기본적인 실시간 스트리밍 서비스를 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ 실시간 스트리밍 서비스 구현에 성공하면, Smart Contract로 사용자 - 게임 구동 서버 매칭 로직을 구현하고, 스트리밍 시 전송되는 비디오/오디오 데이터를 EOS.IO Storage 기반으로 저장하는 방식으로 EOS.IO 위에 올려서 스트리밍 서비스를 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ 마지막으로 세부적인 기능들을 구현한 뒤 UI/UX를 다듬고 테스트한다.&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
가. 개발 일정&lt;br /&gt;
&lt;br /&gt;
3월 : 기존 EOS 기술 및 클라우드 시스템 분석 &lt;br /&gt;
&lt;br /&gt;
분산형 클라우드 시스템 설계 및 구현 &lt;br /&gt;
&lt;br /&gt;
4월 : 게임 스트리밍 서비스 설계 및 구현&lt;br /&gt;
&lt;br /&gt;
5월 : 매칭 시스템 설계 및 구현&lt;br /&gt;
&lt;br /&gt;
6월 : 전체 시스템 테스트 및 검토&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
나. 구성원 및 추진체계&lt;br /&gt;
&lt;br /&gt;
◇김용준: 분산형 클라우드 시스템, 매칭 시스템 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇노기선: 분산형 클라우드 시스템, 게임 스트리밍 서비스 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇ 임종범: 기존 시스템 분석, 게임 스트리밍 서비스 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇ 장원석: 기존 시스템 분석, 매칭 시스템 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
1. 기능적 요구사항&lt;br /&gt;
&lt;br /&gt;
◇1) 사용자가 보유한 토큰양을 불러와 서비스 사용 가능 시간을 산출해준다.&lt;br /&gt;
&lt;br /&gt;
◇2) 게임 별로 각각 다른 비용을 책정하여, 그에 맞게 사용 시간을 차감한다. (고사양일수록 비용 상승)&lt;br /&gt;
&lt;br /&gt;
◇3) 서비스 사용 시작부터 종료시 까지, 사용자가 플레이 하는 게임의 영상을 스트리밍 서비스 형태로 제공한다.&lt;br /&gt;
&lt;br /&gt;
◇4) 키보드, 마우스 등 사용자가 게임 플레이를 위해 입력하는 입력 신호를 송/수신한다.&lt;br /&gt;
&lt;br /&gt;
◇5) 스피커, 스크린샷 등 사용자 컴퓨터에 출력되는 출력 신호를 송/수신한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. 비기능적 요구사항&lt;br /&gt;
&lt;br /&gt;
◇1) EOS와 AWS를 이용한 SmartContract 환경을 조성한다.&lt;br /&gt;
&lt;br /&gt;
◇2) IPFS를 이용하여 영상 스트리밍은 최소 30FPS에서 최대 60FPS까지 서비스 할수 있도록 한다.&lt;br /&gt;
&lt;br /&gt;
◇3) 게임 플레이 시 입/출력 신호의 딜레이 최소화는 아주 중요하다. 이 딜레이는 반드시 짧아야한다.&lt;br /&gt;
&lt;br /&gt;
◇4) 블록에는 게임 이용시간, 사용한 토큰 수, 플레이한 게임의 종류 등을 포함한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
◇ 웹 플랫폼 기반으로 구축함으로써 다양한 기기(데스크탑, 모바일 기기 등)에서 접근하기가 용이하다.&lt;br /&gt;
&lt;br /&gt;
- 언제 어디서든 기기만 있으면 원하는 게임 실행 가능한 환경 구축&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
&lt;br /&gt;
- 고사양이 필요한 게임도 지원하여 하드웨어의 장벽 완화&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 실시간 게임 플레이 영상 및 입출력 조작 신호 송/수신(스트리밍)&lt;br /&gt;
&lt;br /&gt;
- IPFS 시스템을 이용해 빠른 속도의 오디오/비디오 데이터 전송&lt;br /&gt;
&lt;br /&gt;
- 기존의 실시간 스트리밍 방식에 비해 빠르고, 안전하고, 개방적임&lt;br /&gt;
&lt;br /&gt;
- 실시간 스트리밍 서비스에서 가장 중요한 요소인 지연 시간(Latency) 개선 가능&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ EOS 기반의 DApp으로 안정성 및 보안성, 가격 경쟁력 확보&lt;br /&gt;
&lt;br /&gt;
- EOS는 타 블록체인 기반의 DApp(이더리움 등)에 비해 많은 트랜잭션 처리가 가능하도록 설계되어 있어 안정적이고, 그 외 수많은 장점 덕에 점점 사용률이 높아지는 DApp 플랫폼이다.&lt;br /&gt;
&lt;br /&gt;
- 트랜잭션 당 사용료(Gas)를 내야 하는 이더리움(Ethereum)에 비해, EOS는 DApp 사용 시에 요금을 낼 필요가 없어 사용자 입장에서 경제적이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 블록체인에 정보를 기록함으로써 토큰 거래 정보의 위변조를 방지, 신뢰성을 보장한다.&lt;br /&gt;
&lt;br /&gt;
- 컴퓨팅 파워 제공자/게이머, 게임 플레이 관련 정보를 블록체인에 기록한다&lt;br /&gt;
&lt;br /&gt;
- 컴퓨팅 파워 제공자와 게이머의 매칭은 스마트 컨트랙트로 수행된다&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Adaptive HTTP Protocol을 활용하여 쾌적한 스트리밍 환경을 제공한다.&lt;br /&gt;
&lt;br /&gt;
- 동영상 콘텐츠를 다양한 해상도로 인코딩하고 여러 데이터 조각으로 나누어 저장한다.&lt;br /&gt;
&lt;br /&gt;
- 네트워크 상황에 따라 실시간으로 적절한 해상도를 가진 영상 데이터 조각들이 다운로드 되어 버퍼링 없는 스트리밍 환경을 제공한다.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
1 CLIENT : 웹 페이지를 통해 DApp에 접근하도록 구성, Node.js 기반 웹 Back-End, Front-End 구현(자체 구현)&lt;br /&gt;
&lt;br /&gt;
2 EOS.IO 기반 DApp : 오픈소스 소프트웨어인 EOS.IO를 기반으로 게이밍 플랫폼 DApp 개발(오픈소스 기반 구현)&lt;br /&gt;
&lt;br /&gt;
3 Smart Contract : 사용자(CLIENT)와의 이용권 - 요금 지불 시스템 및 요금을 지불한 사용자를 대상으로 게임을 구동할 수 있는 서버(SERVER)와 매칭 시스템 구현(자체 구현)&lt;br /&gt;
&lt;br /&gt;
4 IPFS File Storage : EOS.IO 내부에 IPFS 방식으로 설계되어 있는 EOS.IO Storage를 기반으로 구현(오픈소스기반 구현)&lt;br /&gt;
&lt;br /&gt;
5 Server : 게임을 실제 구동하는 서버, 구동 중 실시간으로 출력된 오디오/비디오 데이터를 캡처하여 오픈소스 소 프트웨어인 ffmpeg을 이용하여 인코딩 후, DApp 내부 IPFS File Storage에 업로드하고 사용자(CLIENT) 단말기에 서 받아 화면에 출력하는 방식으로 구현. 서버에 전달된 게이머의 입력신호는 서버에서 구동되는 게임의 입력으로 처리되도록 구현. (오픈소스 기반 구현)&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
없음&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
없음&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
 ◇ 웹 플랫폼 기반으로 구축&lt;br /&gt;
 장점 : 다양한 기기에서 실행 가능&lt;br /&gt;
 단점 : 따로 설정해 두지 않으면 웹 페이지 방문이 번거로울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
 장점 : 게이머의 선택의 폭이 넓어짐&lt;br /&gt;
 단점 : 상대적으로 관심이 적은 게임에 약간의 낭비된 비용이 생길 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 실시간 게임 플레이 영상 및 입출력 조작 신호 송/수신(스트리밍)&lt;br /&gt;
 장점 : WebRTC를 이용해 빠르고 안전하고 개방적임&lt;br /&gt;
 단점 : 다소 구현이 어려울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 기반의 DApp으로 안정성 및 보안성, 가격 경쟁력 확보&lt;br /&gt;
 장점 : 안정적이고, 경제적임&lt;br /&gt;
 단점 : EOS 기반 구현이 다소 어려울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 블록체인에 정보를 기록함으로써 토큰 거래 정보의 위변조를 방지, 신뢰성을 보장&lt;br /&gt;
 장점 : 보안적으로 뛰어남&lt;br /&gt;
 단점 : 블록생성만으로 자원을 많이 쓰기때문에 자원 낭비가 심함&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임목록창에서 게임선택시 바로 게임 어플리케이션이 실행될 수 있도록 상세구현&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임플레이 화면에서 클라이언트측 마우스와 게임서버측 마우스의 위치가 일치할 수 있는 방안 &lt;br /&gt;
    모색 -&amp;gt; 실제 게임플레이시 전체화면 모드로 실행 되도록&lt;br /&gt;
&lt;br /&gt;
 ◇ 웹페이지에서 회원설정 정보 확인 및 변경 기능을 추가 구현&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임플레이시 EOS 계정에 저장된 토큰을 활용한 게임 비용 지불 서비스 개발&lt;br /&gt;
&lt;br /&gt;
 ◇ 안드로이드/IOS 등 다양한 하드웨어에서도 원활히 서비스가 제공될 수 있는 방안 모색&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=KOS%EC%A1%B0&amp;diff=1513</id>
		<title>KOS조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=KOS%EC%A1%B0&amp;diff=1513"/>
				<updated>2019-06-20T15:28:00Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 설계 사양 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' EOS기반 분산형 클라우드 게이밍 플랫폼 개발&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' Development of distributed cloud gaming platform based on EOS&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
KOS&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
김성환 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 김*준&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 노*선&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 임*범&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 장*석&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
게임 산업 규모는 매 년 커져감에 반해 하드웨어의 보급의 속도는 그렇지 못한 편이다. 이에 블록 체인 기술과 함께 분산형 클라우드 게이밍 플랫폼 서비스를 제공, 사용자(게이머)로 하여금 다양 한 플랫폼에서 고사양의 게임을 플레이 할 수 있도록 도와주는 것이 주된 개발 과제이다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
 ◇ EOS Block Chain을 활용한 분산형 클라우드 게이밍 DApp(Decentralized Application)&lt;br /&gt;
&lt;br /&gt;
 ◇ 저사양 PC를 소유한 게이머가 고사양 게임을 플레이 할 수 있는 Platform&lt;br /&gt;
&lt;br /&gt;
 ◇ 트랜잭션 처리 시 수수료가 필요 없는 EOS를 이용한 경제적인 서비스&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS의 월등한 트랙잭션 처리 속도로 인한 빠른 게임 플레이 환경 제공&lt;br /&gt;
&lt;br /&gt;
 ◇ 웹 플랫폼 기반 클라우드 게이밍 플랫폼 &lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
  ◇ 비디오, 음악 및 기타 서비스에 이어 게임 역시 클라우드로 전환하고 있다. 게이머들에게 클라우드 게임은 개인의 게임 하드웨어를 소유하는 것보다 10배 저렴하고, 공유 경제원리를 활용하고 있다.&lt;br /&gt;
     GPU, 인터넷 및 낮은 지연 스트리밍 개발을 통해, 개인 게임 하드웨어의 수요가 감소하고있다. 실제로 차세대 콘솔은 하드웨어를 기반으로하는 마지막 콘솔이 될 것이다 &lt;br /&gt;
    &lt;br /&gt;
 ◇ 게임을 클라우드 기술로 전환시키는 것은 피할 수 없다. Steam 플레이어의 70%는 GTA V와 같은 AAA 타이틀을 고해상도로 플레이 할 수 없으며, 플레이어의 30%는 PC에서 그런 게임을 실행하는 것 조차 할 수 없다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 클라우드 게임의 수요는 앞으로도 증가할 것이다. 최신 세대의 하드웨어에 대한 수요와 자원 집약적 VR 기술에 의한 게임이 발전함에 따라 가정용 하드웨어를 더 비싼 가격으로 만들고 이는 일반적인 게이머에게 비현실적인 가격이 될 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 업계 1인자들의 예상으로는 게임산업의 미래는 스트리밍이다. 해당 과제의 미션은 탈중앙화의 초기 단계에서 클라우드 게임의 가능성을 보는 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 분산형 클라우드 게이밍 플랫폼 개발을 통한 향상된 스트리밍 서비스 제공한다 따라서 기존의 클라우드 게이밍 플랫폼과 비교하여 스트리밍 지연속도가 감소할 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 기존 시장에서 사용되던 이더리움 기반이 아닌 EOS 기반 플랫폼을 개발하여 이더리움보다 월등한 EOS의 초당 트랜잭션 처리 수가 게임의 처리 속도의 향상을 제공할 것이다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
 ◇ Web-RTC를 활용한 화면공유 및 원격제어&lt;br /&gt;
&lt;br /&gt;
 ◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 토큰 거래를 통한 게임 플레이&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 기반의 DApp개발로 다양한 경쟁력 확보&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
&lt;br /&gt;
◇ 3세대 블록체인 후보 이오스(EOS) &lt;br /&gt;
&lt;br /&gt;
1) EOS란? &lt;br /&gt;
&lt;br /&gt;
① 프로젝트로서의 EOS&lt;br /&gt;
 • EOS는 블록체인 프로젝트로서, 최초의 블록체인 OS(First Blockchain Operating System)을 표방함. 즉, EOS는 DApp을 개발하고 구동하기 위한 플랫폼을 개발하는 프로젝트라 할 수 있음&lt;br /&gt;
 ※ ( DApp 이란? ) 탈중앙화 어플리케이션(Decentralized Application)의 약자. 데이터의 흐름, 저장, 로직이 탈중앙화 되어 있어서 중앙화된 어플리케이션의 대표적인 문제점인 운영자의 탈선, 해킹으로 인한 데이터 위변조, 개인 정보 유출, 서버 다운 등의 문제가 일어날 가능성을 극도로 낮춰줌&lt;br /&gt;
&lt;br /&gt;
 • DApp의 한계&lt;br /&gt;
 근간이 되는 블록체인의 성능 자체가 대부분 중앙화 서버대비 떨어지기 때문에 스케일링이 어렵고사용자들이 트랜잭션을 일으킬 때마다 비용을 지불해야함. 또, 중앙화된 서버에서의 개발 방식과는전혀 다르기 때문에, 해킹에 취약해지거나 퍼포먼스가 떨어지는 문제가 있을 수 있음&lt;br /&gt;
&lt;br /&gt;
 • EOS는 이러한 한계를 극복하기 위한 프로젝트라고 할 수 있음.&lt;br /&gt;
&lt;br /&gt;
 • 고성능을 요구하는 상용 서비스(거래소, 소셜미디어 등)가 가능한 수준의 스케일링이 가능&lt;br /&gt;
&lt;br /&gt;
 • 사용자들이 플랫폼을 사용할 때마다 지불해야 되는 비용(가스)가 없음&lt;br /&gt;
&lt;br /&gt;
② 소프트웨어로서의 EOS&lt;br /&gt;
 • Block.one이 개발중인 EOS.IO를 의미함&lt;br /&gt;
&lt;br /&gt;
③ 토큰으로서의 EOS&lt;br /&gt;
 • ERC20 : 이더리움 블록체인 상에 그 수량과 교환방식 등이 정의된 토큰&lt;br /&gt;
 • EOS21이라는 프로토콜을 통해 EOS기반의 토큰으로 전환할 수 있게 됨&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) EOS의 BP 시스템&lt;br /&gt;
① DPoS 방식의 EOS&lt;br /&gt;
&lt;br /&gt;
 • 대표자들은 전체적인 블록체인의 방향을 설정하고 블록 생성을 담당. 이러한 대표자를 블록프로듀서(Block Producer,BP)라고 부름&lt;br /&gt;
&lt;br /&gt;
② EOS DPoS의 대표자, BP의 역할과 보상&lt;br /&gt;
 • EOS BP의 역할&lt;br /&gt;
 1. EOS 메인 블록체인의 지원&lt;br /&gt;
     - 개발자, 플랫폼 커뮤니티 지원&lt;br /&gt;
     - 이오스 관련 콘텐츠 배급 등&lt;br /&gt;
 2. 이오스 메인 블록체인의 운영&lt;br /&gt;
     - 매 라운드 ( 126초 ) 동안 0.5초당 1개 블록 생성&lt;br /&gt;
&lt;br /&gt;
 • EOS BP의 혜택&lt;br /&gt;
     1. 1년 동안 EOS 발행량의 1%를 보상으로 받음&lt;br /&gt;
     2. 총 보상의 25%는 상위 21명 BP, 나머지 75%는 상위BP와 백업BP를 포함한 모든 BP가 투표율에 따라 &lt;br /&gt;
         받음&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) 스마트 컨트랙트&lt;br /&gt;
&lt;br /&gt;
① Contract를 구현하고, 강제하고, 실행시켜주는 code&lt;br /&gt;
&lt;br /&gt;
 • 믿지않는 사용자간의 areement+coordination&lt;br /&gt;
 • 블록체인에 복잡한 기능을 제공&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
② Smart contract의 안전성?&lt;br /&gt;
&lt;br /&gt;
 • Token economy - Decentralized governance구조와 Incentive mechanism으로 정의&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) 2세대 블록체인 이더리움(ETHEREUM)과 이오스(EOS)&lt;br /&gt;
&lt;br /&gt;
5) 나날이 증가하는 EOS 플랫폼 상의 DApp 수&lt;br /&gt;
&lt;br /&gt;
 • 해가갈수록 급격한 증가폭을 보여줌&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6) 다양한 장르의 EOS 플랫폼 상 DApp&lt;br /&gt;
&lt;br /&gt;
 • 게임, 도박, 부동산, 지갑, 소셜 등 다양한 장르의 플랫폼 상의 DApp 존재&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7) EOS.IO가 제공하는 기능&lt;br /&gt;
&lt;br /&gt;
 • 무료 평가판 제한 거래&lt;br /&gt;
 • 낮은 대기 시간 블록 확인(0.5초)&lt;br /&gt;
 • 오버 헤드가 낮은 비잔틴 오류 내성 결말&lt;br /&gt;
 • 선택적으로 높은 오버 헤드, 낮은 대기 시간의 BFT 최종기증&lt;br /&gt;
 • 웹 어셈블리를 기반으로 하는 스마트 계약 플랫폼&lt;br /&gt;
 • 스파스 헤더 라이트 클라이언트 검증용으로 설계&lt;br /&gt;
 • 정기 반복 트랜잭션&lt;br /&gt;
 • 시간 지연 보안&lt;br /&gt;
 • 계층적 역할 기반 권한&lt;br /&gt;
 • 생체 인식 하드웨어 보안 키 지원&lt;br /&gt;
 • 문맥 무효 검증 논리의 병렬 실행&lt;br /&gt;
 • 블록 체인 간 통신&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
나. 기술 로드맵&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
① 블록체인 기반 기술&lt;br /&gt;
 • 고성능 저비용 합의 기술&lt;br /&gt;
 • 스마트 계약 검증 기술&lt;br /&gt;
&lt;br /&gt;
② 블록체인 확장 기술&lt;br /&gt;
 • 대용량 데이터 처리 기술, 외부 데이터 연동 기술&lt;br /&gt;
 • 대규모 서비스 제공을 위한 확장성 확보 기술&lt;br /&gt;
&lt;br /&gt;
③ 블록체인 서비스 기술&lt;br /&gt;
 • 거래 추적 및 분석 기술&lt;br /&gt;
 • 산업 분야별 기존 시스템 연동 기술&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
다. 특허조사&lt;br /&gt;
&lt;br /&gt;
 ◇ 최근 비트코인 등 암호 화폐에 대한 관심이 증가함에 따라, 그 기술적 기반인 블록체인 관련 특허출원도 전 세계적으로 폭발적 증가 추세인 것으로 나타났다. 특허청(청장 성윤모)에 따르면, 지식재산 선진 5개국(IP4, 한국•미국•일본•중국•유럽)에 출원되어 조사 시점(‘18년 1월말 기준)까지 공개된 블록체인 관련 전 세계 특허 출원은 모두 1,248건으로 나타났다 특허 출원의 양은 많지 않으나, ’09년 블록체인이 최초 구현된 이래, ‘13년 27건에서 매년 2~3배 증가’해 ‘15년에는 257건, ’16년에는 594건(미공개건 제외)에 이르는 것으로 조사됐다. 출원인의 국적별로 살펴보면, 누적건수로는 미국이 1위로 집계되었지만, ‘16년 이후 중국이 연간 특허출원 건수에서 미국을 제치고 1위로 올라섰다. 조만간 누적건수에서도 중국이 1위를 차지할 것으로 예측된다.&lt;br /&gt;
&lt;br /&gt;
 ◇ G2(미국, 중국)로의 편중 현상도 심해, 미국과 중국이 전체 특허 출원의 대부분(78%)을 점유했으며, 3, 4위를 차지한 우리나라와 일본의 점유율은 8%, 3%에 불과했다. 한편, 특허출원의 질적 수준을 나타내는 간접지표인, 해외출원 비율에서는 미국이 중국을 제치고 압두적인 선두를 지켰다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 주체별로는, 전 세계 블록체인 특허출원 중 81%를 기업이 주도하고 있고, 미국은 은행 등 금융기업에 의한 특허출원도 활발한 편이다. 한편 우리나라는 대기업보다 벤처기업 등의 중소기업 비중(66.7%)이 매우 높은 특징을 보였으며, 금융기업에 의한 특허출원은 아직까진 없는 것으로 조사(‘18.1월말 조사 시점까지 공개된 특허출원 기준)되었다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 블록체인의 기본 개념은 이미 Open Source로 공개되어 누구도 특허를 갖지 못하는 자유 기술이다. 따라서 특허출원은 주로 보안, 운용, 활용 등 주변 기술을 중심으로 이뤄지고 있다. 특히, 블록체인이 암호 화폐에서 물류•의료•공공 서비스 등으로 활용 범위가 점차 확대됨에 따라 특허출원도 덩달아 활용 분야를 중심으로 증가할 것으로 전망된다.&lt;br /&gt;
&lt;br /&gt;
 ◇ KB금융그룹의 ‘블록체인을 활용한 모바일 앱 보안 솔루션 관련 기술특허’는 서비스 부문과 보안부분을 분리해 보안부문의 암호화키를 블록체인망에 보관해 안정성을 높였다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 골드만삭스의 ‘세틀코인(SETLcoin)’은 주식, 채권 등 실시간 거래뿐만 아니라 거래내역도 블록체인의 분산원장에 적용하여 위, 변조가 불가능한 첨단 핀테크를 가능하게 한다. &lt;br /&gt;
&lt;br /&gt;
 ◇ 미국의 대형 은행인 BoA(뱅크 오브 아메리카)도 15건의 특허를 출원했고, 20건 정도의 추가 특허를 출원할 예정이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
라. 특허전략&lt;br /&gt;
&lt;br /&gt;
 특허에서 공개된 비즈니스 모델은 블록체인 업체의 비즈니스 모델과 유사한 부분이 존재한다. 개인정보를 제공하고, 개인정보에 따른 보상금을 지급하는 구조이다. 위의 특허는 기존 특허에 대한 하나의 예시이고, 개인정보에 따른 보상과 관련된 기술, 개인 데이터를 추적하는 기술은 다른 특허에도 많이 기술되어 있기 때문에 이러한 기존의 비즈니스 모델 특허와 블록체인 특허가 차별점을 가지기 위해서는 블록체인과 블록체인과 트랜잭션을 발생시키는 노드 간의 동작에 대한 구체화, 블록 상에서의 데이터 처리 등에 관련된 특징들이 반드시 필요하다.&lt;br /&gt;
&lt;br /&gt;
 예를 들어, 블록체인에 올라간 스마트 콘트랙트를 기반으로 수집된 개인 정보가 블록체인과는 어떠한 관계를 가지고 처리되는지, 개인 정보의 거래는 블록체인 상에서 어떻게 수행되는지 보상은 블록체인 상에서 어떻게 발생되는지&lt;br /&gt;
위와 같은 블록체인, 블록과 연관된 구체적인 트랜잭션들이 블록체인 특허에 도시되고 기술되어야한다. 이러한 특징이 있다면, 블록체인 특허가 기존 특허와 차별화를 가질 수 있고 등록 가능성도 높아지게 됩니다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
가. 경쟁제품 조사 비교&lt;br /&gt;
◇ PlayKey&lt;br /&gt;
    &lt;br /&gt;
    - P2P와 블록체인 기술 기반의 게이머를 위한 세계 최초의 탈중앙화 클라우드 게이밍 플랫폼&lt;br /&gt;
    - 고성능의 컴퓨터를 가진 전세계 수십명의 독립적인 소유자가 커뮤니티 내에 결속하여 클라우드 게임 서비스 업체(채굴자)로 활동&lt;br /&gt;
    - 시스템 내 유일한 보편적인 에코 시스템 암호화폐 -PKT 토큰- 이 ICO를 통해 발급됨&lt;br /&gt;
    - 채굴자-게이머의 스마트 컨트랙트 형태로 구성되어 클라우드 게임 서비스의 높은 통합 수준을&lt;br /&gt;
      제공&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Google STADIA&lt;br /&gt;
  &lt;br /&gt;
 -  중앙집권형 클라우드 게이밍 플랫폼&lt;br /&gt;
 -  유튜브 기반이기 때문에 유튜브 재생만 가능하다면 저사양 PC든 스마트폰이든 태블릿 PC든 실시간 스트리밍 &lt;br /&gt;
을 통해 FHD 60프레임으로 게임 플레이 가능&lt;br /&gt;
 - 웹 브라우저에서 바로 실행되며 클릭 한/두 번으로 게임 플레이 가능&lt;br /&gt;
&lt;br /&gt;
나. 마케팅 전략&lt;br /&gt;
 1) EOS블록체인 기반 서비스를 제공함으로써&lt;br /&gt;
  ◇ 채굴자는 개인으로서 경제적이득(가상화폐)을 얻을 기회가 생긴다.&lt;br /&gt;
  ◇ 채굴자는 시장 활성화가 커져갈수록, 같은 서비스 제공으로 더 많은 이득을 얻을 수 있다.&lt;br /&gt;
  ◇ 사용자(게이머)는 저성능의 컴퓨터를 소유하고 있더라도, 약간의 이용료를 지불하여 고사양의 게임을 최고의 &lt;br /&gt;
 퀄리티로 즐길 수 있다.&lt;br /&gt;
  ◇ 사용자(게이머)는 기존 클라우드 게이밍 서비스보다도 훨씬 더 저렴한 가격으로 이용할 수 있다.&lt;br /&gt;
  ◇ 5G 상용화와 더불어 안정적인 서비스 제공을 통해 커다란 시장이 형성될 수 있다.&lt;br /&gt;
&lt;br /&gt;
 2) 월등한 EOS의 초당 트랜잭션 처리 수로 인한 게임 처리 속도의 향상&lt;br /&gt;
  ◇ 쾌적한 게임 플레이 가능&lt;br /&gt;
&lt;br /&gt;
 3) 국내에서 인기 있는 게임 위주 서비스 제공&lt;br /&gt;
  ◇ 기존의 클라우드 게이밍 플랫폼에서 제공되는 게임들은 해외에서 인기있는 게임 위주였기 때문 에 국내 게이 &lt;br /&gt;
 머들의 관심을 끌기 어려웠다.&lt;br /&gt;
  ◇ 국내에서 인기 있는 게임 위주로 서비스를 제공하여 국내 게이머들의 관심도 증가&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
&lt;br /&gt;
◇ 분산형 컴퓨팅을 통한 안정적인 서비스 제공&lt;br /&gt;
&lt;br /&gt;
◇ 저사양 플랫폼에서 고사양 게임 가능&lt;br /&gt;
&lt;br /&gt;
◇ 이더리움보다 월등한 EOS의 초당 트랜잭션 처리 수가 게임 처리 속도의 향상을 제공&lt;br /&gt;
&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
&lt;br /&gt;
◇ 새로운 기술 보급을 통한 시장 흐름 변화&lt;br /&gt;
&lt;br /&gt;
◇ 개인의 소비 패턴 변화(기존 : 하드웨어 성능 중시 → 서비스 제공이후 : 클라우드 서비스 중시)&lt;br /&gt;
&lt;br /&gt;
◇ 생소했던 클라우드 게이밍에 국내 인지도 상승&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
◇ 먼저 AWS 서비스를 기반으로 Node.js 웹 서버를 구축한 후, Ejs/CSS 등을 이용하여 간단하고 기본적인 페이지 라우팅 구조(Back-End), UI/UX(Front- End) 등을 구축해놓는다.&lt;br /&gt;
&lt;br /&gt;
◇ 그 다음, EOS.IO기반 로컬 체인을 구축하고, 웹 서버와 연동한 뒤 사용자 회원가입/지불 시스템 등의 로직을 Smart Contract로 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ Smart Contract 구현에 성공하면, 실 게임 구동 서버-클라이언트 간 기본적인 실시간 스트리밍 서비스를 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ 실시간 스트리밍 서비스 구현에 성공하면, Smart Contract로 사용자 - 게임 구동 서버 매칭 로직을 구현하고, 스트리밍 시 전송되는 비디오/오디오 데이터를 EOS.IO Storage 기반으로 저장하는 방식으로 EOS.IO 위에 올려서 스트리밍 서비스를 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ 마지막으로 세부적인 기능들을 구현한 뒤 UI/UX를 다듬고 테스트한다.&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
가. 개발 일정&lt;br /&gt;
&lt;br /&gt;
3월 : 기존 EOS 기술 및 클라우드 시스템 분석 &lt;br /&gt;
&lt;br /&gt;
분산형 클라우드 시스템 설계 및 구현 &lt;br /&gt;
&lt;br /&gt;
4월 : 게임 스트리밍 서비스 설계 및 구현&lt;br /&gt;
&lt;br /&gt;
5월 : 매칭 시스템 설계 및 구현&lt;br /&gt;
&lt;br /&gt;
6월 : 전체 시스템 테스트 및 검토&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
나. 구성원 및 추진체계&lt;br /&gt;
&lt;br /&gt;
◇김용준: 분산형 클라우드 시스템, 매칭 시스템 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇노기선: 분산형 클라우드 시스템, 게임 스트리밍 서비스 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇ 임종범: 기존 시스템 분석, 게임 스트리밍 서비스 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇ 장원석: 기존 시스템 분석, 매칭 시스템 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
1. 기능적 요구사항&lt;br /&gt;
&lt;br /&gt;
◇1) 사용자가 보유한 토큰양을 불러와 서비스 사용 가능 시간을 산출해준다.&lt;br /&gt;
&lt;br /&gt;
◇2) 게임 별로 각각 다른 비용을 책정하여, 그에 맞게 사용 시간을 차감한다. (고사양일수록 비용 상승)&lt;br /&gt;
&lt;br /&gt;
◇3) 서비스 사용 시작부터 종료시 까지, 사용자가 플레이 하는 게임의 영상을 스트리밍 서비스 형태로 제공한다.&lt;br /&gt;
&lt;br /&gt;
◇4) 키보드, 마우스 등 사용자가 게임 플레이를 위해 입력하는 입력 신호를 송/수신한다.&lt;br /&gt;
&lt;br /&gt;
◇5) 스피커, 스크린샷 등 사용자 컴퓨터에 출력되는 출력 신호를 송/수신한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. 비기능적 요구사항&lt;br /&gt;
&lt;br /&gt;
◇1) EOS와 AWS를 이용한 SmartContract 환경을 조성한다.&lt;br /&gt;
&lt;br /&gt;
◇2) IPFS를 이용하여 영상 스트리밍은 최소 30FPS에서 최대 60FPS까지 서비스 할수 있도록 한다.&lt;br /&gt;
&lt;br /&gt;
◇3) 게임 플레이 시 입/출력 신호의 딜레이 최소화는 아주 중요하다. 이 딜레이는 반드시 짧아야한다.&lt;br /&gt;
&lt;br /&gt;
◇4) 블록에는 게임 이용시간, 사용한 토큰 수, 플레이한 게임의 종류 등을 포함한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
◇ 웹 플랫폼 기반으로 구축함으로써 다양한 기기(데스크탑, 모바일 기기 등)에서 접근하기가 용이하다.&lt;br /&gt;
&lt;br /&gt;
- 언제 어디서든 기기만 있으면 원하는 게임 실행 가능한 환경 구축&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
&lt;br /&gt;
- 고사양이 필요한 게임도 지원하여 하드웨어의 장벽 완화&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 실시간 게임 플레이 영상 및 입출력 조작 신호 송/수신(스트리밍)&lt;br /&gt;
&lt;br /&gt;
- IPFS 시스템을 이용해 빠른 속도의 오디오/비디오 데이터 전송&lt;br /&gt;
&lt;br /&gt;
- 기존의 실시간 스트리밍 방식에 비해 빠르고, 안전하고, 개방적임&lt;br /&gt;
&lt;br /&gt;
- 실시간 스트리밍 서비스에서 가장 중요한 요소인 지연 시간(Latency) 개선 가능&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ EOS 기반의 DApp으로 안정성 및 보안성, 가격 경쟁력 확보&lt;br /&gt;
&lt;br /&gt;
- EOS는 타 블록체인 기반의 DApp(이더리움 등)에 비해 많은 트랜잭션 처리가 가능하도록 설계되어 있어 안정적이고, 그 외 수많은 장점 덕에 점점 사용률이 높아지는 DApp 플랫폼이다.&lt;br /&gt;
&lt;br /&gt;
- 트랜잭션 당 사용료(Gas)를 내야 하는 이더리움(Ethereum)에 비해, EOS는 DApp 사용 시에 요금을 낼 필요가 없어 사용자 입장에서 경제적이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 블록체인에 정보를 기록함으로써 토큰 거래 정보의 위변조를 방지, 신뢰성을 보장한다.&lt;br /&gt;
&lt;br /&gt;
- 컴퓨팅 파워 제공자/게이머, 게임 플레이 관련 정보를 블록체인에 기록한다&lt;br /&gt;
&lt;br /&gt;
- 컴퓨팅 파워 제공자와 게이머의 매칭은 스마트 컨트랙트로 수행된다&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Adaptive HTTP Protocol을 활용하여 쾌적한 스트리밍 환경을 제공한다.&lt;br /&gt;
&lt;br /&gt;
- 동영상 콘텐츠를 다양한 해상도로 인코딩하고 여러 데이터 조각으로 나누어 저장한다.&lt;br /&gt;
&lt;br /&gt;
- 네트워크 상황에 따라 실시간으로 적절한 해상도를 가진 영상 데이터 조각들이 다운로드 되어 버퍼링 없는 스트리밍 환경을 제공한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
1 CLIENT : 웹 페이지를 통해 DApp에 접근하도록 구성, Node.js 기반 웹 Back-End, Front-End 구현(자체 구현)&lt;br /&gt;
&lt;br /&gt;
2 EOS.IO 기반 DApp : 오픈소스 소프트웨어인 EOS.IO를 기반으로 게이밍 플랫폼 DApp 개발(오픈소스 기반 구현)&lt;br /&gt;
&lt;br /&gt;
3 Smart Contract : 사용자(CLIENT)와의 이용권 - 요금 지불 시스템 및 요금을 지불한 사용자를 대상으로 게임을 구동할 수 있는 서버(SERVER)와 매칭 시스템 구현(자체 구현)&lt;br /&gt;
&lt;br /&gt;
4 IPFS File Storage : EOS.IO 내부에 IPFS 방식으로 설계되어 있는 EOS.IO Storage를 기반으로 구현(오픈소스기반 구현)&lt;br /&gt;
&lt;br /&gt;
5 Server : 게임을 실제 구동하는 서버, 구동 중 실시간으로 출력된 오디오/비디오 데이터를 캡처하여 오픈소스 소 프트웨어인 ffmpeg을 이용하여 인코딩 후, DApp 내부 IPFS File Storage에 업로드하고 사용자(CLIENT) 단말기에 서 받아 화면에 출력하는 방식으로 구현. 서버에 전달된 게이머의 입력신호는 서버에서 구동되는 게임의 입력으로 처리되도록 구현. (오픈소스 기반 구현)&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
없음&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
없음&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
 ◇ 웹 플랫폼 기반으로 구축&lt;br /&gt;
 장점 : 다양한 기기에서 실행 가능&lt;br /&gt;
 단점 : 따로 설정해 두지 않으면 웹 페이지 방문이 번거로울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
 장점 : 게이머의 선택의 폭이 넓어짐&lt;br /&gt;
 단점 : 상대적으로 관심이 적은 게임에 약간의 낭비된 비용이 생길 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 실시간 게임 플레이 영상 및 입출력 조작 신호 송/수신(스트리밍)&lt;br /&gt;
 장점 : WebRTC를 이용해 빠르고 안전하고 개방적임&lt;br /&gt;
 단점 : 다소 구현이 어려울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 기반의 DApp으로 안정성 및 보안성, 가격 경쟁력 확보&lt;br /&gt;
 장점 : 안정적이고, 경제적임&lt;br /&gt;
 단점 : EOS 기반 구현이 다소 어려울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 블록체인에 정보를 기록함으로써 토큰 거래 정보의 위변조를 방지, 신뢰성을 보장&lt;br /&gt;
 장점 : 보안적으로 뛰어남&lt;br /&gt;
 단점 : 블록생성만으로 자원을 많이 쓰기때문에 자원 낭비가 심함&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임목록창에서 게임선택시 바로 게임 어플리케이션이 실행될 수 있도록 상세구현&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임플레이 화면에서 클라이언트측 마우스와 게임서버측 마우스의 위치가 일치할 수 있는 방안 &lt;br /&gt;
    모색 -&amp;gt; 실제 게임플레이시 전체화면 모드로 실행 되도록&lt;br /&gt;
&lt;br /&gt;
 ◇ 웹페이지에서 회원설정 정보 확인 및 변경 기능을 추가 구현&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임플레이시 EOS 계정에 저장된 토큰을 활용한 게임 비용 지불 서비스 개발&lt;br /&gt;
&lt;br /&gt;
 ◇ 안드로이드/IOS 등 다양한 하드웨어에서도 원활히 서비스가 제공될 수 있는 방안 모색&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=KOS%EC%A1%B0&amp;diff=1512</id>
		<title>KOS조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=KOS%EC%A1%B0&amp;diff=1512"/>
				<updated>2019-06-20T15:27:43Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 특허 출원 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' EOS기반 분산형 클라우드 게이밍 플랫폼 개발&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' Development of distributed cloud gaming platform based on EOS&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
KOS&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
김성환 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 김*준&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 노*선&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 임*범&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 장*석&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
게임 산업 규모는 매 년 커져감에 반해 하드웨어의 보급의 속도는 그렇지 못한 편이다. 이에 블록 체인 기술과 함께 분산형 클라우드 게이밍 플랫폼 서비스를 제공, 사용자(게이머)로 하여금 다양 한 플랫폼에서 고사양의 게임을 플레이 할 수 있도록 도와주는 것이 주된 개발 과제이다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
 ◇ EOS Block Chain을 활용한 분산형 클라우드 게이밍 DApp(Decentralized Application)&lt;br /&gt;
&lt;br /&gt;
 ◇ 저사양 PC를 소유한 게이머가 고사양 게임을 플레이 할 수 있는 Platform&lt;br /&gt;
&lt;br /&gt;
 ◇ 트랜잭션 처리 시 수수료가 필요 없는 EOS를 이용한 경제적인 서비스&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS의 월등한 트랙잭션 처리 속도로 인한 빠른 게임 플레이 환경 제공&lt;br /&gt;
&lt;br /&gt;
 ◇ 웹 플랫폼 기반 클라우드 게이밍 플랫폼 &lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
  ◇ 비디오, 음악 및 기타 서비스에 이어 게임 역시 클라우드로 전환하고 있다. 게이머들에게 클라우드 게임은 개인의 게임 하드웨어를 소유하는 것보다 10배 저렴하고, 공유 경제원리를 활용하고 있다.&lt;br /&gt;
     GPU, 인터넷 및 낮은 지연 스트리밍 개발을 통해, 개인 게임 하드웨어의 수요가 감소하고있다. 실제로 차세대 콘솔은 하드웨어를 기반으로하는 마지막 콘솔이 될 것이다 &lt;br /&gt;
    &lt;br /&gt;
 ◇ 게임을 클라우드 기술로 전환시키는 것은 피할 수 없다. Steam 플레이어의 70%는 GTA V와 같은 AAA 타이틀을 고해상도로 플레이 할 수 없으며, 플레이어의 30%는 PC에서 그런 게임을 실행하는 것 조차 할 수 없다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 클라우드 게임의 수요는 앞으로도 증가할 것이다. 최신 세대의 하드웨어에 대한 수요와 자원 집약적 VR 기술에 의한 게임이 발전함에 따라 가정용 하드웨어를 더 비싼 가격으로 만들고 이는 일반적인 게이머에게 비현실적인 가격이 될 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 업계 1인자들의 예상으로는 게임산업의 미래는 스트리밍이다. 해당 과제의 미션은 탈중앙화의 초기 단계에서 클라우드 게임의 가능성을 보는 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 분산형 클라우드 게이밍 플랫폼 개발을 통한 향상된 스트리밍 서비스 제공한다 따라서 기존의 클라우드 게이밍 플랫폼과 비교하여 스트리밍 지연속도가 감소할 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 기존 시장에서 사용되던 이더리움 기반이 아닌 EOS 기반 플랫폼을 개발하여 이더리움보다 월등한 EOS의 초당 트랜잭션 처리 수가 게임의 처리 속도의 향상을 제공할 것이다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
 ◇ Web-RTC를 활용한 화면공유 및 원격제어&lt;br /&gt;
&lt;br /&gt;
 ◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 토큰 거래를 통한 게임 플레이&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 기반의 DApp개발로 다양한 경쟁력 확보&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
&lt;br /&gt;
◇ 3세대 블록체인 후보 이오스(EOS) &lt;br /&gt;
&lt;br /&gt;
1) EOS란? &lt;br /&gt;
&lt;br /&gt;
① 프로젝트로서의 EOS&lt;br /&gt;
 • EOS는 블록체인 프로젝트로서, 최초의 블록체인 OS(First Blockchain Operating System)을 표방함. 즉, EOS는 DApp을 개발하고 구동하기 위한 플랫폼을 개발하는 프로젝트라 할 수 있음&lt;br /&gt;
 ※ ( DApp 이란? ) 탈중앙화 어플리케이션(Decentralized Application)의 약자. 데이터의 흐름, 저장, 로직이 탈중앙화 되어 있어서 중앙화된 어플리케이션의 대표적인 문제점인 운영자의 탈선, 해킹으로 인한 데이터 위변조, 개인 정보 유출, 서버 다운 등의 문제가 일어날 가능성을 극도로 낮춰줌&lt;br /&gt;
&lt;br /&gt;
 • DApp의 한계&lt;br /&gt;
 근간이 되는 블록체인의 성능 자체가 대부분 중앙화 서버대비 떨어지기 때문에 스케일링이 어렵고사용자들이 트랜잭션을 일으킬 때마다 비용을 지불해야함. 또, 중앙화된 서버에서의 개발 방식과는전혀 다르기 때문에, 해킹에 취약해지거나 퍼포먼스가 떨어지는 문제가 있을 수 있음&lt;br /&gt;
&lt;br /&gt;
 • EOS는 이러한 한계를 극복하기 위한 프로젝트라고 할 수 있음.&lt;br /&gt;
&lt;br /&gt;
 • 고성능을 요구하는 상용 서비스(거래소, 소셜미디어 등)가 가능한 수준의 스케일링이 가능&lt;br /&gt;
&lt;br /&gt;
 • 사용자들이 플랫폼을 사용할 때마다 지불해야 되는 비용(가스)가 없음&lt;br /&gt;
&lt;br /&gt;
② 소프트웨어로서의 EOS&lt;br /&gt;
 • Block.one이 개발중인 EOS.IO를 의미함&lt;br /&gt;
&lt;br /&gt;
③ 토큰으로서의 EOS&lt;br /&gt;
 • ERC20 : 이더리움 블록체인 상에 그 수량과 교환방식 등이 정의된 토큰&lt;br /&gt;
 • EOS21이라는 프로토콜을 통해 EOS기반의 토큰으로 전환할 수 있게 됨&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) EOS의 BP 시스템&lt;br /&gt;
① DPoS 방식의 EOS&lt;br /&gt;
&lt;br /&gt;
 • 대표자들은 전체적인 블록체인의 방향을 설정하고 블록 생성을 담당. 이러한 대표자를 블록프로듀서(Block Producer,BP)라고 부름&lt;br /&gt;
&lt;br /&gt;
② EOS DPoS의 대표자, BP의 역할과 보상&lt;br /&gt;
 • EOS BP의 역할&lt;br /&gt;
 1. EOS 메인 블록체인의 지원&lt;br /&gt;
     - 개발자, 플랫폼 커뮤니티 지원&lt;br /&gt;
     - 이오스 관련 콘텐츠 배급 등&lt;br /&gt;
 2. 이오스 메인 블록체인의 운영&lt;br /&gt;
     - 매 라운드 ( 126초 ) 동안 0.5초당 1개 블록 생성&lt;br /&gt;
&lt;br /&gt;
 • EOS BP의 혜택&lt;br /&gt;
     1. 1년 동안 EOS 발행량의 1%를 보상으로 받음&lt;br /&gt;
     2. 총 보상의 25%는 상위 21명 BP, 나머지 75%는 상위BP와 백업BP를 포함한 모든 BP가 투표율에 따라 &lt;br /&gt;
         받음&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) 스마트 컨트랙트&lt;br /&gt;
&lt;br /&gt;
① Contract를 구현하고, 강제하고, 실행시켜주는 code&lt;br /&gt;
&lt;br /&gt;
 • 믿지않는 사용자간의 areement+coordination&lt;br /&gt;
 • 블록체인에 복잡한 기능을 제공&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
② Smart contract의 안전성?&lt;br /&gt;
&lt;br /&gt;
 • Token economy - Decentralized governance구조와 Incentive mechanism으로 정의&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) 2세대 블록체인 이더리움(ETHEREUM)과 이오스(EOS)&lt;br /&gt;
&lt;br /&gt;
5) 나날이 증가하는 EOS 플랫폼 상의 DApp 수&lt;br /&gt;
&lt;br /&gt;
 • 해가갈수록 급격한 증가폭을 보여줌&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6) 다양한 장르의 EOS 플랫폼 상 DApp&lt;br /&gt;
&lt;br /&gt;
 • 게임, 도박, 부동산, 지갑, 소셜 등 다양한 장르의 플랫폼 상의 DApp 존재&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7) EOS.IO가 제공하는 기능&lt;br /&gt;
&lt;br /&gt;
 • 무료 평가판 제한 거래&lt;br /&gt;
 • 낮은 대기 시간 블록 확인(0.5초)&lt;br /&gt;
 • 오버 헤드가 낮은 비잔틴 오류 내성 결말&lt;br /&gt;
 • 선택적으로 높은 오버 헤드, 낮은 대기 시간의 BFT 최종기증&lt;br /&gt;
 • 웹 어셈블리를 기반으로 하는 스마트 계약 플랫폼&lt;br /&gt;
 • 스파스 헤더 라이트 클라이언트 검증용으로 설계&lt;br /&gt;
 • 정기 반복 트랜잭션&lt;br /&gt;
 • 시간 지연 보안&lt;br /&gt;
 • 계층적 역할 기반 권한&lt;br /&gt;
 • 생체 인식 하드웨어 보안 키 지원&lt;br /&gt;
 • 문맥 무효 검증 논리의 병렬 실행&lt;br /&gt;
 • 블록 체인 간 통신&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
나. 기술 로드맵&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
① 블록체인 기반 기술&lt;br /&gt;
 • 고성능 저비용 합의 기술&lt;br /&gt;
 • 스마트 계약 검증 기술&lt;br /&gt;
&lt;br /&gt;
② 블록체인 확장 기술&lt;br /&gt;
 • 대용량 데이터 처리 기술, 외부 데이터 연동 기술&lt;br /&gt;
 • 대규모 서비스 제공을 위한 확장성 확보 기술&lt;br /&gt;
&lt;br /&gt;
③ 블록체인 서비스 기술&lt;br /&gt;
 • 거래 추적 및 분석 기술&lt;br /&gt;
 • 산업 분야별 기존 시스템 연동 기술&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
다. 특허조사&lt;br /&gt;
&lt;br /&gt;
 ◇ 최근 비트코인 등 암호 화폐에 대한 관심이 증가함에 따라, 그 기술적 기반인 블록체인 관련 특허출원도 전 세계적으로 폭발적 증가 추세인 것으로 나타났다. 특허청(청장 성윤모)에 따르면, 지식재산 선진 5개국(IP4, 한국•미국•일본•중국•유럽)에 출원되어 조사 시점(‘18년 1월말 기준)까지 공개된 블록체인 관련 전 세계 특허 출원은 모두 1,248건으로 나타났다 특허 출원의 양은 많지 않으나, ’09년 블록체인이 최초 구현된 이래, ‘13년 27건에서 매년 2~3배 증가’해 ‘15년에는 257건, ’16년에는 594건(미공개건 제외)에 이르는 것으로 조사됐다. 출원인의 국적별로 살펴보면, 누적건수로는 미국이 1위로 집계되었지만, ‘16년 이후 중국이 연간 특허출원 건수에서 미국을 제치고 1위로 올라섰다. 조만간 누적건수에서도 중국이 1위를 차지할 것으로 예측된다.&lt;br /&gt;
&lt;br /&gt;
 ◇ G2(미국, 중국)로의 편중 현상도 심해, 미국과 중국이 전체 특허 출원의 대부분(78%)을 점유했으며, 3, 4위를 차지한 우리나라와 일본의 점유율은 8%, 3%에 불과했다. 한편, 특허출원의 질적 수준을 나타내는 간접지표인, 해외출원 비율에서는 미국이 중국을 제치고 압두적인 선두를 지켰다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 주체별로는, 전 세계 블록체인 특허출원 중 81%를 기업이 주도하고 있고, 미국은 은행 등 금융기업에 의한 특허출원도 활발한 편이다. 한편 우리나라는 대기업보다 벤처기업 등의 중소기업 비중(66.7%)이 매우 높은 특징을 보였으며, 금융기업에 의한 특허출원은 아직까진 없는 것으로 조사(‘18.1월말 조사 시점까지 공개된 특허출원 기준)되었다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 블록체인의 기본 개념은 이미 Open Source로 공개되어 누구도 특허를 갖지 못하는 자유 기술이다. 따라서 특허출원은 주로 보안, 운용, 활용 등 주변 기술을 중심으로 이뤄지고 있다. 특히, 블록체인이 암호 화폐에서 물류•의료•공공 서비스 등으로 활용 범위가 점차 확대됨에 따라 특허출원도 덩달아 활용 분야를 중심으로 증가할 것으로 전망된다.&lt;br /&gt;
&lt;br /&gt;
 ◇ KB금융그룹의 ‘블록체인을 활용한 모바일 앱 보안 솔루션 관련 기술특허’는 서비스 부문과 보안부분을 분리해 보안부문의 암호화키를 블록체인망에 보관해 안정성을 높였다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 골드만삭스의 ‘세틀코인(SETLcoin)’은 주식, 채권 등 실시간 거래뿐만 아니라 거래내역도 블록체인의 분산원장에 적용하여 위, 변조가 불가능한 첨단 핀테크를 가능하게 한다. &lt;br /&gt;
&lt;br /&gt;
 ◇ 미국의 대형 은행인 BoA(뱅크 오브 아메리카)도 15건의 특허를 출원했고, 20건 정도의 추가 특허를 출원할 예정이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
라. 특허전략&lt;br /&gt;
&lt;br /&gt;
 특허에서 공개된 비즈니스 모델은 블록체인 업체의 비즈니스 모델과 유사한 부분이 존재한다. 개인정보를 제공하고, 개인정보에 따른 보상금을 지급하는 구조이다. 위의 특허는 기존 특허에 대한 하나의 예시이고, 개인정보에 따른 보상과 관련된 기술, 개인 데이터를 추적하는 기술은 다른 특허에도 많이 기술되어 있기 때문에 이러한 기존의 비즈니스 모델 특허와 블록체인 특허가 차별점을 가지기 위해서는 블록체인과 블록체인과 트랜잭션을 발생시키는 노드 간의 동작에 대한 구체화, 블록 상에서의 데이터 처리 등에 관련된 특징들이 반드시 필요하다.&lt;br /&gt;
&lt;br /&gt;
 예를 들어, 블록체인에 올라간 스마트 콘트랙트를 기반으로 수집된 개인 정보가 블록체인과는 어떠한 관계를 가지고 처리되는지, 개인 정보의 거래는 블록체인 상에서 어떻게 수행되는지 보상은 블록체인 상에서 어떻게 발생되는지&lt;br /&gt;
위와 같은 블록체인, 블록과 연관된 구체적인 트랜잭션들이 블록체인 특허에 도시되고 기술되어야한다. 이러한 특징이 있다면, 블록체인 특허가 기존 특허와 차별화를 가질 수 있고 등록 가능성도 높아지게 됩니다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
가. 경쟁제품 조사 비교&lt;br /&gt;
◇ PlayKey&lt;br /&gt;
    &lt;br /&gt;
    - P2P와 블록체인 기술 기반의 게이머를 위한 세계 최초의 탈중앙화 클라우드 게이밍 플랫폼&lt;br /&gt;
    - 고성능의 컴퓨터를 가진 전세계 수십명의 독립적인 소유자가 커뮤니티 내에 결속하여 클라우드 게임 서비스 업체(채굴자)로 활동&lt;br /&gt;
    - 시스템 내 유일한 보편적인 에코 시스템 암호화폐 -PKT 토큰- 이 ICO를 통해 발급됨&lt;br /&gt;
    - 채굴자-게이머의 스마트 컨트랙트 형태로 구성되어 클라우드 게임 서비스의 높은 통합 수준을&lt;br /&gt;
      제공&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Google STADIA&lt;br /&gt;
  &lt;br /&gt;
 -  중앙집권형 클라우드 게이밍 플랫폼&lt;br /&gt;
 -  유튜브 기반이기 때문에 유튜브 재생만 가능하다면 저사양 PC든 스마트폰이든 태블릿 PC든 실시간 스트리밍 &lt;br /&gt;
을 통해 FHD 60프레임으로 게임 플레이 가능&lt;br /&gt;
 - 웹 브라우저에서 바로 실행되며 클릭 한/두 번으로 게임 플레이 가능&lt;br /&gt;
&lt;br /&gt;
나. 마케팅 전략&lt;br /&gt;
 1) EOS블록체인 기반 서비스를 제공함으로써&lt;br /&gt;
  ◇ 채굴자는 개인으로서 경제적이득(가상화폐)을 얻을 기회가 생긴다.&lt;br /&gt;
  ◇ 채굴자는 시장 활성화가 커져갈수록, 같은 서비스 제공으로 더 많은 이득을 얻을 수 있다.&lt;br /&gt;
  ◇ 사용자(게이머)는 저성능의 컴퓨터를 소유하고 있더라도, 약간의 이용료를 지불하여 고사양의 게임을 최고의 &lt;br /&gt;
 퀄리티로 즐길 수 있다.&lt;br /&gt;
  ◇ 사용자(게이머)는 기존 클라우드 게이밍 서비스보다도 훨씬 더 저렴한 가격으로 이용할 수 있다.&lt;br /&gt;
  ◇ 5G 상용화와 더불어 안정적인 서비스 제공을 통해 커다란 시장이 형성될 수 있다.&lt;br /&gt;
&lt;br /&gt;
 2) 월등한 EOS의 초당 트랜잭션 처리 수로 인한 게임 처리 속도의 향상&lt;br /&gt;
  ◇ 쾌적한 게임 플레이 가능&lt;br /&gt;
&lt;br /&gt;
 3) 국내에서 인기 있는 게임 위주 서비스 제공&lt;br /&gt;
  ◇ 기존의 클라우드 게이밍 플랫폼에서 제공되는 게임들은 해외에서 인기있는 게임 위주였기 때문 에 국내 게이 &lt;br /&gt;
 머들의 관심을 끌기 어려웠다.&lt;br /&gt;
  ◇ 국내에서 인기 있는 게임 위주로 서비스를 제공하여 국내 게이머들의 관심도 증가&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
&lt;br /&gt;
◇ 분산형 컴퓨팅을 통한 안정적인 서비스 제공&lt;br /&gt;
&lt;br /&gt;
◇ 저사양 플랫폼에서 고사양 게임 가능&lt;br /&gt;
&lt;br /&gt;
◇ 이더리움보다 월등한 EOS의 초당 트랜잭션 처리 수가 게임 처리 속도의 향상을 제공&lt;br /&gt;
&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
&lt;br /&gt;
◇ 새로운 기술 보급을 통한 시장 흐름 변화&lt;br /&gt;
&lt;br /&gt;
◇ 개인의 소비 패턴 변화(기존 : 하드웨어 성능 중시 → 서비스 제공이후 : 클라우드 서비스 중시)&lt;br /&gt;
&lt;br /&gt;
◇ 생소했던 클라우드 게이밍에 국내 인지도 상승&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
◇ 먼저 AWS 서비스를 기반으로 Node.js 웹 서버를 구축한 후, Ejs/CSS 등을 이용하여 간단하고 기본적인 페이지 라우팅 구조(Back-End), UI/UX(Front- End) 등을 구축해놓는다.&lt;br /&gt;
&lt;br /&gt;
◇ 그 다음, EOS.IO기반 로컬 체인을 구축하고, 웹 서버와 연동한 뒤 사용자 회원가입/지불 시스템 등의 로직을 Smart Contract로 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ Smart Contract 구현에 성공하면, 실 게임 구동 서버-클라이언트 간 기본적인 실시간 스트리밍 서비스를 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ 실시간 스트리밍 서비스 구현에 성공하면, Smart Contract로 사용자 - 게임 구동 서버 매칭 로직을 구현하고, 스트리밍 시 전송되는 비디오/오디오 데이터를 EOS.IO Storage 기반으로 저장하는 방식으로 EOS.IO 위에 올려서 스트리밍 서비스를 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ 마지막으로 세부적인 기능들을 구현한 뒤 UI/UX를 다듬고 테스트한다.&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
가. 개발 일정&lt;br /&gt;
&lt;br /&gt;
3월 : 기존 EOS 기술 및 클라우드 시스템 분석 &lt;br /&gt;
&lt;br /&gt;
분산형 클라우드 시스템 설계 및 구현 &lt;br /&gt;
&lt;br /&gt;
4월 : 게임 스트리밍 서비스 설계 및 구현&lt;br /&gt;
&lt;br /&gt;
5월 : 매칭 시스템 설계 및 구현&lt;br /&gt;
&lt;br /&gt;
6월 : 전체 시스템 테스트 및 검토&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
나. 구성원 및 추진체계&lt;br /&gt;
&lt;br /&gt;
◇김용준: 분산형 클라우드 시스템, 매칭 시스템 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇노기선: 분산형 클라우드 시스템, 게임 스트리밍 서비스 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇ 임종범: 기존 시스템 분석, 게임 스트리밍 서비스 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇ 장원석: 기존 시스템 분석, 매칭 시스템 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
1. 기능적 요구사항&lt;br /&gt;
&lt;br /&gt;
◇1) 사용자가 보유한 토큰양을 불러와 서비스 사용 가능 시간을 산출해준다.&lt;br /&gt;
&lt;br /&gt;
◇2) 게임 별로 각각 다른 비용을 책정하여, 그에 맞게 사용 시간을 차감한다. (고사양일수록 비용 상승)&lt;br /&gt;
&lt;br /&gt;
◇3) 서비스 사용 시작부터 종료시 까지, 사용자가 플레이 하는 게임의 영상을 스트리밍 서비스 형태로 제공한다.&lt;br /&gt;
&lt;br /&gt;
◇4) 키보드, 마우스 등 사용자가 게임 플레이를 위해 입력하는 입력 신호를 송/수신한다.&lt;br /&gt;
&lt;br /&gt;
◇5) 스피커, 스크린샷 등 사용자 컴퓨터에 출력되는 출력 신호를 송/수신한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. 비기능적 요구사항&lt;br /&gt;
&lt;br /&gt;
◇1) EOS와 AWS를 이용한 SmartContract 환경을 조성한다.&lt;br /&gt;
&lt;br /&gt;
◇2) IPFS를 이용하여 영상 스트리밍은 최소 30FPS에서 최대 60FPS까지 서비스 할수 있도록 한다.&lt;br /&gt;
&lt;br /&gt;
◇3) 게임 플레이 시 입/출력 신호의 딜레이 최소화는 아주 중요하다. 이 딜레이는 반드시 짧아야한다.&lt;br /&gt;
&lt;br /&gt;
◇4) 블록에는 게임 이용시간, 사용한 토큰 수, 플레이한 게임의 종류 등을 포함한다.&lt;br /&gt;
&lt;br /&gt;
====설계 사양====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
◇ 웹 플랫폼 기반으로 구축함으로써 다양한 기기(데스크탑, 모바일 기기 등)에서 접근하기가 용이하다.&lt;br /&gt;
&lt;br /&gt;
- 언제 어디서든 기기만 있으면 원하는 게임 실행 가능한 환경 구축&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
&lt;br /&gt;
- 고사양이 필요한 게임도 지원하여 하드웨어의 장벽 완화&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 실시간 게임 플레이 영상 및 입출력 조작 신호 송/수신(스트리밍)&lt;br /&gt;
&lt;br /&gt;
- IPFS 시스템을 이용해 빠른 속도의 오디오/비디오 데이터 전송&lt;br /&gt;
&lt;br /&gt;
- 기존의 실시간 스트리밍 방식에 비해 빠르고, 안전하고, 개방적임&lt;br /&gt;
&lt;br /&gt;
- 실시간 스트리밍 서비스에서 가장 중요한 요소인 지연 시간(Latency) 개선 가능&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ EOS 기반의 DApp으로 안정성 및 보안성, 가격 경쟁력 확보&lt;br /&gt;
&lt;br /&gt;
- EOS는 타 블록체인 기반의 DApp(이더리움 등)에 비해 많은 트랜잭션 처리가 가능하도록 설계되어 있어 안정적이고, 그 외 수많은 장점 덕에 점점 사용률이 높아지는 DApp 플랫폼이다.&lt;br /&gt;
&lt;br /&gt;
- 트랜잭션 당 사용료(Gas)를 내야 하는 이더리움(Ethereum)에 비해, EOS는 DApp 사용 시에 요금을 낼 필요가 없어 사용자 입장에서 경제적이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 블록체인에 정보를 기록함으로써 토큰 거래 정보의 위변조를 방지, 신뢰성을 보장한다.&lt;br /&gt;
&lt;br /&gt;
- 컴퓨팅 파워 제공자/게이머, 게임 플레이 관련 정보를 블록체인에 기록한다&lt;br /&gt;
&lt;br /&gt;
- 컴퓨팅 파워 제공자와 게이머의 매칭은 스마트 컨트랙트로 수행된다&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Adaptive HTTP Protocol을 활용하여 쾌적한 스트리밍 환경을 제공한다.&lt;br /&gt;
&lt;br /&gt;
- 동영상 콘텐츠를 다양한 해상도로 인코딩하고 여러 데이터 조각으로 나누어 저장한다.&lt;br /&gt;
&lt;br /&gt;
- 네트워크 상황에 따라 실시간으로 적절한 해상도를 가진 영상 데이터 조각들이 다운로드 되어 버퍼링 없는 스트리밍 환경을 제공한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
1 CLIENT : 웹 페이지를 통해 DApp에 접근하도록 구성, Node.js 기반 웹 Back-End, Front-End 구현(자체 구현)&lt;br /&gt;
&lt;br /&gt;
2 EOS.IO 기반 DApp : 오픈소스 소프트웨어인 EOS.IO를 기반으로 게이밍 플랫폼 DApp 개발(오픈소스 기반 구현)&lt;br /&gt;
&lt;br /&gt;
3 Smart Contract : 사용자(CLIENT)와의 이용권 - 요금 지불 시스템 및 요금을 지불한 사용자를 대상으로 게임을 구동할 수 있는 서버(SERVER)와 매칭 시스템 구현(자체 구현)&lt;br /&gt;
&lt;br /&gt;
4 IPFS File Storage : EOS.IO 내부에 IPFS 방식으로 설계되어 있는 EOS.IO Storage를 기반으로 구현(오픈소스기반 구현)&lt;br /&gt;
&lt;br /&gt;
5 Server : 게임을 실제 구동하는 서버, 구동 중 실시간으로 출력된 오디오/비디오 데이터를 캡처하여 오픈소스 소 프트웨어인 ffmpeg을 이용하여 인코딩 후, DApp 내부 IPFS File Storage에 업로드하고 사용자(CLIENT) 단말기에 서 받아 화면에 출력하는 방식으로 구현. 서버에 전달된 게이머의 입력신호는 서버에서 구동되는 게임의 입력으로 처리되도록 구현. (오픈소스 기반 구현)&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
없음&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
없음&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
 ◇ 웹 플랫폼 기반으로 구축&lt;br /&gt;
 장점 : 다양한 기기에서 실행 가능&lt;br /&gt;
 단점 : 따로 설정해 두지 않으면 웹 페이지 방문이 번거로울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
 장점 : 게이머의 선택의 폭이 넓어짐&lt;br /&gt;
 단점 : 상대적으로 관심이 적은 게임에 약간의 낭비된 비용이 생길 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 실시간 게임 플레이 영상 및 입출력 조작 신호 송/수신(스트리밍)&lt;br /&gt;
 장점 : WebRTC를 이용해 빠르고 안전하고 개방적임&lt;br /&gt;
 단점 : 다소 구현이 어려울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 기반의 DApp으로 안정성 및 보안성, 가격 경쟁력 확보&lt;br /&gt;
 장점 : 안정적이고, 경제적임&lt;br /&gt;
 단점 : EOS 기반 구현이 다소 어려울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 블록체인에 정보를 기록함으로써 토큰 거래 정보의 위변조를 방지, 신뢰성을 보장&lt;br /&gt;
 장점 : 보안적으로 뛰어남&lt;br /&gt;
 단점 : 블록생성만으로 자원을 많이 쓰기때문에 자원 낭비가 심함&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임목록창에서 게임선택시 바로 게임 어플리케이션이 실행될 수 있도록 상세구현&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임플레이 화면에서 클라이언트측 마우스와 게임서버측 마우스의 위치가 일치할 수 있는 방안 &lt;br /&gt;
    모색 -&amp;gt; 실제 게임플레이시 전체화면 모드로 실행 되도록&lt;br /&gt;
&lt;br /&gt;
 ◇ 웹페이지에서 회원설정 정보 확인 및 변경 기능을 추가 구현&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임플레이시 EOS 계정에 저장된 토큰을 활용한 게임 비용 지불 서비스 개발&lt;br /&gt;
&lt;br /&gt;
 ◇ 안드로이드/IOS 등 다양한 하드웨어에서도 원활히 서비스가 제공될 수 있는 방안 모색&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=KOS%EC%A1%B0&amp;diff=1511</id>
		<title>KOS조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=KOS%EC%A1%B0&amp;diff=1511"/>
				<updated>2019-06-20T15:27:18Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 특허 출원 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' EOS기반 분산형 클라우드 게이밍 플랫폼 개발&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' Development of distributed cloud gaming platform based on EOS&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
KOS&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
김성환 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 김*준&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 노*선&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 임*범&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 장*석&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
게임 산업 규모는 매 년 커져감에 반해 하드웨어의 보급의 속도는 그렇지 못한 편이다. 이에 블록 체인 기술과 함께 분산형 클라우드 게이밍 플랫폼 서비스를 제공, 사용자(게이머)로 하여금 다양 한 플랫폼에서 고사양의 게임을 플레이 할 수 있도록 도와주는 것이 주된 개발 과제이다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
 ◇ EOS Block Chain을 활용한 분산형 클라우드 게이밍 DApp(Decentralized Application)&lt;br /&gt;
&lt;br /&gt;
 ◇ 저사양 PC를 소유한 게이머가 고사양 게임을 플레이 할 수 있는 Platform&lt;br /&gt;
&lt;br /&gt;
 ◇ 트랜잭션 처리 시 수수료가 필요 없는 EOS를 이용한 경제적인 서비스&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS의 월등한 트랙잭션 처리 속도로 인한 빠른 게임 플레이 환경 제공&lt;br /&gt;
&lt;br /&gt;
 ◇ 웹 플랫폼 기반 클라우드 게이밍 플랫폼 &lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
  ◇ 비디오, 음악 및 기타 서비스에 이어 게임 역시 클라우드로 전환하고 있다. 게이머들에게 클라우드 게임은 개인의 게임 하드웨어를 소유하는 것보다 10배 저렴하고, 공유 경제원리를 활용하고 있다.&lt;br /&gt;
     GPU, 인터넷 및 낮은 지연 스트리밍 개발을 통해, 개인 게임 하드웨어의 수요가 감소하고있다. 실제로 차세대 콘솔은 하드웨어를 기반으로하는 마지막 콘솔이 될 것이다 &lt;br /&gt;
    &lt;br /&gt;
 ◇ 게임을 클라우드 기술로 전환시키는 것은 피할 수 없다. Steam 플레이어의 70%는 GTA V와 같은 AAA 타이틀을 고해상도로 플레이 할 수 없으며, 플레이어의 30%는 PC에서 그런 게임을 실행하는 것 조차 할 수 없다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 클라우드 게임의 수요는 앞으로도 증가할 것이다. 최신 세대의 하드웨어에 대한 수요와 자원 집약적 VR 기술에 의한 게임이 발전함에 따라 가정용 하드웨어를 더 비싼 가격으로 만들고 이는 일반적인 게이머에게 비현실적인 가격이 될 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 업계 1인자들의 예상으로는 게임산업의 미래는 스트리밍이다. 해당 과제의 미션은 탈중앙화의 초기 단계에서 클라우드 게임의 가능성을 보는 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 분산형 클라우드 게이밍 플랫폼 개발을 통한 향상된 스트리밍 서비스 제공한다 따라서 기존의 클라우드 게이밍 플랫폼과 비교하여 스트리밍 지연속도가 감소할 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 기존 시장에서 사용되던 이더리움 기반이 아닌 EOS 기반 플랫폼을 개발하여 이더리움보다 월등한 EOS의 초당 트랜잭션 처리 수가 게임의 처리 속도의 향상을 제공할 것이다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
 ◇ Web-RTC를 활용한 화면공유 및 원격제어&lt;br /&gt;
&lt;br /&gt;
 ◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 토큰 거래를 통한 게임 플레이&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 기반의 DApp개발로 다양한 경쟁력 확보&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
&lt;br /&gt;
◇ 3세대 블록체인 후보 이오스(EOS) &lt;br /&gt;
&lt;br /&gt;
1) EOS란? &lt;br /&gt;
&lt;br /&gt;
① 프로젝트로서의 EOS&lt;br /&gt;
 • EOS는 블록체인 프로젝트로서, 최초의 블록체인 OS(First Blockchain Operating System)을 표방함. 즉, EOS는 DApp을 개발하고 구동하기 위한 플랫폼을 개발하는 프로젝트라 할 수 있음&lt;br /&gt;
 ※ ( DApp 이란? ) 탈중앙화 어플리케이션(Decentralized Application)의 약자. 데이터의 흐름, 저장, 로직이 탈중앙화 되어 있어서 중앙화된 어플리케이션의 대표적인 문제점인 운영자의 탈선, 해킹으로 인한 데이터 위변조, 개인 정보 유출, 서버 다운 등의 문제가 일어날 가능성을 극도로 낮춰줌&lt;br /&gt;
&lt;br /&gt;
 • DApp의 한계&lt;br /&gt;
 근간이 되는 블록체인의 성능 자체가 대부분 중앙화 서버대비 떨어지기 때문에 스케일링이 어렵고사용자들이 트랜잭션을 일으킬 때마다 비용을 지불해야함. 또, 중앙화된 서버에서의 개발 방식과는전혀 다르기 때문에, 해킹에 취약해지거나 퍼포먼스가 떨어지는 문제가 있을 수 있음&lt;br /&gt;
&lt;br /&gt;
 • EOS는 이러한 한계를 극복하기 위한 프로젝트라고 할 수 있음.&lt;br /&gt;
&lt;br /&gt;
 • 고성능을 요구하는 상용 서비스(거래소, 소셜미디어 등)가 가능한 수준의 스케일링이 가능&lt;br /&gt;
&lt;br /&gt;
 • 사용자들이 플랫폼을 사용할 때마다 지불해야 되는 비용(가스)가 없음&lt;br /&gt;
&lt;br /&gt;
② 소프트웨어로서의 EOS&lt;br /&gt;
 • Block.one이 개발중인 EOS.IO를 의미함&lt;br /&gt;
&lt;br /&gt;
③ 토큰으로서의 EOS&lt;br /&gt;
 • ERC20 : 이더리움 블록체인 상에 그 수량과 교환방식 등이 정의된 토큰&lt;br /&gt;
 • EOS21이라는 프로토콜을 통해 EOS기반의 토큰으로 전환할 수 있게 됨&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) EOS의 BP 시스템&lt;br /&gt;
① DPoS 방식의 EOS&lt;br /&gt;
&lt;br /&gt;
 • 대표자들은 전체적인 블록체인의 방향을 설정하고 블록 생성을 담당. 이러한 대표자를 블록프로듀서(Block Producer,BP)라고 부름&lt;br /&gt;
&lt;br /&gt;
② EOS DPoS의 대표자, BP의 역할과 보상&lt;br /&gt;
 • EOS BP의 역할&lt;br /&gt;
 1. EOS 메인 블록체인의 지원&lt;br /&gt;
     - 개발자, 플랫폼 커뮤니티 지원&lt;br /&gt;
     - 이오스 관련 콘텐츠 배급 등&lt;br /&gt;
 2. 이오스 메인 블록체인의 운영&lt;br /&gt;
     - 매 라운드 ( 126초 ) 동안 0.5초당 1개 블록 생성&lt;br /&gt;
&lt;br /&gt;
 • EOS BP의 혜택&lt;br /&gt;
     1. 1년 동안 EOS 발행량의 1%를 보상으로 받음&lt;br /&gt;
     2. 총 보상의 25%는 상위 21명 BP, 나머지 75%는 상위BP와 백업BP를 포함한 모든 BP가 투표율에 따라 &lt;br /&gt;
         받음&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) 스마트 컨트랙트&lt;br /&gt;
&lt;br /&gt;
① Contract를 구현하고, 강제하고, 실행시켜주는 code&lt;br /&gt;
&lt;br /&gt;
 • 믿지않는 사용자간의 areement+coordination&lt;br /&gt;
 • 블록체인에 복잡한 기능을 제공&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
② Smart contract의 안전성?&lt;br /&gt;
&lt;br /&gt;
 • Token economy - Decentralized governance구조와 Incentive mechanism으로 정의&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) 2세대 블록체인 이더리움(ETHEREUM)과 이오스(EOS)&lt;br /&gt;
&lt;br /&gt;
5) 나날이 증가하는 EOS 플랫폼 상의 DApp 수&lt;br /&gt;
&lt;br /&gt;
 • 해가갈수록 급격한 증가폭을 보여줌&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6) 다양한 장르의 EOS 플랫폼 상 DApp&lt;br /&gt;
&lt;br /&gt;
 • 게임, 도박, 부동산, 지갑, 소셜 등 다양한 장르의 플랫폼 상의 DApp 존재&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7) EOS.IO가 제공하는 기능&lt;br /&gt;
&lt;br /&gt;
 • 무료 평가판 제한 거래&lt;br /&gt;
 • 낮은 대기 시간 블록 확인(0.5초)&lt;br /&gt;
 • 오버 헤드가 낮은 비잔틴 오류 내성 결말&lt;br /&gt;
 • 선택적으로 높은 오버 헤드, 낮은 대기 시간의 BFT 최종기증&lt;br /&gt;
 • 웹 어셈블리를 기반으로 하는 스마트 계약 플랫폼&lt;br /&gt;
 • 스파스 헤더 라이트 클라이언트 검증용으로 설계&lt;br /&gt;
 • 정기 반복 트랜잭션&lt;br /&gt;
 • 시간 지연 보안&lt;br /&gt;
 • 계층적 역할 기반 권한&lt;br /&gt;
 • 생체 인식 하드웨어 보안 키 지원&lt;br /&gt;
 • 문맥 무효 검증 논리의 병렬 실행&lt;br /&gt;
 • 블록 체인 간 통신&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
나. 기술 로드맵&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
① 블록체인 기반 기술&lt;br /&gt;
 • 고성능 저비용 합의 기술&lt;br /&gt;
 • 스마트 계약 검증 기술&lt;br /&gt;
&lt;br /&gt;
② 블록체인 확장 기술&lt;br /&gt;
 • 대용량 데이터 처리 기술, 외부 데이터 연동 기술&lt;br /&gt;
 • 대규모 서비스 제공을 위한 확장성 확보 기술&lt;br /&gt;
&lt;br /&gt;
③ 블록체인 서비스 기술&lt;br /&gt;
 • 거래 추적 및 분석 기술&lt;br /&gt;
 • 산업 분야별 기존 시스템 연동 기술&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
다. 특허조사&lt;br /&gt;
&lt;br /&gt;
 ◇ 최근 비트코인 등 암호 화폐에 대한 관심이 증가함에 따라, 그 기술적 기반인 블록체인 관련 특허출원도 전 세계적으로 폭발적 증가 추세인 것으로 나타났다. 특허청(청장 성윤모)에 따르면, 지식재산 선진 5개국(IP4, 한국•미국•일본•중국•유럽)에 출원되어 조사 시점(‘18년 1월말 기준)까지 공개된 블록체인 관련 전 세계 특허 출원은 모두 1,248건으로 나타났다 특허 출원의 양은 많지 않으나, ’09년 블록체인이 최초 구현된 이래, ‘13년 27건에서 매년 2~3배 증가’해 ‘15년에는 257건, ’16년에는 594건(미공개건 제외)에 이르는 것으로 조사됐다. 출원인의 국적별로 살펴보면, 누적건수로는 미국이 1위로 집계되었지만, ‘16년 이후 중국이 연간 특허출원 건수에서 미국을 제치고 1위로 올라섰다. 조만간 누적건수에서도 중국이 1위를 차지할 것으로 예측된다.&lt;br /&gt;
&lt;br /&gt;
 ◇ G2(미국, 중국)로의 편중 현상도 심해, 미국과 중국이 전체 특허 출원의 대부분(78%)을 점유했으며, 3, 4위를 차지한 우리나라와 일본의 점유율은 8%, 3%에 불과했다. 한편, 특허출원의 질적 수준을 나타내는 간접지표인, 해외출원 비율에서는 미국이 중국을 제치고 압두적인 선두를 지켰다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 주체별로는, 전 세계 블록체인 특허출원 중 81%를 기업이 주도하고 있고, 미국은 은행 등 금융기업에 의한 특허출원도 활발한 편이다. 한편 우리나라는 대기업보다 벤처기업 등의 중소기업 비중(66.7%)이 매우 높은 특징을 보였으며, 금융기업에 의한 특허출원은 아직까진 없는 것으로 조사(‘18.1월말 조사 시점까지 공개된 특허출원 기준)되었다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 블록체인의 기본 개념은 이미 Open Source로 공개되어 누구도 특허를 갖지 못하는 자유 기술이다. 따라서 특허출원은 주로 보안, 운용, 활용 등 주변 기술을 중심으로 이뤄지고 있다. 특히, 블록체인이 암호 화폐에서 물류•의료•공공 서비스 등으로 활용 범위가 점차 확대됨에 따라 특허출원도 덩달아 활용 분야를 중심으로 증가할 것으로 전망된다.&lt;br /&gt;
&lt;br /&gt;
 ◇ KB금융그룹의 ‘블록체인을 활용한 모바일 앱 보안 솔루션 관련 기술특허’는 서비스 부문과 보안부분을 분리해 보안부문의 암호화키를 블록체인망에 보관해 안정성을 높였다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 골드만삭스의 ‘세틀코인(SETLcoin)’은 주식, 채권 등 실시간 거래뿐만 아니라 거래내역도 블록체인의 분산원장에 적용하여 위, 변조가 불가능한 첨단 핀테크를 가능하게 한다. &lt;br /&gt;
&lt;br /&gt;
 ◇ 미국의 대형 은행인 BoA(뱅크 오브 아메리카)도 15건의 특허를 출원했고, 20건 정도의 추가 특허를 출원할 예정이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
라. 특허전략&lt;br /&gt;
&lt;br /&gt;
 특허에서 공개된 비즈니스 모델은 블록체인 업체의 비즈니스 모델과 유사한 부분이 존재한다. 개인정보를 제공하고, 개인정보에 따른 보상금을 지급하는 구조이다. 위의 특허는 기존 특허에 대한 하나의 예시이고, 개인정보에 따른 보상과 관련된 기술, 개인 데이터를 추적하는 기술은 다른 특허에도 많이 기술되어 있기 때문에 이러한 기존의 비즈니스 모델 특허와 블록체인 특허가 차별점을 가지기 위해서는 블록체인과 블록체인과 트랜잭션을 발생시키는 노드 간의 동작에 대한 구체화, 블록 상에서의 데이터 처리 등에 관련된 특징들이 반드시 필요하다.&lt;br /&gt;
&lt;br /&gt;
 예를 들어, 블록체인에 올라간 스마트 콘트랙트를 기반으로 수집된 개인 정보가 블록체인과는 어떠한 관계를 가지고 처리되는지, 개인 정보의 거래는 블록체인 상에서 어떻게 수행되는지 보상은 블록체인 상에서 어떻게 발생되는지&lt;br /&gt;
위와 같은 블록체인, 블록과 연관된 구체적인 트랜잭션들이 블록체인 특허에 도시되고 기술되어야한다. 이러한 특징이 있다면, 블록체인 특허가 기존 특허와 차별화를 가질 수 있고 등록 가능성도 높아지게 됩니다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
가. 경쟁제품 조사 비교&lt;br /&gt;
◇ PlayKey&lt;br /&gt;
    &lt;br /&gt;
    - P2P와 블록체인 기술 기반의 게이머를 위한 세계 최초의 탈중앙화 클라우드 게이밍 플랫폼&lt;br /&gt;
    - 고성능의 컴퓨터를 가진 전세계 수십명의 독립적인 소유자가 커뮤니티 내에 결속하여 클라우드 게임 서비스 업체(채굴자)로 활동&lt;br /&gt;
    - 시스템 내 유일한 보편적인 에코 시스템 암호화폐 -PKT 토큰- 이 ICO를 통해 발급됨&lt;br /&gt;
    - 채굴자-게이머의 스마트 컨트랙트 형태로 구성되어 클라우드 게임 서비스의 높은 통합 수준을&lt;br /&gt;
      제공&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Google STADIA&lt;br /&gt;
  &lt;br /&gt;
 -  중앙집권형 클라우드 게이밍 플랫폼&lt;br /&gt;
 -  유튜브 기반이기 때문에 유튜브 재생만 가능하다면 저사양 PC든 스마트폰이든 태블릿 PC든 실시간 스트리밍 &lt;br /&gt;
을 통해 FHD 60프레임으로 게임 플레이 가능&lt;br /&gt;
 - 웹 브라우저에서 바로 실행되며 클릭 한/두 번으로 게임 플레이 가능&lt;br /&gt;
&lt;br /&gt;
나. 마케팅 전략&lt;br /&gt;
 1) EOS블록체인 기반 서비스를 제공함으로써&lt;br /&gt;
  ◇ 채굴자는 개인으로서 경제적이득(가상화폐)을 얻을 기회가 생긴다.&lt;br /&gt;
  ◇ 채굴자는 시장 활성화가 커져갈수록, 같은 서비스 제공으로 더 많은 이득을 얻을 수 있다.&lt;br /&gt;
  ◇ 사용자(게이머)는 저성능의 컴퓨터를 소유하고 있더라도, 약간의 이용료를 지불하여 고사양의 게임을 최고의 &lt;br /&gt;
 퀄리티로 즐길 수 있다.&lt;br /&gt;
  ◇ 사용자(게이머)는 기존 클라우드 게이밍 서비스보다도 훨씬 더 저렴한 가격으로 이용할 수 있다.&lt;br /&gt;
  ◇ 5G 상용화와 더불어 안정적인 서비스 제공을 통해 커다란 시장이 형성될 수 있다.&lt;br /&gt;
&lt;br /&gt;
 2) 월등한 EOS의 초당 트랜잭션 처리 수로 인한 게임 처리 속도의 향상&lt;br /&gt;
  ◇ 쾌적한 게임 플레이 가능&lt;br /&gt;
&lt;br /&gt;
 3) 국내에서 인기 있는 게임 위주 서비스 제공&lt;br /&gt;
  ◇ 기존의 클라우드 게이밍 플랫폼에서 제공되는 게임들은 해외에서 인기있는 게임 위주였기 때문 에 국내 게이 &lt;br /&gt;
 머들의 관심을 끌기 어려웠다.&lt;br /&gt;
  ◇ 국내에서 인기 있는 게임 위주로 서비스를 제공하여 국내 게이머들의 관심도 증가&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
&lt;br /&gt;
◇ 분산형 컴퓨팅을 통한 안정적인 서비스 제공&lt;br /&gt;
&lt;br /&gt;
◇ 저사양 플랫폼에서 고사양 게임 가능&lt;br /&gt;
&lt;br /&gt;
◇ 이더리움보다 월등한 EOS의 초당 트랜잭션 처리 수가 게임 처리 속도의 향상을 제공&lt;br /&gt;
&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
&lt;br /&gt;
◇ 새로운 기술 보급을 통한 시장 흐름 변화&lt;br /&gt;
&lt;br /&gt;
◇ 개인의 소비 패턴 변화(기존 : 하드웨어 성능 중시 → 서비스 제공이후 : 클라우드 서비스 중시)&lt;br /&gt;
&lt;br /&gt;
◇ 생소했던 클라우드 게이밍에 국내 인지도 상승&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
◇ 먼저 AWS 서비스를 기반으로 Node.js 웹 서버를 구축한 후, Ejs/CSS 등을 이용하여 간단하고 기본적인 페이지 라우팅 구조(Back-End), UI/UX(Front- End) 등을 구축해놓는다.&lt;br /&gt;
&lt;br /&gt;
◇ 그 다음, EOS.IO기반 로컬 체인을 구축하고, 웹 서버와 연동한 뒤 사용자 회원가입/지불 시스템 등의 로직을 Smart Contract로 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ Smart Contract 구현에 성공하면, 실 게임 구동 서버-클라이언트 간 기본적인 실시간 스트리밍 서비스를 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ 실시간 스트리밍 서비스 구현에 성공하면, Smart Contract로 사용자 - 게임 구동 서버 매칭 로직을 구현하고, 스트리밍 시 전송되는 비디오/오디오 데이터를 EOS.IO Storage 기반으로 저장하는 방식으로 EOS.IO 위에 올려서 스트리밍 서비스를 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ 마지막으로 세부적인 기능들을 구현한 뒤 UI/UX를 다듬고 테스트한다.&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
가. 개발 일정&lt;br /&gt;
&lt;br /&gt;
3월 : 기존 EOS 기술 및 클라우드 시스템 분석 &lt;br /&gt;
&lt;br /&gt;
분산형 클라우드 시스템 설계 및 구현 &lt;br /&gt;
&lt;br /&gt;
4월 : 게임 스트리밍 서비스 설계 및 구현&lt;br /&gt;
&lt;br /&gt;
5월 : 매칭 시스템 설계 및 구현&lt;br /&gt;
&lt;br /&gt;
6월 : 전체 시스템 테스트 및 검토&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
나. 구성원 및 추진체계&lt;br /&gt;
&lt;br /&gt;
◇김용준: 분산형 클라우드 시스템, 매칭 시스템 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇노기선: 분산형 클라우드 시스템, 게임 스트리밍 서비스 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇ 임종범: 기존 시스템 분석, 게임 스트리밍 서비스 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇ 장원석: 기존 시스템 분석, 매칭 시스템 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
1. 기능적 요구사항&lt;br /&gt;
&lt;br /&gt;
◇1) 사용자가 보유한 토큰양을 불러와 서비스 사용 가능 시간을 산출해준다.&lt;br /&gt;
&lt;br /&gt;
◇2) 게임 별로 각각 다른 비용을 책정하여, 그에 맞게 사용 시간을 차감한다. (고사양일수록 비용 상승)&lt;br /&gt;
&lt;br /&gt;
◇3) 서비스 사용 시작부터 종료시 까지, 사용자가 플레이 하는 게임의 영상을 스트리밍 서비스 형태로 제공한다.&lt;br /&gt;
&lt;br /&gt;
◇4) 키보드, 마우스 등 사용자가 게임 플레이를 위해 입력하는 입력 신호를 송/수신한다.&lt;br /&gt;
&lt;br /&gt;
◇5) 스피커, 스크린샷 등 사용자 컴퓨터에 출력되는 출력 신호를 송/수신한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. 비기능적 요구사항&lt;br /&gt;
&lt;br /&gt;
◇1) EOS와 AWS를 이용한 SmartContract 환경을 조성한다.&lt;br /&gt;
&lt;br /&gt;
◇2) IPFS를 이용하여 영상 스트리밍은 최소 30FPS에서 최대 60FPS까지 서비스 할수 있도록 한다.&lt;br /&gt;
&lt;br /&gt;
◇3) 게임 플레이 시 입/출력 신호의 딜레이 최소화는 아주 중요하다. 이 딜레이는 반드시 짧아야한다.&lt;br /&gt;
&lt;br /&gt;
◇4) 블록에는 게임 이용시간, 사용한 토큰 수, 플레이한 게임의 종류 등을 포함한다.&lt;br /&gt;
&lt;br /&gt;
====설계 사양====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
◇ 웹 플랫폼 기반으로 구축함으로써 다양한 기기(데스크탑, 모바일 기기 등)에서 접근하기가 용이하다.&lt;br /&gt;
&lt;br /&gt;
- 언제 어디서든 기기만 있으면 원하는 게임 실행 가능한 환경 구축&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
&lt;br /&gt;
- 고사양이 필요한 게임도 지원하여 하드웨어의 장벽 완화&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 실시간 게임 플레이 영상 및 입출력 조작 신호 송/수신(스트리밍)&lt;br /&gt;
&lt;br /&gt;
- IPFS 시스템을 이용해 빠른 속도의 오디오/비디오 데이터 전송&lt;br /&gt;
&lt;br /&gt;
- 기존의 실시간 스트리밍 방식에 비해 빠르고, 안전하고, 개방적임&lt;br /&gt;
&lt;br /&gt;
- 실시간 스트리밍 서비스에서 가장 중요한 요소인 지연 시간(Latency) 개선 가능&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ EOS 기반의 DApp으로 안정성 및 보안성, 가격 경쟁력 확보&lt;br /&gt;
&lt;br /&gt;
- EOS는 타 블록체인 기반의 DApp(이더리움 등)에 비해 많은 트랜잭션 처리가 가능하도록 설계되어 있어 안정적이고, 그 외 수많은 장점 덕에 점점 사용률이 높아지는 DApp 플랫폼이다.&lt;br /&gt;
&lt;br /&gt;
- 트랜잭션 당 사용료(Gas)를 내야 하는 이더리움(Ethereum)에 비해, EOS는 DApp 사용 시에 요금을 낼 필요가 없어 사용자 입장에서 경제적이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 블록체인에 정보를 기록함으로써 토큰 거래 정보의 위변조를 방지, 신뢰성을 보장한다.&lt;br /&gt;
&lt;br /&gt;
- 컴퓨팅 파워 제공자/게이머, 게임 플레이 관련 정보를 블록체인에 기록한다&lt;br /&gt;
&lt;br /&gt;
- 컴퓨팅 파워 제공자와 게이머의 매칭은 스마트 컨트랙트로 수행된다&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Adaptive HTTP Protocol을 활용하여 쾌적한 스트리밍 환경을 제공한다.&lt;br /&gt;
&lt;br /&gt;
- 동영상 콘텐츠를 다양한 해상도로 인코딩하고 여러 데이터 조각으로 나누어 저장한다.&lt;br /&gt;
&lt;br /&gt;
- 네트워크 상황에 따라 실시간으로 적절한 해상도를 가진 영상 데이터 조각들이 다운로드 되어 버퍼링 없는 스트리밍 환경을 제공한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
1 CLIENT : 웹 페이지를 통해 DApp에 접근하도록 구성, Node.js 기반 웹 Back-End, Front-End 구현(자체 구현)&lt;br /&gt;
&lt;br /&gt;
2 EOS.IO 기반 DApp : 오픈소스 소프트웨어인 EOS.IO를 기반으로 게이밍 플랫폼 DApp 개발(오픈소스 기반 구현)&lt;br /&gt;
&lt;br /&gt;
3 Smart Contract : 사용자(CLIENT)와의 이용권 - 요금 지불 시스템 및 요금을 지불한 사용자를 대상으로 게임을 구동할 수 있는 서버(SERVER)와 매칭 시스템 구현(자체 구현)&lt;br /&gt;
&lt;br /&gt;
4 IPFS File Storage : EOS.IO 내부에 IPFS 방식으로 설계되어 있는 EOS.IO Storage를 기반으로 구현(오픈소스기반 구현)&lt;br /&gt;
&lt;br /&gt;
5 Server : 게임을 실제 구동하는 서버, 구동 중 실시간으로 출력된 오디오/비디오 데이터를 캡처하여 오픈소스 소 프트웨어인 ffmpeg을 이용하여 인코딩 후, DApp 내부 IPFS File Storage에 업로드하고 사용자(CLIENT) 단말기에 서 받아 화면에 출력하는 방식으로 구현. 서버에 전달된 게이머의 입력신호는 서버에서 구동되는 게임의 입력으로 처리되도록 구현. (오픈소스 기반 구현)&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
없음&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
없음&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
 ◇ 웹 플랫폼 기반으로 구축&lt;br /&gt;
 장점 : 다양한 기기에서 실행 가능&lt;br /&gt;
 단점 : 따로 설정해 두지 않으면 웹 페이지 방문이 번거로울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
 장점 : 게이머의 선택의 폭이 넓어짐&lt;br /&gt;
 단점 : 상대적으로 관심이 적은 게임에 약간의 낭비된 비용이 생길 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 실시간 게임 플레이 영상 및 입출력 조작 신호 송/수신(스트리밍)&lt;br /&gt;
 장점 : WebRTC를 이용해 빠르고 안전하고 개방적임&lt;br /&gt;
 단점 : 다소 구현이 어려울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 기반의 DApp으로 안정성 및 보안성, 가격 경쟁력 확보&lt;br /&gt;
 장점 : 안정적이고, 경제적임&lt;br /&gt;
 단점 : EOS 기반 구현이 다소 어려울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 블록체인에 정보를 기록함으로써 토큰 거래 정보의 위변조를 방지, 신뢰성을 보장&lt;br /&gt;
 장점 : 보안적으로 뛰어남&lt;br /&gt;
 단점 : 블록생성만으로 자원을 많이 쓰기때문에 자원 낭비가 심함&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임목록창에서 게임선택시 바로 게임 어플리케이션이 실행될 수 있도록 상세구현&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임플레이 화면에서 클라이언트측 마우스와 게임서버측 마우스의 위치가 일치할 수 있는 방안 &lt;br /&gt;
    모색 -&amp;gt; 실제 게임플레이시 전체화면 모드로 실행 되도록&lt;br /&gt;
&lt;br /&gt;
 ◇ 웹페이지에서 회원설정 정보 확인 및 변경 기능을 추가 구현&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임플레이시 EOS 계정에 저장된 토큰을 활용한 게임 비용 지불 서비스 개발&lt;br /&gt;
&lt;br /&gt;
 ◇ 안드로이드/IOS 등 다양한 하드웨어에서도 원활히 서비스가 제공될 수 있는 방안 모색&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
없음&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=KOS%EC%A1%B0&amp;diff=1510</id>
		<title>KOS조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=KOS%EC%A1%B0&amp;diff=1510"/>
				<updated>2019-06-20T15:27:10Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 포스터 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' EOS기반 분산형 클라우드 게이밍 플랫폼 개발&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' Development of distributed cloud gaming platform based on EOS&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
KOS&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
김성환 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 김*준&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 노*선&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 임*범&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 장*석&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
게임 산업 규모는 매 년 커져감에 반해 하드웨어의 보급의 속도는 그렇지 못한 편이다. 이에 블록 체인 기술과 함께 분산형 클라우드 게이밍 플랫폼 서비스를 제공, 사용자(게이머)로 하여금 다양 한 플랫폼에서 고사양의 게임을 플레이 할 수 있도록 도와주는 것이 주된 개발 과제이다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
 ◇ EOS Block Chain을 활용한 분산형 클라우드 게이밍 DApp(Decentralized Application)&lt;br /&gt;
&lt;br /&gt;
 ◇ 저사양 PC를 소유한 게이머가 고사양 게임을 플레이 할 수 있는 Platform&lt;br /&gt;
&lt;br /&gt;
 ◇ 트랜잭션 처리 시 수수료가 필요 없는 EOS를 이용한 경제적인 서비스&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS의 월등한 트랙잭션 처리 속도로 인한 빠른 게임 플레이 환경 제공&lt;br /&gt;
&lt;br /&gt;
 ◇ 웹 플랫폼 기반 클라우드 게이밍 플랫폼 &lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
  ◇ 비디오, 음악 및 기타 서비스에 이어 게임 역시 클라우드로 전환하고 있다. 게이머들에게 클라우드 게임은 개인의 게임 하드웨어를 소유하는 것보다 10배 저렴하고, 공유 경제원리를 활용하고 있다.&lt;br /&gt;
     GPU, 인터넷 및 낮은 지연 스트리밍 개발을 통해, 개인 게임 하드웨어의 수요가 감소하고있다. 실제로 차세대 콘솔은 하드웨어를 기반으로하는 마지막 콘솔이 될 것이다 &lt;br /&gt;
    &lt;br /&gt;
 ◇ 게임을 클라우드 기술로 전환시키는 것은 피할 수 없다. Steam 플레이어의 70%는 GTA V와 같은 AAA 타이틀을 고해상도로 플레이 할 수 없으며, 플레이어의 30%는 PC에서 그런 게임을 실행하는 것 조차 할 수 없다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 클라우드 게임의 수요는 앞으로도 증가할 것이다. 최신 세대의 하드웨어에 대한 수요와 자원 집약적 VR 기술에 의한 게임이 발전함에 따라 가정용 하드웨어를 더 비싼 가격으로 만들고 이는 일반적인 게이머에게 비현실적인 가격이 될 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 업계 1인자들의 예상으로는 게임산업의 미래는 스트리밍이다. 해당 과제의 미션은 탈중앙화의 초기 단계에서 클라우드 게임의 가능성을 보는 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 분산형 클라우드 게이밍 플랫폼 개발을 통한 향상된 스트리밍 서비스 제공한다 따라서 기존의 클라우드 게이밍 플랫폼과 비교하여 스트리밍 지연속도가 감소할 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 기존 시장에서 사용되던 이더리움 기반이 아닌 EOS 기반 플랫폼을 개발하여 이더리움보다 월등한 EOS의 초당 트랜잭션 처리 수가 게임의 처리 속도의 향상을 제공할 것이다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
 ◇ Web-RTC를 활용한 화면공유 및 원격제어&lt;br /&gt;
&lt;br /&gt;
 ◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 토큰 거래를 통한 게임 플레이&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 기반의 DApp개발로 다양한 경쟁력 확보&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
&lt;br /&gt;
◇ 3세대 블록체인 후보 이오스(EOS) &lt;br /&gt;
&lt;br /&gt;
1) EOS란? &lt;br /&gt;
&lt;br /&gt;
① 프로젝트로서의 EOS&lt;br /&gt;
 • EOS는 블록체인 프로젝트로서, 최초의 블록체인 OS(First Blockchain Operating System)을 표방함. 즉, EOS는 DApp을 개발하고 구동하기 위한 플랫폼을 개발하는 프로젝트라 할 수 있음&lt;br /&gt;
 ※ ( DApp 이란? ) 탈중앙화 어플리케이션(Decentralized Application)의 약자. 데이터의 흐름, 저장, 로직이 탈중앙화 되어 있어서 중앙화된 어플리케이션의 대표적인 문제점인 운영자의 탈선, 해킹으로 인한 데이터 위변조, 개인 정보 유출, 서버 다운 등의 문제가 일어날 가능성을 극도로 낮춰줌&lt;br /&gt;
&lt;br /&gt;
 • DApp의 한계&lt;br /&gt;
 근간이 되는 블록체인의 성능 자체가 대부분 중앙화 서버대비 떨어지기 때문에 스케일링이 어렵고사용자들이 트랜잭션을 일으킬 때마다 비용을 지불해야함. 또, 중앙화된 서버에서의 개발 방식과는전혀 다르기 때문에, 해킹에 취약해지거나 퍼포먼스가 떨어지는 문제가 있을 수 있음&lt;br /&gt;
&lt;br /&gt;
 • EOS는 이러한 한계를 극복하기 위한 프로젝트라고 할 수 있음.&lt;br /&gt;
&lt;br /&gt;
 • 고성능을 요구하는 상용 서비스(거래소, 소셜미디어 등)가 가능한 수준의 스케일링이 가능&lt;br /&gt;
&lt;br /&gt;
 • 사용자들이 플랫폼을 사용할 때마다 지불해야 되는 비용(가스)가 없음&lt;br /&gt;
&lt;br /&gt;
② 소프트웨어로서의 EOS&lt;br /&gt;
 • Block.one이 개발중인 EOS.IO를 의미함&lt;br /&gt;
&lt;br /&gt;
③ 토큰으로서의 EOS&lt;br /&gt;
 • ERC20 : 이더리움 블록체인 상에 그 수량과 교환방식 등이 정의된 토큰&lt;br /&gt;
 • EOS21이라는 프로토콜을 통해 EOS기반의 토큰으로 전환할 수 있게 됨&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) EOS의 BP 시스템&lt;br /&gt;
① DPoS 방식의 EOS&lt;br /&gt;
&lt;br /&gt;
 • 대표자들은 전체적인 블록체인의 방향을 설정하고 블록 생성을 담당. 이러한 대표자를 블록프로듀서(Block Producer,BP)라고 부름&lt;br /&gt;
&lt;br /&gt;
② EOS DPoS의 대표자, BP의 역할과 보상&lt;br /&gt;
 • EOS BP의 역할&lt;br /&gt;
 1. EOS 메인 블록체인의 지원&lt;br /&gt;
     - 개발자, 플랫폼 커뮤니티 지원&lt;br /&gt;
     - 이오스 관련 콘텐츠 배급 등&lt;br /&gt;
 2. 이오스 메인 블록체인의 운영&lt;br /&gt;
     - 매 라운드 ( 126초 ) 동안 0.5초당 1개 블록 생성&lt;br /&gt;
&lt;br /&gt;
 • EOS BP의 혜택&lt;br /&gt;
     1. 1년 동안 EOS 발행량의 1%를 보상으로 받음&lt;br /&gt;
     2. 총 보상의 25%는 상위 21명 BP, 나머지 75%는 상위BP와 백업BP를 포함한 모든 BP가 투표율에 따라 &lt;br /&gt;
         받음&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) 스마트 컨트랙트&lt;br /&gt;
&lt;br /&gt;
① Contract를 구현하고, 강제하고, 실행시켜주는 code&lt;br /&gt;
&lt;br /&gt;
 • 믿지않는 사용자간의 areement+coordination&lt;br /&gt;
 • 블록체인에 복잡한 기능을 제공&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
② Smart contract의 안전성?&lt;br /&gt;
&lt;br /&gt;
 • Token economy - Decentralized governance구조와 Incentive mechanism으로 정의&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) 2세대 블록체인 이더리움(ETHEREUM)과 이오스(EOS)&lt;br /&gt;
&lt;br /&gt;
5) 나날이 증가하는 EOS 플랫폼 상의 DApp 수&lt;br /&gt;
&lt;br /&gt;
 • 해가갈수록 급격한 증가폭을 보여줌&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6) 다양한 장르의 EOS 플랫폼 상 DApp&lt;br /&gt;
&lt;br /&gt;
 • 게임, 도박, 부동산, 지갑, 소셜 등 다양한 장르의 플랫폼 상의 DApp 존재&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7) EOS.IO가 제공하는 기능&lt;br /&gt;
&lt;br /&gt;
 • 무료 평가판 제한 거래&lt;br /&gt;
 • 낮은 대기 시간 블록 확인(0.5초)&lt;br /&gt;
 • 오버 헤드가 낮은 비잔틴 오류 내성 결말&lt;br /&gt;
 • 선택적으로 높은 오버 헤드, 낮은 대기 시간의 BFT 최종기증&lt;br /&gt;
 • 웹 어셈블리를 기반으로 하는 스마트 계약 플랫폼&lt;br /&gt;
 • 스파스 헤더 라이트 클라이언트 검증용으로 설계&lt;br /&gt;
 • 정기 반복 트랜잭션&lt;br /&gt;
 • 시간 지연 보안&lt;br /&gt;
 • 계층적 역할 기반 권한&lt;br /&gt;
 • 생체 인식 하드웨어 보안 키 지원&lt;br /&gt;
 • 문맥 무효 검증 논리의 병렬 실행&lt;br /&gt;
 • 블록 체인 간 통신&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
나. 기술 로드맵&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
① 블록체인 기반 기술&lt;br /&gt;
 • 고성능 저비용 합의 기술&lt;br /&gt;
 • 스마트 계약 검증 기술&lt;br /&gt;
&lt;br /&gt;
② 블록체인 확장 기술&lt;br /&gt;
 • 대용량 데이터 처리 기술, 외부 데이터 연동 기술&lt;br /&gt;
 • 대규모 서비스 제공을 위한 확장성 확보 기술&lt;br /&gt;
&lt;br /&gt;
③ 블록체인 서비스 기술&lt;br /&gt;
 • 거래 추적 및 분석 기술&lt;br /&gt;
 • 산업 분야별 기존 시스템 연동 기술&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
다. 특허조사&lt;br /&gt;
&lt;br /&gt;
 ◇ 최근 비트코인 등 암호 화폐에 대한 관심이 증가함에 따라, 그 기술적 기반인 블록체인 관련 특허출원도 전 세계적으로 폭발적 증가 추세인 것으로 나타났다. 특허청(청장 성윤모)에 따르면, 지식재산 선진 5개국(IP4, 한국•미국•일본•중국•유럽)에 출원되어 조사 시점(‘18년 1월말 기준)까지 공개된 블록체인 관련 전 세계 특허 출원은 모두 1,248건으로 나타났다 특허 출원의 양은 많지 않으나, ’09년 블록체인이 최초 구현된 이래, ‘13년 27건에서 매년 2~3배 증가’해 ‘15년에는 257건, ’16년에는 594건(미공개건 제외)에 이르는 것으로 조사됐다. 출원인의 국적별로 살펴보면, 누적건수로는 미국이 1위로 집계되었지만, ‘16년 이후 중국이 연간 특허출원 건수에서 미국을 제치고 1위로 올라섰다. 조만간 누적건수에서도 중국이 1위를 차지할 것으로 예측된다.&lt;br /&gt;
&lt;br /&gt;
 ◇ G2(미국, 중국)로의 편중 현상도 심해, 미국과 중국이 전체 특허 출원의 대부분(78%)을 점유했으며, 3, 4위를 차지한 우리나라와 일본의 점유율은 8%, 3%에 불과했다. 한편, 특허출원의 질적 수준을 나타내는 간접지표인, 해외출원 비율에서는 미국이 중국을 제치고 압두적인 선두를 지켰다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 주체별로는, 전 세계 블록체인 특허출원 중 81%를 기업이 주도하고 있고, 미국은 은행 등 금융기업에 의한 특허출원도 활발한 편이다. 한편 우리나라는 대기업보다 벤처기업 등의 중소기업 비중(66.7%)이 매우 높은 특징을 보였으며, 금융기업에 의한 특허출원은 아직까진 없는 것으로 조사(‘18.1월말 조사 시점까지 공개된 특허출원 기준)되었다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 블록체인의 기본 개념은 이미 Open Source로 공개되어 누구도 특허를 갖지 못하는 자유 기술이다. 따라서 특허출원은 주로 보안, 운용, 활용 등 주변 기술을 중심으로 이뤄지고 있다. 특히, 블록체인이 암호 화폐에서 물류•의료•공공 서비스 등으로 활용 범위가 점차 확대됨에 따라 특허출원도 덩달아 활용 분야를 중심으로 증가할 것으로 전망된다.&lt;br /&gt;
&lt;br /&gt;
 ◇ KB금융그룹의 ‘블록체인을 활용한 모바일 앱 보안 솔루션 관련 기술특허’는 서비스 부문과 보안부분을 분리해 보안부문의 암호화키를 블록체인망에 보관해 안정성을 높였다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 골드만삭스의 ‘세틀코인(SETLcoin)’은 주식, 채권 등 실시간 거래뿐만 아니라 거래내역도 블록체인의 분산원장에 적용하여 위, 변조가 불가능한 첨단 핀테크를 가능하게 한다. &lt;br /&gt;
&lt;br /&gt;
 ◇ 미국의 대형 은행인 BoA(뱅크 오브 아메리카)도 15건의 특허를 출원했고, 20건 정도의 추가 특허를 출원할 예정이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
라. 특허전략&lt;br /&gt;
&lt;br /&gt;
 특허에서 공개된 비즈니스 모델은 블록체인 업체의 비즈니스 모델과 유사한 부분이 존재한다. 개인정보를 제공하고, 개인정보에 따른 보상금을 지급하는 구조이다. 위의 특허는 기존 특허에 대한 하나의 예시이고, 개인정보에 따른 보상과 관련된 기술, 개인 데이터를 추적하는 기술은 다른 특허에도 많이 기술되어 있기 때문에 이러한 기존의 비즈니스 모델 특허와 블록체인 특허가 차별점을 가지기 위해서는 블록체인과 블록체인과 트랜잭션을 발생시키는 노드 간의 동작에 대한 구체화, 블록 상에서의 데이터 처리 등에 관련된 특징들이 반드시 필요하다.&lt;br /&gt;
&lt;br /&gt;
 예를 들어, 블록체인에 올라간 스마트 콘트랙트를 기반으로 수집된 개인 정보가 블록체인과는 어떠한 관계를 가지고 처리되는지, 개인 정보의 거래는 블록체인 상에서 어떻게 수행되는지 보상은 블록체인 상에서 어떻게 발생되는지&lt;br /&gt;
위와 같은 블록체인, 블록과 연관된 구체적인 트랜잭션들이 블록체인 특허에 도시되고 기술되어야한다. 이러한 특징이 있다면, 블록체인 특허가 기존 특허와 차별화를 가질 수 있고 등록 가능성도 높아지게 됩니다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
가. 경쟁제품 조사 비교&lt;br /&gt;
◇ PlayKey&lt;br /&gt;
    &lt;br /&gt;
    - P2P와 블록체인 기술 기반의 게이머를 위한 세계 최초의 탈중앙화 클라우드 게이밍 플랫폼&lt;br /&gt;
    - 고성능의 컴퓨터를 가진 전세계 수십명의 독립적인 소유자가 커뮤니티 내에 결속하여 클라우드 게임 서비스 업체(채굴자)로 활동&lt;br /&gt;
    - 시스템 내 유일한 보편적인 에코 시스템 암호화폐 -PKT 토큰- 이 ICO를 통해 발급됨&lt;br /&gt;
    - 채굴자-게이머의 스마트 컨트랙트 형태로 구성되어 클라우드 게임 서비스의 높은 통합 수준을&lt;br /&gt;
      제공&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Google STADIA&lt;br /&gt;
  &lt;br /&gt;
 -  중앙집권형 클라우드 게이밍 플랫폼&lt;br /&gt;
 -  유튜브 기반이기 때문에 유튜브 재생만 가능하다면 저사양 PC든 스마트폰이든 태블릿 PC든 실시간 스트리밍 &lt;br /&gt;
을 통해 FHD 60프레임으로 게임 플레이 가능&lt;br /&gt;
 - 웹 브라우저에서 바로 실행되며 클릭 한/두 번으로 게임 플레이 가능&lt;br /&gt;
&lt;br /&gt;
나. 마케팅 전략&lt;br /&gt;
 1) EOS블록체인 기반 서비스를 제공함으로써&lt;br /&gt;
  ◇ 채굴자는 개인으로서 경제적이득(가상화폐)을 얻을 기회가 생긴다.&lt;br /&gt;
  ◇ 채굴자는 시장 활성화가 커져갈수록, 같은 서비스 제공으로 더 많은 이득을 얻을 수 있다.&lt;br /&gt;
  ◇ 사용자(게이머)는 저성능의 컴퓨터를 소유하고 있더라도, 약간의 이용료를 지불하여 고사양의 게임을 최고의 &lt;br /&gt;
 퀄리티로 즐길 수 있다.&lt;br /&gt;
  ◇ 사용자(게이머)는 기존 클라우드 게이밍 서비스보다도 훨씬 더 저렴한 가격으로 이용할 수 있다.&lt;br /&gt;
  ◇ 5G 상용화와 더불어 안정적인 서비스 제공을 통해 커다란 시장이 형성될 수 있다.&lt;br /&gt;
&lt;br /&gt;
 2) 월등한 EOS의 초당 트랜잭션 처리 수로 인한 게임 처리 속도의 향상&lt;br /&gt;
  ◇ 쾌적한 게임 플레이 가능&lt;br /&gt;
&lt;br /&gt;
 3) 국내에서 인기 있는 게임 위주 서비스 제공&lt;br /&gt;
  ◇ 기존의 클라우드 게이밍 플랫폼에서 제공되는 게임들은 해외에서 인기있는 게임 위주였기 때문 에 국내 게이 &lt;br /&gt;
 머들의 관심을 끌기 어려웠다.&lt;br /&gt;
  ◇ 국내에서 인기 있는 게임 위주로 서비스를 제공하여 국내 게이머들의 관심도 증가&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
&lt;br /&gt;
◇ 분산형 컴퓨팅을 통한 안정적인 서비스 제공&lt;br /&gt;
&lt;br /&gt;
◇ 저사양 플랫폼에서 고사양 게임 가능&lt;br /&gt;
&lt;br /&gt;
◇ 이더리움보다 월등한 EOS의 초당 트랜잭션 처리 수가 게임 처리 속도의 향상을 제공&lt;br /&gt;
&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
&lt;br /&gt;
◇ 새로운 기술 보급을 통한 시장 흐름 변화&lt;br /&gt;
&lt;br /&gt;
◇ 개인의 소비 패턴 변화(기존 : 하드웨어 성능 중시 → 서비스 제공이후 : 클라우드 서비스 중시)&lt;br /&gt;
&lt;br /&gt;
◇ 생소했던 클라우드 게이밍에 국내 인지도 상승&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
◇ 먼저 AWS 서비스를 기반으로 Node.js 웹 서버를 구축한 후, Ejs/CSS 등을 이용하여 간단하고 기본적인 페이지 라우팅 구조(Back-End), UI/UX(Front- End) 등을 구축해놓는다.&lt;br /&gt;
&lt;br /&gt;
◇ 그 다음, EOS.IO기반 로컬 체인을 구축하고, 웹 서버와 연동한 뒤 사용자 회원가입/지불 시스템 등의 로직을 Smart Contract로 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ Smart Contract 구현에 성공하면, 실 게임 구동 서버-클라이언트 간 기본적인 실시간 스트리밍 서비스를 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ 실시간 스트리밍 서비스 구현에 성공하면, Smart Contract로 사용자 - 게임 구동 서버 매칭 로직을 구현하고, 스트리밍 시 전송되는 비디오/오디오 데이터를 EOS.IO Storage 기반으로 저장하는 방식으로 EOS.IO 위에 올려서 스트리밍 서비스를 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ 마지막으로 세부적인 기능들을 구현한 뒤 UI/UX를 다듬고 테스트한다.&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
가. 개발 일정&lt;br /&gt;
&lt;br /&gt;
3월 : 기존 EOS 기술 및 클라우드 시스템 분석 &lt;br /&gt;
&lt;br /&gt;
분산형 클라우드 시스템 설계 및 구현 &lt;br /&gt;
&lt;br /&gt;
4월 : 게임 스트리밍 서비스 설계 및 구현&lt;br /&gt;
&lt;br /&gt;
5월 : 매칭 시스템 설계 및 구현&lt;br /&gt;
&lt;br /&gt;
6월 : 전체 시스템 테스트 및 검토&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
나. 구성원 및 추진체계&lt;br /&gt;
&lt;br /&gt;
◇김용준: 분산형 클라우드 시스템, 매칭 시스템 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇노기선: 분산형 클라우드 시스템, 게임 스트리밍 서비스 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇ 임종범: 기존 시스템 분석, 게임 스트리밍 서비스 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇ 장원석: 기존 시스템 분석, 매칭 시스템 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
1. 기능적 요구사항&lt;br /&gt;
&lt;br /&gt;
◇1) 사용자가 보유한 토큰양을 불러와 서비스 사용 가능 시간을 산출해준다.&lt;br /&gt;
&lt;br /&gt;
◇2) 게임 별로 각각 다른 비용을 책정하여, 그에 맞게 사용 시간을 차감한다. (고사양일수록 비용 상승)&lt;br /&gt;
&lt;br /&gt;
◇3) 서비스 사용 시작부터 종료시 까지, 사용자가 플레이 하는 게임의 영상을 스트리밍 서비스 형태로 제공한다.&lt;br /&gt;
&lt;br /&gt;
◇4) 키보드, 마우스 등 사용자가 게임 플레이를 위해 입력하는 입력 신호를 송/수신한다.&lt;br /&gt;
&lt;br /&gt;
◇5) 스피커, 스크린샷 등 사용자 컴퓨터에 출력되는 출력 신호를 송/수신한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. 비기능적 요구사항&lt;br /&gt;
&lt;br /&gt;
◇1) EOS와 AWS를 이용한 SmartContract 환경을 조성한다.&lt;br /&gt;
&lt;br /&gt;
◇2) IPFS를 이용하여 영상 스트리밍은 최소 30FPS에서 최대 60FPS까지 서비스 할수 있도록 한다.&lt;br /&gt;
&lt;br /&gt;
◇3) 게임 플레이 시 입/출력 신호의 딜레이 최소화는 아주 중요하다. 이 딜레이는 반드시 짧아야한다.&lt;br /&gt;
&lt;br /&gt;
◇4) 블록에는 게임 이용시간, 사용한 토큰 수, 플레이한 게임의 종류 등을 포함한다.&lt;br /&gt;
&lt;br /&gt;
====설계 사양====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
◇ 웹 플랫폼 기반으로 구축함으로써 다양한 기기(데스크탑, 모바일 기기 등)에서 접근하기가 용이하다.&lt;br /&gt;
&lt;br /&gt;
- 언제 어디서든 기기만 있으면 원하는 게임 실행 가능한 환경 구축&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
&lt;br /&gt;
- 고사양이 필요한 게임도 지원하여 하드웨어의 장벽 완화&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 실시간 게임 플레이 영상 및 입출력 조작 신호 송/수신(스트리밍)&lt;br /&gt;
&lt;br /&gt;
- IPFS 시스템을 이용해 빠른 속도의 오디오/비디오 데이터 전송&lt;br /&gt;
&lt;br /&gt;
- 기존의 실시간 스트리밍 방식에 비해 빠르고, 안전하고, 개방적임&lt;br /&gt;
&lt;br /&gt;
- 실시간 스트리밍 서비스에서 가장 중요한 요소인 지연 시간(Latency) 개선 가능&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ EOS 기반의 DApp으로 안정성 및 보안성, 가격 경쟁력 확보&lt;br /&gt;
&lt;br /&gt;
- EOS는 타 블록체인 기반의 DApp(이더리움 등)에 비해 많은 트랜잭션 처리가 가능하도록 설계되어 있어 안정적이고, 그 외 수많은 장점 덕에 점점 사용률이 높아지는 DApp 플랫폼이다.&lt;br /&gt;
&lt;br /&gt;
- 트랜잭션 당 사용료(Gas)를 내야 하는 이더리움(Ethereum)에 비해, EOS는 DApp 사용 시에 요금을 낼 필요가 없어 사용자 입장에서 경제적이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 블록체인에 정보를 기록함으로써 토큰 거래 정보의 위변조를 방지, 신뢰성을 보장한다.&lt;br /&gt;
&lt;br /&gt;
- 컴퓨팅 파워 제공자/게이머, 게임 플레이 관련 정보를 블록체인에 기록한다&lt;br /&gt;
&lt;br /&gt;
- 컴퓨팅 파워 제공자와 게이머의 매칭은 스마트 컨트랙트로 수행된다&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Adaptive HTTP Protocol을 활용하여 쾌적한 스트리밍 환경을 제공한다.&lt;br /&gt;
&lt;br /&gt;
- 동영상 콘텐츠를 다양한 해상도로 인코딩하고 여러 데이터 조각으로 나누어 저장한다.&lt;br /&gt;
&lt;br /&gt;
- 네트워크 상황에 따라 실시간으로 적절한 해상도를 가진 영상 데이터 조각들이 다운로드 되어 버퍼링 없는 스트리밍 환경을 제공한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
1 CLIENT : 웹 페이지를 통해 DApp에 접근하도록 구성, Node.js 기반 웹 Back-End, Front-End 구현(자체 구현)&lt;br /&gt;
&lt;br /&gt;
2 EOS.IO 기반 DApp : 오픈소스 소프트웨어인 EOS.IO를 기반으로 게이밍 플랫폼 DApp 개발(오픈소스 기반 구현)&lt;br /&gt;
&lt;br /&gt;
3 Smart Contract : 사용자(CLIENT)와의 이용권 - 요금 지불 시스템 및 요금을 지불한 사용자를 대상으로 게임을 구동할 수 있는 서버(SERVER)와 매칭 시스템 구현(자체 구현)&lt;br /&gt;
&lt;br /&gt;
4 IPFS File Storage : EOS.IO 내부에 IPFS 방식으로 설계되어 있는 EOS.IO Storage를 기반으로 구현(오픈소스기반 구현)&lt;br /&gt;
&lt;br /&gt;
5 Server : 게임을 실제 구동하는 서버, 구동 중 실시간으로 출력된 오디오/비디오 데이터를 캡처하여 오픈소스 소 프트웨어인 ffmpeg을 이용하여 인코딩 후, DApp 내부 IPFS File Storage에 업로드하고 사용자(CLIENT) 단말기에 서 받아 화면에 출력하는 방식으로 구현. 서버에 전달된 게이머의 입력신호는 서버에서 구동되는 게임의 입력으로 처리되도록 구현. (오픈소스 기반 구현)&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
없음&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
없음&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
 ◇ 웹 플랫폼 기반으로 구축&lt;br /&gt;
 장점 : 다양한 기기에서 실행 가능&lt;br /&gt;
 단점 : 따로 설정해 두지 않으면 웹 페이지 방문이 번거로울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
 장점 : 게이머의 선택의 폭이 넓어짐&lt;br /&gt;
 단점 : 상대적으로 관심이 적은 게임에 약간의 낭비된 비용이 생길 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 실시간 게임 플레이 영상 및 입출력 조작 신호 송/수신(스트리밍)&lt;br /&gt;
 장점 : WebRTC를 이용해 빠르고 안전하고 개방적임&lt;br /&gt;
 단점 : 다소 구현이 어려울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 기반의 DApp으로 안정성 및 보안성, 가격 경쟁력 확보&lt;br /&gt;
 장점 : 안정적이고, 경제적임&lt;br /&gt;
 단점 : EOS 기반 구현이 다소 어려울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 블록체인에 정보를 기록함으로써 토큰 거래 정보의 위변조를 방지, 신뢰성을 보장&lt;br /&gt;
 장점 : 보안적으로 뛰어남&lt;br /&gt;
 단점 : 블록생성만으로 자원을 많이 쓰기때문에 자원 낭비가 심함&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임목록창에서 게임선택시 바로 게임 어플리케이션이 실행될 수 있도록 상세구현&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임플레이 화면에서 클라이언트측 마우스와 게임서버측 마우스의 위치가 일치할 수 있는 방안 &lt;br /&gt;
    모색 -&amp;gt; 실제 게임플레이시 전체화면 모드로 실행 되도록&lt;br /&gt;
&lt;br /&gt;
 ◇ 웹페이지에서 회원설정 정보 확인 및 변경 기능을 추가 구현&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임플레이시 EOS 계정에 저장된 토큰을 활용한 게임 비용 지불 서비스 개발&lt;br /&gt;
&lt;br /&gt;
 ◇ 안드로이드/IOS 등 다양한 하드웨어에서도 원활히 서비스가 제공될 수 있는 방안 모색&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=KOS%EC%A1%B0&amp;diff=1509</id>
		<title>KOS조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=KOS%EC%A1%B0&amp;diff=1509"/>
				<updated>2019-06-20T15:27:05Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 관련사업비 내역서 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' EOS기반 분산형 클라우드 게이밍 플랫폼 개발&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' Development of distributed cloud gaming platform based on EOS&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
KOS&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
김성환 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 김*준&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 노*선&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 임*범&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 장*석&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
게임 산업 규모는 매 년 커져감에 반해 하드웨어의 보급의 속도는 그렇지 못한 편이다. 이에 블록 체인 기술과 함께 분산형 클라우드 게이밍 플랫폼 서비스를 제공, 사용자(게이머)로 하여금 다양 한 플랫폼에서 고사양의 게임을 플레이 할 수 있도록 도와주는 것이 주된 개발 과제이다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
 ◇ EOS Block Chain을 활용한 분산형 클라우드 게이밍 DApp(Decentralized Application)&lt;br /&gt;
&lt;br /&gt;
 ◇ 저사양 PC를 소유한 게이머가 고사양 게임을 플레이 할 수 있는 Platform&lt;br /&gt;
&lt;br /&gt;
 ◇ 트랜잭션 처리 시 수수료가 필요 없는 EOS를 이용한 경제적인 서비스&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS의 월등한 트랙잭션 처리 속도로 인한 빠른 게임 플레이 환경 제공&lt;br /&gt;
&lt;br /&gt;
 ◇ 웹 플랫폼 기반 클라우드 게이밍 플랫폼 &lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
  ◇ 비디오, 음악 및 기타 서비스에 이어 게임 역시 클라우드로 전환하고 있다. 게이머들에게 클라우드 게임은 개인의 게임 하드웨어를 소유하는 것보다 10배 저렴하고, 공유 경제원리를 활용하고 있다.&lt;br /&gt;
     GPU, 인터넷 및 낮은 지연 스트리밍 개발을 통해, 개인 게임 하드웨어의 수요가 감소하고있다. 실제로 차세대 콘솔은 하드웨어를 기반으로하는 마지막 콘솔이 될 것이다 &lt;br /&gt;
    &lt;br /&gt;
 ◇ 게임을 클라우드 기술로 전환시키는 것은 피할 수 없다. Steam 플레이어의 70%는 GTA V와 같은 AAA 타이틀을 고해상도로 플레이 할 수 없으며, 플레이어의 30%는 PC에서 그런 게임을 실행하는 것 조차 할 수 없다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 클라우드 게임의 수요는 앞으로도 증가할 것이다. 최신 세대의 하드웨어에 대한 수요와 자원 집약적 VR 기술에 의한 게임이 발전함에 따라 가정용 하드웨어를 더 비싼 가격으로 만들고 이는 일반적인 게이머에게 비현실적인 가격이 될 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 업계 1인자들의 예상으로는 게임산업의 미래는 스트리밍이다. 해당 과제의 미션은 탈중앙화의 초기 단계에서 클라우드 게임의 가능성을 보는 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 분산형 클라우드 게이밍 플랫폼 개발을 통한 향상된 스트리밍 서비스 제공한다 따라서 기존의 클라우드 게이밍 플랫폼과 비교하여 스트리밍 지연속도가 감소할 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 기존 시장에서 사용되던 이더리움 기반이 아닌 EOS 기반 플랫폼을 개발하여 이더리움보다 월등한 EOS의 초당 트랜잭션 처리 수가 게임의 처리 속도의 향상을 제공할 것이다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
 ◇ Web-RTC를 활용한 화면공유 및 원격제어&lt;br /&gt;
&lt;br /&gt;
 ◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 토큰 거래를 통한 게임 플레이&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 기반의 DApp개발로 다양한 경쟁력 확보&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
&lt;br /&gt;
◇ 3세대 블록체인 후보 이오스(EOS) &lt;br /&gt;
&lt;br /&gt;
1) EOS란? &lt;br /&gt;
&lt;br /&gt;
① 프로젝트로서의 EOS&lt;br /&gt;
 • EOS는 블록체인 프로젝트로서, 최초의 블록체인 OS(First Blockchain Operating System)을 표방함. 즉, EOS는 DApp을 개발하고 구동하기 위한 플랫폼을 개발하는 프로젝트라 할 수 있음&lt;br /&gt;
 ※ ( DApp 이란? ) 탈중앙화 어플리케이션(Decentralized Application)의 약자. 데이터의 흐름, 저장, 로직이 탈중앙화 되어 있어서 중앙화된 어플리케이션의 대표적인 문제점인 운영자의 탈선, 해킹으로 인한 데이터 위변조, 개인 정보 유출, 서버 다운 등의 문제가 일어날 가능성을 극도로 낮춰줌&lt;br /&gt;
&lt;br /&gt;
 • DApp의 한계&lt;br /&gt;
 근간이 되는 블록체인의 성능 자체가 대부분 중앙화 서버대비 떨어지기 때문에 스케일링이 어렵고사용자들이 트랜잭션을 일으킬 때마다 비용을 지불해야함. 또, 중앙화된 서버에서의 개발 방식과는전혀 다르기 때문에, 해킹에 취약해지거나 퍼포먼스가 떨어지는 문제가 있을 수 있음&lt;br /&gt;
&lt;br /&gt;
 • EOS는 이러한 한계를 극복하기 위한 프로젝트라고 할 수 있음.&lt;br /&gt;
&lt;br /&gt;
 • 고성능을 요구하는 상용 서비스(거래소, 소셜미디어 등)가 가능한 수준의 스케일링이 가능&lt;br /&gt;
&lt;br /&gt;
 • 사용자들이 플랫폼을 사용할 때마다 지불해야 되는 비용(가스)가 없음&lt;br /&gt;
&lt;br /&gt;
② 소프트웨어로서의 EOS&lt;br /&gt;
 • Block.one이 개발중인 EOS.IO를 의미함&lt;br /&gt;
&lt;br /&gt;
③ 토큰으로서의 EOS&lt;br /&gt;
 • ERC20 : 이더리움 블록체인 상에 그 수량과 교환방식 등이 정의된 토큰&lt;br /&gt;
 • EOS21이라는 프로토콜을 통해 EOS기반의 토큰으로 전환할 수 있게 됨&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) EOS의 BP 시스템&lt;br /&gt;
① DPoS 방식의 EOS&lt;br /&gt;
&lt;br /&gt;
 • 대표자들은 전체적인 블록체인의 방향을 설정하고 블록 생성을 담당. 이러한 대표자를 블록프로듀서(Block Producer,BP)라고 부름&lt;br /&gt;
&lt;br /&gt;
② EOS DPoS의 대표자, BP의 역할과 보상&lt;br /&gt;
 • EOS BP의 역할&lt;br /&gt;
 1. EOS 메인 블록체인의 지원&lt;br /&gt;
     - 개발자, 플랫폼 커뮤니티 지원&lt;br /&gt;
     - 이오스 관련 콘텐츠 배급 등&lt;br /&gt;
 2. 이오스 메인 블록체인의 운영&lt;br /&gt;
     - 매 라운드 ( 126초 ) 동안 0.5초당 1개 블록 생성&lt;br /&gt;
&lt;br /&gt;
 • EOS BP의 혜택&lt;br /&gt;
     1. 1년 동안 EOS 발행량의 1%를 보상으로 받음&lt;br /&gt;
     2. 총 보상의 25%는 상위 21명 BP, 나머지 75%는 상위BP와 백업BP를 포함한 모든 BP가 투표율에 따라 &lt;br /&gt;
         받음&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) 스마트 컨트랙트&lt;br /&gt;
&lt;br /&gt;
① Contract를 구현하고, 강제하고, 실행시켜주는 code&lt;br /&gt;
&lt;br /&gt;
 • 믿지않는 사용자간의 areement+coordination&lt;br /&gt;
 • 블록체인에 복잡한 기능을 제공&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
② Smart contract의 안전성?&lt;br /&gt;
&lt;br /&gt;
 • Token economy - Decentralized governance구조와 Incentive mechanism으로 정의&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) 2세대 블록체인 이더리움(ETHEREUM)과 이오스(EOS)&lt;br /&gt;
&lt;br /&gt;
5) 나날이 증가하는 EOS 플랫폼 상의 DApp 수&lt;br /&gt;
&lt;br /&gt;
 • 해가갈수록 급격한 증가폭을 보여줌&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6) 다양한 장르의 EOS 플랫폼 상 DApp&lt;br /&gt;
&lt;br /&gt;
 • 게임, 도박, 부동산, 지갑, 소셜 등 다양한 장르의 플랫폼 상의 DApp 존재&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7) EOS.IO가 제공하는 기능&lt;br /&gt;
&lt;br /&gt;
 • 무료 평가판 제한 거래&lt;br /&gt;
 • 낮은 대기 시간 블록 확인(0.5초)&lt;br /&gt;
 • 오버 헤드가 낮은 비잔틴 오류 내성 결말&lt;br /&gt;
 • 선택적으로 높은 오버 헤드, 낮은 대기 시간의 BFT 최종기증&lt;br /&gt;
 • 웹 어셈블리를 기반으로 하는 스마트 계약 플랫폼&lt;br /&gt;
 • 스파스 헤더 라이트 클라이언트 검증용으로 설계&lt;br /&gt;
 • 정기 반복 트랜잭션&lt;br /&gt;
 • 시간 지연 보안&lt;br /&gt;
 • 계층적 역할 기반 권한&lt;br /&gt;
 • 생체 인식 하드웨어 보안 키 지원&lt;br /&gt;
 • 문맥 무효 검증 논리의 병렬 실행&lt;br /&gt;
 • 블록 체인 간 통신&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
나. 기술 로드맵&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
① 블록체인 기반 기술&lt;br /&gt;
 • 고성능 저비용 합의 기술&lt;br /&gt;
 • 스마트 계약 검증 기술&lt;br /&gt;
&lt;br /&gt;
② 블록체인 확장 기술&lt;br /&gt;
 • 대용량 데이터 처리 기술, 외부 데이터 연동 기술&lt;br /&gt;
 • 대규모 서비스 제공을 위한 확장성 확보 기술&lt;br /&gt;
&lt;br /&gt;
③ 블록체인 서비스 기술&lt;br /&gt;
 • 거래 추적 및 분석 기술&lt;br /&gt;
 • 산업 분야별 기존 시스템 연동 기술&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
다. 특허조사&lt;br /&gt;
&lt;br /&gt;
 ◇ 최근 비트코인 등 암호 화폐에 대한 관심이 증가함에 따라, 그 기술적 기반인 블록체인 관련 특허출원도 전 세계적으로 폭발적 증가 추세인 것으로 나타났다. 특허청(청장 성윤모)에 따르면, 지식재산 선진 5개국(IP4, 한국•미국•일본•중국•유럽)에 출원되어 조사 시점(‘18년 1월말 기준)까지 공개된 블록체인 관련 전 세계 특허 출원은 모두 1,248건으로 나타났다 특허 출원의 양은 많지 않으나, ’09년 블록체인이 최초 구현된 이래, ‘13년 27건에서 매년 2~3배 증가’해 ‘15년에는 257건, ’16년에는 594건(미공개건 제외)에 이르는 것으로 조사됐다. 출원인의 국적별로 살펴보면, 누적건수로는 미국이 1위로 집계되었지만, ‘16년 이후 중국이 연간 특허출원 건수에서 미국을 제치고 1위로 올라섰다. 조만간 누적건수에서도 중국이 1위를 차지할 것으로 예측된다.&lt;br /&gt;
&lt;br /&gt;
 ◇ G2(미국, 중국)로의 편중 현상도 심해, 미국과 중국이 전체 특허 출원의 대부분(78%)을 점유했으며, 3, 4위를 차지한 우리나라와 일본의 점유율은 8%, 3%에 불과했다. 한편, 특허출원의 질적 수준을 나타내는 간접지표인, 해외출원 비율에서는 미국이 중국을 제치고 압두적인 선두를 지켰다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 주체별로는, 전 세계 블록체인 특허출원 중 81%를 기업이 주도하고 있고, 미국은 은행 등 금융기업에 의한 특허출원도 활발한 편이다. 한편 우리나라는 대기업보다 벤처기업 등의 중소기업 비중(66.7%)이 매우 높은 특징을 보였으며, 금융기업에 의한 특허출원은 아직까진 없는 것으로 조사(‘18.1월말 조사 시점까지 공개된 특허출원 기준)되었다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 블록체인의 기본 개념은 이미 Open Source로 공개되어 누구도 특허를 갖지 못하는 자유 기술이다. 따라서 특허출원은 주로 보안, 운용, 활용 등 주변 기술을 중심으로 이뤄지고 있다. 특히, 블록체인이 암호 화폐에서 물류•의료•공공 서비스 등으로 활용 범위가 점차 확대됨에 따라 특허출원도 덩달아 활용 분야를 중심으로 증가할 것으로 전망된다.&lt;br /&gt;
&lt;br /&gt;
 ◇ KB금융그룹의 ‘블록체인을 활용한 모바일 앱 보안 솔루션 관련 기술특허’는 서비스 부문과 보안부분을 분리해 보안부문의 암호화키를 블록체인망에 보관해 안정성을 높였다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 골드만삭스의 ‘세틀코인(SETLcoin)’은 주식, 채권 등 실시간 거래뿐만 아니라 거래내역도 블록체인의 분산원장에 적용하여 위, 변조가 불가능한 첨단 핀테크를 가능하게 한다. &lt;br /&gt;
&lt;br /&gt;
 ◇ 미국의 대형 은행인 BoA(뱅크 오브 아메리카)도 15건의 특허를 출원했고, 20건 정도의 추가 특허를 출원할 예정이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
라. 특허전략&lt;br /&gt;
&lt;br /&gt;
 특허에서 공개된 비즈니스 모델은 블록체인 업체의 비즈니스 모델과 유사한 부분이 존재한다. 개인정보를 제공하고, 개인정보에 따른 보상금을 지급하는 구조이다. 위의 특허는 기존 특허에 대한 하나의 예시이고, 개인정보에 따른 보상과 관련된 기술, 개인 데이터를 추적하는 기술은 다른 특허에도 많이 기술되어 있기 때문에 이러한 기존의 비즈니스 모델 특허와 블록체인 특허가 차별점을 가지기 위해서는 블록체인과 블록체인과 트랜잭션을 발생시키는 노드 간의 동작에 대한 구체화, 블록 상에서의 데이터 처리 등에 관련된 특징들이 반드시 필요하다.&lt;br /&gt;
&lt;br /&gt;
 예를 들어, 블록체인에 올라간 스마트 콘트랙트를 기반으로 수집된 개인 정보가 블록체인과는 어떠한 관계를 가지고 처리되는지, 개인 정보의 거래는 블록체인 상에서 어떻게 수행되는지 보상은 블록체인 상에서 어떻게 발생되는지&lt;br /&gt;
위와 같은 블록체인, 블록과 연관된 구체적인 트랜잭션들이 블록체인 특허에 도시되고 기술되어야한다. 이러한 특징이 있다면, 블록체인 특허가 기존 특허와 차별화를 가질 수 있고 등록 가능성도 높아지게 됩니다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
가. 경쟁제품 조사 비교&lt;br /&gt;
◇ PlayKey&lt;br /&gt;
    &lt;br /&gt;
    - P2P와 블록체인 기술 기반의 게이머를 위한 세계 최초의 탈중앙화 클라우드 게이밍 플랫폼&lt;br /&gt;
    - 고성능의 컴퓨터를 가진 전세계 수십명의 독립적인 소유자가 커뮤니티 내에 결속하여 클라우드 게임 서비스 업체(채굴자)로 활동&lt;br /&gt;
    - 시스템 내 유일한 보편적인 에코 시스템 암호화폐 -PKT 토큰- 이 ICO를 통해 발급됨&lt;br /&gt;
    - 채굴자-게이머의 스마트 컨트랙트 형태로 구성되어 클라우드 게임 서비스의 높은 통합 수준을&lt;br /&gt;
      제공&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Google STADIA&lt;br /&gt;
  &lt;br /&gt;
 -  중앙집권형 클라우드 게이밍 플랫폼&lt;br /&gt;
 -  유튜브 기반이기 때문에 유튜브 재생만 가능하다면 저사양 PC든 스마트폰이든 태블릿 PC든 실시간 스트리밍 &lt;br /&gt;
을 통해 FHD 60프레임으로 게임 플레이 가능&lt;br /&gt;
 - 웹 브라우저에서 바로 실행되며 클릭 한/두 번으로 게임 플레이 가능&lt;br /&gt;
&lt;br /&gt;
나. 마케팅 전략&lt;br /&gt;
 1) EOS블록체인 기반 서비스를 제공함으로써&lt;br /&gt;
  ◇ 채굴자는 개인으로서 경제적이득(가상화폐)을 얻을 기회가 생긴다.&lt;br /&gt;
  ◇ 채굴자는 시장 활성화가 커져갈수록, 같은 서비스 제공으로 더 많은 이득을 얻을 수 있다.&lt;br /&gt;
  ◇ 사용자(게이머)는 저성능의 컴퓨터를 소유하고 있더라도, 약간의 이용료를 지불하여 고사양의 게임을 최고의 &lt;br /&gt;
 퀄리티로 즐길 수 있다.&lt;br /&gt;
  ◇ 사용자(게이머)는 기존 클라우드 게이밍 서비스보다도 훨씬 더 저렴한 가격으로 이용할 수 있다.&lt;br /&gt;
  ◇ 5G 상용화와 더불어 안정적인 서비스 제공을 통해 커다란 시장이 형성될 수 있다.&lt;br /&gt;
&lt;br /&gt;
 2) 월등한 EOS의 초당 트랜잭션 처리 수로 인한 게임 처리 속도의 향상&lt;br /&gt;
  ◇ 쾌적한 게임 플레이 가능&lt;br /&gt;
&lt;br /&gt;
 3) 국내에서 인기 있는 게임 위주 서비스 제공&lt;br /&gt;
  ◇ 기존의 클라우드 게이밍 플랫폼에서 제공되는 게임들은 해외에서 인기있는 게임 위주였기 때문 에 국내 게이 &lt;br /&gt;
 머들의 관심을 끌기 어려웠다.&lt;br /&gt;
  ◇ 국내에서 인기 있는 게임 위주로 서비스를 제공하여 국내 게이머들의 관심도 증가&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
&lt;br /&gt;
◇ 분산형 컴퓨팅을 통한 안정적인 서비스 제공&lt;br /&gt;
&lt;br /&gt;
◇ 저사양 플랫폼에서 고사양 게임 가능&lt;br /&gt;
&lt;br /&gt;
◇ 이더리움보다 월등한 EOS의 초당 트랜잭션 처리 수가 게임 처리 속도의 향상을 제공&lt;br /&gt;
&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
&lt;br /&gt;
◇ 새로운 기술 보급을 통한 시장 흐름 변화&lt;br /&gt;
&lt;br /&gt;
◇ 개인의 소비 패턴 변화(기존 : 하드웨어 성능 중시 → 서비스 제공이후 : 클라우드 서비스 중시)&lt;br /&gt;
&lt;br /&gt;
◇ 생소했던 클라우드 게이밍에 국내 인지도 상승&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
◇ 먼저 AWS 서비스를 기반으로 Node.js 웹 서버를 구축한 후, Ejs/CSS 등을 이용하여 간단하고 기본적인 페이지 라우팅 구조(Back-End), UI/UX(Front- End) 등을 구축해놓는다.&lt;br /&gt;
&lt;br /&gt;
◇ 그 다음, EOS.IO기반 로컬 체인을 구축하고, 웹 서버와 연동한 뒤 사용자 회원가입/지불 시스템 등의 로직을 Smart Contract로 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ Smart Contract 구현에 성공하면, 실 게임 구동 서버-클라이언트 간 기본적인 실시간 스트리밍 서비스를 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ 실시간 스트리밍 서비스 구현에 성공하면, Smart Contract로 사용자 - 게임 구동 서버 매칭 로직을 구현하고, 스트리밍 시 전송되는 비디오/오디오 데이터를 EOS.IO Storage 기반으로 저장하는 방식으로 EOS.IO 위에 올려서 스트리밍 서비스를 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ 마지막으로 세부적인 기능들을 구현한 뒤 UI/UX를 다듬고 테스트한다.&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
가. 개발 일정&lt;br /&gt;
&lt;br /&gt;
3월 : 기존 EOS 기술 및 클라우드 시스템 분석 &lt;br /&gt;
&lt;br /&gt;
분산형 클라우드 시스템 설계 및 구현 &lt;br /&gt;
&lt;br /&gt;
4월 : 게임 스트리밍 서비스 설계 및 구현&lt;br /&gt;
&lt;br /&gt;
5월 : 매칭 시스템 설계 및 구현&lt;br /&gt;
&lt;br /&gt;
6월 : 전체 시스템 테스트 및 검토&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
나. 구성원 및 추진체계&lt;br /&gt;
&lt;br /&gt;
◇김용준: 분산형 클라우드 시스템, 매칭 시스템 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇노기선: 분산형 클라우드 시스템, 게임 스트리밍 서비스 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇ 임종범: 기존 시스템 분석, 게임 스트리밍 서비스 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇ 장원석: 기존 시스템 분석, 매칭 시스템 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
1. 기능적 요구사항&lt;br /&gt;
&lt;br /&gt;
◇1) 사용자가 보유한 토큰양을 불러와 서비스 사용 가능 시간을 산출해준다.&lt;br /&gt;
&lt;br /&gt;
◇2) 게임 별로 각각 다른 비용을 책정하여, 그에 맞게 사용 시간을 차감한다. (고사양일수록 비용 상승)&lt;br /&gt;
&lt;br /&gt;
◇3) 서비스 사용 시작부터 종료시 까지, 사용자가 플레이 하는 게임의 영상을 스트리밍 서비스 형태로 제공한다.&lt;br /&gt;
&lt;br /&gt;
◇4) 키보드, 마우스 등 사용자가 게임 플레이를 위해 입력하는 입력 신호를 송/수신한다.&lt;br /&gt;
&lt;br /&gt;
◇5) 스피커, 스크린샷 등 사용자 컴퓨터에 출력되는 출력 신호를 송/수신한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. 비기능적 요구사항&lt;br /&gt;
&lt;br /&gt;
◇1) EOS와 AWS를 이용한 SmartContract 환경을 조성한다.&lt;br /&gt;
&lt;br /&gt;
◇2) IPFS를 이용하여 영상 스트리밍은 최소 30FPS에서 최대 60FPS까지 서비스 할수 있도록 한다.&lt;br /&gt;
&lt;br /&gt;
◇3) 게임 플레이 시 입/출력 신호의 딜레이 최소화는 아주 중요하다. 이 딜레이는 반드시 짧아야한다.&lt;br /&gt;
&lt;br /&gt;
◇4) 블록에는 게임 이용시간, 사용한 토큰 수, 플레이한 게임의 종류 등을 포함한다.&lt;br /&gt;
&lt;br /&gt;
====설계 사양====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
◇ 웹 플랫폼 기반으로 구축함으로써 다양한 기기(데스크탑, 모바일 기기 등)에서 접근하기가 용이하다.&lt;br /&gt;
&lt;br /&gt;
- 언제 어디서든 기기만 있으면 원하는 게임 실행 가능한 환경 구축&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
&lt;br /&gt;
- 고사양이 필요한 게임도 지원하여 하드웨어의 장벽 완화&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 실시간 게임 플레이 영상 및 입출력 조작 신호 송/수신(스트리밍)&lt;br /&gt;
&lt;br /&gt;
- IPFS 시스템을 이용해 빠른 속도의 오디오/비디오 데이터 전송&lt;br /&gt;
&lt;br /&gt;
- 기존의 실시간 스트리밍 방식에 비해 빠르고, 안전하고, 개방적임&lt;br /&gt;
&lt;br /&gt;
- 실시간 스트리밍 서비스에서 가장 중요한 요소인 지연 시간(Latency) 개선 가능&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ EOS 기반의 DApp으로 안정성 및 보안성, 가격 경쟁력 확보&lt;br /&gt;
&lt;br /&gt;
- EOS는 타 블록체인 기반의 DApp(이더리움 등)에 비해 많은 트랜잭션 처리가 가능하도록 설계되어 있어 안정적이고, 그 외 수많은 장점 덕에 점점 사용률이 높아지는 DApp 플랫폼이다.&lt;br /&gt;
&lt;br /&gt;
- 트랜잭션 당 사용료(Gas)를 내야 하는 이더리움(Ethereum)에 비해, EOS는 DApp 사용 시에 요금을 낼 필요가 없어 사용자 입장에서 경제적이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 블록체인에 정보를 기록함으로써 토큰 거래 정보의 위변조를 방지, 신뢰성을 보장한다.&lt;br /&gt;
&lt;br /&gt;
- 컴퓨팅 파워 제공자/게이머, 게임 플레이 관련 정보를 블록체인에 기록한다&lt;br /&gt;
&lt;br /&gt;
- 컴퓨팅 파워 제공자와 게이머의 매칭은 스마트 컨트랙트로 수행된다&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Adaptive HTTP Protocol을 활용하여 쾌적한 스트리밍 환경을 제공한다.&lt;br /&gt;
&lt;br /&gt;
- 동영상 콘텐츠를 다양한 해상도로 인코딩하고 여러 데이터 조각으로 나누어 저장한다.&lt;br /&gt;
&lt;br /&gt;
- 네트워크 상황에 따라 실시간으로 적절한 해상도를 가진 영상 데이터 조각들이 다운로드 되어 버퍼링 없는 스트리밍 환경을 제공한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
1 CLIENT : 웹 페이지를 통해 DApp에 접근하도록 구성, Node.js 기반 웹 Back-End, Front-End 구현(자체 구현)&lt;br /&gt;
&lt;br /&gt;
2 EOS.IO 기반 DApp : 오픈소스 소프트웨어인 EOS.IO를 기반으로 게이밍 플랫폼 DApp 개발(오픈소스 기반 구현)&lt;br /&gt;
&lt;br /&gt;
3 Smart Contract : 사용자(CLIENT)와의 이용권 - 요금 지불 시스템 및 요금을 지불한 사용자를 대상으로 게임을 구동할 수 있는 서버(SERVER)와 매칭 시스템 구현(자체 구현)&lt;br /&gt;
&lt;br /&gt;
4 IPFS File Storage : EOS.IO 내부에 IPFS 방식으로 설계되어 있는 EOS.IO Storage를 기반으로 구현(오픈소스기반 구현)&lt;br /&gt;
&lt;br /&gt;
5 Server : 게임을 실제 구동하는 서버, 구동 중 실시간으로 출력된 오디오/비디오 데이터를 캡처하여 오픈소스 소 프트웨어인 ffmpeg을 이용하여 인코딩 후, DApp 내부 IPFS File Storage에 업로드하고 사용자(CLIENT) 단말기에 서 받아 화면에 출력하는 방식으로 구현. 서버에 전달된 게이머의 입력신호는 서버에서 구동되는 게임의 입력으로 처리되도록 구현. (오픈소스 기반 구현)&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
없음&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
 ◇ 웹 플랫폼 기반으로 구축&lt;br /&gt;
 장점 : 다양한 기기에서 실행 가능&lt;br /&gt;
 단점 : 따로 설정해 두지 않으면 웹 페이지 방문이 번거로울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
 장점 : 게이머의 선택의 폭이 넓어짐&lt;br /&gt;
 단점 : 상대적으로 관심이 적은 게임에 약간의 낭비된 비용이 생길 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 실시간 게임 플레이 영상 및 입출력 조작 신호 송/수신(스트리밍)&lt;br /&gt;
 장점 : WebRTC를 이용해 빠르고 안전하고 개방적임&lt;br /&gt;
 단점 : 다소 구현이 어려울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 기반의 DApp으로 안정성 및 보안성, 가격 경쟁력 확보&lt;br /&gt;
 장점 : 안정적이고, 경제적임&lt;br /&gt;
 단점 : EOS 기반 구현이 다소 어려울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 블록체인에 정보를 기록함으로써 토큰 거래 정보의 위변조를 방지, 신뢰성을 보장&lt;br /&gt;
 장점 : 보안적으로 뛰어남&lt;br /&gt;
 단점 : 블록생성만으로 자원을 많이 쓰기때문에 자원 낭비가 심함&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임목록창에서 게임선택시 바로 게임 어플리케이션이 실행될 수 있도록 상세구현&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임플레이 화면에서 클라이언트측 마우스와 게임서버측 마우스의 위치가 일치할 수 있는 방안 &lt;br /&gt;
    모색 -&amp;gt; 실제 게임플레이시 전체화면 모드로 실행 되도록&lt;br /&gt;
&lt;br /&gt;
 ◇ 웹페이지에서 회원설정 정보 확인 및 변경 기능을 추가 구현&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임플레이시 EOS 계정에 저장된 토큰을 활용한 게임 비용 지불 서비스 개발&lt;br /&gt;
&lt;br /&gt;
 ◇ 안드로이드/IOS 등 다양한 하드웨어에서도 원활히 서비스가 제공될 수 있는 방안 모색&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=KOS%EC%A1%B0&amp;diff=1508</id>
		<title>KOS조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=KOS%EC%A1%B0&amp;diff=1508"/>
				<updated>2019-06-20T15:26:31Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 완료작품의 평가 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' EOS기반 분산형 클라우드 게이밍 플랫폼 개발&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' Development of distributed cloud gaming platform based on EOS&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
KOS&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
김성환 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 김*준&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 노*선&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 임*범&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 장*석&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
게임 산업 규모는 매 년 커져감에 반해 하드웨어의 보급의 속도는 그렇지 못한 편이다. 이에 블록 체인 기술과 함께 분산형 클라우드 게이밍 플랫폼 서비스를 제공, 사용자(게이머)로 하여금 다양 한 플랫폼에서 고사양의 게임을 플레이 할 수 있도록 도와주는 것이 주된 개발 과제이다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
 ◇ EOS Block Chain을 활용한 분산형 클라우드 게이밍 DApp(Decentralized Application)&lt;br /&gt;
&lt;br /&gt;
 ◇ 저사양 PC를 소유한 게이머가 고사양 게임을 플레이 할 수 있는 Platform&lt;br /&gt;
&lt;br /&gt;
 ◇ 트랜잭션 처리 시 수수료가 필요 없는 EOS를 이용한 경제적인 서비스&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS의 월등한 트랙잭션 처리 속도로 인한 빠른 게임 플레이 환경 제공&lt;br /&gt;
&lt;br /&gt;
 ◇ 웹 플랫폼 기반 클라우드 게이밍 플랫폼 &lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
  ◇ 비디오, 음악 및 기타 서비스에 이어 게임 역시 클라우드로 전환하고 있다. 게이머들에게 클라우드 게임은 개인의 게임 하드웨어를 소유하는 것보다 10배 저렴하고, 공유 경제원리를 활용하고 있다.&lt;br /&gt;
     GPU, 인터넷 및 낮은 지연 스트리밍 개발을 통해, 개인 게임 하드웨어의 수요가 감소하고있다. 실제로 차세대 콘솔은 하드웨어를 기반으로하는 마지막 콘솔이 될 것이다 &lt;br /&gt;
    &lt;br /&gt;
 ◇ 게임을 클라우드 기술로 전환시키는 것은 피할 수 없다. Steam 플레이어의 70%는 GTA V와 같은 AAA 타이틀을 고해상도로 플레이 할 수 없으며, 플레이어의 30%는 PC에서 그런 게임을 실행하는 것 조차 할 수 없다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 클라우드 게임의 수요는 앞으로도 증가할 것이다. 최신 세대의 하드웨어에 대한 수요와 자원 집약적 VR 기술에 의한 게임이 발전함에 따라 가정용 하드웨어를 더 비싼 가격으로 만들고 이는 일반적인 게이머에게 비현실적인 가격이 될 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 업계 1인자들의 예상으로는 게임산업의 미래는 스트리밍이다. 해당 과제의 미션은 탈중앙화의 초기 단계에서 클라우드 게임의 가능성을 보는 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 분산형 클라우드 게이밍 플랫폼 개발을 통한 향상된 스트리밍 서비스 제공한다 따라서 기존의 클라우드 게이밍 플랫폼과 비교하여 스트리밍 지연속도가 감소할 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 기존 시장에서 사용되던 이더리움 기반이 아닌 EOS 기반 플랫폼을 개발하여 이더리움보다 월등한 EOS의 초당 트랜잭션 처리 수가 게임의 처리 속도의 향상을 제공할 것이다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
 ◇ Web-RTC를 활용한 화면공유 및 원격제어&lt;br /&gt;
&lt;br /&gt;
 ◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 토큰 거래를 통한 게임 플레이&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 기반의 DApp개발로 다양한 경쟁력 확보&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
&lt;br /&gt;
◇ 3세대 블록체인 후보 이오스(EOS) &lt;br /&gt;
&lt;br /&gt;
1) EOS란? &lt;br /&gt;
&lt;br /&gt;
① 프로젝트로서의 EOS&lt;br /&gt;
 • EOS는 블록체인 프로젝트로서, 최초의 블록체인 OS(First Blockchain Operating System)을 표방함. 즉, EOS는 DApp을 개발하고 구동하기 위한 플랫폼을 개발하는 프로젝트라 할 수 있음&lt;br /&gt;
 ※ ( DApp 이란? ) 탈중앙화 어플리케이션(Decentralized Application)의 약자. 데이터의 흐름, 저장, 로직이 탈중앙화 되어 있어서 중앙화된 어플리케이션의 대표적인 문제점인 운영자의 탈선, 해킹으로 인한 데이터 위변조, 개인 정보 유출, 서버 다운 등의 문제가 일어날 가능성을 극도로 낮춰줌&lt;br /&gt;
&lt;br /&gt;
 • DApp의 한계&lt;br /&gt;
 근간이 되는 블록체인의 성능 자체가 대부분 중앙화 서버대비 떨어지기 때문에 스케일링이 어렵고사용자들이 트랜잭션을 일으킬 때마다 비용을 지불해야함. 또, 중앙화된 서버에서의 개발 방식과는전혀 다르기 때문에, 해킹에 취약해지거나 퍼포먼스가 떨어지는 문제가 있을 수 있음&lt;br /&gt;
&lt;br /&gt;
 • EOS는 이러한 한계를 극복하기 위한 프로젝트라고 할 수 있음.&lt;br /&gt;
&lt;br /&gt;
 • 고성능을 요구하는 상용 서비스(거래소, 소셜미디어 등)가 가능한 수준의 스케일링이 가능&lt;br /&gt;
&lt;br /&gt;
 • 사용자들이 플랫폼을 사용할 때마다 지불해야 되는 비용(가스)가 없음&lt;br /&gt;
&lt;br /&gt;
② 소프트웨어로서의 EOS&lt;br /&gt;
 • Block.one이 개발중인 EOS.IO를 의미함&lt;br /&gt;
&lt;br /&gt;
③ 토큰으로서의 EOS&lt;br /&gt;
 • ERC20 : 이더리움 블록체인 상에 그 수량과 교환방식 등이 정의된 토큰&lt;br /&gt;
 • EOS21이라는 프로토콜을 통해 EOS기반의 토큰으로 전환할 수 있게 됨&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) EOS의 BP 시스템&lt;br /&gt;
① DPoS 방식의 EOS&lt;br /&gt;
&lt;br /&gt;
 • 대표자들은 전체적인 블록체인의 방향을 설정하고 블록 생성을 담당. 이러한 대표자를 블록프로듀서(Block Producer,BP)라고 부름&lt;br /&gt;
&lt;br /&gt;
② EOS DPoS의 대표자, BP의 역할과 보상&lt;br /&gt;
 • EOS BP의 역할&lt;br /&gt;
 1. EOS 메인 블록체인의 지원&lt;br /&gt;
     - 개발자, 플랫폼 커뮤니티 지원&lt;br /&gt;
     - 이오스 관련 콘텐츠 배급 등&lt;br /&gt;
 2. 이오스 메인 블록체인의 운영&lt;br /&gt;
     - 매 라운드 ( 126초 ) 동안 0.5초당 1개 블록 생성&lt;br /&gt;
&lt;br /&gt;
 • EOS BP의 혜택&lt;br /&gt;
     1. 1년 동안 EOS 발행량의 1%를 보상으로 받음&lt;br /&gt;
     2. 총 보상의 25%는 상위 21명 BP, 나머지 75%는 상위BP와 백업BP를 포함한 모든 BP가 투표율에 따라 &lt;br /&gt;
         받음&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) 스마트 컨트랙트&lt;br /&gt;
&lt;br /&gt;
① Contract를 구현하고, 강제하고, 실행시켜주는 code&lt;br /&gt;
&lt;br /&gt;
 • 믿지않는 사용자간의 areement+coordination&lt;br /&gt;
 • 블록체인에 복잡한 기능을 제공&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
② Smart contract의 안전성?&lt;br /&gt;
&lt;br /&gt;
 • Token economy - Decentralized governance구조와 Incentive mechanism으로 정의&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) 2세대 블록체인 이더리움(ETHEREUM)과 이오스(EOS)&lt;br /&gt;
&lt;br /&gt;
5) 나날이 증가하는 EOS 플랫폼 상의 DApp 수&lt;br /&gt;
&lt;br /&gt;
 • 해가갈수록 급격한 증가폭을 보여줌&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6) 다양한 장르의 EOS 플랫폼 상 DApp&lt;br /&gt;
&lt;br /&gt;
 • 게임, 도박, 부동산, 지갑, 소셜 등 다양한 장르의 플랫폼 상의 DApp 존재&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7) EOS.IO가 제공하는 기능&lt;br /&gt;
&lt;br /&gt;
 • 무료 평가판 제한 거래&lt;br /&gt;
 • 낮은 대기 시간 블록 확인(0.5초)&lt;br /&gt;
 • 오버 헤드가 낮은 비잔틴 오류 내성 결말&lt;br /&gt;
 • 선택적으로 높은 오버 헤드, 낮은 대기 시간의 BFT 최종기증&lt;br /&gt;
 • 웹 어셈블리를 기반으로 하는 스마트 계약 플랫폼&lt;br /&gt;
 • 스파스 헤더 라이트 클라이언트 검증용으로 설계&lt;br /&gt;
 • 정기 반복 트랜잭션&lt;br /&gt;
 • 시간 지연 보안&lt;br /&gt;
 • 계층적 역할 기반 권한&lt;br /&gt;
 • 생체 인식 하드웨어 보안 키 지원&lt;br /&gt;
 • 문맥 무효 검증 논리의 병렬 실행&lt;br /&gt;
 • 블록 체인 간 통신&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
나. 기술 로드맵&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
① 블록체인 기반 기술&lt;br /&gt;
 • 고성능 저비용 합의 기술&lt;br /&gt;
 • 스마트 계약 검증 기술&lt;br /&gt;
&lt;br /&gt;
② 블록체인 확장 기술&lt;br /&gt;
 • 대용량 데이터 처리 기술, 외부 데이터 연동 기술&lt;br /&gt;
 • 대규모 서비스 제공을 위한 확장성 확보 기술&lt;br /&gt;
&lt;br /&gt;
③ 블록체인 서비스 기술&lt;br /&gt;
 • 거래 추적 및 분석 기술&lt;br /&gt;
 • 산업 분야별 기존 시스템 연동 기술&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
다. 특허조사&lt;br /&gt;
&lt;br /&gt;
 ◇ 최근 비트코인 등 암호 화폐에 대한 관심이 증가함에 따라, 그 기술적 기반인 블록체인 관련 특허출원도 전 세계적으로 폭발적 증가 추세인 것으로 나타났다. 특허청(청장 성윤모)에 따르면, 지식재산 선진 5개국(IP4, 한국•미국•일본•중국•유럽)에 출원되어 조사 시점(‘18년 1월말 기준)까지 공개된 블록체인 관련 전 세계 특허 출원은 모두 1,248건으로 나타났다 특허 출원의 양은 많지 않으나, ’09년 블록체인이 최초 구현된 이래, ‘13년 27건에서 매년 2~3배 증가’해 ‘15년에는 257건, ’16년에는 594건(미공개건 제외)에 이르는 것으로 조사됐다. 출원인의 국적별로 살펴보면, 누적건수로는 미국이 1위로 집계되었지만, ‘16년 이후 중국이 연간 특허출원 건수에서 미국을 제치고 1위로 올라섰다. 조만간 누적건수에서도 중국이 1위를 차지할 것으로 예측된다.&lt;br /&gt;
&lt;br /&gt;
 ◇ G2(미국, 중국)로의 편중 현상도 심해, 미국과 중국이 전체 특허 출원의 대부분(78%)을 점유했으며, 3, 4위를 차지한 우리나라와 일본의 점유율은 8%, 3%에 불과했다. 한편, 특허출원의 질적 수준을 나타내는 간접지표인, 해외출원 비율에서는 미국이 중국을 제치고 압두적인 선두를 지켰다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 주체별로는, 전 세계 블록체인 특허출원 중 81%를 기업이 주도하고 있고, 미국은 은행 등 금융기업에 의한 특허출원도 활발한 편이다. 한편 우리나라는 대기업보다 벤처기업 등의 중소기업 비중(66.7%)이 매우 높은 특징을 보였으며, 금융기업에 의한 특허출원은 아직까진 없는 것으로 조사(‘18.1월말 조사 시점까지 공개된 특허출원 기준)되었다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 블록체인의 기본 개념은 이미 Open Source로 공개되어 누구도 특허를 갖지 못하는 자유 기술이다. 따라서 특허출원은 주로 보안, 운용, 활용 등 주변 기술을 중심으로 이뤄지고 있다. 특히, 블록체인이 암호 화폐에서 물류•의료•공공 서비스 등으로 활용 범위가 점차 확대됨에 따라 특허출원도 덩달아 활용 분야를 중심으로 증가할 것으로 전망된다.&lt;br /&gt;
&lt;br /&gt;
 ◇ KB금융그룹의 ‘블록체인을 활용한 모바일 앱 보안 솔루션 관련 기술특허’는 서비스 부문과 보안부분을 분리해 보안부문의 암호화키를 블록체인망에 보관해 안정성을 높였다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 골드만삭스의 ‘세틀코인(SETLcoin)’은 주식, 채권 등 실시간 거래뿐만 아니라 거래내역도 블록체인의 분산원장에 적용하여 위, 변조가 불가능한 첨단 핀테크를 가능하게 한다. &lt;br /&gt;
&lt;br /&gt;
 ◇ 미국의 대형 은행인 BoA(뱅크 오브 아메리카)도 15건의 특허를 출원했고, 20건 정도의 추가 특허를 출원할 예정이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
라. 특허전략&lt;br /&gt;
&lt;br /&gt;
 특허에서 공개된 비즈니스 모델은 블록체인 업체의 비즈니스 모델과 유사한 부분이 존재한다. 개인정보를 제공하고, 개인정보에 따른 보상금을 지급하는 구조이다. 위의 특허는 기존 특허에 대한 하나의 예시이고, 개인정보에 따른 보상과 관련된 기술, 개인 데이터를 추적하는 기술은 다른 특허에도 많이 기술되어 있기 때문에 이러한 기존의 비즈니스 모델 특허와 블록체인 특허가 차별점을 가지기 위해서는 블록체인과 블록체인과 트랜잭션을 발생시키는 노드 간의 동작에 대한 구체화, 블록 상에서의 데이터 처리 등에 관련된 특징들이 반드시 필요하다.&lt;br /&gt;
&lt;br /&gt;
 예를 들어, 블록체인에 올라간 스마트 콘트랙트를 기반으로 수집된 개인 정보가 블록체인과는 어떠한 관계를 가지고 처리되는지, 개인 정보의 거래는 블록체인 상에서 어떻게 수행되는지 보상은 블록체인 상에서 어떻게 발생되는지&lt;br /&gt;
위와 같은 블록체인, 블록과 연관된 구체적인 트랜잭션들이 블록체인 특허에 도시되고 기술되어야한다. 이러한 특징이 있다면, 블록체인 특허가 기존 특허와 차별화를 가질 수 있고 등록 가능성도 높아지게 됩니다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
가. 경쟁제품 조사 비교&lt;br /&gt;
◇ PlayKey&lt;br /&gt;
    &lt;br /&gt;
    - P2P와 블록체인 기술 기반의 게이머를 위한 세계 최초의 탈중앙화 클라우드 게이밍 플랫폼&lt;br /&gt;
    - 고성능의 컴퓨터를 가진 전세계 수십명의 독립적인 소유자가 커뮤니티 내에 결속하여 클라우드 게임 서비스 업체(채굴자)로 활동&lt;br /&gt;
    - 시스템 내 유일한 보편적인 에코 시스템 암호화폐 -PKT 토큰- 이 ICO를 통해 발급됨&lt;br /&gt;
    - 채굴자-게이머의 스마트 컨트랙트 형태로 구성되어 클라우드 게임 서비스의 높은 통합 수준을&lt;br /&gt;
      제공&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Google STADIA&lt;br /&gt;
  &lt;br /&gt;
 -  중앙집권형 클라우드 게이밍 플랫폼&lt;br /&gt;
 -  유튜브 기반이기 때문에 유튜브 재생만 가능하다면 저사양 PC든 스마트폰이든 태블릿 PC든 실시간 스트리밍 &lt;br /&gt;
을 통해 FHD 60프레임으로 게임 플레이 가능&lt;br /&gt;
 - 웹 브라우저에서 바로 실행되며 클릭 한/두 번으로 게임 플레이 가능&lt;br /&gt;
&lt;br /&gt;
나. 마케팅 전략&lt;br /&gt;
 1) EOS블록체인 기반 서비스를 제공함으로써&lt;br /&gt;
  ◇ 채굴자는 개인으로서 경제적이득(가상화폐)을 얻을 기회가 생긴다.&lt;br /&gt;
  ◇ 채굴자는 시장 활성화가 커져갈수록, 같은 서비스 제공으로 더 많은 이득을 얻을 수 있다.&lt;br /&gt;
  ◇ 사용자(게이머)는 저성능의 컴퓨터를 소유하고 있더라도, 약간의 이용료를 지불하여 고사양의 게임을 최고의 &lt;br /&gt;
 퀄리티로 즐길 수 있다.&lt;br /&gt;
  ◇ 사용자(게이머)는 기존 클라우드 게이밍 서비스보다도 훨씬 더 저렴한 가격으로 이용할 수 있다.&lt;br /&gt;
  ◇ 5G 상용화와 더불어 안정적인 서비스 제공을 통해 커다란 시장이 형성될 수 있다.&lt;br /&gt;
&lt;br /&gt;
 2) 월등한 EOS의 초당 트랜잭션 처리 수로 인한 게임 처리 속도의 향상&lt;br /&gt;
  ◇ 쾌적한 게임 플레이 가능&lt;br /&gt;
&lt;br /&gt;
 3) 국내에서 인기 있는 게임 위주 서비스 제공&lt;br /&gt;
  ◇ 기존의 클라우드 게이밍 플랫폼에서 제공되는 게임들은 해외에서 인기있는 게임 위주였기 때문 에 국내 게이 &lt;br /&gt;
 머들의 관심을 끌기 어려웠다.&lt;br /&gt;
  ◇ 국내에서 인기 있는 게임 위주로 서비스를 제공하여 국내 게이머들의 관심도 증가&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
&lt;br /&gt;
◇ 분산형 컴퓨팅을 통한 안정적인 서비스 제공&lt;br /&gt;
&lt;br /&gt;
◇ 저사양 플랫폼에서 고사양 게임 가능&lt;br /&gt;
&lt;br /&gt;
◇ 이더리움보다 월등한 EOS의 초당 트랜잭션 처리 수가 게임 처리 속도의 향상을 제공&lt;br /&gt;
&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
&lt;br /&gt;
◇ 새로운 기술 보급을 통한 시장 흐름 변화&lt;br /&gt;
&lt;br /&gt;
◇ 개인의 소비 패턴 변화(기존 : 하드웨어 성능 중시 → 서비스 제공이후 : 클라우드 서비스 중시)&lt;br /&gt;
&lt;br /&gt;
◇ 생소했던 클라우드 게이밍에 국내 인지도 상승&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
◇ 먼저 AWS 서비스를 기반으로 Node.js 웹 서버를 구축한 후, Ejs/CSS 등을 이용하여 간단하고 기본적인 페이지 라우팅 구조(Back-End), UI/UX(Front- End) 등을 구축해놓는다.&lt;br /&gt;
&lt;br /&gt;
◇ 그 다음, EOS.IO기반 로컬 체인을 구축하고, 웹 서버와 연동한 뒤 사용자 회원가입/지불 시스템 등의 로직을 Smart Contract로 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ Smart Contract 구현에 성공하면, 실 게임 구동 서버-클라이언트 간 기본적인 실시간 스트리밍 서비스를 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ 실시간 스트리밍 서비스 구현에 성공하면, Smart Contract로 사용자 - 게임 구동 서버 매칭 로직을 구현하고, 스트리밍 시 전송되는 비디오/오디오 데이터를 EOS.IO Storage 기반으로 저장하는 방식으로 EOS.IO 위에 올려서 스트리밍 서비스를 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ 마지막으로 세부적인 기능들을 구현한 뒤 UI/UX를 다듬고 테스트한다.&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
가. 개발 일정&lt;br /&gt;
&lt;br /&gt;
3월 : 기존 EOS 기술 및 클라우드 시스템 분석 &lt;br /&gt;
&lt;br /&gt;
분산형 클라우드 시스템 설계 및 구현 &lt;br /&gt;
&lt;br /&gt;
4월 : 게임 스트리밍 서비스 설계 및 구현&lt;br /&gt;
&lt;br /&gt;
5월 : 매칭 시스템 설계 및 구현&lt;br /&gt;
&lt;br /&gt;
6월 : 전체 시스템 테스트 및 검토&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
나. 구성원 및 추진체계&lt;br /&gt;
&lt;br /&gt;
◇김용준: 분산형 클라우드 시스템, 매칭 시스템 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇노기선: 분산형 클라우드 시스템, 게임 스트리밍 서비스 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇ 임종범: 기존 시스템 분석, 게임 스트리밍 서비스 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇ 장원석: 기존 시스템 분석, 매칭 시스템 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
1. 기능적 요구사항&lt;br /&gt;
&lt;br /&gt;
◇1) 사용자가 보유한 토큰양을 불러와 서비스 사용 가능 시간을 산출해준다.&lt;br /&gt;
&lt;br /&gt;
◇2) 게임 별로 각각 다른 비용을 책정하여, 그에 맞게 사용 시간을 차감한다. (고사양일수록 비용 상승)&lt;br /&gt;
&lt;br /&gt;
◇3) 서비스 사용 시작부터 종료시 까지, 사용자가 플레이 하는 게임의 영상을 스트리밍 서비스 형태로 제공한다.&lt;br /&gt;
&lt;br /&gt;
◇4) 키보드, 마우스 등 사용자가 게임 플레이를 위해 입력하는 입력 신호를 송/수신한다.&lt;br /&gt;
&lt;br /&gt;
◇5) 스피커, 스크린샷 등 사용자 컴퓨터에 출력되는 출력 신호를 송/수신한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. 비기능적 요구사항&lt;br /&gt;
&lt;br /&gt;
◇1) EOS와 AWS를 이용한 SmartContract 환경을 조성한다.&lt;br /&gt;
&lt;br /&gt;
◇2) IPFS를 이용하여 영상 스트리밍은 최소 30FPS에서 최대 60FPS까지 서비스 할수 있도록 한다.&lt;br /&gt;
&lt;br /&gt;
◇3) 게임 플레이 시 입/출력 신호의 딜레이 최소화는 아주 중요하다. 이 딜레이는 반드시 짧아야한다.&lt;br /&gt;
&lt;br /&gt;
◇4) 블록에는 게임 이용시간, 사용한 토큰 수, 플레이한 게임의 종류 등을 포함한다.&lt;br /&gt;
&lt;br /&gt;
====설계 사양====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
◇ 웹 플랫폼 기반으로 구축함으로써 다양한 기기(데스크탑, 모바일 기기 등)에서 접근하기가 용이하다.&lt;br /&gt;
&lt;br /&gt;
- 언제 어디서든 기기만 있으면 원하는 게임 실행 가능한 환경 구축&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
&lt;br /&gt;
- 고사양이 필요한 게임도 지원하여 하드웨어의 장벽 완화&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 실시간 게임 플레이 영상 및 입출력 조작 신호 송/수신(스트리밍)&lt;br /&gt;
&lt;br /&gt;
- IPFS 시스템을 이용해 빠른 속도의 오디오/비디오 데이터 전송&lt;br /&gt;
&lt;br /&gt;
- 기존의 실시간 스트리밍 방식에 비해 빠르고, 안전하고, 개방적임&lt;br /&gt;
&lt;br /&gt;
- 실시간 스트리밍 서비스에서 가장 중요한 요소인 지연 시간(Latency) 개선 가능&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ EOS 기반의 DApp으로 안정성 및 보안성, 가격 경쟁력 확보&lt;br /&gt;
&lt;br /&gt;
- EOS는 타 블록체인 기반의 DApp(이더리움 등)에 비해 많은 트랜잭션 처리가 가능하도록 설계되어 있어 안정적이고, 그 외 수많은 장점 덕에 점점 사용률이 높아지는 DApp 플랫폼이다.&lt;br /&gt;
&lt;br /&gt;
- 트랜잭션 당 사용료(Gas)를 내야 하는 이더리움(Ethereum)에 비해, EOS는 DApp 사용 시에 요금을 낼 필요가 없어 사용자 입장에서 경제적이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 블록체인에 정보를 기록함으로써 토큰 거래 정보의 위변조를 방지, 신뢰성을 보장한다.&lt;br /&gt;
&lt;br /&gt;
- 컴퓨팅 파워 제공자/게이머, 게임 플레이 관련 정보를 블록체인에 기록한다&lt;br /&gt;
&lt;br /&gt;
- 컴퓨팅 파워 제공자와 게이머의 매칭은 스마트 컨트랙트로 수행된다&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Adaptive HTTP Protocol을 활용하여 쾌적한 스트리밍 환경을 제공한다.&lt;br /&gt;
&lt;br /&gt;
- 동영상 콘텐츠를 다양한 해상도로 인코딩하고 여러 데이터 조각으로 나누어 저장한다.&lt;br /&gt;
&lt;br /&gt;
- 네트워크 상황에 따라 실시간으로 적절한 해상도를 가진 영상 데이터 조각들이 다운로드 되어 버퍼링 없는 스트리밍 환경을 제공한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
1 CLIENT : 웹 페이지를 통해 DApp에 접근하도록 구성, Node.js 기반 웹 Back-End, Front-End 구현(자체 구현)&lt;br /&gt;
&lt;br /&gt;
2 EOS.IO 기반 DApp : 오픈소스 소프트웨어인 EOS.IO를 기반으로 게이밍 플랫폼 DApp 개발(오픈소스 기반 구현)&lt;br /&gt;
&lt;br /&gt;
3 Smart Contract : 사용자(CLIENT)와의 이용권 - 요금 지불 시스템 및 요금을 지불한 사용자를 대상으로 게임을 구동할 수 있는 서버(SERVER)와 매칭 시스템 구현(자체 구현)&lt;br /&gt;
&lt;br /&gt;
4 IPFS File Storage : EOS.IO 내부에 IPFS 방식으로 설계되어 있는 EOS.IO Storage를 기반으로 구현(오픈소스기반 구현)&lt;br /&gt;
&lt;br /&gt;
5 Server : 게임을 실제 구동하는 서버, 구동 중 실시간으로 출력된 오디오/비디오 데이터를 캡처하여 오픈소스 소 프트웨어인 ffmpeg을 이용하여 인코딩 후, DApp 내부 IPFS File Storage에 업로드하고 사용자(CLIENT) 단말기에 서 받아 화면에 출력하는 방식으로 구현. 서버에 전달된 게이머의 입력신호는 서버에서 구동되는 게임의 입력으로 처리되도록 구현. (오픈소스 기반 구현)&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
 ◇ 웹 플랫폼 기반으로 구축&lt;br /&gt;
 장점 : 다양한 기기에서 실행 가능&lt;br /&gt;
 단점 : 따로 설정해 두지 않으면 웹 페이지 방문이 번거로울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
 장점 : 게이머의 선택의 폭이 넓어짐&lt;br /&gt;
 단점 : 상대적으로 관심이 적은 게임에 약간의 낭비된 비용이 생길 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 실시간 게임 플레이 영상 및 입출력 조작 신호 송/수신(스트리밍)&lt;br /&gt;
 장점 : WebRTC를 이용해 빠르고 안전하고 개방적임&lt;br /&gt;
 단점 : 다소 구현이 어려울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 기반의 DApp으로 안정성 및 보안성, 가격 경쟁력 확보&lt;br /&gt;
 장점 : 안정적이고, 경제적임&lt;br /&gt;
 단점 : EOS 기반 구현이 다소 어려울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 블록체인에 정보를 기록함으로써 토큰 거래 정보의 위변조를 방지, 신뢰성을 보장&lt;br /&gt;
 장점 : 보안적으로 뛰어남&lt;br /&gt;
 단점 : 블록생성만으로 자원을 많이 쓰기때문에 자원 낭비가 심함&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임목록창에서 게임선택시 바로 게임 어플리케이션이 실행될 수 있도록 상세구현&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임플레이 화면에서 클라이언트측 마우스와 게임서버측 마우스의 위치가 일치할 수 있는 방안 &lt;br /&gt;
    모색 -&amp;gt; 실제 게임플레이시 전체화면 모드로 실행 되도록&lt;br /&gt;
&lt;br /&gt;
 ◇ 웹페이지에서 회원설정 정보 확인 및 변경 기능을 추가 구현&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임플레이시 EOS 계정에 저장된 토큰을 활용한 게임 비용 지불 서비스 개발&lt;br /&gt;
&lt;br /&gt;
 ◇ 안드로이드/IOS 등 다양한 하드웨어에서도 원활히 서비스가 제공될 수 있는 방안 모색&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=KOS%EC%A1%B0&amp;diff=1507</id>
		<title>KOS조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=KOS%EC%A1%B0&amp;diff=1507"/>
				<updated>2019-06-20T15:26:17Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 완료작품의 평가 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' EOS기반 분산형 클라우드 게이밍 플랫폼 개발&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' Development of distributed cloud gaming platform based on EOS&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
KOS&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
김성환 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 김*준&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 노*선&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 임*범&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 장*석&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
게임 산업 규모는 매 년 커져감에 반해 하드웨어의 보급의 속도는 그렇지 못한 편이다. 이에 블록 체인 기술과 함께 분산형 클라우드 게이밍 플랫폼 서비스를 제공, 사용자(게이머)로 하여금 다양 한 플랫폼에서 고사양의 게임을 플레이 할 수 있도록 도와주는 것이 주된 개발 과제이다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
 ◇ EOS Block Chain을 활용한 분산형 클라우드 게이밍 DApp(Decentralized Application)&lt;br /&gt;
&lt;br /&gt;
 ◇ 저사양 PC를 소유한 게이머가 고사양 게임을 플레이 할 수 있는 Platform&lt;br /&gt;
&lt;br /&gt;
 ◇ 트랜잭션 처리 시 수수료가 필요 없는 EOS를 이용한 경제적인 서비스&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS의 월등한 트랙잭션 처리 속도로 인한 빠른 게임 플레이 환경 제공&lt;br /&gt;
&lt;br /&gt;
 ◇ 웹 플랫폼 기반 클라우드 게이밍 플랫폼 &lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
  ◇ 비디오, 음악 및 기타 서비스에 이어 게임 역시 클라우드로 전환하고 있다. 게이머들에게 클라우드 게임은 개인의 게임 하드웨어를 소유하는 것보다 10배 저렴하고, 공유 경제원리를 활용하고 있다.&lt;br /&gt;
     GPU, 인터넷 및 낮은 지연 스트리밍 개발을 통해, 개인 게임 하드웨어의 수요가 감소하고있다. 실제로 차세대 콘솔은 하드웨어를 기반으로하는 마지막 콘솔이 될 것이다 &lt;br /&gt;
    &lt;br /&gt;
 ◇ 게임을 클라우드 기술로 전환시키는 것은 피할 수 없다. Steam 플레이어의 70%는 GTA V와 같은 AAA 타이틀을 고해상도로 플레이 할 수 없으며, 플레이어의 30%는 PC에서 그런 게임을 실행하는 것 조차 할 수 없다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 클라우드 게임의 수요는 앞으로도 증가할 것이다. 최신 세대의 하드웨어에 대한 수요와 자원 집약적 VR 기술에 의한 게임이 발전함에 따라 가정용 하드웨어를 더 비싼 가격으로 만들고 이는 일반적인 게이머에게 비현실적인 가격이 될 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 업계 1인자들의 예상으로는 게임산업의 미래는 스트리밍이다. 해당 과제의 미션은 탈중앙화의 초기 단계에서 클라우드 게임의 가능성을 보는 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 분산형 클라우드 게이밍 플랫폼 개발을 통한 향상된 스트리밍 서비스 제공한다 따라서 기존의 클라우드 게이밍 플랫폼과 비교하여 스트리밍 지연속도가 감소할 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 기존 시장에서 사용되던 이더리움 기반이 아닌 EOS 기반 플랫폼을 개발하여 이더리움보다 월등한 EOS의 초당 트랜잭션 처리 수가 게임의 처리 속도의 향상을 제공할 것이다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
 ◇ Web-RTC를 활용한 화면공유 및 원격제어&lt;br /&gt;
&lt;br /&gt;
 ◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 토큰 거래를 통한 게임 플레이&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 기반의 DApp개발로 다양한 경쟁력 확보&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
&lt;br /&gt;
◇ 3세대 블록체인 후보 이오스(EOS) &lt;br /&gt;
&lt;br /&gt;
1) EOS란? &lt;br /&gt;
&lt;br /&gt;
① 프로젝트로서의 EOS&lt;br /&gt;
 • EOS는 블록체인 프로젝트로서, 최초의 블록체인 OS(First Blockchain Operating System)을 표방함. 즉, EOS는 DApp을 개발하고 구동하기 위한 플랫폼을 개발하는 프로젝트라 할 수 있음&lt;br /&gt;
 ※ ( DApp 이란? ) 탈중앙화 어플리케이션(Decentralized Application)의 약자. 데이터의 흐름, 저장, 로직이 탈중앙화 되어 있어서 중앙화된 어플리케이션의 대표적인 문제점인 운영자의 탈선, 해킹으로 인한 데이터 위변조, 개인 정보 유출, 서버 다운 등의 문제가 일어날 가능성을 극도로 낮춰줌&lt;br /&gt;
&lt;br /&gt;
 • DApp의 한계&lt;br /&gt;
 근간이 되는 블록체인의 성능 자체가 대부분 중앙화 서버대비 떨어지기 때문에 스케일링이 어렵고사용자들이 트랜잭션을 일으킬 때마다 비용을 지불해야함. 또, 중앙화된 서버에서의 개발 방식과는전혀 다르기 때문에, 해킹에 취약해지거나 퍼포먼스가 떨어지는 문제가 있을 수 있음&lt;br /&gt;
&lt;br /&gt;
 • EOS는 이러한 한계를 극복하기 위한 프로젝트라고 할 수 있음.&lt;br /&gt;
&lt;br /&gt;
 • 고성능을 요구하는 상용 서비스(거래소, 소셜미디어 등)가 가능한 수준의 스케일링이 가능&lt;br /&gt;
&lt;br /&gt;
 • 사용자들이 플랫폼을 사용할 때마다 지불해야 되는 비용(가스)가 없음&lt;br /&gt;
&lt;br /&gt;
② 소프트웨어로서의 EOS&lt;br /&gt;
 • Block.one이 개발중인 EOS.IO를 의미함&lt;br /&gt;
&lt;br /&gt;
③ 토큰으로서의 EOS&lt;br /&gt;
 • ERC20 : 이더리움 블록체인 상에 그 수량과 교환방식 등이 정의된 토큰&lt;br /&gt;
 • EOS21이라는 프로토콜을 통해 EOS기반의 토큰으로 전환할 수 있게 됨&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) EOS의 BP 시스템&lt;br /&gt;
① DPoS 방식의 EOS&lt;br /&gt;
&lt;br /&gt;
 • 대표자들은 전체적인 블록체인의 방향을 설정하고 블록 생성을 담당. 이러한 대표자를 블록프로듀서(Block Producer,BP)라고 부름&lt;br /&gt;
&lt;br /&gt;
② EOS DPoS의 대표자, BP의 역할과 보상&lt;br /&gt;
 • EOS BP의 역할&lt;br /&gt;
 1. EOS 메인 블록체인의 지원&lt;br /&gt;
     - 개발자, 플랫폼 커뮤니티 지원&lt;br /&gt;
     - 이오스 관련 콘텐츠 배급 등&lt;br /&gt;
 2. 이오스 메인 블록체인의 운영&lt;br /&gt;
     - 매 라운드 ( 126초 ) 동안 0.5초당 1개 블록 생성&lt;br /&gt;
&lt;br /&gt;
 • EOS BP의 혜택&lt;br /&gt;
     1. 1년 동안 EOS 발행량의 1%를 보상으로 받음&lt;br /&gt;
     2. 총 보상의 25%는 상위 21명 BP, 나머지 75%는 상위BP와 백업BP를 포함한 모든 BP가 투표율에 따라 &lt;br /&gt;
         받음&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) 스마트 컨트랙트&lt;br /&gt;
&lt;br /&gt;
① Contract를 구현하고, 강제하고, 실행시켜주는 code&lt;br /&gt;
&lt;br /&gt;
 • 믿지않는 사용자간의 areement+coordination&lt;br /&gt;
 • 블록체인에 복잡한 기능을 제공&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
② Smart contract의 안전성?&lt;br /&gt;
&lt;br /&gt;
 • Token economy - Decentralized governance구조와 Incentive mechanism으로 정의&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) 2세대 블록체인 이더리움(ETHEREUM)과 이오스(EOS)&lt;br /&gt;
&lt;br /&gt;
5) 나날이 증가하는 EOS 플랫폼 상의 DApp 수&lt;br /&gt;
&lt;br /&gt;
 • 해가갈수록 급격한 증가폭을 보여줌&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6) 다양한 장르의 EOS 플랫폼 상 DApp&lt;br /&gt;
&lt;br /&gt;
 • 게임, 도박, 부동산, 지갑, 소셜 등 다양한 장르의 플랫폼 상의 DApp 존재&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7) EOS.IO가 제공하는 기능&lt;br /&gt;
&lt;br /&gt;
 • 무료 평가판 제한 거래&lt;br /&gt;
 • 낮은 대기 시간 블록 확인(0.5초)&lt;br /&gt;
 • 오버 헤드가 낮은 비잔틴 오류 내성 결말&lt;br /&gt;
 • 선택적으로 높은 오버 헤드, 낮은 대기 시간의 BFT 최종기증&lt;br /&gt;
 • 웹 어셈블리를 기반으로 하는 스마트 계약 플랫폼&lt;br /&gt;
 • 스파스 헤더 라이트 클라이언트 검증용으로 설계&lt;br /&gt;
 • 정기 반복 트랜잭션&lt;br /&gt;
 • 시간 지연 보안&lt;br /&gt;
 • 계층적 역할 기반 권한&lt;br /&gt;
 • 생체 인식 하드웨어 보안 키 지원&lt;br /&gt;
 • 문맥 무효 검증 논리의 병렬 실행&lt;br /&gt;
 • 블록 체인 간 통신&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
나. 기술 로드맵&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
① 블록체인 기반 기술&lt;br /&gt;
 • 고성능 저비용 합의 기술&lt;br /&gt;
 • 스마트 계약 검증 기술&lt;br /&gt;
&lt;br /&gt;
② 블록체인 확장 기술&lt;br /&gt;
 • 대용량 데이터 처리 기술, 외부 데이터 연동 기술&lt;br /&gt;
 • 대규모 서비스 제공을 위한 확장성 확보 기술&lt;br /&gt;
&lt;br /&gt;
③ 블록체인 서비스 기술&lt;br /&gt;
 • 거래 추적 및 분석 기술&lt;br /&gt;
 • 산업 분야별 기존 시스템 연동 기술&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
다. 특허조사&lt;br /&gt;
&lt;br /&gt;
 ◇ 최근 비트코인 등 암호 화폐에 대한 관심이 증가함에 따라, 그 기술적 기반인 블록체인 관련 특허출원도 전 세계적으로 폭발적 증가 추세인 것으로 나타났다. 특허청(청장 성윤모)에 따르면, 지식재산 선진 5개국(IP4, 한국•미국•일본•중국•유럽)에 출원되어 조사 시점(‘18년 1월말 기준)까지 공개된 블록체인 관련 전 세계 특허 출원은 모두 1,248건으로 나타났다 특허 출원의 양은 많지 않으나, ’09년 블록체인이 최초 구현된 이래, ‘13년 27건에서 매년 2~3배 증가’해 ‘15년에는 257건, ’16년에는 594건(미공개건 제외)에 이르는 것으로 조사됐다. 출원인의 국적별로 살펴보면, 누적건수로는 미국이 1위로 집계되었지만, ‘16년 이후 중국이 연간 특허출원 건수에서 미국을 제치고 1위로 올라섰다. 조만간 누적건수에서도 중국이 1위를 차지할 것으로 예측된다.&lt;br /&gt;
&lt;br /&gt;
 ◇ G2(미국, 중국)로의 편중 현상도 심해, 미국과 중국이 전체 특허 출원의 대부분(78%)을 점유했으며, 3, 4위를 차지한 우리나라와 일본의 점유율은 8%, 3%에 불과했다. 한편, 특허출원의 질적 수준을 나타내는 간접지표인, 해외출원 비율에서는 미국이 중국을 제치고 압두적인 선두를 지켰다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 주체별로는, 전 세계 블록체인 특허출원 중 81%를 기업이 주도하고 있고, 미국은 은행 등 금융기업에 의한 특허출원도 활발한 편이다. 한편 우리나라는 대기업보다 벤처기업 등의 중소기업 비중(66.7%)이 매우 높은 특징을 보였으며, 금융기업에 의한 특허출원은 아직까진 없는 것으로 조사(‘18.1월말 조사 시점까지 공개된 특허출원 기준)되었다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 블록체인의 기본 개념은 이미 Open Source로 공개되어 누구도 특허를 갖지 못하는 자유 기술이다. 따라서 특허출원은 주로 보안, 운용, 활용 등 주변 기술을 중심으로 이뤄지고 있다. 특히, 블록체인이 암호 화폐에서 물류•의료•공공 서비스 등으로 활용 범위가 점차 확대됨에 따라 특허출원도 덩달아 활용 분야를 중심으로 증가할 것으로 전망된다.&lt;br /&gt;
&lt;br /&gt;
 ◇ KB금융그룹의 ‘블록체인을 활용한 모바일 앱 보안 솔루션 관련 기술특허’는 서비스 부문과 보안부분을 분리해 보안부문의 암호화키를 블록체인망에 보관해 안정성을 높였다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 골드만삭스의 ‘세틀코인(SETLcoin)’은 주식, 채권 등 실시간 거래뿐만 아니라 거래내역도 블록체인의 분산원장에 적용하여 위, 변조가 불가능한 첨단 핀테크를 가능하게 한다. &lt;br /&gt;
&lt;br /&gt;
 ◇ 미국의 대형 은행인 BoA(뱅크 오브 아메리카)도 15건의 특허를 출원했고, 20건 정도의 추가 특허를 출원할 예정이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
라. 특허전략&lt;br /&gt;
&lt;br /&gt;
 특허에서 공개된 비즈니스 모델은 블록체인 업체의 비즈니스 모델과 유사한 부분이 존재한다. 개인정보를 제공하고, 개인정보에 따른 보상금을 지급하는 구조이다. 위의 특허는 기존 특허에 대한 하나의 예시이고, 개인정보에 따른 보상과 관련된 기술, 개인 데이터를 추적하는 기술은 다른 특허에도 많이 기술되어 있기 때문에 이러한 기존의 비즈니스 모델 특허와 블록체인 특허가 차별점을 가지기 위해서는 블록체인과 블록체인과 트랜잭션을 발생시키는 노드 간의 동작에 대한 구체화, 블록 상에서의 데이터 처리 등에 관련된 특징들이 반드시 필요하다.&lt;br /&gt;
&lt;br /&gt;
 예를 들어, 블록체인에 올라간 스마트 콘트랙트를 기반으로 수집된 개인 정보가 블록체인과는 어떠한 관계를 가지고 처리되는지, 개인 정보의 거래는 블록체인 상에서 어떻게 수행되는지 보상은 블록체인 상에서 어떻게 발생되는지&lt;br /&gt;
위와 같은 블록체인, 블록과 연관된 구체적인 트랜잭션들이 블록체인 특허에 도시되고 기술되어야한다. 이러한 특징이 있다면, 블록체인 특허가 기존 특허와 차별화를 가질 수 있고 등록 가능성도 높아지게 됩니다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
가. 경쟁제품 조사 비교&lt;br /&gt;
◇ PlayKey&lt;br /&gt;
    &lt;br /&gt;
    - P2P와 블록체인 기술 기반의 게이머를 위한 세계 최초의 탈중앙화 클라우드 게이밍 플랫폼&lt;br /&gt;
    - 고성능의 컴퓨터를 가진 전세계 수십명의 독립적인 소유자가 커뮤니티 내에 결속하여 클라우드 게임 서비스 업체(채굴자)로 활동&lt;br /&gt;
    - 시스템 내 유일한 보편적인 에코 시스템 암호화폐 -PKT 토큰- 이 ICO를 통해 발급됨&lt;br /&gt;
    - 채굴자-게이머의 스마트 컨트랙트 형태로 구성되어 클라우드 게임 서비스의 높은 통합 수준을&lt;br /&gt;
      제공&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Google STADIA&lt;br /&gt;
  &lt;br /&gt;
 -  중앙집권형 클라우드 게이밍 플랫폼&lt;br /&gt;
 -  유튜브 기반이기 때문에 유튜브 재생만 가능하다면 저사양 PC든 스마트폰이든 태블릿 PC든 실시간 스트리밍 &lt;br /&gt;
을 통해 FHD 60프레임으로 게임 플레이 가능&lt;br /&gt;
 - 웹 브라우저에서 바로 실행되며 클릭 한/두 번으로 게임 플레이 가능&lt;br /&gt;
&lt;br /&gt;
나. 마케팅 전략&lt;br /&gt;
 1) EOS블록체인 기반 서비스를 제공함으로써&lt;br /&gt;
  ◇ 채굴자는 개인으로서 경제적이득(가상화폐)을 얻을 기회가 생긴다.&lt;br /&gt;
  ◇ 채굴자는 시장 활성화가 커져갈수록, 같은 서비스 제공으로 더 많은 이득을 얻을 수 있다.&lt;br /&gt;
  ◇ 사용자(게이머)는 저성능의 컴퓨터를 소유하고 있더라도, 약간의 이용료를 지불하여 고사양의 게임을 최고의 &lt;br /&gt;
 퀄리티로 즐길 수 있다.&lt;br /&gt;
  ◇ 사용자(게이머)는 기존 클라우드 게이밍 서비스보다도 훨씬 더 저렴한 가격으로 이용할 수 있다.&lt;br /&gt;
  ◇ 5G 상용화와 더불어 안정적인 서비스 제공을 통해 커다란 시장이 형성될 수 있다.&lt;br /&gt;
&lt;br /&gt;
 2) 월등한 EOS의 초당 트랜잭션 처리 수로 인한 게임 처리 속도의 향상&lt;br /&gt;
  ◇ 쾌적한 게임 플레이 가능&lt;br /&gt;
&lt;br /&gt;
 3) 국내에서 인기 있는 게임 위주 서비스 제공&lt;br /&gt;
  ◇ 기존의 클라우드 게이밍 플랫폼에서 제공되는 게임들은 해외에서 인기있는 게임 위주였기 때문 에 국내 게이 &lt;br /&gt;
 머들의 관심을 끌기 어려웠다.&lt;br /&gt;
  ◇ 국내에서 인기 있는 게임 위주로 서비스를 제공하여 국내 게이머들의 관심도 증가&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
&lt;br /&gt;
◇ 분산형 컴퓨팅을 통한 안정적인 서비스 제공&lt;br /&gt;
&lt;br /&gt;
◇ 저사양 플랫폼에서 고사양 게임 가능&lt;br /&gt;
&lt;br /&gt;
◇ 이더리움보다 월등한 EOS의 초당 트랜잭션 처리 수가 게임 처리 속도의 향상을 제공&lt;br /&gt;
&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
&lt;br /&gt;
◇ 새로운 기술 보급을 통한 시장 흐름 변화&lt;br /&gt;
&lt;br /&gt;
◇ 개인의 소비 패턴 변화(기존 : 하드웨어 성능 중시 → 서비스 제공이후 : 클라우드 서비스 중시)&lt;br /&gt;
&lt;br /&gt;
◇ 생소했던 클라우드 게이밍에 국내 인지도 상승&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
◇ 먼저 AWS 서비스를 기반으로 Node.js 웹 서버를 구축한 후, Ejs/CSS 등을 이용하여 간단하고 기본적인 페이지 라우팅 구조(Back-End), UI/UX(Front- End) 등을 구축해놓는다.&lt;br /&gt;
&lt;br /&gt;
◇ 그 다음, EOS.IO기반 로컬 체인을 구축하고, 웹 서버와 연동한 뒤 사용자 회원가입/지불 시스템 등의 로직을 Smart Contract로 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ Smart Contract 구현에 성공하면, 실 게임 구동 서버-클라이언트 간 기본적인 실시간 스트리밍 서비스를 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ 실시간 스트리밍 서비스 구현에 성공하면, Smart Contract로 사용자 - 게임 구동 서버 매칭 로직을 구현하고, 스트리밍 시 전송되는 비디오/오디오 데이터를 EOS.IO Storage 기반으로 저장하는 방식으로 EOS.IO 위에 올려서 스트리밍 서비스를 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ 마지막으로 세부적인 기능들을 구현한 뒤 UI/UX를 다듬고 테스트한다.&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
가. 개발 일정&lt;br /&gt;
&lt;br /&gt;
3월 : 기존 EOS 기술 및 클라우드 시스템 분석 &lt;br /&gt;
&lt;br /&gt;
분산형 클라우드 시스템 설계 및 구현 &lt;br /&gt;
&lt;br /&gt;
4월 : 게임 스트리밍 서비스 설계 및 구현&lt;br /&gt;
&lt;br /&gt;
5월 : 매칭 시스템 설계 및 구현&lt;br /&gt;
&lt;br /&gt;
6월 : 전체 시스템 테스트 및 검토&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
나. 구성원 및 추진체계&lt;br /&gt;
&lt;br /&gt;
◇김용준: 분산형 클라우드 시스템, 매칭 시스템 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇노기선: 분산형 클라우드 시스템, 게임 스트리밍 서비스 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇ 임종범: 기존 시스템 분석, 게임 스트리밍 서비스 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇ 장원석: 기존 시스템 분석, 매칭 시스템 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
1. 기능적 요구사항&lt;br /&gt;
&lt;br /&gt;
◇1) 사용자가 보유한 토큰양을 불러와 서비스 사용 가능 시간을 산출해준다.&lt;br /&gt;
&lt;br /&gt;
◇2) 게임 별로 각각 다른 비용을 책정하여, 그에 맞게 사용 시간을 차감한다. (고사양일수록 비용 상승)&lt;br /&gt;
&lt;br /&gt;
◇3) 서비스 사용 시작부터 종료시 까지, 사용자가 플레이 하는 게임의 영상을 스트리밍 서비스 형태로 제공한다.&lt;br /&gt;
&lt;br /&gt;
◇4) 키보드, 마우스 등 사용자가 게임 플레이를 위해 입력하는 입력 신호를 송/수신한다.&lt;br /&gt;
&lt;br /&gt;
◇5) 스피커, 스크린샷 등 사용자 컴퓨터에 출력되는 출력 신호를 송/수신한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. 비기능적 요구사항&lt;br /&gt;
&lt;br /&gt;
◇1) EOS와 AWS를 이용한 SmartContract 환경을 조성한다.&lt;br /&gt;
&lt;br /&gt;
◇2) IPFS를 이용하여 영상 스트리밍은 최소 30FPS에서 최대 60FPS까지 서비스 할수 있도록 한다.&lt;br /&gt;
&lt;br /&gt;
◇3) 게임 플레이 시 입/출력 신호의 딜레이 최소화는 아주 중요하다. 이 딜레이는 반드시 짧아야한다.&lt;br /&gt;
&lt;br /&gt;
◇4) 블록에는 게임 이용시간, 사용한 토큰 수, 플레이한 게임의 종류 등을 포함한다.&lt;br /&gt;
&lt;br /&gt;
====설계 사양====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
◇ 웹 플랫폼 기반으로 구축함으로써 다양한 기기(데스크탑, 모바일 기기 등)에서 접근하기가 용이하다.&lt;br /&gt;
&lt;br /&gt;
- 언제 어디서든 기기만 있으면 원하는 게임 실행 가능한 환경 구축&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
&lt;br /&gt;
- 고사양이 필요한 게임도 지원하여 하드웨어의 장벽 완화&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 실시간 게임 플레이 영상 및 입출력 조작 신호 송/수신(스트리밍)&lt;br /&gt;
&lt;br /&gt;
- IPFS 시스템을 이용해 빠른 속도의 오디오/비디오 데이터 전송&lt;br /&gt;
&lt;br /&gt;
- 기존의 실시간 스트리밍 방식에 비해 빠르고, 안전하고, 개방적임&lt;br /&gt;
&lt;br /&gt;
- 실시간 스트리밍 서비스에서 가장 중요한 요소인 지연 시간(Latency) 개선 가능&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ EOS 기반의 DApp으로 안정성 및 보안성, 가격 경쟁력 확보&lt;br /&gt;
&lt;br /&gt;
- EOS는 타 블록체인 기반의 DApp(이더리움 등)에 비해 많은 트랜잭션 처리가 가능하도록 설계되어 있어 안정적이고, 그 외 수많은 장점 덕에 점점 사용률이 높아지는 DApp 플랫폼이다.&lt;br /&gt;
&lt;br /&gt;
- 트랜잭션 당 사용료(Gas)를 내야 하는 이더리움(Ethereum)에 비해, EOS는 DApp 사용 시에 요금을 낼 필요가 없어 사용자 입장에서 경제적이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 블록체인에 정보를 기록함으로써 토큰 거래 정보의 위변조를 방지, 신뢰성을 보장한다.&lt;br /&gt;
&lt;br /&gt;
- 컴퓨팅 파워 제공자/게이머, 게임 플레이 관련 정보를 블록체인에 기록한다&lt;br /&gt;
&lt;br /&gt;
- 컴퓨팅 파워 제공자와 게이머의 매칭은 스마트 컨트랙트로 수행된다&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Adaptive HTTP Protocol을 활용하여 쾌적한 스트리밍 환경을 제공한다.&lt;br /&gt;
&lt;br /&gt;
- 동영상 콘텐츠를 다양한 해상도로 인코딩하고 여러 데이터 조각으로 나누어 저장한다.&lt;br /&gt;
&lt;br /&gt;
- 네트워크 상황에 따라 실시간으로 적절한 해상도를 가진 영상 데이터 조각들이 다운로드 되어 버퍼링 없는 스트리밍 환경을 제공한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
1 CLIENT : 웹 페이지를 통해 DApp에 접근하도록 구성, Node.js 기반 웹 Back-End, Front-End 구현(자체 구현)&lt;br /&gt;
&lt;br /&gt;
2 EOS.IO 기반 DApp : 오픈소스 소프트웨어인 EOS.IO를 기반으로 게이밍 플랫폼 DApp 개발(오픈소스 기반 구현)&lt;br /&gt;
&lt;br /&gt;
3 Smart Contract : 사용자(CLIENT)와의 이용권 - 요금 지불 시스템 및 요금을 지불한 사용자를 대상으로 게임을 구동할 수 있는 서버(SERVER)와 매칭 시스템 구현(자체 구현)&lt;br /&gt;
&lt;br /&gt;
4 IPFS File Storage : EOS.IO 내부에 IPFS 방식으로 설계되어 있는 EOS.IO Storage를 기반으로 구현(오픈소스기반 구현)&lt;br /&gt;
&lt;br /&gt;
5 Server : 게임을 실제 구동하는 서버, 구동 중 실시간으로 출력된 오디오/비디오 데이터를 캡처하여 오픈소스 소 프트웨어인 ffmpeg을 이용하여 인코딩 후, DApp 내부 IPFS File Storage에 업로드하고 사용자(CLIENT) 단말기에 서 받아 화면에 출력하는 방식으로 구현. 서버에 전달된 게이머의 입력신호는 서버에서 구동되는 게임의 입력으로 처리되도록 구현. (오픈소스 기반 구현)&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
 ◇ 웹 플랫폼 기반으로 구축&lt;br /&gt;
장점 : 다양한 기기에서 실행 가능&lt;br /&gt;
단점 : 따로 설정해 두지 않으면 웹 페이지 방문이 번거로울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
장점 : 게이머의 선택의 폭이 넓어짐&lt;br /&gt;
단점 : 상대적으로 관심이 적은 게임에 약간의 낭비된 비용이 생길 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 실시간 게임 플레이 영상 및 입출력 조작 신호 송/수신(스트리밍)&lt;br /&gt;
장점 : WebRTC를 이용해 빠르고 안전하고 개방적임&lt;br /&gt;
단점 : 다소 구현이 어려울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 기반의 DApp으로 안정성 및 보안성, 가격 경쟁력 확보&lt;br /&gt;
장점 : 안정적이고, 경제적임&lt;br /&gt;
단점 : EOS 기반 구현이 다소 어려울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 블록체인에 정보를 기록함으로써 토큰 거래 정보의 위변조를 방지, 신뢰성을 보장&lt;br /&gt;
장점 : 보안적으로 뛰어남&lt;br /&gt;
단점 : 블록생성만으로 자원을 많이 쓰기때문에 자원 낭비가 심함&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임목록창에서 게임선택시 바로 게임 어플리케이션이 실행될 수 있도록 상세구현&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임플레이 화면에서 클라이언트측 마우스와 게임서버측 마우스의 위치가 일치할 수 있는 방안 &lt;br /&gt;
    모색 -&amp;gt; 실제 게임플레이시 전체화면 모드로 실행 되도록&lt;br /&gt;
&lt;br /&gt;
 ◇ 웹페이지에서 회원설정 정보 확인 및 변경 기능을 추가 구현&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임플레이시 EOS 계정에 저장된 토큰을 활용한 게임 비용 지불 서비스 개발&lt;br /&gt;
&lt;br /&gt;
 ◇ 안드로이드/IOS 등 다양한 하드웨어에서도 원활히 서비스가 제공될 수 있는 방안 모색&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=KOS%EC%A1%B0&amp;diff=1506</id>
		<title>KOS조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=KOS%EC%A1%B0&amp;diff=1506"/>
				<updated>2019-06-20T15:26:01Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 완료작품의 평가 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' EOS기반 분산형 클라우드 게이밍 플랫폼 개발&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' Development of distributed cloud gaming platform based on EOS&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
KOS&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
김성환 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 김*준&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 노*선&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 임*범&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 장*석&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
게임 산업 규모는 매 년 커져감에 반해 하드웨어의 보급의 속도는 그렇지 못한 편이다. 이에 블록 체인 기술과 함께 분산형 클라우드 게이밍 플랫폼 서비스를 제공, 사용자(게이머)로 하여금 다양 한 플랫폼에서 고사양의 게임을 플레이 할 수 있도록 도와주는 것이 주된 개발 과제이다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
 ◇ EOS Block Chain을 활용한 분산형 클라우드 게이밍 DApp(Decentralized Application)&lt;br /&gt;
&lt;br /&gt;
 ◇ 저사양 PC를 소유한 게이머가 고사양 게임을 플레이 할 수 있는 Platform&lt;br /&gt;
&lt;br /&gt;
 ◇ 트랜잭션 처리 시 수수료가 필요 없는 EOS를 이용한 경제적인 서비스&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS의 월등한 트랙잭션 처리 속도로 인한 빠른 게임 플레이 환경 제공&lt;br /&gt;
&lt;br /&gt;
 ◇ 웹 플랫폼 기반 클라우드 게이밍 플랫폼 &lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
  ◇ 비디오, 음악 및 기타 서비스에 이어 게임 역시 클라우드로 전환하고 있다. 게이머들에게 클라우드 게임은 개인의 게임 하드웨어를 소유하는 것보다 10배 저렴하고, 공유 경제원리를 활용하고 있다.&lt;br /&gt;
     GPU, 인터넷 및 낮은 지연 스트리밍 개발을 통해, 개인 게임 하드웨어의 수요가 감소하고있다. 실제로 차세대 콘솔은 하드웨어를 기반으로하는 마지막 콘솔이 될 것이다 &lt;br /&gt;
    &lt;br /&gt;
 ◇ 게임을 클라우드 기술로 전환시키는 것은 피할 수 없다. Steam 플레이어의 70%는 GTA V와 같은 AAA 타이틀을 고해상도로 플레이 할 수 없으며, 플레이어의 30%는 PC에서 그런 게임을 실행하는 것 조차 할 수 없다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 클라우드 게임의 수요는 앞으로도 증가할 것이다. 최신 세대의 하드웨어에 대한 수요와 자원 집약적 VR 기술에 의한 게임이 발전함에 따라 가정용 하드웨어를 더 비싼 가격으로 만들고 이는 일반적인 게이머에게 비현실적인 가격이 될 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 업계 1인자들의 예상으로는 게임산업의 미래는 스트리밍이다. 해당 과제의 미션은 탈중앙화의 초기 단계에서 클라우드 게임의 가능성을 보는 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 분산형 클라우드 게이밍 플랫폼 개발을 통한 향상된 스트리밍 서비스 제공한다 따라서 기존의 클라우드 게이밍 플랫폼과 비교하여 스트리밍 지연속도가 감소할 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 기존 시장에서 사용되던 이더리움 기반이 아닌 EOS 기반 플랫폼을 개발하여 이더리움보다 월등한 EOS의 초당 트랜잭션 처리 수가 게임의 처리 속도의 향상을 제공할 것이다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
 ◇ Web-RTC를 활용한 화면공유 및 원격제어&lt;br /&gt;
&lt;br /&gt;
 ◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 토큰 거래를 통한 게임 플레이&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 기반의 DApp개발로 다양한 경쟁력 확보&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
&lt;br /&gt;
◇ 3세대 블록체인 후보 이오스(EOS) &lt;br /&gt;
&lt;br /&gt;
1) EOS란? &lt;br /&gt;
&lt;br /&gt;
① 프로젝트로서의 EOS&lt;br /&gt;
 • EOS는 블록체인 프로젝트로서, 최초의 블록체인 OS(First Blockchain Operating System)을 표방함. 즉, EOS는 DApp을 개발하고 구동하기 위한 플랫폼을 개발하는 프로젝트라 할 수 있음&lt;br /&gt;
 ※ ( DApp 이란? ) 탈중앙화 어플리케이션(Decentralized Application)의 약자. 데이터의 흐름, 저장, 로직이 탈중앙화 되어 있어서 중앙화된 어플리케이션의 대표적인 문제점인 운영자의 탈선, 해킹으로 인한 데이터 위변조, 개인 정보 유출, 서버 다운 등의 문제가 일어날 가능성을 극도로 낮춰줌&lt;br /&gt;
&lt;br /&gt;
 • DApp의 한계&lt;br /&gt;
 근간이 되는 블록체인의 성능 자체가 대부분 중앙화 서버대비 떨어지기 때문에 스케일링이 어렵고사용자들이 트랜잭션을 일으킬 때마다 비용을 지불해야함. 또, 중앙화된 서버에서의 개발 방식과는전혀 다르기 때문에, 해킹에 취약해지거나 퍼포먼스가 떨어지는 문제가 있을 수 있음&lt;br /&gt;
&lt;br /&gt;
 • EOS는 이러한 한계를 극복하기 위한 프로젝트라고 할 수 있음.&lt;br /&gt;
&lt;br /&gt;
 • 고성능을 요구하는 상용 서비스(거래소, 소셜미디어 등)가 가능한 수준의 스케일링이 가능&lt;br /&gt;
&lt;br /&gt;
 • 사용자들이 플랫폼을 사용할 때마다 지불해야 되는 비용(가스)가 없음&lt;br /&gt;
&lt;br /&gt;
② 소프트웨어로서의 EOS&lt;br /&gt;
 • Block.one이 개발중인 EOS.IO를 의미함&lt;br /&gt;
&lt;br /&gt;
③ 토큰으로서의 EOS&lt;br /&gt;
 • ERC20 : 이더리움 블록체인 상에 그 수량과 교환방식 등이 정의된 토큰&lt;br /&gt;
 • EOS21이라는 프로토콜을 통해 EOS기반의 토큰으로 전환할 수 있게 됨&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) EOS의 BP 시스템&lt;br /&gt;
① DPoS 방식의 EOS&lt;br /&gt;
&lt;br /&gt;
 • 대표자들은 전체적인 블록체인의 방향을 설정하고 블록 생성을 담당. 이러한 대표자를 블록프로듀서(Block Producer,BP)라고 부름&lt;br /&gt;
&lt;br /&gt;
② EOS DPoS의 대표자, BP의 역할과 보상&lt;br /&gt;
 • EOS BP의 역할&lt;br /&gt;
 1. EOS 메인 블록체인의 지원&lt;br /&gt;
     - 개발자, 플랫폼 커뮤니티 지원&lt;br /&gt;
     - 이오스 관련 콘텐츠 배급 등&lt;br /&gt;
 2. 이오스 메인 블록체인의 운영&lt;br /&gt;
     - 매 라운드 ( 126초 ) 동안 0.5초당 1개 블록 생성&lt;br /&gt;
&lt;br /&gt;
 • EOS BP의 혜택&lt;br /&gt;
     1. 1년 동안 EOS 발행량의 1%를 보상으로 받음&lt;br /&gt;
     2. 총 보상의 25%는 상위 21명 BP, 나머지 75%는 상위BP와 백업BP를 포함한 모든 BP가 투표율에 따라 &lt;br /&gt;
         받음&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) 스마트 컨트랙트&lt;br /&gt;
&lt;br /&gt;
① Contract를 구현하고, 강제하고, 실행시켜주는 code&lt;br /&gt;
&lt;br /&gt;
 • 믿지않는 사용자간의 areement+coordination&lt;br /&gt;
 • 블록체인에 복잡한 기능을 제공&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
② Smart contract의 안전성?&lt;br /&gt;
&lt;br /&gt;
 • Token economy - Decentralized governance구조와 Incentive mechanism으로 정의&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) 2세대 블록체인 이더리움(ETHEREUM)과 이오스(EOS)&lt;br /&gt;
&lt;br /&gt;
5) 나날이 증가하는 EOS 플랫폼 상의 DApp 수&lt;br /&gt;
&lt;br /&gt;
 • 해가갈수록 급격한 증가폭을 보여줌&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6) 다양한 장르의 EOS 플랫폼 상 DApp&lt;br /&gt;
&lt;br /&gt;
 • 게임, 도박, 부동산, 지갑, 소셜 등 다양한 장르의 플랫폼 상의 DApp 존재&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7) EOS.IO가 제공하는 기능&lt;br /&gt;
&lt;br /&gt;
 • 무료 평가판 제한 거래&lt;br /&gt;
 • 낮은 대기 시간 블록 확인(0.5초)&lt;br /&gt;
 • 오버 헤드가 낮은 비잔틴 오류 내성 결말&lt;br /&gt;
 • 선택적으로 높은 오버 헤드, 낮은 대기 시간의 BFT 최종기증&lt;br /&gt;
 • 웹 어셈블리를 기반으로 하는 스마트 계약 플랫폼&lt;br /&gt;
 • 스파스 헤더 라이트 클라이언트 검증용으로 설계&lt;br /&gt;
 • 정기 반복 트랜잭션&lt;br /&gt;
 • 시간 지연 보안&lt;br /&gt;
 • 계층적 역할 기반 권한&lt;br /&gt;
 • 생체 인식 하드웨어 보안 키 지원&lt;br /&gt;
 • 문맥 무효 검증 논리의 병렬 실행&lt;br /&gt;
 • 블록 체인 간 통신&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
나. 기술 로드맵&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
① 블록체인 기반 기술&lt;br /&gt;
 • 고성능 저비용 합의 기술&lt;br /&gt;
 • 스마트 계약 검증 기술&lt;br /&gt;
&lt;br /&gt;
② 블록체인 확장 기술&lt;br /&gt;
 • 대용량 데이터 처리 기술, 외부 데이터 연동 기술&lt;br /&gt;
 • 대규모 서비스 제공을 위한 확장성 확보 기술&lt;br /&gt;
&lt;br /&gt;
③ 블록체인 서비스 기술&lt;br /&gt;
 • 거래 추적 및 분석 기술&lt;br /&gt;
 • 산업 분야별 기존 시스템 연동 기술&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
다. 특허조사&lt;br /&gt;
&lt;br /&gt;
 ◇ 최근 비트코인 등 암호 화폐에 대한 관심이 증가함에 따라, 그 기술적 기반인 블록체인 관련 특허출원도 전 세계적으로 폭발적 증가 추세인 것으로 나타났다. 특허청(청장 성윤모)에 따르면, 지식재산 선진 5개국(IP4, 한국•미국•일본•중국•유럽)에 출원되어 조사 시점(‘18년 1월말 기준)까지 공개된 블록체인 관련 전 세계 특허 출원은 모두 1,248건으로 나타났다 특허 출원의 양은 많지 않으나, ’09년 블록체인이 최초 구현된 이래, ‘13년 27건에서 매년 2~3배 증가’해 ‘15년에는 257건, ’16년에는 594건(미공개건 제외)에 이르는 것으로 조사됐다. 출원인의 국적별로 살펴보면, 누적건수로는 미국이 1위로 집계되었지만, ‘16년 이후 중국이 연간 특허출원 건수에서 미국을 제치고 1위로 올라섰다. 조만간 누적건수에서도 중국이 1위를 차지할 것으로 예측된다.&lt;br /&gt;
&lt;br /&gt;
 ◇ G2(미국, 중국)로의 편중 현상도 심해, 미국과 중국이 전체 특허 출원의 대부분(78%)을 점유했으며, 3, 4위를 차지한 우리나라와 일본의 점유율은 8%, 3%에 불과했다. 한편, 특허출원의 질적 수준을 나타내는 간접지표인, 해외출원 비율에서는 미국이 중국을 제치고 압두적인 선두를 지켰다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 주체별로는, 전 세계 블록체인 특허출원 중 81%를 기업이 주도하고 있고, 미국은 은행 등 금융기업에 의한 특허출원도 활발한 편이다. 한편 우리나라는 대기업보다 벤처기업 등의 중소기업 비중(66.7%)이 매우 높은 특징을 보였으며, 금융기업에 의한 특허출원은 아직까진 없는 것으로 조사(‘18.1월말 조사 시점까지 공개된 특허출원 기준)되었다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 블록체인의 기본 개념은 이미 Open Source로 공개되어 누구도 특허를 갖지 못하는 자유 기술이다. 따라서 특허출원은 주로 보안, 운용, 활용 등 주변 기술을 중심으로 이뤄지고 있다. 특히, 블록체인이 암호 화폐에서 물류•의료•공공 서비스 등으로 활용 범위가 점차 확대됨에 따라 특허출원도 덩달아 활용 분야를 중심으로 증가할 것으로 전망된다.&lt;br /&gt;
&lt;br /&gt;
 ◇ KB금융그룹의 ‘블록체인을 활용한 모바일 앱 보안 솔루션 관련 기술특허’는 서비스 부문과 보안부분을 분리해 보안부문의 암호화키를 블록체인망에 보관해 안정성을 높였다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 골드만삭스의 ‘세틀코인(SETLcoin)’은 주식, 채권 등 실시간 거래뿐만 아니라 거래내역도 블록체인의 분산원장에 적용하여 위, 변조가 불가능한 첨단 핀테크를 가능하게 한다. &lt;br /&gt;
&lt;br /&gt;
 ◇ 미국의 대형 은행인 BoA(뱅크 오브 아메리카)도 15건의 특허를 출원했고, 20건 정도의 추가 특허를 출원할 예정이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
라. 특허전략&lt;br /&gt;
&lt;br /&gt;
 특허에서 공개된 비즈니스 모델은 블록체인 업체의 비즈니스 모델과 유사한 부분이 존재한다. 개인정보를 제공하고, 개인정보에 따른 보상금을 지급하는 구조이다. 위의 특허는 기존 특허에 대한 하나의 예시이고, 개인정보에 따른 보상과 관련된 기술, 개인 데이터를 추적하는 기술은 다른 특허에도 많이 기술되어 있기 때문에 이러한 기존의 비즈니스 모델 특허와 블록체인 특허가 차별점을 가지기 위해서는 블록체인과 블록체인과 트랜잭션을 발생시키는 노드 간의 동작에 대한 구체화, 블록 상에서의 데이터 처리 등에 관련된 특징들이 반드시 필요하다.&lt;br /&gt;
&lt;br /&gt;
 예를 들어, 블록체인에 올라간 스마트 콘트랙트를 기반으로 수집된 개인 정보가 블록체인과는 어떠한 관계를 가지고 처리되는지, 개인 정보의 거래는 블록체인 상에서 어떻게 수행되는지 보상은 블록체인 상에서 어떻게 발생되는지&lt;br /&gt;
위와 같은 블록체인, 블록과 연관된 구체적인 트랜잭션들이 블록체인 특허에 도시되고 기술되어야한다. 이러한 특징이 있다면, 블록체인 특허가 기존 특허와 차별화를 가질 수 있고 등록 가능성도 높아지게 됩니다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
가. 경쟁제품 조사 비교&lt;br /&gt;
◇ PlayKey&lt;br /&gt;
    &lt;br /&gt;
    - P2P와 블록체인 기술 기반의 게이머를 위한 세계 최초의 탈중앙화 클라우드 게이밍 플랫폼&lt;br /&gt;
    - 고성능의 컴퓨터를 가진 전세계 수십명의 독립적인 소유자가 커뮤니티 내에 결속하여 클라우드 게임 서비스 업체(채굴자)로 활동&lt;br /&gt;
    - 시스템 내 유일한 보편적인 에코 시스템 암호화폐 -PKT 토큰- 이 ICO를 통해 발급됨&lt;br /&gt;
    - 채굴자-게이머의 스마트 컨트랙트 형태로 구성되어 클라우드 게임 서비스의 높은 통합 수준을&lt;br /&gt;
      제공&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Google STADIA&lt;br /&gt;
  &lt;br /&gt;
 -  중앙집권형 클라우드 게이밍 플랫폼&lt;br /&gt;
 -  유튜브 기반이기 때문에 유튜브 재생만 가능하다면 저사양 PC든 스마트폰이든 태블릿 PC든 실시간 스트리밍 &lt;br /&gt;
을 통해 FHD 60프레임으로 게임 플레이 가능&lt;br /&gt;
 - 웹 브라우저에서 바로 실행되며 클릭 한/두 번으로 게임 플레이 가능&lt;br /&gt;
&lt;br /&gt;
나. 마케팅 전략&lt;br /&gt;
 1) EOS블록체인 기반 서비스를 제공함으로써&lt;br /&gt;
  ◇ 채굴자는 개인으로서 경제적이득(가상화폐)을 얻을 기회가 생긴다.&lt;br /&gt;
  ◇ 채굴자는 시장 활성화가 커져갈수록, 같은 서비스 제공으로 더 많은 이득을 얻을 수 있다.&lt;br /&gt;
  ◇ 사용자(게이머)는 저성능의 컴퓨터를 소유하고 있더라도, 약간의 이용료를 지불하여 고사양의 게임을 최고의 &lt;br /&gt;
 퀄리티로 즐길 수 있다.&lt;br /&gt;
  ◇ 사용자(게이머)는 기존 클라우드 게이밍 서비스보다도 훨씬 더 저렴한 가격으로 이용할 수 있다.&lt;br /&gt;
  ◇ 5G 상용화와 더불어 안정적인 서비스 제공을 통해 커다란 시장이 형성될 수 있다.&lt;br /&gt;
&lt;br /&gt;
 2) 월등한 EOS의 초당 트랜잭션 처리 수로 인한 게임 처리 속도의 향상&lt;br /&gt;
  ◇ 쾌적한 게임 플레이 가능&lt;br /&gt;
&lt;br /&gt;
 3) 국내에서 인기 있는 게임 위주 서비스 제공&lt;br /&gt;
  ◇ 기존의 클라우드 게이밍 플랫폼에서 제공되는 게임들은 해외에서 인기있는 게임 위주였기 때문 에 국내 게이 &lt;br /&gt;
 머들의 관심을 끌기 어려웠다.&lt;br /&gt;
  ◇ 국내에서 인기 있는 게임 위주로 서비스를 제공하여 국내 게이머들의 관심도 증가&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
&lt;br /&gt;
◇ 분산형 컴퓨팅을 통한 안정적인 서비스 제공&lt;br /&gt;
&lt;br /&gt;
◇ 저사양 플랫폼에서 고사양 게임 가능&lt;br /&gt;
&lt;br /&gt;
◇ 이더리움보다 월등한 EOS의 초당 트랜잭션 처리 수가 게임 처리 속도의 향상을 제공&lt;br /&gt;
&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
&lt;br /&gt;
◇ 새로운 기술 보급을 통한 시장 흐름 변화&lt;br /&gt;
&lt;br /&gt;
◇ 개인의 소비 패턴 변화(기존 : 하드웨어 성능 중시 → 서비스 제공이후 : 클라우드 서비스 중시)&lt;br /&gt;
&lt;br /&gt;
◇ 생소했던 클라우드 게이밍에 국내 인지도 상승&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
◇ 먼저 AWS 서비스를 기반으로 Node.js 웹 서버를 구축한 후, Ejs/CSS 등을 이용하여 간단하고 기본적인 페이지 라우팅 구조(Back-End), UI/UX(Front- End) 등을 구축해놓는다.&lt;br /&gt;
&lt;br /&gt;
◇ 그 다음, EOS.IO기반 로컬 체인을 구축하고, 웹 서버와 연동한 뒤 사용자 회원가입/지불 시스템 등의 로직을 Smart Contract로 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ Smart Contract 구현에 성공하면, 실 게임 구동 서버-클라이언트 간 기본적인 실시간 스트리밍 서비스를 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ 실시간 스트리밍 서비스 구현에 성공하면, Smart Contract로 사용자 - 게임 구동 서버 매칭 로직을 구현하고, 스트리밍 시 전송되는 비디오/오디오 데이터를 EOS.IO Storage 기반으로 저장하는 방식으로 EOS.IO 위에 올려서 스트리밍 서비스를 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ 마지막으로 세부적인 기능들을 구현한 뒤 UI/UX를 다듬고 테스트한다.&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
가. 개발 일정&lt;br /&gt;
&lt;br /&gt;
3월 : 기존 EOS 기술 및 클라우드 시스템 분석 &lt;br /&gt;
&lt;br /&gt;
분산형 클라우드 시스템 설계 및 구현 &lt;br /&gt;
&lt;br /&gt;
4월 : 게임 스트리밍 서비스 설계 및 구현&lt;br /&gt;
&lt;br /&gt;
5월 : 매칭 시스템 설계 및 구현&lt;br /&gt;
&lt;br /&gt;
6월 : 전체 시스템 테스트 및 검토&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
나. 구성원 및 추진체계&lt;br /&gt;
&lt;br /&gt;
◇김용준: 분산형 클라우드 시스템, 매칭 시스템 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇노기선: 분산형 클라우드 시스템, 게임 스트리밍 서비스 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇ 임종범: 기존 시스템 분석, 게임 스트리밍 서비스 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇ 장원석: 기존 시스템 분석, 매칭 시스템 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
1. 기능적 요구사항&lt;br /&gt;
&lt;br /&gt;
◇1) 사용자가 보유한 토큰양을 불러와 서비스 사용 가능 시간을 산출해준다.&lt;br /&gt;
&lt;br /&gt;
◇2) 게임 별로 각각 다른 비용을 책정하여, 그에 맞게 사용 시간을 차감한다. (고사양일수록 비용 상승)&lt;br /&gt;
&lt;br /&gt;
◇3) 서비스 사용 시작부터 종료시 까지, 사용자가 플레이 하는 게임의 영상을 스트리밍 서비스 형태로 제공한다.&lt;br /&gt;
&lt;br /&gt;
◇4) 키보드, 마우스 등 사용자가 게임 플레이를 위해 입력하는 입력 신호를 송/수신한다.&lt;br /&gt;
&lt;br /&gt;
◇5) 스피커, 스크린샷 등 사용자 컴퓨터에 출력되는 출력 신호를 송/수신한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. 비기능적 요구사항&lt;br /&gt;
&lt;br /&gt;
◇1) EOS와 AWS를 이용한 SmartContract 환경을 조성한다.&lt;br /&gt;
&lt;br /&gt;
◇2) IPFS를 이용하여 영상 스트리밍은 최소 30FPS에서 최대 60FPS까지 서비스 할수 있도록 한다.&lt;br /&gt;
&lt;br /&gt;
◇3) 게임 플레이 시 입/출력 신호의 딜레이 최소화는 아주 중요하다. 이 딜레이는 반드시 짧아야한다.&lt;br /&gt;
&lt;br /&gt;
◇4) 블록에는 게임 이용시간, 사용한 토큰 수, 플레이한 게임의 종류 등을 포함한다.&lt;br /&gt;
&lt;br /&gt;
====설계 사양====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
◇ 웹 플랫폼 기반으로 구축함으로써 다양한 기기(데스크탑, 모바일 기기 등)에서 접근하기가 용이하다.&lt;br /&gt;
&lt;br /&gt;
- 언제 어디서든 기기만 있으면 원하는 게임 실행 가능한 환경 구축&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
&lt;br /&gt;
- 고사양이 필요한 게임도 지원하여 하드웨어의 장벽 완화&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 실시간 게임 플레이 영상 및 입출력 조작 신호 송/수신(스트리밍)&lt;br /&gt;
&lt;br /&gt;
- IPFS 시스템을 이용해 빠른 속도의 오디오/비디오 데이터 전송&lt;br /&gt;
&lt;br /&gt;
- 기존의 실시간 스트리밍 방식에 비해 빠르고, 안전하고, 개방적임&lt;br /&gt;
&lt;br /&gt;
- 실시간 스트리밍 서비스에서 가장 중요한 요소인 지연 시간(Latency) 개선 가능&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ EOS 기반의 DApp으로 안정성 및 보안성, 가격 경쟁력 확보&lt;br /&gt;
&lt;br /&gt;
- EOS는 타 블록체인 기반의 DApp(이더리움 등)에 비해 많은 트랜잭션 처리가 가능하도록 설계되어 있어 안정적이고, 그 외 수많은 장점 덕에 점점 사용률이 높아지는 DApp 플랫폼이다.&lt;br /&gt;
&lt;br /&gt;
- 트랜잭션 당 사용료(Gas)를 내야 하는 이더리움(Ethereum)에 비해, EOS는 DApp 사용 시에 요금을 낼 필요가 없어 사용자 입장에서 경제적이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 블록체인에 정보를 기록함으로써 토큰 거래 정보의 위변조를 방지, 신뢰성을 보장한다.&lt;br /&gt;
&lt;br /&gt;
- 컴퓨팅 파워 제공자/게이머, 게임 플레이 관련 정보를 블록체인에 기록한다&lt;br /&gt;
&lt;br /&gt;
- 컴퓨팅 파워 제공자와 게이머의 매칭은 스마트 컨트랙트로 수행된다&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Adaptive HTTP Protocol을 활용하여 쾌적한 스트리밍 환경을 제공한다.&lt;br /&gt;
&lt;br /&gt;
- 동영상 콘텐츠를 다양한 해상도로 인코딩하고 여러 데이터 조각으로 나누어 저장한다.&lt;br /&gt;
&lt;br /&gt;
- 네트워크 상황에 따라 실시간으로 적절한 해상도를 가진 영상 데이터 조각들이 다운로드 되어 버퍼링 없는 스트리밍 환경을 제공한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
1 CLIENT : 웹 페이지를 통해 DApp에 접근하도록 구성, Node.js 기반 웹 Back-End, Front-End 구현(자체 구현)&lt;br /&gt;
&lt;br /&gt;
2 EOS.IO 기반 DApp : 오픈소스 소프트웨어인 EOS.IO를 기반으로 게이밍 플랫폼 DApp 개발(오픈소스 기반 구현)&lt;br /&gt;
&lt;br /&gt;
3 Smart Contract : 사용자(CLIENT)와의 이용권 - 요금 지불 시스템 및 요금을 지불한 사용자를 대상으로 게임을 구동할 수 있는 서버(SERVER)와 매칭 시스템 구현(자체 구현)&lt;br /&gt;
&lt;br /&gt;
4 IPFS File Storage : EOS.IO 내부에 IPFS 방식으로 설계되어 있는 EOS.IO Storage를 기반으로 구현(오픈소스기반 구현)&lt;br /&gt;
&lt;br /&gt;
5 Server : 게임을 실제 구동하는 서버, 구동 중 실시간으로 출력된 오디오/비디오 데이터를 캡처하여 오픈소스 소 프트웨어인 ffmpeg을 이용하여 인코딩 후, DApp 내부 IPFS File Storage에 업로드하고 사용자(CLIENT) 단말기에 서 받아 화면에 출력하는 방식으로 구현. 서버에 전달된 게이머의 입력신호는 서버에서 구동되는 게임의 입력으로 처리되도록 구현. (오픈소스 기반 구현)&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
 ◇ 웹 플랫폼 기반으로 구축&lt;br /&gt;
- 장점 : 다양한 기기에서 실행 가능&lt;br /&gt;
- 단점 : 따로 설정해 두지 않으면 웹 페이지 방문이 번거로울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
- 장점 : 게이머의 선택의 폭이 넓어짐&lt;br /&gt;
- 단점 : 상대적으로 관심이 적은 게임에 약간의 낭비된 비용이 생길 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 실시간 게임 플레이 영상 및 입출력 조작 신호 송/수신(스트리밍)&lt;br /&gt;
- 장점 : WebRTC를 이용해 빠르고 안전하고 개방적임&lt;br /&gt;
- 단점 : 다소 구현이 어려울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 기반의 DApp으로 안정성 및 보안성, 가격 경쟁력 확보&lt;br /&gt;
- 장점 : 안정적이고, 경제적임&lt;br /&gt;
- 단점 : EOS 기반 구현이 다소 어려울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 블록체인에 정보를 기록함으로써 토큰 거래 정보의 위변조를 방지, 신뢰성을 보장&lt;br /&gt;
- 장점 : 보안적으로 뛰어남&lt;br /&gt;
- 단점 : 블록생성만으로 자원을 많이 쓰기때문에 자원 낭비가 심함&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임목록창에서 게임선택시 바로 게임 어플리케이션이 실행될 수 있도록 상세구현&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임플레이 화면에서 클라이언트측 마우스와 게임서버측 마우스의 위치가 일치할 수 있는 방안 &lt;br /&gt;
    모색 -&amp;gt; 실제 게임플레이시 전체화면 모드로 실행 되도록&lt;br /&gt;
&lt;br /&gt;
 ◇ 웹페이지에서 회원설정 정보 확인 및 변경 기능을 추가 구현&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임플레이시 EOS 계정에 저장된 토큰을 활용한 게임 비용 지불 서비스 개발&lt;br /&gt;
&lt;br /&gt;
 ◇ 안드로이드/IOS 등 다양한 하드웨어에서도 원활히 서비스가 제공될 수 있는 방안 모색&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=KOS%EC%A1%B0&amp;diff=1505</id>
		<title>KOS조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=KOS%EC%A1%B0&amp;diff=1505"/>
				<updated>2019-06-20T15:25:05Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 완료작품의 평가 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' EOS기반 분산형 클라우드 게이밍 플랫폼 개발&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' Development of distributed cloud gaming platform based on EOS&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
KOS&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
김성환 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 김*준&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 노*선&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 임*범&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 장*석&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
게임 산업 규모는 매 년 커져감에 반해 하드웨어의 보급의 속도는 그렇지 못한 편이다. 이에 블록 체인 기술과 함께 분산형 클라우드 게이밍 플랫폼 서비스를 제공, 사용자(게이머)로 하여금 다양 한 플랫폼에서 고사양의 게임을 플레이 할 수 있도록 도와주는 것이 주된 개발 과제이다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
 ◇ EOS Block Chain을 활용한 분산형 클라우드 게이밍 DApp(Decentralized Application)&lt;br /&gt;
&lt;br /&gt;
 ◇ 저사양 PC를 소유한 게이머가 고사양 게임을 플레이 할 수 있는 Platform&lt;br /&gt;
&lt;br /&gt;
 ◇ 트랜잭션 처리 시 수수료가 필요 없는 EOS를 이용한 경제적인 서비스&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS의 월등한 트랙잭션 처리 속도로 인한 빠른 게임 플레이 환경 제공&lt;br /&gt;
&lt;br /&gt;
 ◇ 웹 플랫폼 기반 클라우드 게이밍 플랫폼 &lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
  ◇ 비디오, 음악 및 기타 서비스에 이어 게임 역시 클라우드로 전환하고 있다. 게이머들에게 클라우드 게임은 개인의 게임 하드웨어를 소유하는 것보다 10배 저렴하고, 공유 경제원리를 활용하고 있다.&lt;br /&gt;
     GPU, 인터넷 및 낮은 지연 스트리밍 개발을 통해, 개인 게임 하드웨어의 수요가 감소하고있다. 실제로 차세대 콘솔은 하드웨어를 기반으로하는 마지막 콘솔이 될 것이다 &lt;br /&gt;
    &lt;br /&gt;
 ◇ 게임을 클라우드 기술로 전환시키는 것은 피할 수 없다. Steam 플레이어의 70%는 GTA V와 같은 AAA 타이틀을 고해상도로 플레이 할 수 없으며, 플레이어의 30%는 PC에서 그런 게임을 실행하는 것 조차 할 수 없다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 클라우드 게임의 수요는 앞으로도 증가할 것이다. 최신 세대의 하드웨어에 대한 수요와 자원 집약적 VR 기술에 의한 게임이 발전함에 따라 가정용 하드웨어를 더 비싼 가격으로 만들고 이는 일반적인 게이머에게 비현실적인 가격이 될 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 업계 1인자들의 예상으로는 게임산업의 미래는 스트리밍이다. 해당 과제의 미션은 탈중앙화의 초기 단계에서 클라우드 게임의 가능성을 보는 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 분산형 클라우드 게이밍 플랫폼 개발을 통한 향상된 스트리밍 서비스 제공한다 따라서 기존의 클라우드 게이밍 플랫폼과 비교하여 스트리밍 지연속도가 감소할 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 기존 시장에서 사용되던 이더리움 기반이 아닌 EOS 기반 플랫폼을 개발하여 이더리움보다 월등한 EOS의 초당 트랜잭션 처리 수가 게임의 처리 속도의 향상을 제공할 것이다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
 ◇ Web-RTC를 활용한 화면공유 및 원격제어&lt;br /&gt;
&lt;br /&gt;
 ◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 토큰 거래를 통한 게임 플레이&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 기반의 DApp개발로 다양한 경쟁력 확보&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
&lt;br /&gt;
◇ 3세대 블록체인 후보 이오스(EOS) &lt;br /&gt;
&lt;br /&gt;
1) EOS란? &lt;br /&gt;
&lt;br /&gt;
① 프로젝트로서의 EOS&lt;br /&gt;
 • EOS는 블록체인 프로젝트로서, 최초의 블록체인 OS(First Blockchain Operating System)을 표방함. 즉, EOS는 DApp을 개발하고 구동하기 위한 플랫폼을 개발하는 프로젝트라 할 수 있음&lt;br /&gt;
 ※ ( DApp 이란? ) 탈중앙화 어플리케이션(Decentralized Application)의 약자. 데이터의 흐름, 저장, 로직이 탈중앙화 되어 있어서 중앙화된 어플리케이션의 대표적인 문제점인 운영자의 탈선, 해킹으로 인한 데이터 위변조, 개인 정보 유출, 서버 다운 등의 문제가 일어날 가능성을 극도로 낮춰줌&lt;br /&gt;
&lt;br /&gt;
 • DApp의 한계&lt;br /&gt;
 근간이 되는 블록체인의 성능 자체가 대부분 중앙화 서버대비 떨어지기 때문에 스케일링이 어렵고사용자들이 트랜잭션을 일으킬 때마다 비용을 지불해야함. 또, 중앙화된 서버에서의 개발 방식과는전혀 다르기 때문에, 해킹에 취약해지거나 퍼포먼스가 떨어지는 문제가 있을 수 있음&lt;br /&gt;
&lt;br /&gt;
 • EOS는 이러한 한계를 극복하기 위한 프로젝트라고 할 수 있음.&lt;br /&gt;
&lt;br /&gt;
 • 고성능을 요구하는 상용 서비스(거래소, 소셜미디어 등)가 가능한 수준의 스케일링이 가능&lt;br /&gt;
&lt;br /&gt;
 • 사용자들이 플랫폼을 사용할 때마다 지불해야 되는 비용(가스)가 없음&lt;br /&gt;
&lt;br /&gt;
② 소프트웨어로서의 EOS&lt;br /&gt;
 • Block.one이 개발중인 EOS.IO를 의미함&lt;br /&gt;
&lt;br /&gt;
③ 토큰으로서의 EOS&lt;br /&gt;
 • ERC20 : 이더리움 블록체인 상에 그 수량과 교환방식 등이 정의된 토큰&lt;br /&gt;
 • EOS21이라는 프로토콜을 통해 EOS기반의 토큰으로 전환할 수 있게 됨&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) EOS의 BP 시스템&lt;br /&gt;
① DPoS 방식의 EOS&lt;br /&gt;
&lt;br /&gt;
 • 대표자들은 전체적인 블록체인의 방향을 설정하고 블록 생성을 담당. 이러한 대표자를 블록프로듀서(Block Producer,BP)라고 부름&lt;br /&gt;
&lt;br /&gt;
② EOS DPoS의 대표자, BP의 역할과 보상&lt;br /&gt;
 • EOS BP의 역할&lt;br /&gt;
 1. EOS 메인 블록체인의 지원&lt;br /&gt;
     - 개발자, 플랫폼 커뮤니티 지원&lt;br /&gt;
     - 이오스 관련 콘텐츠 배급 등&lt;br /&gt;
 2. 이오스 메인 블록체인의 운영&lt;br /&gt;
     - 매 라운드 ( 126초 ) 동안 0.5초당 1개 블록 생성&lt;br /&gt;
&lt;br /&gt;
 • EOS BP의 혜택&lt;br /&gt;
     1. 1년 동안 EOS 발행량의 1%를 보상으로 받음&lt;br /&gt;
     2. 총 보상의 25%는 상위 21명 BP, 나머지 75%는 상위BP와 백업BP를 포함한 모든 BP가 투표율에 따라 &lt;br /&gt;
         받음&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) 스마트 컨트랙트&lt;br /&gt;
&lt;br /&gt;
① Contract를 구현하고, 강제하고, 실행시켜주는 code&lt;br /&gt;
&lt;br /&gt;
 • 믿지않는 사용자간의 areement+coordination&lt;br /&gt;
 • 블록체인에 복잡한 기능을 제공&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
② Smart contract의 안전성?&lt;br /&gt;
&lt;br /&gt;
 • Token economy - Decentralized governance구조와 Incentive mechanism으로 정의&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) 2세대 블록체인 이더리움(ETHEREUM)과 이오스(EOS)&lt;br /&gt;
&lt;br /&gt;
5) 나날이 증가하는 EOS 플랫폼 상의 DApp 수&lt;br /&gt;
&lt;br /&gt;
 • 해가갈수록 급격한 증가폭을 보여줌&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6) 다양한 장르의 EOS 플랫폼 상 DApp&lt;br /&gt;
&lt;br /&gt;
 • 게임, 도박, 부동산, 지갑, 소셜 등 다양한 장르의 플랫폼 상의 DApp 존재&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7) EOS.IO가 제공하는 기능&lt;br /&gt;
&lt;br /&gt;
 • 무료 평가판 제한 거래&lt;br /&gt;
 • 낮은 대기 시간 블록 확인(0.5초)&lt;br /&gt;
 • 오버 헤드가 낮은 비잔틴 오류 내성 결말&lt;br /&gt;
 • 선택적으로 높은 오버 헤드, 낮은 대기 시간의 BFT 최종기증&lt;br /&gt;
 • 웹 어셈블리를 기반으로 하는 스마트 계약 플랫폼&lt;br /&gt;
 • 스파스 헤더 라이트 클라이언트 검증용으로 설계&lt;br /&gt;
 • 정기 반복 트랜잭션&lt;br /&gt;
 • 시간 지연 보안&lt;br /&gt;
 • 계층적 역할 기반 권한&lt;br /&gt;
 • 생체 인식 하드웨어 보안 키 지원&lt;br /&gt;
 • 문맥 무효 검증 논리의 병렬 실행&lt;br /&gt;
 • 블록 체인 간 통신&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
나. 기술 로드맵&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
① 블록체인 기반 기술&lt;br /&gt;
 • 고성능 저비용 합의 기술&lt;br /&gt;
 • 스마트 계약 검증 기술&lt;br /&gt;
&lt;br /&gt;
② 블록체인 확장 기술&lt;br /&gt;
 • 대용량 데이터 처리 기술, 외부 데이터 연동 기술&lt;br /&gt;
 • 대규모 서비스 제공을 위한 확장성 확보 기술&lt;br /&gt;
&lt;br /&gt;
③ 블록체인 서비스 기술&lt;br /&gt;
 • 거래 추적 및 분석 기술&lt;br /&gt;
 • 산업 분야별 기존 시스템 연동 기술&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
다. 특허조사&lt;br /&gt;
&lt;br /&gt;
 ◇ 최근 비트코인 등 암호 화폐에 대한 관심이 증가함에 따라, 그 기술적 기반인 블록체인 관련 특허출원도 전 세계적으로 폭발적 증가 추세인 것으로 나타났다. 특허청(청장 성윤모)에 따르면, 지식재산 선진 5개국(IP4, 한국•미국•일본•중국•유럽)에 출원되어 조사 시점(‘18년 1월말 기준)까지 공개된 블록체인 관련 전 세계 특허 출원은 모두 1,248건으로 나타났다 특허 출원의 양은 많지 않으나, ’09년 블록체인이 최초 구현된 이래, ‘13년 27건에서 매년 2~3배 증가’해 ‘15년에는 257건, ’16년에는 594건(미공개건 제외)에 이르는 것으로 조사됐다. 출원인의 국적별로 살펴보면, 누적건수로는 미국이 1위로 집계되었지만, ‘16년 이후 중국이 연간 특허출원 건수에서 미국을 제치고 1위로 올라섰다. 조만간 누적건수에서도 중국이 1위를 차지할 것으로 예측된다.&lt;br /&gt;
&lt;br /&gt;
 ◇ G2(미국, 중국)로의 편중 현상도 심해, 미국과 중국이 전체 특허 출원의 대부분(78%)을 점유했으며, 3, 4위를 차지한 우리나라와 일본의 점유율은 8%, 3%에 불과했다. 한편, 특허출원의 질적 수준을 나타내는 간접지표인, 해외출원 비율에서는 미국이 중국을 제치고 압두적인 선두를 지켰다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 주체별로는, 전 세계 블록체인 특허출원 중 81%를 기업이 주도하고 있고, 미국은 은행 등 금융기업에 의한 특허출원도 활발한 편이다. 한편 우리나라는 대기업보다 벤처기업 등의 중소기업 비중(66.7%)이 매우 높은 특징을 보였으며, 금융기업에 의한 특허출원은 아직까진 없는 것으로 조사(‘18.1월말 조사 시점까지 공개된 특허출원 기준)되었다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 블록체인의 기본 개념은 이미 Open Source로 공개되어 누구도 특허를 갖지 못하는 자유 기술이다. 따라서 특허출원은 주로 보안, 운용, 활용 등 주변 기술을 중심으로 이뤄지고 있다. 특히, 블록체인이 암호 화폐에서 물류•의료•공공 서비스 등으로 활용 범위가 점차 확대됨에 따라 특허출원도 덩달아 활용 분야를 중심으로 증가할 것으로 전망된다.&lt;br /&gt;
&lt;br /&gt;
 ◇ KB금융그룹의 ‘블록체인을 활용한 모바일 앱 보안 솔루션 관련 기술특허’는 서비스 부문과 보안부분을 분리해 보안부문의 암호화키를 블록체인망에 보관해 안정성을 높였다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 골드만삭스의 ‘세틀코인(SETLcoin)’은 주식, 채권 등 실시간 거래뿐만 아니라 거래내역도 블록체인의 분산원장에 적용하여 위, 변조가 불가능한 첨단 핀테크를 가능하게 한다. &lt;br /&gt;
&lt;br /&gt;
 ◇ 미국의 대형 은행인 BoA(뱅크 오브 아메리카)도 15건의 특허를 출원했고, 20건 정도의 추가 특허를 출원할 예정이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
라. 특허전략&lt;br /&gt;
&lt;br /&gt;
 특허에서 공개된 비즈니스 모델은 블록체인 업체의 비즈니스 모델과 유사한 부분이 존재한다. 개인정보를 제공하고, 개인정보에 따른 보상금을 지급하는 구조이다. 위의 특허는 기존 특허에 대한 하나의 예시이고, 개인정보에 따른 보상과 관련된 기술, 개인 데이터를 추적하는 기술은 다른 특허에도 많이 기술되어 있기 때문에 이러한 기존의 비즈니스 모델 특허와 블록체인 특허가 차별점을 가지기 위해서는 블록체인과 블록체인과 트랜잭션을 발생시키는 노드 간의 동작에 대한 구체화, 블록 상에서의 데이터 처리 등에 관련된 특징들이 반드시 필요하다.&lt;br /&gt;
&lt;br /&gt;
 예를 들어, 블록체인에 올라간 스마트 콘트랙트를 기반으로 수집된 개인 정보가 블록체인과는 어떠한 관계를 가지고 처리되는지, 개인 정보의 거래는 블록체인 상에서 어떻게 수행되는지 보상은 블록체인 상에서 어떻게 발생되는지&lt;br /&gt;
위와 같은 블록체인, 블록과 연관된 구체적인 트랜잭션들이 블록체인 특허에 도시되고 기술되어야한다. 이러한 특징이 있다면, 블록체인 특허가 기존 특허와 차별화를 가질 수 있고 등록 가능성도 높아지게 됩니다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
가. 경쟁제품 조사 비교&lt;br /&gt;
◇ PlayKey&lt;br /&gt;
    &lt;br /&gt;
    - P2P와 블록체인 기술 기반의 게이머를 위한 세계 최초의 탈중앙화 클라우드 게이밍 플랫폼&lt;br /&gt;
    - 고성능의 컴퓨터를 가진 전세계 수십명의 독립적인 소유자가 커뮤니티 내에 결속하여 클라우드 게임 서비스 업체(채굴자)로 활동&lt;br /&gt;
    - 시스템 내 유일한 보편적인 에코 시스템 암호화폐 -PKT 토큰- 이 ICO를 통해 발급됨&lt;br /&gt;
    - 채굴자-게이머의 스마트 컨트랙트 형태로 구성되어 클라우드 게임 서비스의 높은 통합 수준을&lt;br /&gt;
      제공&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Google STADIA&lt;br /&gt;
  &lt;br /&gt;
 -  중앙집권형 클라우드 게이밍 플랫폼&lt;br /&gt;
 -  유튜브 기반이기 때문에 유튜브 재생만 가능하다면 저사양 PC든 스마트폰이든 태블릿 PC든 실시간 스트리밍 &lt;br /&gt;
을 통해 FHD 60프레임으로 게임 플레이 가능&lt;br /&gt;
 - 웹 브라우저에서 바로 실행되며 클릭 한/두 번으로 게임 플레이 가능&lt;br /&gt;
&lt;br /&gt;
나. 마케팅 전략&lt;br /&gt;
 1) EOS블록체인 기반 서비스를 제공함으로써&lt;br /&gt;
  ◇ 채굴자는 개인으로서 경제적이득(가상화폐)을 얻을 기회가 생긴다.&lt;br /&gt;
  ◇ 채굴자는 시장 활성화가 커져갈수록, 같은 서비스 제공으로 더 많은 이득을 얻을 수 있다.&lt;br /&gt;
  ◇ 사용자(게이머)는 저성능의 컴퓨터를 소유하고 있더라도, 약간의 이용료를 지불하여 고사양의 게임을 최고의 &lt;br /&gt;
 퀄리티로 즐길 수 있다.&lt;br /&gt;
  ◇ 사용자(게이머)는 기존 클라우드 게이밍 서비스보다도 훨씬 더 저렴한 가격으로 이용할 수 있다.&lt;br /&gt;
  ◇ 5G 상용화와 더불어 안정적인 서비스 제공을 통해 커다란 시장이 형성될 수 있다.&lt;br /&gt;
&lt;br /&gt;
 2) 월등한 EOS의 초당 트랜잭션 처리 수로 인한 게임 처리 속도의 향상&lt;br /&gt;
  ◇ 쾌적한 게임 플레이 가능&lt;br /&gt;
&lt;br /&gt;
 3) 국내에서 인기 있는 게임 위주 서비스 제공&lt;br /&gt;
  ◇ 기존의 클라우드 게이밍 플랫폼에서 제공되는 게임들은 해외에서 인기있는 게임 위주였기 때문 에 국내 게이 &lt;br /&gt;
 머들의 관심을 끌기 어려웠다.&lt;br /&gt;
  ◇ 국내에서 인기 있는 게임 위주로 서비스를 제공하여 국내 게이머들의 관심도 증가&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
&lt;br /&gt;
◇ 분산형 컴퓨팅을 통한 안정적인 서비스 제공&lt;br /&gt;
&lt;br /&gt;
◇ 저사양 플랫폼에서 고사양 게임 가능&lt;br /&gt;
&lt;br /&gt;
◇ 이더리움보다 월등한 EOS의 초당 트랜잭션 처리 수가 게임 처리 속도의 향상을 제공&lt;br /&gt;
&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
&lt;br /&gt;
◇ 새로운 기술 보급을 통한 시장 흐름 변화&lt;br /&gt;
&lt;br /&gt;
◇ 개인의 소비 패턴 변화(기존 : 하드웨어 성능 중시 → 서비스 제공이후 : 클라우드 서비스 중시)&lt;br /&gt;
&lt;br /&gt;
◇ 생소했던 클라우드 게이밍에 국내 인지도 상승&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
◇ 먼저 AWS 서비스를 기반으로 Node.js 웹 서버를 구축한 후, Ejs/CSS 등을 이용하여 간단하고 기본적인 페이지 라우팅 구조(Back-End), UI/UX(Front- End) 등을 구축해놓는다.&lt;br /&gt;
&lt;br /&gt;
◇ 그 다음, EOS.IO기반 로컬 체인을 구축하고, 웹 서버와 연동한 뒤 사용자 회원가입/지불 시스템 등의 로직을 Smart Contract로 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ Smart Contract 구현에 성공하면, 실 게임 구동 서버-클라이언트 간 기본적인 실시간 스트리밍 서비스를 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ 실시간 스트리밍 서비스 구현에 성공하면, Smart Contract로 사용자 - 게임 구동 서버 매칭 로직을 구현하고, 스트리밍 시 전송되는 비디오/오디오 데이터를 EOS.IO Storage 기반으로 저장하는 방식으로 EOS.IO 위에 올려서 스트리밍 서비스를 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ 마지막으로 세부적인 기능들을 구현한 뒤 UI/UX를 다듬고 테스트한다.&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
가. 개발 일정&lt;br /&gt;
&lt;br /&gt;
3월 : 기존 EOS 기술 및 클라우드 시스템 분석 &lt;br /&gt;
&lt;br /&gt;
분산형 클라우드 시스템 설계 및 구현 &lt;br /&gt;
&lt;br /&gt;
4월 : 게임 스트리밍 서비스 설계 및 구현&lt;br /&gt;
&lt;br /&gt;
5월 : 매칭 시스템 설계 및 구현&lt;br /&gt;
&lt;br /&gt;
6월 : 전체 시스템 테스트 및 검토&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
나. 구성원 및 추진체계&lt;br /&gt;
&lt;br /&gt;
◇김용준: 분산형 클라우드 시스템, 매칭 시스템 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇노기선: 분산형 클라우드 시스템, 게임 스트리밍 서비스 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇ 임종범: 기존 시스템 분석, 게임 스트리밍 서비스 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇ 장원석: 기존 시스템 분석, 매칭 시스템 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
1. 기능적 요구사항&lt;br /&gt;
&lt;br /&gt;
◇1) 사용자가 보유한 토큰양을 불러와 서비스 사용 가능 시간을 산출해준다.&lt;br /&gt;
&lt;br /&gt;
◇2) 게임 별로 각각 다른 비용을 책정하여, 그에 맞게 사용 시간을 차감한다. (고사양일수록 비용 상승)&lt;br /&gt;
&lt;br /&gt;
◇3) 서비스 사용 시작부터 종료시 까지, 사용자가 플레이 하는 게임의 영상을 스트리밍 서비스 형태로 제공한다.&lt;br /&gt;
&lt;br /&gt;
◇4) 키보드, 마우스 등 사용자가 게임 플레이를 위해 입력하는 입력 신호를 송/수신한다.&lt;br /&gt;
&lt;br /&gt;
◇5) 스피커, 스크린샷 등 사용자 컴퓨터에 출력되는 출력 신호를 송/수신한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. 비기능적 요구사항&lt;br /&gt;
&lt;br /&gt;
◇1) EOS와 AWS를 이용한 SmartContract 환경을 조성한다.&lt;br /&gt;
&lt;br /&gt;
◇2) IPFS를 이용하여 영상 스트리밍은 최소 30FPS에서 최대 60FPS까지 서비스 할수 있도록 한다.&lt;br /&gt;
&lt;br /&gt;
◇3) 게임 플레이 시 입/출력 신호의 딜레이 최소화는 아주 중요하다. 이 딜레이는 반드시 짧아야한다.&lt;br /&gt;
&lt;br /&gt;
◇4) 블록에는 게임 이용시간, 사용한 토큰 수, 플레이한 게임의 종류 등을 포함한다.&lt;br /&gt;
&lt;br /&gt;
====설계 사양====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
◇ 웹 플랫폼 기반으로 구축함으로써 다양한 기기(데스크탑, 모바일 기기 등)에서 접근하기가 용이하다.&lt;br /&gt;
&lt;br /&gt;
- 언제 어디서든 기기만 있으면 원하는 게임 실행 가능한 환경 구축&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
&lt;br /&gt;
- 고사양이 필요한 게임도 지원하여 하드웨어의 장벽 완화&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 실시간 게임 플레이 영상 및 입출력 조작 신호 송/수신(스트리밍)&lt;br /&gt;
&lt;br /&gt;
- IPFS 시스템을 이용해 빠른 속도의 오디오/비디오 데이터 전송&lt;br /&gt;
&lt;br /&gt;
- 기존의 실시간 스트리밍 방식에 비해 빠르고, 안전하고, 개방적임&lt;br /&gt;
&lt;br /&gt;
- 실시간 스트리밍 서비스에서 가장 중요한 요소인 지연 시간(Latency) 개선 가능&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ EOS 기반의 DApp으로 안정성 및 보안성, 가격 경쟁력 확보&lt;br /&gt;
&lt;br /&gt;
- EOS는 타 블록체인 기반의 DApp(이더리움 등)에 비해 많은 트랜잭션 처리가 가능하도록 설계되어 있어 안정적이고, 그 외 수많은 장점 덕에 점점 사용률이 높아지는 DApp 플랫폼이다.&lt;br /&gt;
&lt;br /&gt;
- 트랜잭션 당 사용료(Gas)를 내야 하는 이더리움(Ethereum)에 비해, EOS는 DApp 사용 시에 요금을 낼 필요가 없어 사용자 입장에서 경제적이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 블록체인에 정보를 기록함으로써 토큰 거래 정보의 위변조를 방지, 신뢰성을 보장한다.&lt;br /&gt;
&lt;br /&gt;
- 컴퓨팅 파워 제공자/게이머, 게임 플레이 관련 정보를 블록체인에 기록한다&lt;br /&gt;
&lt;br /&gt;
- 컴퓨팅 파워 제공자와 게이머의 매칭은 스마트 컨트랙트로 수행된다&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Adaptive HTTP Protocol을 활용하여 쾌적한 스트리밍 환경을 제공한다.&lt;br /&gt;
&lt;br /&gt;
- 동영상 콘텐츠를 다양한 해상도로 인코딩하고 여러 데이터 조각으로 나누어 저장한다.&lt;br /&gt;
&lt;br /&gt;
- 네트워크 상황에 따라 실시간으로 적절한 해상도를 가진 영상 데이터 조각들이 다운로드 되어 버퍼링 없는 스트리밍 환경을 제공한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
1 CLIENT : 웹 페이지를 통해 DApp에 접근하도록 구성, Node.js 기반 웹 Back-End, Front-End 구현(자체 구현)&lt;br /&gt;
&lt;br /&gt;
2 EOS.IO 기반 DApp : 오픈소스 소프트웨어인 EOS.IO를 기반으로 게이밍 플랫폼 DApp 개발(오픈소스 기반 구현)&lt;br /&gt;
&lt;br /&gt;
3 Smart Contract : 사용자(CLIENT)와의 이용권 - 요금 지불 시스템 및 요금을 지불한 사용자를 대상으로 게임을 구동할 수 있는 서버(SERVER)와 매칭 시스템 구현(자체 구현)&lt;br /&gt;
&lt;br /&gt;
4 IPFS File Storage : EOS.IO 내부에 IPFS 방식으로 설계되어 있는 EOS.IO Storage를 기반으로 구현(오픈소스기반 구현)&lt;br /&gt;
&lt;br /&gt;
5 Server : 게임을 실제 구동하는 서버, 구동 중 실시간으로 출력된 오디오/비디오 데이터를 캡처하여 오픈소스 소 프트웨어인 ffmpeg을 이용하여 인코딩 후, DApp 내부 IPFS File Storage에 업로드하고 사용자(CLIENT) 단말기에 서 받아 화면에 출력하는 방식으로 구현. 서버에 전달된 게이머의 입력신호는 서버에서 구동되는 게임의 입력으로 처리되도록 구현. (오픈소스 기반 구현)&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
 ◇ 웹 플랫폼 기반으로 구축&lt;br /&gt;
	- 장점 : 다양한 기기에서 실행 가능&lt;br /&gt;
	- 단점 : 따로 설정해 두지 않으면 웹 페이지 방문이 번거로울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
	- 장점 : 게이머의 선택의 폭이 넓어짐&lt;br /&gt;
	- 단점 : 상대적으로 관심이 적은 게임에 약간의 낭비된 비용이 생길 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 실시간 게임 플레이 영상 및 입출력 조작 신호 송/수신(스트리밍)&lt;br /&gt;
	- 장점 : WebRTC를 이용해 빠르고 안전하고 개방적임&lt;br /&gt;
	- 단점 : 다소 구현이 어려울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 기반의 DApp으로 안정성 및 보안성, 가격 경쟁력 확보&lt;br /&gt;
	- 장점 : 안정적이고, 경제적임&lt;br /&gt;
	- 단점 : EOS 기반 구현이 다소 어려울 수 있음&lt;br /&gt;
&lt;br /&gt;
 ◇ 블록체인에 정보를 기록함으로써 토큰 거래 정보의 위변조를 방지, 신뢰성을 보장&lt;br /&gt;
	- 장점 : 보안적으로 뛰어남&lt;br /&gt;
	- 단점 : 블록생성만으로 자원을 많이 쓰기때문에 자원 낭비가 심함&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임목록창에서 게임선택시 바로 게임 어플리케이션이 실행될 수 있도록 상세구현&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임플레이 화면에서 클라이언트측 마우스와 게임서버측 마우스의 위치가 일치할 수 있는 방안 &lt;br /&gt;
    모색 -&amp;gt; 실제 게임플레이시 전체화면 모드로 실행 되도록&lt;br /&gt;
&lt;br /&gt;
 ◇ 웹페이지에서 회원설정 정보 확인 및 변경 기능을 추가 구현&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임플레이시 EOS 계정에 저장된 토큰을 활용한 게임 비용 지불 서비스 개발&lt;br /&gt;
&lt;br /&gt;
 ◇ 안드로이드/IOS 등 다양한 하드웨어에서도 원활히 서비스가 제공될 수 있는 방안 모색&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=KOS%EC%A1%B0&amp;diff=1504</id>
		<title>KOS조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=KOS%EC%A1%B0&amp;diff=1504"/>
				<updated>2019-06-20T15:24:53Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 향후계획 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' EOS기반 분산형 클라우드 게이밍 플랫폼 개발&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' Development of distributed cloud gaming platform based on EOS&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
KOS&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
김성환 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 김*준&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 노*선&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 임*범&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 장*석&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
게임 산업 규모는 매 년 커져감에 반해 하드웨어의 보급의 속도는 그렇지 못한 편이다. 이에 블록 체인 기술과 함께 분산형 클라우드 게이밍 플랫폼 서비스를 제공, 사용자(게이머)로 하여금 다양 한 플랫폼에서 고사양의 게임을 플레이 할 수 있도록 도와주는 것이 주된 개발 과제이다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
 ◇ EOS Block Chain을 활용한 분산형 클라우드 게이밍 DApp(Decentralized Application)&lt;br /&gt;
&lt;br /&gt;
 ◇ 저사양 PC를 소유한 게이머가 고사양 게임을 플레이 할 수 있는 Platform&lt;br /&gt;
&lt;br /&gt;
 ◇ 트랜잭션 처리 시 수수료가 필요 없는 EOS를 이용한 경제적인 서비스&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS의 월등한 트랙잭션 처리 속도로 인한 빠른 게임 플레이 환경 제공&lt;br /&gt;
&lt;br /&gt;
 ◇ 웹 플랫폼 기반 클라우드 게이밍 플랫폼 &lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
  ◇ 비디오, 음악 및 기타 서비스에 이어 게임 역시 클라우드로 전환하고 있다. 게이머들에게 클라우드 게임은 개인의 게임 하드웨어를 소유하는 것보다 10배 저렴하고, 공유 경제원리를 활용하고 있다.&lt;br /&gt;
     GPU, 인터넷 및 낮은 지연 스트리밍 개발을 통해, 개인 게임 하드웨어의 수요가 감소하고있다. 실제로 차세대 콘솔은 하드웨어를 기반으로하는 마지막 콘솔이 될 것이다 &lt;br /&gt;
    &lt;br /&gt;
 ◇ 게임을 클라우드 기술로 전환시키는 것은 피할 수 없다. Steam 플레이어의 70%는 GTA V와 같은 AAA 타이틀을 고해상도로 플레이 할 수 없으며, 플레이어의 30%는 PC에서 그런 게임을 실행하는 것 조차 할 수 없다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 클라우드 게임의 수요는 앞으로도 증가할 것이다. 최신 세대의 하드웨어에 대한 수요와 자원 집약적 VR 기술에 의한 게임이 발전함에 따라 가정용 하드웨어를 더 비싼 가격으로 만들고 이는 일반적인 게이머에게 비현실적인 가격이 될 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 업계 1인자들의 예상으로는 게임산업의 미래는 스트리밍이다. 해당 과제의 미션은 탈중앙화의 초기 단계에서 클라우드 게임의 가능성을 보는 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 분산형 클라우드 게이밍 플랫폼 개발을 통한 향상된 스트리밍 서비스 제공한다 따라서 기존의 클라우드 게이밍 플랫폼과 비교하여 스트리밍 지연속도가 감소할 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 기존 시장에서 사용되던 이더리움 기반이 아닌 EOS 기반 플랫폼을 개발하여 이더리움보다 월등한 EOS의 초당 트랜잭션 처리 수가 게임의 처리 속도의 향상을 제공할 것이다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
 ◇ Web-RTC를 활용한 화면공유 및 원격제어&lt;br /&gt;
&lt;br /&gt;
 ◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 토큰 거래를 통한 게임 플레이&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 기반의 DApp개발로 다양한 경쟁력 확보&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
&lt;br /&gt;
◇ 3세대 블록체인 후보 이오스(EOS) &lt;br /&gt;
&lt;br /&gt;
1) EOS란? &lt;br /&gt;
&lt;br /&gt;
① 프로젝트로서의 EOS&lt;br /&gt;
 • EOS는 블록체인 프로젝트로서, 최초의 블록체인 OS(First Blockchain Operating System)을 표방함. 즉, EOS는 DApp을 개발하고 구동하기 위한 플랫폼을 개발하는 프로젝트라 할 수 있음&lt;br /&gt;
 ※ ( DApp 이란? ) 탈중앙화 어플리케이션(Decentralized Application)의 약자. 데이터의 흐름, 저장, 로직이 탈중앙화 되어 있어서 중앙화된 어플리케이션의 대표적인 문제점인 운영자의 탈선, 해킹으로 인한 데이터 위변조, 개인 정보 유출, 서버 다운 등의 문제가 일어날 가능성을 극도로 낮춰줌&lt;br /&gt;
&lt;br /&gt;
 • DApp의 한계&lt;br /&gt;
 근간이 되는 블록체인의 성능 자체가 대부분 중앙화 서버대비 떨어지기 때문에 스케일링이 어렵고사용자들이 트랜잭션을 일으킬 때마다 비용을 지불해야함. 또, 중앙화된 서버에서의 개발 방식과는전혀 다르기 때문에, 해킹에 취약해지거나 퍼포먼스가 떨어지는 문제가 있을 수 있음&lt;br /&gt;
&lt;br /&gt;
 • EOS는 이러한 한계를 극복하기 위한 프로젝트라고 할 수 있음.&lt;br /&gt;
&lt;br /&gt;
 • 고성능을 요구하는 상용 서비스(거래소, 소셜미디어 등)가 가능한 수준의 스케일링이 가능&lt;br /&gt;
&lt;br /&gt;
 • 사용자들이 플랫폼을 사용할 때마다 지불해야 되는 비용(가스)가 없음&lt;br /&gt;
&lt;br /&gt;
② 소프트웨어로서의 EOS&lt;br /&gt;
 • Block.one이 개발중인 EOS.IO를 의미함&lt;br /&gt;
&lt;br /&gt;
③ 토큰으로서의 EOS&lt;br /&gt;
 • ERC20 : 이더리움 블록체인 상에 그 수량과 교환방식 등이 정의된 토큰&lt;br /&gt;
 • EOS21이라는 프로토콜을 통해 EOS기반의 토큰으로 전환할 수 있게 됨&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) EOS의 BP 시스템&lt;br /&gt;
① DPoS 방식의 EOS&lt;br /&gt;
&lt;br /&gt;
 • 대표자들은 전체적인 블록체인의 방향을 설정하고 블록 생성을 담당. 이러한 대표자를 블록프로듀서(Block Producer,BP)라고 부름&lt;br /&gt;
&lt;br /&gt;
② EOS DPoS의 대표자, BP의 역할과 보상&lt;br /&gt;
 • EOS BP의 역할&lt;br /&gt;
 1. EOS 메인 블록체인의 지원&lt;br /&gt;
     - 개발자, 플랫폼 커뮤니티 지원&lt;br /&gt;
     - 이오스 관련 콘텐츠 배급 등&lt;br /&gt;
 2. 이오스 메인 블록체인의 운영&lt;br /&gt;
     - 매 라운드 ( 126초 ) 동안 0.5초당 1개 블록 생성&lt;br /&gt;
&lt;br /&gt;
 • EOS BP의 혜택&lt;br /&gt;
     1. 1년 동안 EOS 발행량의 1%를 보상으로 받음&lt;br /&gt;
     2. 총 보상의 25%는 상위 21명 BP, 나머지 75%는 상위BP와 백업BP를 포함한 모든 BP가 투표율에 따라 &lt;br /&gt;
         받음&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) 스마트 컨트랙트&lt;br /&gt;
&lt;br /&gt;
① Contract를 구현하고, 강제하고, 실행시켜주는 code&lt;br /&gt;
&lt;br /&gt;
 • 믿지않는 사용자간의 areement+coordination&lt;br /&gt;
 • 블록체인에 복잡한 기능을 제공&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
② Smart contract의 안전성?&lt;br /&gt;
&lt;br /&gt;
 • Token economy - Decentralized governance구조와 Incentive mechanism으로 정의&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) 2세대 블록체인 이더리움(ETHEREUM)과 이오스(EOS)&lt;br /&gt;
&lt;br /&gt;
5) 나날이 증가하는 EOS 플랫폼 상의 DApp 수&lt;br /&gt;
&lt;br /&gt;
 • 해가갈수록 급격한 증가폭을 보여줌&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6) 다양한 장르의 EOS 플랫폼 상 DApp&lt;br /&gt;
&lt;br /&gt;
 • 게임, 도박, 부동산, 지갑, 소셜 등 다양한 장르의 플랫폼 상의 DApp 존재&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7) EOS.IO가 제공하는 기능&lt;br /&gt;
&lt;br /&gt;
 • 무료 평가판 제한 거래&lt;br /&gt;
 • 낮은 대기 시간 블록 확인(0.5초)&lt;br /&gt;
 • 오버 헤드가 낮은 비잔틴 오류 내성 결말&lt;br /&gt;
 • 선택적으로 높은 오버 헤드, 낮은 대기 시간의 BFT 최종기증&lt;br /&gt;
 • 웹 어셈블리를 기반으로 하는 스마트 계약 플랫폼&lt;br /&gt;
 • 스파스 헤더 라이트 클라이언트 검증용으로 설계&lt;br /&gt;
 • 정기 반복 트랜잭션&lt;br /&gt;
 • 시간 지연 보안&lt;br /&gt;
 • 계층적 역할 기반 권한&lt;br /&gt;
 • 생체 인식 하드웨어 보안 키 지원&lt;br /&gt;
 • 문맥 무효 검증 논리의 병렬 실행&lt;br /&gt;
 • 블록 체인 간 통신&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
나. 기술 로드맵&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
① 블록체인 기반 기술&lt;br /&gt;
 • 고성능 저비용 합의 기술&lt;br /&gt;
 • 스마트 계약 검증 기술&lt;br /&gt;
&lt;br /&gt;
② 블록체인 확장 기술&lt;br /&gt;
 • 대용량 데이터 처리 기술, 외부 데이터 연동 기술&lt;br /&gt;
 • 대규모 서비스 제공을 위한 확장성 확보 기술&lt;br /&gt;
&lt;br /&gt;
③ 블록체인 서비스 기술&lt;br /&gt;
 • 거래 추적 및 분석 기술&lt;br /&gt;
 • 산업 분야별 기존 시스템 연동 기술&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
다. 특허조사&lt;br /&gt;
&lt;br /&gt;
 ◇ 최근 비트코인 등 암호 화폐에 대한 관심이 증가함에 따라, 그 기술적 기반인 블록체인 관련 특허출원도 전 세계적으로 폭발적 증가 추세인 것으로 나타났다. 특허청(청장 성윤모)에 따르면, 지식재산 선진 5개국(IP4, 한국•미국•일본•중국•유럽)에 출원되어 조사 시점(‘18년 1월말 기준)까지 공개된 블록체인 관련 전 세계 특허 출원은 모두 1,248건으로 나타났다 특허 출원의 양은 많지 않으나, ’09년 블록체인이 최초 구현된 이래, ‘13년 27건에서 매년 2~3배 증가’해 ‘15년에는 257건, ’16년에는 594건(미공개건 제외)에 이르는 것으로 조사됐다. 출원인의 국적별로 살펴보면, 누적건수로는 미국이 1위로 집계되었지만, ‘16년 이후 중국이 연간 특허출원 건수에서 미국을 제치고 1위로 올라섰다. 조만간 누적건수에서도 중국이 1위를 차지할 것으로 예측된다.&lt;br /&gt;
&lt;br /&gt;
 ◇ G2(미국, 중국)로의 편중 현상도 심해, 미국과 중국이 전체 특허 출원의 대부분(78%)을 점유했으며, 3, 4위를 차지한 우리나라와 일본의 점유율은 8%, 3%에 불과했다. 한편, 특허출원의 질적 수준을 나타내는 간접지표인, 해외출원 비율에서는 미국이 중국을 제치고 압두적인 선두를 지켰다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 주체별로는, 전 세계 블록체인 특허출원 중 81%를 기업이 주도하고 있고, 미국은 은행 등 금융기업에 의한 특허출원도 활발한 편이다. 한편 우리나라는 대기업보다 벤처기업 등의 중소기업 비중(66.7%)이 매우 높은 특징을 보였으며, 금융기업에 의한 특허출원은 아직까진 없는 것으로 조사(‘18.1월말 조사 시점까지 공개된 특허출원 기준)되었다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 블록체인의 기본 개념은 이미 Open Source로 공개되어 누구도 특허를 갖지 못하는 자유 기술이다. 따라서 특허출원은 주로 보안, 운용, 활용 등 주변 기술을 중심으로 이뤄지고 있다. 특히, 블록체인이 암호 화폐에서 물류•의료•공공 서비스 등으로 활용 범위가 점차 확대됨에 따라 특허출원도 덩달아 활용 분야를 중심으로 증가할 것으로 전망된다.&lt;br /&gt;
&lt;br /&gt;
 ◇ KB금융그룹의 ‘블록체인을 활용한 모바일 앱 보안 솔루션 관련 기술특허’는 서비스 부문과 보안부분을 분리해 보안부문의 암호화키를 블록체인망에 보관해 안정성을 높였다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 골드만삭스의 ‘세틀코인(SETLcoin)’은 주식, 채권 등 실시간 거래뿐만 아니라 거래내역도 블록체인의 분산원장에 적용하여 위, 변조가 불가능한 첨단 핀테크를 가능하게 한다. &lt;br /&gt;
&lt;br /&gt;
 ◇ 미국의 대형 은행인 BoA(뱅크 오브 아메리카)도 15건의 특허를 출원했고, 20건 정도의 추가 특허를 출원할 예정이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
라. 특허전략&lt;br /&gt;
&lt;br /&gt;
 특허에서 공개된 비즈니스 모델은 블록체인 업체의 비즈니스 모델과 유사한 부분이 존재한다. 개인정보를 제공하고, 개인정보에 따른 보상금을 지급하는 구조이다. 위의 특허는 기존 특허에 대한 하나의 예시이고, 개인정보에 따른 보상과 관련된 기술, 개인 데이터를 추적하는 기술은 다른 특허에도 많이 기술되어 있기 때문에 이러한 기존의 비즈니스 모델 특허와 블록체인 특허가 차별점을 가지기 위해서는 블록체인과 블록체인과 트랜잭션을 발생시키는 노드 간의 동작에 대한 구체화, 블록 상에서의 데이터 처리 등에 관련된 특징들이 반드시 필요하다.&lt;br /&gt;
&lt;br /&gt;
 예를 들어, 블록체인에 올라간 스마트 콘트랙트를 기반으로 수집된 개인 정보가 블록체인과는 어떠한 관계를 가지고 처리되는지, 개인 정보의 거래는 블록체인 상에서 어떻게 수행되는지 보상은 블록체인 상에서 어떻게 발생되는지&lt;br /&gt;
위와 같은 블록체인, 블록과 연관된 구체적인 트랜잭션들이 블록체인 특허에 도시되고 기술되어야한다. 이러한 특징이 있다면, 블록체인 특허가 기존 특허와 차별화를 가질 수 있고 등록 가능성도 높아지게 됩니다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
가. 경쟁제품 조사 비교&lt;br /&gt;
◇ PlayKey&lt;br /&gt;
    &lt;br /&gt;
    - P2P와 블록체인 기술 기반의 게이머를 위한 세계 최초의 탈중앙화 클라우드 게이밍 플랫폼&lt;br /&gt;
    - 고성능의 컴퓨터를 가진 전세계 수십명의 독립적인 소유자가 커뮤니티 내에 결속하여 클라우드 게임 서비스 업체(채굴자)로 활동&lt;br /&gt;
    - 시스템 내 유일한 보편적인 에코 시스템 암호화폐 -PKT 토큰- 이 ICO를 통해 발급됨&lt;br /&gt;
    - 채굴자-게이머의 스마트 컨트랙트 형태로 구성되어 클라우드 게임 서비스의 높은 통합 수준을&lt;br /&gt;
      제공&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Google STADIA&lt;br /&gt;
  &lt;br /&gt;
 -  중앙집권형 클라우드 게이밍 플랫폼&lt;br /&gt;
 -  유튜브 기반이기 때문에 유튜브 재생만 가능하다면 저사양 PC든 스마트폰이든 태블릿 PC든 실시간 스트리밍 &lt;br /&gt;
을 통해 FHD 60프레임으로 게임 플레이 가능&lt;br /&gt;
 - 웹 브라우저에서 바로 실행되며 클릭 한/두 번으로 게임 플레이 가능&lt;br /&gt;
&lt;br /&gt;
나. 마케팅 전략&lt;br /&gt;
 1) EOS블록체인 기반 서비스를 제공함으로써&lt;br /&gt;
  ◇ 채굴자는 개인으로서 경제적이득(가상화폐)을 얻을 기회가 생긴다.&lt;br /&gt;
  ◇ 채굴자는 시장 활성화가 커져갈수록, 같은 서비스 제공으로 더 많은 이득을 얻을 수 있다.&lt;br /&gt;
  ◇ 사용자(게이머)는 저성능의 컴퓨터를 소유하고 있더라도, 약간의 이용료를 지불하여 고사양의 게임을 최고의 &lt;br /&gt;
 퀄리티로 즐길 수 있다.&lt;br /&gt;
  ◇ 사용자(게이머)는 기존 클라우드 게이밍 서비스보다도 훨씬 더 저렴한 가격으로 이용할 수 있다.&lt;br /&gt;
  ◇ 5G 상용화와 더불어 안정적인 서비스 제공을 통해 커다란 시장이 형성될 수 있다.&lt;br /&gt;
&lt;br /&gt;
 2) 월등한 EOS의 초당 트랜잭션 처리 수로 인한 게임 처리 속도의 향상&lt;br /&gt;
  ◇ 쾌적한 게임 플레이 가능&lt;br /&gt;
&lt;br /&gt;
 3) 국내에서 인기 있는 게임 위주 서비스 제공&lt;br /&gt;
  ◇ 기존의 클라우드 게이밍 플랫폼에서 제공되는 게임들은 해외에서 인기있는 게임 위주였기 때문 에 국내 게이 &lt;br /&gt;
 머들의 관심을 끌기 어려웠다.&lt;br /&gt;
  ◇ 국내에서 인기 있는 게임 위주로 서비스를 제공하여 국내 게이머들의 관심도 증가&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
&lt;br /&gt;
◇ 분산형 컴퓨팅을 통한 안정적인 서비스 제공&lt;br /&gt;
&lt;br /&gt;
◇ 저사양 플랫폼에서 고사양 게임 가능&lt;br /&gt;
&lt;br /&gt;
◇ 이더리움보다 월등한 EOS의 초당 트랜잭션 처리 수가 게임 처리 속도의 향상을 제공&lt;br /&gt;
&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
&lt;br /&gt;
◇ 새로운 기술 보급을 통한 시장 흐름 변화&lt;br /&gt;
&lt;br /&gt;
◇ 개인의 소비 패턴 변화(기존 : 하드웨어 성능 중시 → 서비스 제공이후 : 클라우드 서비스 중시)&lt;br /&gt;
&lt;br /&gt;
◇ 생소했던 클라우드 게이밍에 국내 인지도 상승&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
◇ 먼저 AWS 서비스를 기반으로 Node.js 웹 서버를 구축한 후, Ejs/CSS 등을 이용하여 간단하고 기본적인 페이지 라우팅 구조(Back-End), UI/UX(Front- End) 등을 구축해놓는다.&lt;br /&gt;
&lt;br /&gt;
◇ 그 다음, EOS.IO기반 로컬 체인을 구축하고, 웹 서버와 연동한 뒤 사용자 회원가입/지불 시스템 등의 로직을 Smart Contract로 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ Smart Contract 구현에 성공하면, 실 게임 구동 서버-클라이언트 간 기본적인 실시간 스트리밍 서비스를 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ 실시간 스트리밍 서비스 구현에 성공하면, Smart Contract로 사용자 - 게임 구동 서버 매칭 로직을 구현하고, 스트리밍 시 전송되는 비디오/오디오 데이터를 EOS.IO Storage 기반으로 저장하는 방식으로 EOS.IO 위에 올려서 스트리밍 서비스를 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ 마지막으로 세부적인 기능들을 구현한 뒤 UI/UX를 다듬고 테스트한다.&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
가. 개발 일정&lt;br /&gt;
&lt;br /&gt;
3월 : 기존 EOS 기술 및 클라우드 시스템 분석 &lt;br /&gt;
&lt;br /&gt;
분산형 클라우드 시스템 설계 및 구현 &lt;br /&gt;
&lt;br /&gt;
4월 : 게임 스트리밍 서비스 설계 및 구현&lt;br /&gt;
&lt;br /&gt;
5월 : 매칭 시스템 설계 및 구현&lt;br /&gt;
&lt;br /&gt;
6월 : 전체 시스템 테스트 및 검토&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
나. 구성원 및 추진체계&lt;br /&gt;
&lt;br /&gt;
◇김용준: 분산형 클라우드 시스템, 매칭 시스템 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇노기선: 분산형 클라우드 시스템, 게임 스트리밍 서비스 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇ 임종범: 기존 시스템 분석, 게임 스트리밍 서비스 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇ 장원석: 기존 시스템 분석, 매칭 시스템 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
1. 기능적 요구사항&lt;br /&gt;
&lt;br /&gt;
◇1) 사용자가 보유한 토큰양을 불러와 서비스 사용 가능 시간을 산출해준다.&lt;br /&gt;
&lt;br /&gt;
◇2) 게임 별로 각각 다른 비용을 책정하여, 그에 맞게 사용 시간을 차감한다. (고사양일수록 비용 상승)&lt;br /&gt;
&lt;br /&gt;
◇3) 서비스 사용 시작부터 종료시 까지, 사용자가 플레이 하는 게임의 영상을 스트리밍 서비스 형태로 제공한다.&lt;br /&gt;
&lt;br /&gt;
◇4) 키보드, 마우스 등 사용자가 게임 플레이를 위해 입력하는 입력 신호를 송/수신한다.&lt;br /&gt;
&lt;br /&gt;
◇5) 스피커, 스크린샷 등 사용자 컴퓨터에 출력되는 출력 신호를 송/수신한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. 비기능적 요구사항&lt;br /&gt;
&lt;br /&gt;
◇1) EOS와 AWS를 이용한 SmartContract 환경을 조성한다.&lt;br /&gt;
&lt;br /&gt;
◇2) IPFS를 이용하여 영상 스트리밍은 최소 30FPS에서 최대 60FPS까지 서비스 할수 있도록 한다.&lt;br /&gt;
&lt;br /&gt;
◇3) 게임 플레이 시 입/출력 신호의 딜레이 최소화는 아주 중요하다. 이 딜레이는 반드시 짧아야한다.&lt;br /&gt;
&lt;br /&gt;
◇4) 블록에는 게임 이용시간, 사용한 토큰 수, 플레이한 게임의 종류 등을 포함한다.&lt;br /&gt;
&lt;br /&gt;
====설계 사양====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
◇ 웹 플랫폼 기반으로 구축함으로써 다양한 기기(데스크탑, 모바일 기기 등)에서 접근하기가 용이하다.&lt;br /&gt;
&lt;br /&gt;
- 언제 어디서든 기기만 있으면 원하는 게임 실행 가능한 환경 구축&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
&lt;br /&gt;
- 고사양이 필요한 게임도 지원하여 하드웨어의 장벽 완화&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 실시간 게임 플레이 영상 및 입출력 조작 신호 송/수신(스트리밍)&lt;br /&gt;
&lt;br /&gt;
- IPFS 시스템을 이용해 빠른 속도의 오디오/비디오 데이터 전송&lt;br /&gt;
&lt;br /&gt;
- 기존의 실시간 스트리밍 방식에 비해 빠르고, 안전하고, 개방적임&lt;br /&gt;
&lt;br /&gt;
- 실시간 스트리밍 서비스에서 가장 중요한 요소인 지연 시간(Latency) 개선 가능&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ EOS 기반의 DApp으로 안정성 및 보안성, 가격 경쟁력 확보&lt;br /&gt;
&lt;br /&gt;
- EOS는 타 블록체인 기반의 DApp(이더리움 등)에 비해 많은 트랜잭션 처리가 가능하도록 설계되어 있어 안정적이고, 그 외 수많은 장점 덕에 점점 사용률이 높아지는 DApp 플랫폼이다.&lt;br /&gt;
&lt;br /&gt;
- 트랜잭션 당 사용료(Gas)를 내야 하는 이더리움(Ethereum)에 비해, EOS는 DApp 사용 시에 요금을 낼 필요가 없어 사용자 입장에서 경제적이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 블록체인에 정보를 기록함으로써 토큰 거래 정보의 위변조를 방지, 신뢰성을 보장한다.&lt;br /&gt;
&lt;br /&gt;
- 컴퓨팅 파워 제공자/게이머, 게임 플레이 관련 정보를 블록체인에 기록한다&lt;br /&gt;
&lt;br /&gt;
- 컴퓨팅 파워 제공자와 게이머의 매칭은 스마트 컨트랙트로 수행된다&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Adaptive HTTP Protocol을 활용하여 쾌적한 스트리밍 환경을 제공한다.&lt;br /&gt;
&lt;br /&gt;
- 동영상 콘텐츠를 다양한 해상도로 인코딩하고 여러 데이터 조각으로 나누어 저장한다.&lt;br /&gt;
&lt;br /&gt;
- 네트워크 상황에 따라 실시간으로 적절한 해상도를 가진 영상 데이터 조각들이 다운로드 되어 버퍼링 없는 스트리밍 환경을 제공한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
1 CLIENT : 웹 페이지를 통해 DApp에 접근하도록 구성, Node.js 기반 웹 Back-End, Front-End 구현(자체 구현)&lt;br /&gt;
&lt;br /&gt;
2 EOS.IO 기반 DApp : 오픈소스 소프트웨어인 EOS.IO를 기반으로 게이밍 플랫폼 DApp 개발(오픈소스 기반 구현)&lt;br /&gt;
&lt;br /&gt;
3 Smart Contract : 사용자(CLIENT)와의 이용권 - 요금 지불 시스템 및 요금을 지불한 사용자를 대상으로 게임을 구동할 수 있는 서버(SERVER)와 매칭 시스템 구현(자체 구현)&lt;br /&gt;
&lt;br /&gt;
4 IPFS File Storage : EOS.IO 내부에 IPFS 방식으로 설계되어 있는 EOS.IO Storage를 기반으로 구현(오픈소스기반 구현)&lt;br /&gt;
&lt;br /&gt;
5 Server : 게임을 실제 구동하는 서버, 구동 중 실시간으로 출력된 오디오/비디오 데이터를 캡처하여 오픈소스 소 프트웨어인 ffmpeg을 이용하여 인코딩 후, DApp 내부 IPFS File Storage에 업로드하고 사용자(CLIENT) 단말기에 서 받아 화면에 출력하는 방식으로 구현. 서버에 전달된 게이머의 입력신호는 서버에서 구동되는 게임의 입력으로 처리되도록 구현. (오픈소스 기반 구현)&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임목록창에서 게임선택시 바로 게임 어플리케이션이 실행될 수 있도록 상세구현&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임플레이 화면에서 클라이언트측 마우스와 게임서버측 마우스의 위치가 일치할 수 있는 방안 &lt;br /&gt;
    모색 -&amp;gt; 실제 게임플레이시 전체화면 모드로 실행 되도록&lt;br /&gt;
&lt;br /&gt;
 ◇ 웹페이지에서 회원설정 정보 확인 및 변경 기능을 추가 구현&lt;br /&gt;
&lt;br /&gt;
 ◇ 게임플레이시 EOS 계정에 저장된 토큰을 활용한 게임 비용 지불 서비스 개발&lt;br /&gt;
&lt;br /&gt;
 ◇ 안드로이드/IOS 등 다양한 하드웨어에서도 원활히 서비스가 제공될 수 있는 방안 모색&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=KOS%EC%A1%B0&amp;diff=1503</id>
		<title>KOS조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=KOS%EC%A1%B0&amp;diff=1503"/>
				<updated>2019-06-20T15:24:13Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 관련 기술의 현황 및 분석(State of art) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' EOS기반 분산형 클라우드 게이밍 플랫폼 개발&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' Development of distributed cloud gaming platform based on EOS&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
KOS&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
김성환 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 김*준&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 노*선&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 임*범&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20139200** 장*석&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
게임 산업 규모는 매 년 커져감에 반해 하드웨어의 보급의 속도는 그렇지 못한 편이다. 이에 블록 체인 기술과 함께 분산형 클라우드 게이밍 플랫폼 서비스를 제공, 사용자(게이머)로 하여금 다양 한 플랫폼에서 고사양의 게임을 플레이 할 수 있도록 도와주는 것이 주된 개발 과제이다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
 ◇ EOS Block Chain을 활용한 분산형 클라우드 게이밍 DApp(Decentralized Application)&lt;br /&gt;
&lt;br /&gt;
 ◇ 저사양 PC를 소유한 게이머가 고사양 게임을 플레이 할 수 있는 Platform&lt;br /&gt;
&lt;br /&gt;
 ◇ 트랜잭션 처리 시 수수료가 필요 없는 EOS를 이용한 경제적인 서비스&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS의 월등한 트랙잭션 처리 속도로 인한 빠른 게임 플레이 환경 제공&lt;br /&gt;
&lt;br /&gt;
 ◇ 웹 플랫폼 기반 클라우드 게이밍 플랫폼 &lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
  ◇ 비디오, 음악 및 기타 서비스에 이어 게임 역시 클라우드로 전환하고 있다. 게이머들에게 클라우드 게임은 개인의 게임 하드웨어를 소유하는 것보다 10배 저렴하고, 공유 경제원리를 활용하고 있다.&lt;br /&gt;
     GPU, 인터넷 및 낮은 지연 스트리밍 개발을 통해, 개인 게임 하드웨어의 수요가 감소하고있다. 실제로 차세대 콘솔은 하드웨어를 기반으로하는 마지막 콘솔이 될 것이다 &lt;br /&gt;
    &lt;br /&gt;
 ◇ 게임을 클라우드 기술로 전환시키는 것은 피할 수 없다. Steam 플레이어의 70%는 GTA V와 같은 AAA 타이틀을 고해상도로 플레이 할 수 없으며, 플레이어의 30%는 PC에서 그런 게임을 실행하는 것 조차 할 수 없다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 클라우드 게임의 수요는 앞으로도 증가할 것이다. 최신 세대의 하드웨어에 대한 수요와 자원 집약적 VR 기술에 의한 게임이 발전함에 따라 가정용 하드웨어를 더 비싼 가격으로 만들고 이는 일반적인 게이머에게 비현실적인 가격이 될 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 업계 1인자들의 예상으로는 게임산업의 미래는 스트리밍이다. 해당 과제의 미션은 탈중앙화의 초기 단계에서 클라우드 게임의 가능성을 보는 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 분산형 클라우드 게이밍 플랫폼 개발을 통한 향상된 스트리밍 서비스 제공한다 따라서 기존의 클라우드 게이밍 플랫폼과 비교하여 스트리밍 지연속도가 감소할 것이다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 기존 시장에서 사용되던 이더리움 기반이 아닌 EOS 기반 플랫폼을 개발하여 이더리움보다 월등한 EOS의 초당 트랜잭션 처리 수가 게임의 처리 속도의 향상을 제공할 것이다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
 ◇ Web-RTC를 활용한 화면공유 및 원격제어&lt;br /&gt;
&lt;br /&gt;
 ◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 토큰 거래를 통한 게임 플레이&lt;br /&gt;
&lt;br /&gt;
 ◇ EOS 기반의 DApp개발로 다양한 경쟁력 확보&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
&lt;br /&gt;
◇ 3세대 블록체인 후보 이오스(EOS) &lt;br /&gt;
&lt;br /&gt;
1) EOS란? &lt;br /&gt;
&lt;br /&gt;
① 프로젝트로서의 EOS&lt;br /&gt;
 • EOS는 블록체인 프로젝트로서, 최초의 블록체인 OS(First Blockchain Operating System)을 표방함. 즉, EOS는 DApp을 개발하고 구동하기 위한 플랫폼을 개발하는 프로젝트라 할 수 있음&lt;br /&gt;
 ※ ( DApp 이란? ) 탈중앙화 어플리케이션(Decentralized Application)의 약자. 데이터의 흐름, 저장, 로직이 탈중앙화 되어 있어서 중앙화된 어플리케이션의 대표적인 문제점인 운영자의 탈선, 해킹으로 인한 데이터 위변조, 개인 정보 유출, 서버 다운 등의 문제가 일어날 가능성을 극도로 낮춰줌&lt;br /&gt;
&lt;br /&gt;
 • DApp의 한계&lt;br /&gt;
 근간이 되는 블록체인의 성능 자체가 대부분 중앙화 서버대비 떨어지기 때문에 스케일링이 어렵고사용자들이 트랜잭션을 일으킬 때마다 비용을 지불해야함. 또, 중앙화된 서버에서의 개발 방식과는전혀 다르기 때문에, 해킹에 취약해지거나 퍼포먼스가 떨어지는 문제가 있을 수 있음&lt;br /&gt;
&lt;br /&gt;
 • EOS는 이러한 한계를 극복하기 위한 프로젝트라고 할 수 있음.&lt;br /&gt;
&lt;br /&gt;
 • 고성능을 요구하는 상용 서비스(거래소, 소셜미디어 등)가 가능한 수준의 스케일링이 가능&lt;br /&gt;
&lt;br /&gt;
 • 사용자들이 플랫폼을 사용할 때마다 지불해야 되는 비용(가스)가 없음&lt;br /&gt;
&lt;br /&gt;
② 소프트웨어로서의 EOS&lt;br /&gt;
 • Block.one이 개발중인 EOS.IO를 의미함&lt;br /&gt;
&lt;br /&gt;
③ 토큰으로서의 EOS&lt;br /&gt;
 • ERC20 : 이더리움 블록체인 상에 그 수량과 교환방식 등이 정의된 토큰&lt;br /&gt;
 • EOS21이라는 프로토콜을 통해 EOS기반의 토큰으로 전환할 수 있게 됨&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) EOS의 BP 시스템&lt;br /&gt;
① DPoS 방식의 EOS&lt;br /&gt;
&lt;br /&gt;
 • 대표자들은 전체적인 블록체인의 방향을 설정하고 블록 생성을 담당. 이러한 대표자를 블록프로듀서(Block Producer,BP)라고 부름&lt;br /&gt;
&lt;br /&gt;
② EOS DPoS의 대표자, BP의 역할과 보상&lt;br /&gt;
 • EOS BP의 역할&lt;br /&gt;
 1. EOS 메인 블록체인의 지원&lt;br /&gt;
     - 개발자, 플랫폼 커뮤니티 지원&lt;br /&gt;
     - 이오스 관련 콘텐츠 배급 등&lt;br /&gt;
 2. 이오스 메인 블록체인의 운영&lt;br /&gt;
     - 매 라운드 ( 126초 ) 동안 0.5초당 1개 블록 생성&lt;br /&gt;
&lt;br /&gt;
 • EOS BP의 혜택&lt;br /&gt;
     1. 1년 동안 EOS 발행량의 1%를 보상으로 받음&lt;br /&gt;
     2. 총 보상의 25%는 상위 21명 BP, 나머지 75%는 상위BP와 백업BP를 포함한 모든 BP가 투표율에 따라 &lt;br /&gt;
         받음&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) 스마트 컨트랙트&lt;br /&gt;
&lt;br /&gt;
① Contract를 구현하고, 강제하고, 실행시켜주는 code&lt;br /&gt;
&lt;br /&gt;
 • 믿지않는 사용자간의 areement+coordination&lt;br /&gt;
 • 블록체인에 복잡한 기능을 제공&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
② Smart contract의 안전성?&lt;br /&gt;
&lt;br /&gt;
 • Token economy - Decentralized governance구조와 Incentive mechanism으로 정의&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) 2세대 블록체인 이더리움(ETHEREUM)과 이오스(EOS)&lt;br /&gt;
&lt;br /&gt;
5) 나날이 증가하는 EOS 플랫폼 상의 DApp 수&lt;br /&gt;
&lt;br /&gt;
 • 해가갈수록 급격한 증가폭을 보여줌&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6) 다양한 장르의 EOS 플랫폼 상 DApp&lt;br /&gt;
&lt;br /&gt;
 • 게임, 도박, 부동산, 지갑, 소셜 등 다양한 장르의 플랫폼 상의 DApp 존재&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7) EOS.IO가 제공하는 기능&lt;br /&gt;
&lt;br /&gt;
 • 무료 평가판 제한 거래&lt;br /&gt;
 • 낮은 대기 시간 블록 확인(0.5초)&lt;br /&gt;
 • 오버 헤드가 낮은 비잔틴 오류 내성 결말&lt;br /&gt;
 • 선택적으로 높은 오버 헤드, 낮은 대기 시간의 BFT 최종기증&lt;br /&gt;
 • 웹 어셈블리를 기반으로 하는 스마트 계약 플랫폼&lt;br /&gt;
 • 스파스 헤더 라이트 클라이언트 검증용으로 설계&lt;br /&gt;
 • 정기 반복 트랜잭션&lt;br /&gt;
 • 시간 지연 보안&lt;br /&gt;
 • 계층적 역할 기반 권한&lt;br /&gt;
 • 생체 인식 하드웨어 보안 키 지원&lt;br /&gt;
 • 문맥 무효 검증 논리의 병렬 실행&lt;br /&gt;
 • 블록 체인 간 통신&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
나. 기술 로드맵&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
① 블록체인 기반 기술&lt;br /&gt;
 • 고성능 저비용 합의 기술&lt;br /&gt;
 • 스마트 계약 검증 기술&lt;br /&gt;
&lt;br /&gt;
② 블록체인 확장 기술&lt;br /&gt;
 • 대용량 데이터 처리 기술, 외부 데이터 연동 기술&lt;br /&gt;
 • 대규모 서비스 제공을 위한 확장성 확보 기술&lt;br /&gt;
&lt;br /&gt;
③ 블록체인 서비스 기술&lt;br /&gt;
 • 거래 추적 및 분석 기술&lt;br /&gt;
 • 산업 분야별 기존 시스템 연동 기술&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
다. 특허조사&lt;br /&gt;
&lt;br /&gt;
 ◇ 최근 비트코인 등 암호 화폐에 대한 관심이 증가함에 따라, 그 기술적 기반인 블록체인 관련 특허출원도 전 세계적으로 폭발적 증가 추세인 것으로 나타났다. 특허청(청장 성윤모)에 따르면, 지식재산 선진 5개국(IP4, 한국•미국•일본•중국•유럽)에 출원되어 조사 시점(‘18년 1월말 기준)까지 공개된 블록체인 관련 전 세계 특허 출원은 모두 1,248건으로 나타났다 특허 출원의 양은 많지 않으나, ’09년 블록체인이 최초 구현된 이래, ‘13년 27건에서 매년 2~3배 증가’해 ‘15년에는 257건, ’16년에는 594건(미공개건 제외)에 이르는 것으로 조사됐다. 출원인의 국적별로 살펴보면, 누적건수로는 미국이 1위로 집계되었지만, ‘16년 이후 중국이 연간 특허출원 건수에서 미국을 제치고 1위로 올라섰다. 조만간 누적건수에서도 중국이 1위를 차지할 것으로 예측된다.&lt;br /&gt;
&lt;br /&gt;
 ◇ G2(미국, 중국)로의 편중 현상도 심해, 미국과 중국이 전체 특허 출원의 대부분(78%)을 점유했으며, 3, 4위를 차지한 우리나라와 일본의 점유율은 8%, 3%에 불과했다. 한편, 특허출원의 질적 수준을 나타내는 간접지표인, 해외출원 비율에서는 미국이 중국을 제치고 압두적인 선두를 지켰다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 주체별로는, 전 세계 블록체인 특허출원 중 81%를 기업이 주도하고 있고, 미국은 은행 등 금융기업에 의한 특허출원도 활발한 편이다. 한편 우리나라는 대기업보다 벤처기업 등의 중소기업 비중(66.7%)이 매우 높은 특징을 보였으며, 금융기업에 의한 특허출원은 아직까진 없는 것으로 조사(‘18.1월말 조사 시점까지 공개된 특허출원 기준)되었다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 블록체인의 기본 개념은 이미 Open Source로 공개되어 누구도 특허를 갖지 못하는 자유 기술이다. 따라서 특허출원은 주로 보안, 운용, 활용 등 주변 기술을 중심으로 이뤄지고 있다. 특히, 블록체인이 암호 화폐에서 물류•의료•공공 서비스 등으로 활용 범위가 점차 확대됨에 따라 특허출원도 덩달아 활용 분야를 중심으로 증가할 것으로 전망된다.&lt;br /&gt;
&lt;br /&gt;
 ◇ KB금융그룹의 ‘블록체인을 활용한 모바일 앱 보안 솔루션 관련 기술특허’는 서비스 부문과 보안부분을 분리해 보안부문의 암호화키를 블록체인망에 보관해 안정성을 높였다.&lt;br /&gt;
&lt;br /&gt;
 ◇ 골드만삭스의 ‘세틀코인(SETLcoin)’은 주식, 채권 등 실시간 거래뿐만 아니라 거래내역도 블록체인의 분산원장에 적용하여 위, 변조가 불가능한 첨단 핀테크를 가능하게 한다. &lt;br /&gt;
&lt;br /&gt;
 ◇ 미국의 대형 은행인 BoA(뱅크 오브 아메리카)도 15건의 특허를 출원했고, 20건 정도의 추가 특허를 출원할 예정이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
라. 특허전략&lt;br /&gt;
&lt;br /&gt;
 특허에서 공개된 비즈니스 모델은 블록체인 업체의 비즈니스 모델과 유사한 부분이 존재한다. 개인정보를 제공하고, 개인정보에 따른 보상금을 지급하는 구조이다. 위의 특허는 기존 특허에 대한 하나의 예시이고, 개인정보에 따른 보상과 관련된 기술, 개인 데이터를 추적하는 기술은 다른 특허에도 많이 기술되어 있기 때문에 이러한 기존의 비즈니스 모델 특허와 블록체인 특허가 차별점을 가지기 위해서는 블록체인과 블록체인과 트랜잭션을 발생시키는 노드 간의 동작에 대한 구체화, 블록 상에서의 데이터 처리 등에 관련된 특징들이 반드시 필요하다.&lt;br /&gt;
&lt;br /&gt;
 예를 들어, 블록체인에 올라간 스마트 콘트랙트를 기반으로 수집된 개인 정보가 블록체인과는 어떠한 관계를 가지고 처리되는지, 개인 정보의 거래는 블록체인 상에서 어떻게 수행되는지 보상은 블록체인 상에서 어떻게 발생되는지&lt;br /&gt;
위와 같은 블록체인, 블록과 연관된 구체적인 트랜잭션들이 블록체인 특허에 도시되고 기술되어야한다. 이러한 특징이 있다면, 블록체인 특허가 기존 특허와 차별화를 가질 수 있고 등록 가능성도 높아지게 됩니다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
가. 경쟁제품 조사 비교&lt;br /&gt;
◇ PlayKey&lt;br /&gt;
    &lt;br /&gt;
    - P2P와 블록체인 기술 기반의 게이머를 위한 세계 최초의 탈중앙화 클라우드 게이밍 플랫폼&lt;br /&gt;
    - 고성능의 컴퓨터를 가진 전세계 수십명의 독립적인 소유자가 커뮤니티 내에 결속하여 클라우드 게임 서비스 업체(채굴자)로 활동&lt;br /&gt;
    - 시스템 내 유일한 보편적인 에코 시스템 암호화폐 -PKT 토큰- 이 ICO를 통해 발급됨&lt;br /&gt;
    - 채굴자-게이머의 스마트 컨트랙트 형태로 구성되어 클라우드 게임 서비스의 높은 통합 수준을&lt;br /&gt;
      제공&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Google STADIA&lt;br /&gt;
  &lt;br /&gt;
 -  중앙집권형 클라우드 게이밍 플랫폼&lt;br /&gt;
 -  유튜브 기반이기 때문에 유튜브 재생만 가능하다면 저사양 PC든 스마트폰이든 태블릿 PC든 실시간 스트리밍 &lt;br /&gt;
을 통해 FHD 60프레임으로 게임 플레이 가능&lt;br /&gt;
 - 웹 브라우저에서 바로 실행되며 클릭 한/두 번으로 게임 플레이 가능&lt;br /&gt;
&lt;br /&gt;
나. 마케팅 전략&lt;br /&gt;
 1) EOS블록체인 기반 서비스를 제공함으로써&lt;br /&gt;
  ◇ 채굴자는 개인으로서 경제적이득(가상화폐)을 얻을 기회가 생긴다.&lt;br /&gt;
  ◇ 채굴자는 시장 활성화가 커져갈수록, 같은 서비스 제공으로 더 많은 이득을 얻을 수 있다.&lt;br /&gt;
  ◇ 사용자(게이머)는 저성능의 컴퓨터를 소유하고 있더라도, 약간의 이용료를 지불하여 고사양의 게임을 최고의 &lt;br /&gt;
 퀄리티로 즐길 수 있다.&lt;br /&gt;
  ◇ 사용자(게이머)는 기존 클라우드 게이밍 서비스보다도 훨씬 더 저렴한 가격으로 이용할 수 있다.&lt;br /&gt;
  ◇ 5G 상용화와 더불어 안정적인 서비스 제공을 통해 커다란 시장이 형성될 수 있다.&lt;br /&gt;
&lt;br /&gt;
 2) 월등한 EOS의 초당 트랜잭션 처리 수로 인한 게임 처리 속도의 향상&lt;br /&gt;
  ◇ 쾌적한 게임 플레이 가능&lt;br /&gt;
&lt;br /&gt;
 3) 국내에서 인기 있는 게임 위주 서비스 제공&lt;br /&gt;
  ◇ 기존의 클라우드 게이밍 플랫폼에서 제공되는 게임들은 해외에서 인기있는 게임 위주였기 때문 에 국내 게이 &lt;br /&gt;
 머들의 관심을 끌기 어려웠다.&lt;br /&gt;
  ◇ 국내에서 인기 있는 게임 위주로 서비스를 제공하여 국내 게이머들의 관심도 증가&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
&lt;br /&gt;
◇ 분산형 컴퓨팅을 통한 안정적인 서비스 제공&lt;br /&gt;
&lt;br /&gt;
◇ 저사양 플랫폼에서 고사양 게임 가능&lt;br /&gt;
&lt;br /&gt;
◇ 이더리움보다 월등한 EOS의 초당 트랜잭션 처리 수가 게임 처리 속도의 향상을 제공&lt;br /&gt;
&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
&lt;br /&gt;
◇ 새로운 기술 보급을 통한 시장 흐름 변화&lt;br /&gt;
&lt;br /&gt;
◇ 개인의 소비 패턴 변화(기존 : 하드웨어 성능 중시 → 서비스 제공이후 : 클라우드 서비스 중시)&lt;br /&gt;
&lt;br /&gt;
◇ 생소했던 클라우드 게이밍에 국내 인지도 상승&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
◇ 먼저 AWS 서비스를 기반으로 Node.js 웹 서버를 구축한 후, Ejs/CSS 등을 이용하여 간단하고 기본적인 페이지 라우팅 구조(Back-End), UI/UX(Front- End) 등을 구축해놓는다.&lt;br /&gt;
&lt;br /&gt;
◇ 그 다음, EOS.IO기반 로컬 체인을 구축하고, 웹 서버와 연동한 뒤 사용자 회원가입/지불 시스템 등의 로직을 Smart Contract로 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ Smart Contract 구현에 성공하면, 실 게임 구동 서버-클라이언트 간 기본적인 실시간 스트리밍 서비스를 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ 실시간 스트리밍 서비스 구현에 성공하면, Smart Contract로 사용자 - 게임 구동 서버 매칭 로직을 구현하고, 스트리밍 시 전송되는 비디오/오디오 데이터를 EOS.IO Storage 기반으로 저장하는 방식으로 EOS.IO 위에 올려서 스트리밍 서비스를 구현한다.&lt;br /&gt;
&lt;br /&gt;
◇ 마지막으로 세부적인 기능들을 구현한 뒤 UI/UX를 다듬고 테스트한다.&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
가. 개발 일정&lt;br /&gt;
&lt;br /&gt;
3월 : 기존 EOS 기술 및 클라우드 시스템 분석 &lt;br /&gt;
&lt;br /&gt;
분산형 클라우드 시스템 설계 및 구현 &lt;br /&gt;
&lt;br /&gt;
4월 : 게임 스트리밍 서비스 설계 및 구현&lt;br /&gt;
&lt;br /&gt;
5월 : 매칭 시스템 설계 및 구현&lt;br /&gt;
&lt;br /&gt;
6월 : 전체 시스템 테스트 및 검토&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
나. 구성원 및 추진체계&lt;br /&gt;
&lt;br /&gt;
◇김용준: 분산형 클라우드 시스템, 매칭 시스템 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇노기선: 분산형 클라우드 시스템, 게임 스트리밍 서비스 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇ 임종범: 기존 시스템 분석, 게임 스트리밍 서비스 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
◇ 장원석: 기존 시스템 분석, 매칭 시스템 담당 및 전체 검토&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
1. 기능적 요구사항&lt;br /&gt;
&lt;br /&gt;
◇1) 사용자가 보유한 토큰양을 불러와 서비스 사용 가능 시간을 산출해준다.&lt;br /&gt;
&lt;br /&gt;
◇2) 게임 별로 각각 다른 비용을 책정하여, 그에 맞게 사용 시간을 차감한다. (고사양일수록 비용 상승)&lt;br /&gt;
&lt;br /&gt;
◇3) 서비스 사용 시작부터 종료시 까지, 사용자가 플레이 하는 게임의 영상을 스트리밍 서비스 형태로 제공한다.&lt;br /&gt;
&lt;br /&gt;
◇4) 키보드, 마우스 등 사용자가 게임 플레이를 위해 입력하는 입력 신호를 송/수신한다.&lt;br /&gt;
&lt;br /&gt;
◇5) 스피커, 스크린샷 등 사용자 컴퓨터에 출력되는 출력 신호를 송/수신한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. 비기능적 요구사항&lt;br /&gt;
&lt;br /&gt;
◇1) EOS와 AWS를 이용한 SmartContract 환경을 조성한다.&lt;br /&gt;
&lt;br /&gt;
◇2) IPFS를 이용하여 영상 스트리밍은 최소 30FPS에서 최대 60FPS까지 서비스 할수 있도록 한다.&lt;br /&gt;
&lt;br /&gt;
◇3) 게임 플레이 시 입/출력 신호의 딜레이 최소화는 아주 중요하다. 이 딜레이는 반드시 짧아야한다.&lt;br /&gt;
&lt;br /&gt;
◇4) 블록에는 게임 이용시간, 사용한 토큰 수, 플레이한 게임의 종류 등을 포함한다.&lt;br /&gt;
&lt;br /&gt;
====설계 사양====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
◇ 웹 플랫폼 기반으로 구축함으로써 다양한 기기(데스크탑, 모바일 기기 등)에서 접근하기가 용이하다.&lt;br /&gt;
&lt;br /&gt;
- 언제 어디서든 기기만 있으면 원하는 게임 실행 가능한 환경 구축&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 다양한 사용자의 욕구를 충족시키기 위해 폭넓은 장르의 게임 지원&lt;br /&gt;
&lt;br /&gt;
- 고사양이 필요한 게임도 지원하여 하드웨어의 장벽 완화&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 실시간 게임 플레이 영상 및 입출력 조작 신호 송/수신(스트리밍)&lt;br /&gt;
&lt;br /&gt;
- IPFS 시스템을 이용해 빠른 속도의 오디오/비디오 데이터 전송&lt;br /&gt;
&lt;br /&gt;
- 기존의 실시간 스트리밍 방식에 비해 빠르고, 안전하고, 개방적임&lt;br /&gt;
&lt;br /&gt;
- 실시간 스트리밍 서비스에서 가장 중요한 요소인 지연 시간(Latency) 개선 가능&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ EOS 기반의 DApp으로 안정성 및 보안성, 가격 경쟁력 확보&lt;br /&gt;
&lt;br /&gt;
- EOS는 타 블록체인 기반의 DApp(이더리움 등)에 비해 많은 트랜잭션 처리가 가능하도록 설계되어 있어 안정적이고, 그 외 수많은 장점 덕에 점점 사용률이 높아지는 DApp 플랫폼이다.&lt;br /&gt;
&lt;br /&gt;
- 트랜잭션 당 사용료(Gas)를 내야 하는 이더리움(Ethereum)에 비해, EOS는 DApp 사용 시에 요금을 낼 필요가 없어 사용자 입장에서 경제적이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ 블록체인에 정보를 기록함으로써 토큰 거래 정보의 위변조를 방지, 신뢰성을 보장한다.&lt;br /&gt;
&lt;br /&gt;
- 컴퓨팅 파워 제공자/게이머, 게임 플레이 관련 정보를 블록체인에 기록한다&lt;br /&gt;
&lt;br /&gt;
- 컴퓨팅 파워 제공자와 게이머의 매칭은 스마트 컨트랙트로 수행된다&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Adaptive HTTP Protocol을 활용하여 쾌적한 스트리밍 환경을 제공한다.&lt;br /&gt;
&lt;br /&gt;
- 동영상 콘텐츠를 다양한 해상도로 인코딩하고 여러 데이터 조각으로 나누어 저장한다.&lt;br /&gt;
&lt;br /&gt;
- 네트워크 상황에 따라 실시간으로 적절한 해상도를 가진 영상 데이터 조각들이 다운로드 되어 버퍼링 없는 스트리밍 환경을 제공한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
1 CLIENT : 웹 페이지를 통해 DApp에 접근하도록 구성, Node.js 기반 웹 Back-End, Front-End 구현(자체 구현)&lt;br /&gt;
&lt;br /&gt;
2 EOS.IO 기반 DApp : 오픈소스 소프트웨어인 EOS.IO를 기반으로 게이밍 플랫폼 DApp 개발(오픈소스 기반 구현)&lt;br /&gt;
&lt;br /&gt;
3 Smart Contract : 사용자(CLIENT)와의 이용권 - 요금 지불 시스템 및 요금을 지불한 사용자를 대상으로 게임을 구동할 수 있는 서버(SERVER)와 매칭 시스템 구현(자체 구현)&lt;br /&gt;
&lt;br /&gt;
4 IPFS File Storage : EOS.IO 내부에 IPFS 방식으로 설계되어 있는 EOS.IO Storage를 기반으로 구현(오픈소스기반 구현)&lt;br /&gt;
&lt;br /&gt;
5 Server : 게임을 실제 구동하는 서버, 구동 중 실시간으로 출력된 오디오/비디오 데이터를 캡처하여 오픈소스 소 프트웨어인 ffmpeg을 이용하여 인코딩 후, DApp 내부 IPFS File Storage에 업로드하고 사용자(CLIENT) 단말기에 서 받아 화면에 출력하는 방식으로 구현. 서버에 전달된 게이머의 입력신호는 서버에서 구동되는 게임의 입력으로 처리되도록 구현. (오픈소스 기반 구현)&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Smartcontract.PNG&amp;diff=1502</id>
		<title>파일:Smartcontract.PNG</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Smartcontract.PNG&amp;diff=1502"/>
				<updated>2019-06-20T15:16:49Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1501</id>
		<title>호호조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1501"/>
				<updated>2019-06-20T10:45:53Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 결과 및 평가 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : 광물시장에서 강화학습을 이용한 트레이딩 봇&lt;br /&gt;
&lt;br /&gt;
''' 영문 :  Trading-bot using Reinforcement Learning in a mineral market&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
호호&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
이동희 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920044 이홍석(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920037 이정한&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
*이전부터 사용자들이 많이 사용하던 시계열 분석 알고리즘과 다양한 지표들을 활용하여 강화학습을 이용하여 광물 가격을 예측한다.&lt;br /&gt;
*광물시장에서 시가에 영향을 미치는 다양한 요인이 존재한다.&lt;br /&gt;
*이미 밝혀진 다양한 요인들과 우리들이 생각한 요인들을 정리한다.&lt;br /&gt;
*이러한 요인들을 강화학습을 통해서 상관관계가 있는지 확인하고 실제로 수익을 낼 수 있는 모델과 학습을 진행한다.&lt;br /&gt;
*여러 가지 요인(차트 및 시장표준지수)들과 전략들을 가지고 하나의 광물을 대상으로 수익률이 높을 것으로 예상되는 매수, 매도 타이밍을 찾아낼 수 있는 것을 목표로 한다.&lt;br /&gt;
*다양한 강화학습 알고리즘 중 PPO(Proximal Policy Optimization), DQN(Deep Q Network)을 사용하여 구현해보고 어떤 방식이 더 잘 맞는지 분석해본다.&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*광물 시장은 매 시간마다 변동함&lt;br /&gt;
*광물 시장의 변동은 어떠한 요인들에 의해 값어치가 올라가기도 하고 내려가기도 함&lt;br /&gt;
*다양한 논문 Research 및 분석을 통해 값에 변화를 주는 요인들을 선별&lt;br /&gt;
*해당 요인들을 강화학습 모델의 환경에 넣어서 학습을 시킴&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
*강화학습을 이용하여 트레이딩을 자동으로 하는 봇을 만든다.&lt;br /&gt;
*광물 가격에 영향을 주는 요인들을 찾아보고 어느 정도 연관관계가 있는지 확인한다.&lt;br /&gt;
*연관관계가 있는 요인들을 모아서 강화학습모델에 적용시켜보고 실제로 효과가 있는지 확인해본다.&lt;br /&gt;
*효과가 컸던 요인들을 모아서 모의 투자 상황에서 수익률 분석을 해본다.&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
**자동 거래 시스템(ATS;Automated Trading System)은 1949년 Richard Donchian이 funds를 사고 파는 일련의 규칙을 사용하여 처음 소개되었다. 1980년대에는 John Henry와 같은 유명한 Trader들이 전략을 사용하기 시작하여, 규칙 기반 거래(Rule Based Trading)라는 개념이 대중화되었다. 현재는 미국 증권 거래소 주식 거래의 75% 이상이 자동 거래 시스템으로 이루어진다.&lt;br /&gt;
**최근에는 AI의 등장으로, 수많은 은행이나 투자자들이 AI를 활용하여 규칙 기반 거래나 직접 거래보다 훨씬 수익률이 높은 모델을 개발중이다. 딥러닝, 머신러닝 등의 기술을 활용하여 Trading Bot을 개발하고 있으며, 강화학습의 등장이후, 다양한 Trading Bot Project에서 강화학습을 도입하려는 움직임을 보이고 있다.&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
**거절 : 알고리즘 자동 매매 봇, [https://doi.org/10.8080/1020090067197]&lt;br /&gt;
***알고리즘 트레이딩 봇들을 모아서 관리할 수 있는 시스템&lt;br /&gt;
***통상적인 기술자가 충분히 만들 수 있는 것으로 판단하여 특허 거절&lt;br /&gt;
**등록 : 소셜트레이딩 방법, [http://kpat.kipris.or.kr/kpat/biblioa.do?method=biblioFrame]&lt;br /&gt;
***리더를 설정하여 해당 리더의 매매를 확인하고 추종하는 알고리즘&lt;br /&gt;
*기술 로드맵&lt;br /&gt;
**자동으로 거래를 할 수 있는 봇의 형태를 만들어야 하고, 모의투자를 통해 테스트할 수 있는 환경을 만들어야하기 때문에 투자, 증권사 API 및 모의투자 서버가 필요하다. 따라서, 키움증권, 대신증권, 이베스트투자증권 등의 회사의 API를 활용하고, 이 회사들의 모의투자 서버를 통해 수익률을 분석할 수 있다.&lt;br /&gt;
**강화학습은 환경이 주어지고, 해당 환경에 액션을 취하면 그에 따른 보상을 주면서 학습을 시킨다. 일반적인 딥 러닝은 어떤 요인들의 상호관계를 표현하지 못한다. 하지만 강화학습은 환경을 통해 어떤 요인들의 상호관계를 표현할 수 있다. 주식들은 서로 상호관계를 가지고 있으므로 강화학습을 이용하는 것이 유리한 방법이라 할 수 있다.&lt;br /&gt;
**현재에는 차트분석만으로 주식이나 광물시장에서의 매도, 매수타이밍을 잡아서 수익을 낼 수 있는 다양한 방법이 연구되고 있다. 이를 기술적 매매라고 부른다. 이러한 방법을 이용하여 알고리즘으로 구현하면 보다 안정적이고 수익률이 검증된 매매방법을 사용할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
**이러한 제품들은 시장에 공개적으로 나와있는 것을 쉽게 찾을 수 없다. 이러한 트레이딩봇 자체가 실제 주식시장에서 수익을 낼 수 있기 때문이다. 이윤을 창출하는 기업의 입장에서는 이 트레이딩 봇을 직접적으로 사용하지 않을 이유가 없다.&lt;br /&gt;
**또한 많은 사용자가 트레이딩 봇을 사용한다고 가정했을 때 모두가 이익을 볼 수 있는 것은 아니다. 같은 알고리즘을 사용하는 트레이딩 봇이 많으면 수익률이 줄어 들기 때문에 이러한 트레이딩 봇을 상용화하지 않은 것으로 보인다.&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! 알고리즘 !! 증권사 API !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 브레인듀드의 듀드303, 듀드프로&lt;br /&gt;
| 사용자의 조건검색식 사용 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 키움증권의 로보마켓&lt;br /&gt;
| 다양한 알고리즘 전략 제시 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 주식몰 오토핫키&lt;br /&gt;
| 해당하는 설명이 없음 || 해당하는 설명이 없음 || 마켓팅 위주의 사업 진행&lt;br /&gt;
|}&lt;br /&gt;
**위와 같이 알고리즘 트레이딩 봇을 만드는 회사 이외에도 증권사나 펀드회사 같은 경우에도 가치투자를 위한 분석자료를 제공하는 서비스를 제공할 수 있다.&lt;br /&gt;
**한국거래소에서는 종목마다 투자가치를 판단할 수 있는 자료를 제공한다. 이에 따라서 우리의 트레이딩봇과 경쟁해야 하는 부분을 가지고 있다.&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**위와 같이 여러가지 요인을 연구, 분석함에 따라서 트레이딩 봇을 만들 수 있다. 이 요인들의 적당한 조합으로 여러가지 특성을 띠는 트레이딩 봇을 개발할 수 있다.&lt;br /&gt;
**사용자들에게 원하는 이익구조를 선택할 수 있게 한다. 예를 들어 수익률이 크게 높지 않더라도 안정적인 투자를 원하는 사용자가 있고, 위험을 감수하더라도 높은 수익률을 원하는 사용자가 있다. 요인분석에 따라서 얻을 수 있는 특징들을 찾아내고 이러한 요인들로 주식트레이딩의 위험, 최고 수익률등이 결정될 것이다. &lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
*기존의 주식 트레이딩봇들은 우리가 직접 알고리즘을 구현하고 설계함에 따라서 작동했다. 사람의 직관을 이용해서 장기투자를 하는 것이 아니라 짧은 시간의 시장변동을 감지해서 조금씩 수익을 올리는 등의 알고리즘이 만들어져 왔다. 하지만 강화학습과 딥러닝을 사용해서 좀 더 효과적인 방향을 찾을 수 있다.&lt;br /&gt;
*딥러닝에서 사용하는 뉴럴 네트워크는 학습이 완료되었을 때 예측속도가 매우 빠르다는 특징을 갖고 있다. 해당 요인을 성공적으로 학습한 네트워크를 얻은 후에 봇을 사용할 때는 컴퓨팅의 성능을 크게 사용하지 않고 빠른 속도의 트레이딩이 가능하다.&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
*위에서 서술한 대로 만일 강화학습을 이용해서 주식 트레이딩봇이 성공적으로 수익을 낼 수 있는 구조라면, 이와 유사한 트레이딩봇이 많이 등장할 것이다. 더불어서 강화학습에 딥러닝을 적용시키면서 구성할 수 있는 선택의 여지가 많아졌다. 각기 학습하는 방법에 따라서 각기 다른 여러가지 전략이 등장할 수 있는 것이다. 따라서 기존에 알고리즘을 이용해서 매매를 진행하던 투자자들이 새롭게 등장하는 트레이딩봇의 투자전략에 영향을 받을 것이며, 시장의 특성은 더 다양하고 복잡해질 것이다.&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  단계별 세부개발 내용 !! 담당자 !! 개발기간 !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 강화학습 환경 설계&lt;br /&gt;
| 이홍석 || 3~4 || &lt;br /&gt;
|-&lt;br /&gt;
! 모의투자 환경구성 및 트레이딩 봇 구현&lt;br /&gt;
| 이정한 || 4~5 ||&lt;br /&gt;
|-&lt;br /&gt;
! 학습진행 및 정확도 개선&lt;br /&gt;
| 이홍석 || 4~6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 기존의 트레이딩 봇과의 성능 비교&lt;br /&gt;
| 이정한 || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 요인 연구 및 분석&lt;br /&gt;
| 이홍석, 이정한 || 3~6 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
*컴퓨터과학부 2014920044 이홍석 : 작품설계 및 개발&lt;br /&gt;
*컴퓨터과학부 2014920037 이정한 : 작품설계 및 개발&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  번호 !! 요 구 사 항 !! D or W !! 중요도&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 기존 시계열 분석 논문에 있는 전략(요소, Factor)들을 모듈로 개발 || D || 대 &lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 시계열 데이터 분석 모듈을 적용할 수 있는 강화학습 모델을 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| 모델을 학습시킬 수 있는 환경(Env, DB) 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| PPO와 DQN 강화학습 알고리즘을 구현하고 분석 || W || 중&lt;br /&gt;
|}&lt;br /&gt;
====설계 사양====&lt;br /&gt;
*목적계통도&lt;br /&gt;
[[그림:Hoho7.png]]&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
*기존에 연구되어진 시계열 분석 알고리즘을 이용한 결과물들은 제각기 집중하는 부분이 다르기 때문에, 그 정확도가 서로 배타적 일 것이다. 즉 어느 한 알고리즘이 우위의 정확도를 가질 경우 다른 알고리즘은 상대적으로 낮은 정확도를 가질 것이다.&lt;br /&gt;
**서로 정확성에 있어 배타적일 정도로 다른 시계열 분석 알고리즘을 찾아야한다.&lt;br /&gt;
**배타적인 TA 알고리즘 a0~an을 찾고, 구현한다.&lt;br /&gt;
*강화학습 예측 모델&lt;br /&gt;
[[그림:Hoho8.png]]&lt;br /&gt;
**강화학습을 이용한 시계열 데이터의 학습을 통해 예측 모델을 생성한다.&lt;br /&gt;
**예측 모델은 다음과 같이 크게 두가지 단계로 구성된다.&lt;br /&gt;
***직접 시계열 데이터를 분석 / 예측하는 전략적 알고리즘&lt;br /&gt;
****네이밍: a0, a1, … , an&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {예측된 다음 시계열 데이터=o0, o1, …, on}&lt;br /&gt;
***인공신경망을 응용하는, 적절한 전략적 알고리즘에 가중치를 부여하는 알고리즘&lt;br /&gt;
****네이밍: M&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {w0, w1, …, wn}&lt;br /&gt;
****어느 하나의 전략적 알고리즘을 선택하는 방식(hard decision)이 아니라, 여러 전략적 알고리즘의 정확도를 연판정(soft decision)하여 그 비중을 출력한다. &lt;br /&gt;
**a의 결과인 O와 b의 결과인 W를 곱하여 최종 예측치를 계산한다. (가중평균)&lt;br /&gt;
***Predict = OW&lt;br /&gt;
**이 Agent의 결과에 따라서 전략을 어떤 비율로 선택하게 된다. 이를 조합한 값으로 특정 광물에 대한 매수 혹은 매도할 값을 선택하게 된다.&lt;br /&gt;
*강화학습 환경 구성 요소&lt;br /&gt;
**에이전트&lt;br /&gt;
***state값들을 DNN을 사용하여 전략을 선택할 수 있는 값으로 추출한다.&lt;br /&gt;
***전략개수 의존적&lt;br /&gt;
**환경&lt;br /&gt;
***한 거래소의 해당 광물의 일봉csv데이터를 시간에 따라서 사용&lt;br /&gt;
***USD, EUR (KRW 기준) 지수 데이터&lt;br /&gt;
**리워드 공식&lt;br /&gt;
***해당 광물의 가치와 잔금을 합산한 값을 리워드로 사용한다.&lt;br /&gt;
**액션 리스트&lt;br /&gt;
***양수는 매수, 음수는 매도의 의미로 하나의 출력값을 사용한다.&lt;br /&gt;
****광물 거래는 1주 단위의 이산적인 값을 사용한다.&lt;br /&gt;
****최대, 최소값을 설정한다.&lt;br /&gt;
*학습 시나리오&lt;br /&gt;
**매 학습에서 어떤 기간을 랜덤으로 설정한다.&lt;br /&gt;
**이 시간동안의 광물시장 데이터를 사용해서 하루 단위로 액션을 진행한다.&lt;br /&gt;
**시계열 분석 부분에서 각각의 전략이 매수/매도값을 도출한다.&lt;br /&gt;
**강화학습 부분에서 가중치를 도출한다.&lt;br /&gt;
**가중치값과 매수/매도값을 각각 곱하고 누적한다.&lt;br /&gt;
**해당 값을 통해 매수/매도/유지를 진행한다.매도가 될 때까지 진행하고 매도시 수익률을 구한다.&lt;br /&gt;
**수익률이 증가하는 방향으로 학습을 한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
*강화학습 오픈소스) DQN을 이용한 트레이딩 학습 테스트&lt;br /&gt;
**학습개요&lt;br /&gt;
***아래는 국내 3개 IT기업의 일봉데이터를 대상으로 학습을 진행한 결과이다.&lt;br /&gt;
***구현에서는 가능한 만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
***아래의 그래프에서는 초기 투자금을 가지고 시간에 따라서 자산 가치가 어떻게 변하는지 보여준다.&lt;br /&gt;
**트레이닝 데이터로 학습 진행 중 자산가치변화&lt;br /&gt;
[[파일:Hoho1.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***초반에는 매우 가치가 크지만 불안정한 트레이딩을 하다가 후에 안정적인 수익률을 보여주는 것을 알 수 있다.&lt;br /&gt;
**테스트 데이터에서 거래중 자산가치 변화&lt;br /&gt;
[[파일:Hoho2.png]]&lt;br /&gt;
***빨간 선은 초기 투자 금액이다.&lt;br /&gt;
***테스트 데이터로 트레이딩 했을 때 투자금액 보다 평균 12%의 수익을 올릴 수 있었다.&lt;br /&gt;
***단순 시가만으로 학습을 하는 경우, 위와 같이 매우 불안정하므로 다양한 전략을 통해 개선이 필요하다.&lt;br /&gt;
*전략 오픈소스) 10일, 30일 이동평균선 교차점 검출을 이용한 매수 매도 알고리즘 트레이딩&lt;br /&gt;
**방법&lt;br /&gt;
***현재까지 크롤링한 일봉데이터에서 단기 이동평균선과 장기 이동평균선의 교차점은 중요한 매도, 매수타이밍의 후보가 될 수 있다. 장기적인 추세를 따라가는 것이 미래에 대체로 좋은 방향이 되므로 장기평균선이 상승할 떄 매수, 하락 할 때 매도를 하는 것이 좋다.&lt;br /&gt;
***구현에서는 가능한만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
**Ta-lib&lt;br /&gt;
***Technical Analysis LIbrary&lt;br /&gt;
***시장분석과 같은 시계열 데이터 알고리즘을 분석하는데 사용하는 라이브러리&lt;br /&gt;
***내부에서는 기본 시장지표를 받으면 이에 따라서 새로운 보조지표를 만들어주거나 패턴을 검출하는 함수 제공&lt;br /&gt;
***구현에서 이동평균선 지표를 얻을 때 사용.&lt;br /&gt;
**가상트레이딩에 따른 자산가치 변화&lt;br /&gt;
[[파일:Hoho3.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***위와 같이 장기간 트레이딩을 진행하는데 있어서 이동평균선 교차점을 이용한 트레이딩이 좋은 효과를 보이는 것을 알 수 있다.&lt;br /&gt;
*광물시장 시가데이터 크롤링&lt;br /&gt;
**한국거래소([http://www.krx.co.kr])&lt;br /&gt;
**거래소홈페이지에서 1년단위의 데이터를 csv로 내려받을 수 있다.&lt;br /&gt;
**아래는 2014년 - 2019년의 종가를 그래프로 나타낸 것이다.&lt;br /&gt;
[[파일:Hoho4.png]]&lt;br /&gt;
*DQN 소스코드를 사용한 광물시장 가상 트레이딩&lt;br /&gt;
**위에서 사용한 DQN방법을 금시장을 대상으로 트레이딩을 진행했다.&lt;br /&gt;
**구현방식은 위의 DQN을 이용한 트레이딩 테스트와 같다.&lt;br /&gt;
**2000회 트레이닝을 진행하여서 매회 트레이닝마다 다음과 같은 결과를 얻을 수 있었다.&lt;br /&gt;
[[파일:Hoho5.png]]&lt;br /&gt;
**초기투자금액 10,000,000원으로 학습을 진행했다.&lt;br /&gt;
**위에서 트레이닝한 결과를 바탕으로 테스트를 진행했다.&lt;br /&gt;
[[파일:Hoho6.png]]&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
====유스케이스 다이어그램====&lt;br /&gt;
[[파일:hoho10.png]]&lt;br /&gt;
* 투자자가 각종 종목과 학습 정책 등을 선택한다.&lt;br /&gt;
* 선택을 기반으로 모델을 생성해서 가상 트레이딩을 진행할 때 수익률이 잘 나올 수  있는 지 확인한다.&lt;br /&gt;
* 학습 방법에 따른 비교 분석을 진행한다.&lt;br /&gt;
* 액터&lt;br /&gt;
** 액터명 : 투자자&lt;br /&gt;
** 설명 : 해당 프로그램을 투자의 지표로 사용하고 싶은 사람&lt;br /&gt;
* 각 유스케이스설명&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 종목선택&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 원하는 종목을 선택함&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
#투자자가 원하는 종목을 선택한다.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|프로그램 실행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 강화학습 정책 선택&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 원하는 강화학습 정책을 선택(PPO,DQN)&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
#투자자가 원하는 강화학습 정책을 선택한다.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|프로그램실행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 투자 젼략 선택&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 원하는 전략을 선택함&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
#투자자가 원하는 전략을 선택한다.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|프로그램실행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 강화학습 모델 생성&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 선택한 내용대로 강화학습 모델을 생성함.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 선택한 내용을 보여줌&lt;br /&gt;
# 확인 버튼을 누르면 모델을 생성함&lt;br /&gt;
# 모델 생성 성공 팝업을 보여줌&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
2.a. 최소 버튼을 누르면 선택화면으로 돌아옴.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
프로그램실행&lt;br /&gt;
종목 선택&lt;br /&gt;
강화학습 정책 선택&lt;br /&gt;
투자 전략 선택&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 생성에 성공해야 함&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 모델 학습&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 생성한 모델을 학습함.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 원하는 학습 인자를 입력&lt;br /&gt;
# 학습 실행&lt;br /&gt;
# 학습 결과를 보여줌&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
2.a. 학습 인자를 형식에 맞게 입력하지 않은 경우 학습 실패를 보여줌.&lt;br /&gt;
&lt;br /&gt;
2.b. 학습 도중 학습에 실패할 경우 에러 메시지를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 생성에 성공&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
학습 결과 출력.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 가상 트레이딩&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 학습한 모델로 가상 트레이딩을 함.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 초기금액을 입력한다.&lt;br /&gt;
# 기간을 설정한다.&lt;br /&gt;
# 한 번당 최대 매수, 매도금액을 입력한다.&lt;br /&gt;
# 가상 트레이딩을 실행한다.&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
4.a. 입력한 형식에 맞지 않는 경우 실행실패를 보여줌.&lt;br /&gt;
&lt;br /&gt;
4.b. 실행에 실패한 경우 오류메시지를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 학습 완료&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
실행 결과를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|참고 사항&lt;br /&gt;
|colspan=3|&lt;br /&gt;
CSV에서 Test데이터셋을 만들어서 진행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 실제 트레이딩&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 학습한 모델로 현재 상태를 넣었을 때 매수나 매도, 대기를 알려주고, 매수나 매도일 경우 양을 알려줌.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 현재 잔액을 입력한다.&lt;br /&gt;
# 투자자가 소지한 광물의 양을 입력한다.&lt;br /&gt;
# 한 번당 최대 매수, 매도금액을 입력한다.&lt;br /&gt;
# 실행 버튼을 누른다.&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
4.a. 입력한 형식에 맞지 않는 경우 실행실패를 보여줌.&lt;br /&gt;
&lt;br /&gt;
4.b. 실행에 실패한 경우 오류메시지를 보여줌.&lt;br /&gt;
&lt;br /&gt;
4.c. 잔액이 없는 경우 투자 실패를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 학습 완료&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
해당 타이밍의 행동과 양을 출력&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====소프트웨어 전체 구성도====&lt;br /&gt;
[[파일:hoho11.png]]&lt;br /&gt;
* 광물시장 데이터 csv&lt;br /&gt;
** 광물 시장의 가격을 일봉형식으로 나타낸다.&lt;br /&gt;
** csv파일 형식으로 저장되어있다.&lt;br /&gt;
* 모의 투자&lt;br /&gt;
** 강화학습 모델에서 환경을 모의투자 api로 사용할 수 있는 부분이다.&lt;br /&gt;
* 학습 및 투자환경&lt;br /&gt;
** 강화학습 모델에 이용할 수 있는 환경요소로 추상화한다.&lt;br /&gt;
* 전략 및 트레이딩 DNN agent&lt;br /&gt;
** 가상화된 환경에서 실제로 매도나 매수등의 결정을 내리는 agent이다.&lt;br /&gt;
** 기본적으로 설정되어있는 다수의 알고리즘과 DNN을 합성하여 판단을 한다.&lt;br /&gt;
* 강화학습 정책&lt;br /&gt;
** 위의 DNN agent를 학습시키는 방법이다.&lt;br /&gt;
** PPO, DQN등의 방법을 사용한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====UI 정의====&lt;br /&gt;
* 메뉴구성&lt;br /&gt;
&lt;br /&gt;
{|cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 시스템&lt;br /&gt;
| Level1&lt;br /&gt;
| Level2&lt;br /&gt;
| Level3&lt;br /&gt;
| Level4&lt;br /&gt;
|-----&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|사용자용 프로그램&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|메인화면&lt;br /&gt;
|강화학습방식 설정&lt;br /&gt;
|모델생성&lt;br /&gt;
|모델학습&lt;br /&gt;
|-----&lt;br /&gt;
|사용할 트레이딩 전략&lt;br /&gt;
|모델 불러오기&lt;br /&gt;
|가상 트레이딩&lt;br /&gt;
|-----&lt;br /&gt;
|종목선택&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|모델저장&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|모델저장&lt;br /&gt;
|-----&lt;br /&gt;
|모델 불러오기&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* 화면 목록&lt;br /&gt;
&lt;br /&gt;
{|cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
|화면 ID&lt;br /&gt;
|화면명&lt;br /&gt;
|화면설정&lt;br /&gt;
|보안등급&lt;br /&gt;
|액터명&lt;br /&gt;
|권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-01&lt;br /&gt;
|메인화면&lt;br /&gt;
|메인화면&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-02&lt;br /&gt;
|강화학습방식 설정&lt;br /&gt;
|DQN이나 PPO선택 가능&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-03&lt;br /&gt;
|사용할 트레이딩 전략&lt;br /&gt;
|다양한 트레이딩 전략을 선택&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-04&lt;br /&gt;
|종목 선택&lt;br /&gt;
|다양한 종목 선택&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-05&lt;br /&gt;
|모델 불러오기&lt;br /&gt;
|기존에 저장한 모델을 불러옴&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-06&lt;br /&gt;
|모델 생성&lt;br /&gt;
|선택한 정보를 기준으로 모델 생성&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-07&lt;br /&gt;
|모델 저장&lt;br /&gt;
|현재 모델을 저장&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-08&lt;br /&gt;
|모델 학습&lt;br /&gt;
|현재 모델을 학습&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-09&lt;br /&gt;
|가상 트레이딩&lt;br /&gt;
|현재 모델로 가상 트레이딩&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*화면 흐름도&lt;br /&gt;
[[파일:hoho12.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====클래스 다이어그램====&lt;br /&gt;
[[파일:hoho9.png]]&lt;br /&gt;
* BaseTrainEnv&lt;br /&gt;
** 실제 시장의 환경을 강화학습에서 모델링하기 위한 베이스 클래스이다. API를 이용한 투자와 csv데이터로 가상화되는 환경의 베이스가 된다.&lt;br /&gt;
** reset()으로 환경을 초기화 한다.&lt;br /&gt;
** step()으로 거래를 전달하면, 다음날의 가격(state), 현재 가치(reward), 시간흐름의 완료(done), 기타정보를 반환한다.&lt;br /&gt;
* APITrainEnv&lt;br /&gt;
** 실제 투자API가 구현되는 클래스이다.&lt;br /&gt;
* CsvTrainEnv&lt;br /&gt;
** csv 데이터를 이용해 투자 환경이 구현되는 클래스이다.&lt;br /&gt;
*CsvTrainSet&lt;br /&gt;
** 투자 환경에 필요한 주가 데이터를 종합한 클래스이다.&lt;br /&gt;
** currency : 기준 통화&lt;br /&gt;
** exchange_rate : 기준 통화와 다른 통화의 환율&lt;br /&gt;
** object_price : 거래 대상의 가격데이터&lt;br /&gt;
** other_object_price : 거래 대상이외의 참고할 대상의 가격데이터&lt;br /&gt;
* PPOTrainModel &amp;amp; DQNTrainModel&lt;br /&gt;
** trainEnv: 사용한 투자환경 클래스이다.&lt;br /&gt;
** agent: 전략별 채택 가중치를 계산할 수 있는 오브젝트이다.&lt;br /&gt;
** tradeStrategies: 트레이딩에서 사용할 전략 알고리즘의 배열이다.&lt;br /&gt;
* BaseTradeStrategy&lt;br /&gt;
** 트레이딩에 사용할 수 있는 전략알고리즘을 추상화한 클래스이다.&lt;br /&gt;
** getInvest의 출력값은 +(매수), -(매도)로 나타낸다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====CSV데이터 포맷====&lt;br /&gt;
&lt;br /&gt;
* 최상단 줄에 해당하는 컬럼명 표기.&lt;br /&gt;
* 광물시장 가격 데이터&lt;br /&gt;
** 각 광물별, 거래소, 기준통화별로 파일 관리&lt;br /&gt;
** 파일내에서 날짜별로 시가, 종가, 고가, 저가, 거래량의 데이터를 가지고 있을 것&lt;br /&gt;
** 예시&lt;br /&gt;
&lt;br /&gt;
[[파일:hoho13.png]]&lt;br /&gt;
* 환율 데이터&lt;br /&gt;
** 각 기준통화별로 파일 관리&lt;br /&gt;
** 컬럼에 변환할 대상통화를 표기&lt;br /&gt;
** 날짜별로 통화량 표기&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====대표기능 사진====&lt;br /&gt;
[[파일:hoho14.png]]&lt;br /&gt;
===실행===&lt;br /&gt;
====사용가능한 기능들====&lt;br /&gt;
** 모델 생성&lt;br /&gt;
*** 강화학습 방식 설정&lt;br /&gt;
*** 베이스 트레이딩 전략 설정&lt;br /&gt;
*** 종목 설정&lt;br /&gt;
*** 새로운 모델 생성&lt;br /&gt;
** 모델 폴더 지정&lt;br /&gt;
*** 현재 학습된 모델이 저장될 폴더를 지정&lt;br /&gt;
** 모델 로딩&lt;br /&gt;
*** 학습 및 트레이딩시 자동으로 지정된 폴더에서 모델을 로드&lt;br /&gt;
*** 기존 모델에 대한 추가학습 옵션으로 새로운 학습, 기존모델에 대한 학습을 선택가능&lt;br /&gt;
** 모델 학습&lt;br /&gt;
*** 불러오거나 생성한 모델을 학습함&lt;br /&gt;
*** 매 에피소드마다 학습된 모델을 저장.&lt;br /&gt;
** 가상 트레이딩&lt;br /&gt;
*** 학습한 모델을 훈련데이터와 분리한 데이터에서도 학습이 잘 되는지 확인할 수 있음.&lt;br /&gt;
** 학습/결과 그래프 확인&lt;br /&gt;
*** 학습하거나 가상트레이딩을 진행한 그래프를 보여줌&lt;br /&gt;
*** 학습 시에는 에피소드마다, 트레이딩시 마지막 에피소드의 포트폴리오 그래프표시.&lt;br /&gt;
*** 그래프 데이터 자동 저장&lt;br /&gt;
&lt;br /&gt;
====학습예시====&lt;br /&gt;
[[파일:hoho15.png]]&lt;br /&gt;
** 위의 화면에 전략, 종목, 사용할 지표를 선택해야 한다. 학습할 에피소드 수, 추가학습이라면 체크박스를 선택한다. 최종적으로 모델 학습 시작을 눌러서 학습시작이라는 메시지를 확인할 수 있다.&lt;br /&gt;
[[파일:hoho16.png]]&lt;br /&gt;
** 위와 같이 학습이 진행중일 때에 각각의 에피소드마다의 결과값이 보여지는 것을 확인할 수 있다.&lt;br /&gt;
** 또한 학습 진행중에 그래프를 확인하면 아래와 같은 화면을 확인할 수 있다. 아래와 같은 그래프는 학습 에피소드마다 마지막 포트폴리오 가치가 어떠했는지를 확인할 수 있다. 이로써 모델의 학습이 성공적으로 되고 있는 것인지 추측해볼 수 있다.&lt;br /&gt;
** 이러한 그래프 보기 버튼을 누를 때 프로그램을 실행시킨 폴더에 graph.csv파일이 생성되고, 아래와 같은 그래프 데이터를 저장할 수 있다.&lt;br /&gt;
[[파일:hoho17.png]]&lt;br /&gt;
&lt;br /&gt;
====가상트레이딩 예시====&lt;br /&gt;
* 위와 같이 학습시 선택했던 종목, 지표와 강화학습 방법을 똑같이 선택한다.&lt;br /&gt;
** 만일 이전과 다르게 선택할 시 모델 트레이딩 과정중에 오류가 발생할 수 있다.&lt;br /&gt;
* 학습에 필요한 모델이 있는 폴더를 선택한다. 만일 선택하지 않고 트레이딩을 진행하거나 모델파일이 들어있지 않는 폴더를 선택하면, 아래와 같은 오류가 나타나면서 실행이 되지 않는다.&lt;br /&gt;
[[파일:hoho18.png]]&lt;br /&gt;
* 이 때의 에피소드 수는 여러 번으로 돌림으로써 학습과 유사하게 진행할 수 있으나, 최종적으로 얻는 그래프는 마지막 에피소드에서 테스트 데이터를 기반으로 진행한 트레이딩이기 때문에, 다수의 가상 트레이딩을 하는 것은 큰 의미가 있는 것은 아니다. 그러므로 에피소드 수는 1로 고정된다.&lt;br /&gt;
[[파일:hoho19.png]]&lt;br /&gt;
* 테스트가 완료되면 위와 같은 화면으로 바뀐다. 마지막 테스트 에피소드의 마지막 틱에서의 포트폴리오 가치가 얼마였는지를 나타낸다.&lt;br /&gt;
[[파일:hoho20.png]]&lt;br /&gt;
* 위의 그래프에서 초록색 점이 해당 틱에서 매수를 했음을 나타낸다. ma알고리즘에 기반해서 에어전트가 구매를 선택했고 이에 따른 수수료에 의해서 가치가 조금 감소한 것을 확인할 수 있다.&lt;br /&gt;
* 위의 그래프에서는 나타나지 않았지만 에어전트가 매도를 시도하게 되면 해당 점에서 붉은 점으로 표시가 된다.&lt;br /&gt;
&lt;br /&gt;
====그래프 데이터 자동 저장====&lt;br /&gt;
[[파일:hoho21.png]]&lt;br /&gt;
* 위의 그래프를 조회하게 되면 프로그램에서 자동으로 그래프 데이터를 저장하는 것을 확인할 수 있다.&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
&lt;br /&gt;
{|cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 auto; &amp;quot;&lt;br /&gt;
|평가항목&lt;br /&gt;
|평가방법&lt;br /&gt;
|적용기준&lt;br /&gt;
|개발 목표치&lt;br /&gt;
|비중(%)&lt;br /&gt;
|------&lt;br /&gt;
|1. 선정한 요인들이 충분히 근거가 있는가?&lt;br /&gt;
|해당 요인에 대한 논문이나 학술지가 있는지 확인&lt;br /&gt;
| Reference가 불분명하거나 없는 요인의 수&lt;br /&gt;
| 0개&lt;br /&gt;
|20&lt;br /&gt;
|------&lt;br /&gt;
|2. 요인들을 실험할 수 있는 프로토타입 강화학습 모델을 구현하였는가?&lt;br /&gt;
|해당 요인들을 환경에 넣어보고 테스트 해본다.&lt;br /&gt;
| 환경, 액션, 상태, 리워드 등을 넣었을 때 동작&lt;br /&gt;
|정상 동작 &lt;br /&gt;
|20&lt;br /&gt;
|------&lt;br /&gt;
|3. 다른 Trading Bot들과의 성능을 비교`분석하였는가?&lt;br /&gt;
|다른 Bot들과 모의투자를 진행하여 일정 시간 대비 수익률을 비교`분석한다.&lt;br /&gt;
| Bot들의 수익률 등수&lt;br /&gt;
|1위&lt;br /&gt;
|20&lt;br /&gt;
|------&lt;br /&gt;
|4. 요인들에 대한 연관성을 비교분석하였는가?&lt;br /&gt;
|요인들을 테스트해보고 각 요인들과 수익률간의 상관관계와 각 요인들 간의 상관관계를 분석&lt;br /&gt;
| 고려한 관계성이 있는 요인의 수&lt;br /&gt;
| 5개 이상&lt;br /&gt;
|20&lt;br /&gt;
|------&lt;br /&gt;
|5. 모의투자 상황에서 자동으로 Trading이 가능한가?&lt;br /&gt;
|모의투자 상황에서 Program을 실행시키고 자동으로 Trading이 되는지 확인함&lt;br /&gt;
| 거래 기록 및 수익률 기록&lt;br /&gt;
| 정상 동작&lt;br /&gt;
|20&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
가. 어려웠던 내용들&lt;br /&gt;
* 강화학습에 대한 이해&lt;br /&gt;
* 강화학습에서 비교적 최신 기술이었던 PPO를 구현한 점&lt;br /&gt;
* PPO에 대한 자료가 많이 없었던 점&lt;br /&gt;
* 주식시장이나 광물시장에서 가격에 연관이 있는 요인들 모듈화&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
나. 차후 구현할 내용&lt;br /&gt;
* PPO, DQN과는 다른 강화학습 방식 적용 및 실험&lt;br /&gt;
* 실제 트레이딩이 가능한 API를 연결함&lt;br /&gt;
* 주식시장과 코인시장에도 적용함&lt;br /&gt;
* 알고리즘적 트레이딩 전략을 다수 추가&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1500</id>
		<title>호호조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1500"/>
				<updated>2019-06-20T10:45:22Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 향후계획 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : 광물시장에서 강화학습을 이용한 트레이딩 봇&lt;br /&gt;
&lt;br /&gt;
''' 영문 :  Trading-bot using Reinforcement Learning in a mineral market&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
호호&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
이동희 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920044 이홍석(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920037 이정한&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
*이전부터 사용자들이 많이 사용하던 시계열 분석 알고리즘과 다양한 지표들을 활용하여 강화학습을 이용하여 광물 가격을 예측한다.&lt;br /&gt;
*광물시장에서 시가에 영향을 미치는 다양한 요인이 존재한다.&lt;br /&gt;
*이미 밝혀진 다양한 요인들과 우리들이 생각한 요인들을 정리한다.&lt;br /&gt;
*이러한 요인들을 강화학습을 통해서 상관관계가 있는지 확인하고 실제로 수익을 낼 수 있는 모델과 학습을 진행한다.&lt;br /&gt;
*여러 가지 요인(차트 및 시장표준지수)들과 전략들을 가지고 하나의 광물을 대상으로 수익률이 높을 것으로 예상되는 매수, 매도 타이밍을 찾아낼 수 있는 것을 목표로 한다.&lt;br /&gt;
*다양한 강화학습 알고리즘 중 PPO(Proximal Policy Optimization), DQN(Deep Q Network)을 사용하여 구현해보고 어떤 방식이 더 잘 맞는지 분석해본다.&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*광물 시장은 매 시간마다 변동함&lt;br /&gt;
*광물 시장의 변동은 어떠한 요인들에 의해 값어치가 올라가기도 하고 내려가기도 함&lt;br /&gt;
*다양한 논문 Research 및 분석을 통해 값에 변화를 주는 요인들을 선별&lt;br /&gt;
*해당 요인들을 강화학습 모델의 환경에 넣어서 학습을 시킴&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
*강화학습을 이용하여 트레이딩을 자동으로 하는 봇을 만든다.&lt;br /&gt;
*광물 가격에 영향을 주는 요인들을 찾아보고 어느 정도 연관관계가 있는지 확인한다.&lt;br /&gt;
*연관관계가 있는 요인들을 모아서 강화학습모델에 적용시켜보고 실제로 효과가 있는지 확인해본다.&lt;br /&gt;
*효과가 컸던 요인들을 모아서 모의 투자 상황에서 수익률 분석을 해본다.&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
**자동 거래 시스템(ATS;Automated Trading System)은 1949년 Richard Donchian이 funds를 사고 파는 일련의 규칙을 사용하여 처음 소개되었다. 1980년대에는 John Henry와 같은 유명한 Trader들이 전략을 사용하기 시작하여, 규칙 기반 거래(Rule Based Trading)라는 개념이 대중화되었다. 현재는 미국 증권 거래소 주식 거래의 75% 이상이 자동 거래 시스템으로 이루어진다.&lt;br /&gt;
**최근에는 AI의 등장으로, 수많은 은행이나 투자자들이 AI를 활용하여 규칙 기반 거래나 직접 거래보다 훨씬 수익률이 높은 모델을 개발중이다. 딥러닝, 머신러닝 등의 기술을 활용하여 Trading Bot을 개발하고 있으며, 강화학습의 등장이후, 다양한 Trading Bot Project에서 강화학습을 도입하려는 움직임을 보이고 있다.&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
**거절 : 알고리즘 자동 매매 봇, [https://doi.org/10.8080/1020090067197]&lt;br /&gt;
***알고리즘 트레이딩 봇들을 모아서 관리할 수 있는 시스템&lt;br /&gt;
***통상적인 기술자가 충분히 만들 수 있는 것으로 판단하여 특허 거절&lt;br /&gt;
**등록 : 소셜트레이딩 방법, [http://kpat.kipris.or.kr/kpat/biblioa.do?method=biblioFrame]&lt;br /&gt;
***리더를 설정하여 해당 리더의 매매를 확인하고 추종하는 알고리즘&lt;br /&gt;
*기술 로드맵&lt;br /&gt;
**자동으로 거래를 할 수 있는 봇의 형태를 만들어야 하고, 모의투자를 통해 테스트할 수 있는 환경을 만들어야하기 때문에 투자, 증권사 API 및 모의투자 서버가 필요하다. 따라서, 키움증권, 대신증권, 이베스트투자증권 등의 회사의 API를 활용하고, 이 회사들의 모의투자 서버를 통해 수익률을 분석할 수 있다.&lt;br /&gt;
**강화학습은 환경이 주어지고, 해당 환경에 액션을 취하면 그에 따른 보상을 주면서 학습을 시킨다. 일반적인 딥 러닝은 어떤 요인들의 상호관계를 표현하지 못한다. 하지만 강화학습은 환경을 통해 어떤 요인들의 상호관계를 표현할 수 있다. 주식들은 서로 상호관계를 가지고 있으므로 강화학습을 이용하는 것이 유리한 방법이라 할 수 있다.&lt;br /&gt;
**현재에는 차트분석만으로 주식이나 광물시장에서의 매도, 매수타이밍을 잡아서 수익을 낼 수 있는 다양한 방법이 연구되고 있다. 이를 기술적 매매라고 부른다. 이러한 방법을 이용하여 알고리즘으로 구현하면 보다 안정적이고 수익률이 검증된 매매방법을 사용할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
**이러한 제품들은 시장에 공개적으로 나와있는 것을 쉽게 찾을 수 없다. 이러한 트레이딩봇 자체가 실제 주식시장에서 수익을 낼 수 있기 때문이다. 이윤을 창출하는 기업의 입장에서는 이 트레이딩 봇을 직접적으로 사용하지 않을 이유가 없다.&lt;br /&gt;
**또한 많은 사용자가 트레이딩 봇을 사용한다고 가정했을 때 모두가 이익을 볼 수 있는 것은 아니다. 같은 알고리즘을 사용하는 트레이딩 봇이 많으면 수익률이 줄어 들기 때문에 이러한 트레이딩 봇을 상용화하지 않은 것으로 보인다.&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! 알고리즘 !! 증권사 API !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 브레인듀드의 듀드303, 듀드프로&lt;br /&gt;
| 사용자의 조건검색식 사용 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 키움증권의 로보마켓&lt;br /&gt;
| 다양한 알고리즘 전략 제시 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 주식몰 오토핫키&lt;br /&gt;
| 해당하는 설명이 없음 || 해당하는 설명이 없음 || 마켓팅 위주의 사업 진행&lt;br /&gt;
|}&lt;br /&gt;
**위와 같이 알고리즘 트레이딩 봇을 만드는 회사 이외에도 증권사나 펀드회사 같은 경우에도 가치투자를 위한 분석자료를 제공하는 서비스를 제공할 수 있다.&lt;br /&gt;
**한국거래소에서는 종목마다 투자가치를 판단할 수 있는 자료를 제공한다. 이에 따라서 우리의 트레이딩봇과 경쟁해야 하는 부분을 가지고 있다.&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**위와 같이 여러가지 요인을 연구, 분석함에 따라서 트레이딩 봇을 만들 수 있다. 이 요인들의 적당한 조합으로 여러가지 특성을 띠는 트레이딩 봇을 개발할 수 있다.&lt;br /&gt;
**사용자들에게 원하는 이익구조를 선택할 수 있게 한다. 예를 들어 수익률이 크게 높지 않더라도 안정적인 투자를 원하는 사용자가 있고, 위험을 감수하더라도 높은 수익률을 원하는 사용자가 있다. 요인분석에 따라서 얻을 수 있는 특징들을 찾아내고 이러한 요인들로 주식트레이딩의 위험, 최고 수익률등이 결정될 것이다. &lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
*기존의 주식 트레이딩봇들은 우리가 직접 알고리즘을 구현하고 설계함에 따라서 작동했다. 사람의 직관을 이용해서 장기투자를 하는 것이 아니라 짧은 시간의 시장변동을 감지해서 조금씩 수익을 올리는 등의 알고리즘이 만들어져 왔다. 하지만 강화학습과 딥러닝을 사용해서 좀 더 효과적인 방향을 찾을 수 있다.&lt;br /&gt;
*딥러닝에서 사용하는 뉴럴 네트워크는 학습이 완료되었을 때 예측속도가 매우 빠르다는 특징을 갖고 있다. 해당 요인을 성공적으로 학습한 네트워크를 얻은 후에 봇을 사용할 때는 컴퓨팅의 성능을 크게 사용하지 않고 빠른 속도의 트레이딩이 가능하다.&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
*위에서 서술한 대로 만일 강화학습을 이용해서 주식 트레이딩봇이 성공적으로 수익을 낼 수 있는 구조라면, 이와 유사한 트레이딩봇이 많이 등장할 것이다. 더불어서 강화학습에 딥러닝을 적용시키면서 구성할 수 있는 선택의 여지가 많아졌다. 각기 학습하는 방법에 따라서 각기 다른 여러가지 전략이 등장할 수 있는 것이다. 따라서 기존에 알고리즘을 이용해서 매매를 진행하던 투자자들이 새롭게 등장하는 트레이딩봇의 투자전략에 영향을 받을 것이며, 시장의 특성은 더 다양하고 복잡해질 것이다.&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  단계별 세부개발 내용 !! 담당자 !! 개발기간 !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 강화학습 환경 설계&lt;br /&gt;
| 이홍석 || 3~4 || &lt;br /&gt;
|-&lt;br /&gt;
! 모의투자 환경구성 및 트레이딩 봇 구현&lt;br /&gt;
| 이정한 || 4~5 ||&lt;br /&gt;
|-&lt;br /&gt;
! 학습진행 및 정확도 개선&lt;br /&gt;
| 이홍석 || 4~6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 기존의 트레이딩 봇과의 성능 비교&lt;br /&gt;
| 이정한 || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 요인 연구 및 분석&lt;br /&gt;
| 이홍석, 이정한 || 3~6 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
*컴퓨터과학부 2014920044 이홍석 : 작품설계 및 개발&lt;br /&gt;
*컴퓨터과학부 2014920037 이정한 : 작품설계 및 개발&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  번호 !! 요 구 사 항 !! D or W !! 중요도&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 기존 시계열 분석 논문에 있는 전략(요소, Factor)들을 모듈로 개발 || D || 대 &lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 시계열 데이터 분석 모듈을 적용할 수 있는 강화학습 모델을 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| 모델을 학습시킬 수 있는 환경(Env, DB) 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| PPO와 DQN 강화학습 알고리즘을 구현하고 분석 || W || 중&lt;br /&gt;
|}&lt;br /&gt;
====설계 사양====&lt;br /&gt;
*목적계통도&lt;br /&gt;
[[그림:Hoho7.png]]&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
*기존에 연구되어진 시계열 분석 알고리즘을 이용한 결과물들은 제각기 집중하는 부분이 다르기 때문에, 그 정확도가 서로 배타적 일 것이다. 즉 어느 한 알고리즘이 우위의 정확도를 가질 경우 다른 알고리즘은 상대적으로 낮은 정확도를 가질 것이다.&lt;br /&gt;
**서로 정확성에 있어 배타적일 정도로 다른 시계열 분석 알고리즘을 찾아야한다.&lt;br /&gt;
**배타적인 TA 알고리즘 a0~an을 찾고, 구현한다.&lt;br /&gt;
*강화학습 예측 모델&lt;br /&gt;
[[그림:Hoho8.png]]&lt;br /&gt;
**강화학습을 이용한 시계열 데이터의 학습을 통해 예측 모델을 생성한다.&lt;br /&gt;
**예측 모델은 다음과 같이 크게 두가지 단계로 구성된다.&lt;br /&gt;
***직접 시계열 데이터를 분석 / 예측하는 전략적 알고리즘&lt;br /&gt;
****네이밍: a0, a1, … , an&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {예측된 다음 시계열 데이터=o0, o1, …, on}&lt;br /&gt;
***인공신경망을 응용하는, 적절한 전략적 알고리즘에 가중치를 부여하는 알고리즘&lt;br /&gt;
****네이밍: M&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {w0, w1, …, wn}&lt;br /&gt;
****어느 하나의 전략적 알고리즘을 선택하는 방식(hard decision)이 아니라, 여러 전략적 알고리즘의 정확도를 연판정(soft decision)하여 그 비중을 출력한다. &lt;br /&gt;
**a의 결과인 O와 b의 결과인 W를 곱하여 최종 예측치를 계산한다. (가중평균)&lt;br /&gt;
***Predict = OW&lt;br /&gt;
**이 Agent의 결과에 따라서 전략을 어떤 비율로 선택하게 된다. 이를 조합한 값으로 특정 광물에 대한 매수 혹은 매도할 값을 선택하게 된다.&lt;br /&gt;
*강화학습 환경 구성 요소&lt;br /&gt;
**에이전트&lt;br /&gt;
***state값들을 DNN을 사용하여 전략을 선택할 수 있는 값으로 추출한다.&lt;br /&gt;
***전략개수 의존적&lt;br /&gt;
**환경&lt;br /&gt;
***한 거래소의 해당 광물의 일봉csv데이터를 시간에 따라서 사용&lt;br /&gt;
***USD, EUR (KRW 기준) 지수 데이터&lt;br /&gt;
**리워드 공식&lt;br /&gt;
***해당 광물의 가치와 잔금을 합산한 값을 리워드로 사용한다.&lt;br /&gt;
**액션 리스트&lt;br /&gt;
***양수는 매수, 음수는 매도의 의미로 하나의 출력값을 사용한다.&lt;br /&gt;
****광물 거래는 1주 단위의 이산적인 값을 사용한다.&lt;br /&gt;
****최대, 최소값을 설정한다.&lt;br /&gt;
*학습 시나리오&lt;br /&gt;
**매 학습에서 어떤 기간을 랜덤으로 설정한다.&lt;br /&gt;
**이 시간동안의 광물시장 데이터를 사용해서 하루 단위로 액션을 진행한다.&lt;br /&gt;
**시계열 분석 부분에서 각각의 전략이 매수/매도값을 도출한다.&lt;br /&gt;
**강화학습 부분에서 가중치를 도출한다.&lt;br /&gt;
**가중치값과 매수/매도값을 각각 곱하고 누적한다.&lt;br /&gt;
**해당 값을 통해 매수/매도/유지를 진행한다.매도가 될 때까지 진행하고 매도시 수익률을 구한다.&lt;br /&gt;
**수익률이 증가하는 방향으로 학습을 한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
*강화학습 오픈소스) DQN을 이용한 트레이딩 학습 테스트&lt;br /&gt;
**학습개요&lt;br /&gt;
***아래는 국내 3개 IT기업의 일봉데이터를 대상으로 학습을 진행한 결과이다.&lt;br /&gt;
***구현에서는 가능한 만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
***아래의 그래프에서는 초기 투자금을 가지고 시간에 따라서 자산 가치가 어떻게 변하는지 보여준다.&lt;br /&gt;
**트레이닝 데이터로 학습 진행 중 자산가치변화&lt;br /&gt;
[[파일:Hoho1.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***초반에는 매우 가치가 크지만 불안정한 트레이딩을 하다가 후에 안정적인 수익률을 보여주는 것을 알 수 있다.&lt;br /&gt;
**테스트 데이터에서 거래중 자산가치 변화&lt;br /&gt;
[[파일:Hoho2.png]]&lt;br /&gt;
***빨간 선은 초기 투자 금액이다.&lt;br /&gt;
***테스트 데이터로 트레이딩 했을 때 투자금액 보다 평균 12%의 수익을 올릴 수 있었다.&lt;br /&gt;
***단순 시가만으로 학습을 하는 경우, 위와 같이 매우 불안정하므로 다양한 전략을 통해 개선이 필요하다.&lt;br /&gt;
*전략 오픈소스) 10일, 30일 이동평균선 교차점 검출을 이용한 매수 매도 알고리즘 트레이딩&lt;br /&gt;
**방법&lt;br /&gt;
***현재까지 크롤링한 일봉데이터에서 단기 이동평균선과 장기 이동평균선의 교차점은 중요한 매도, 매수타이밍의 후보가 될 수 있다. 장기적인 추세를 따라가는 것이 미래에 대체로 좋은 방향이 되므로 장기평균선이 상승할 떄 매수, 하락 할 때 매도를 하는 것이 좋다.&lt;br /&gt;
***구현에서는 가능한만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
**Ta-lib&lt;br /&gt;
***Technical Analysis LIbrary&lt;br /&gt;
***시장분석과 같은 시계열 데이터 알고리즘을 분석하는데 사용하는 라이브러리&lt;br /&gt;
***내부에서는 기본 시장지표를 받으면 이에 따라서 새로운 보조지표를 만들어주거나 패턴을 검출하는 함수 제공&lt;br /&gt;
***구현에서 이동평균선 지표를 얻을 때 사용.&lt;br /&gt;
**가상트레이딩에 따른 자산가치 변화&lt;br /&gt;
[[파일:Hoho3.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***위와 같이 장기간 트레이딩을 진행하는데 있어서 이동평균선 교차점을 이용한 트레이딩이 좋은 효과를 보이는 것을 알 수 있다.&lt;br /&gt;
*광물시장 시가데이터 크롤링&lt;br /&gt;
**한국거래소([http://www.krx.co.kr])&lt;br /&gt;
**거래소홈페이지에서 1년단위의 데이터를 csv로 내려받을 수 있다.&lt;br /&gt;
**아래는 2014년 - 2019년의 종가를 그래프로 나타낸 것이다.&lt;br /&gt;
[[파일:Hoho4.png]]&lt;br /&gt;
*DQN 소스코드를 사용한 광물시장 가상 트레이딩&lt;br /&gt;
**위에서 사용한 DQN방법을 금시장을 대상으로 트레이딩을 진행했다.&lt;br /&gt;
**구현방식은 위의 DQN을 이용한 트레이딩 테스트와 같다.&lt;br /&gt;
**2000회 트레이닝을 진행하여서 매회 트레이닝마다 다음과 같은 결과를 얻을 수 있었다.&lt;br /&gt;
[[파일:Hoho5.png]]&lt;br /&gt;
**초기투자금액 10,000,000원으로 학습을 진행했다.&lt;br /&gt;
**위에서 트레이닝한 결과를 바탕으로 테스트를 진행했다.&lt;br /&gt;
[[파일:Hoho6.png]]&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
====유스케이스 다이어그램====&lt;br /&gt;
[[파일:hoho10.png]]&lt;br /&gt;
* 투자자가 각종 종목과 학습 정책 등을 선택한다.&lt;br /&gt;
* 선택을 기반으로 모델을 생성해서 가상 트레이딩을 진행할 때 수익률이 잘 나올 수  있는 지 확인한다.&lt;br /&gt;
* 학습 방법에 따른 비교 분석을 진행한다.&lt;br /&gt;
* 액터&lt;br /&gt;
** 액터명 : 투자자&lt;br /&gt;
** 설명 : 해당 프로그램을 투자의 지표로 사용하고 싶은 사람&lt;br /&gt;
* 각 유스케이스설명&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 종목선택&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 원하는 종목을 선택함&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
#투자자가 원하는 종목을 선택한다.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|프로그램 실행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 강화학습 정책 선택&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 원하는 강화학습 정책을 선택(PPO,DQN)&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
#투자자가 원하는 강화학습 정책을 선택한다.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|프로그램실행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 투자 젼략 선택&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 원하는 전략을 선택함&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
#투자자가 원하는 전략을 선택한다.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|프로그램실행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 강화학습 모델 생성&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 선택한 내용대로 강화학습 모델을 생성함.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 선택한 내용을 보여줌&lt;br /&gt;
# 확인 버튼을 누르면 모델을 생성함&lt;br /&gt;
# 모델 생성 성공 팝업을 보여줌&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
2.a. 최소 버튼을 누르면 선택화면으로 돌아옴.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
프로그램실행&lt;br /&gt;
종목 선택&lt;br /&gt;
강화학습 정책 선택&lt;br /&gt;
투자 전략 선택&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 생성에 성공해야 함&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 모델 학습&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 생성한 모델을 학습함.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 원하는 학습 인자를 입력&lt;br /&gt;
# 학습 실행&lt;br /&gt;
# 학습 결과를 보여줌&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
2.a. 학습 인자를 형식에 맞게 입력하지 않은 경우 학습 실패를 보여줌.&lt;br /&gt;
&lt;br /&gt;
2.b. 학습 도중 학습에 실패할 경우 에러 메시지를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 생성에 성공&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
학습 결과 출력.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 가상 트레이딩&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 학습한 모델로 가상 트레이딩을 함.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 초기금액을 입력한다.&lt;br /&gt;
# 기간을 설정한다.&lt;br /&gt;
# 한 번당 최대 매수, 매도금액을 입력한다.&lt;br /&gt;
# 가상 트레이딩을 실행한다.&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
4.a. 입력한 형식에 맞지 않는 경우 실행실패를 보여줌.&lt;br /&gt;
&lt;br /&gt;
4.b. 실행에 실패한 경우 오류메시지를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 학습 완료&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
실행 결과를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|참고 사항&lt;br /&gt;
|colspan=3|&lt;br /&gt;
CSV에서 Test데이터셋을 만들어서 진행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 실제 트레이딩&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 학습한 모델로 현재 상태를 넣었을 때 매수나 매도, 대기를 알려주고, 매수나 매도일 경우 양을 알려줌.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 현재 잔액을 입력한다.&lt;br /&gt;
# 투자자가 소지한 광물의 양을 입력한다.&lt;br /&gt;
# 한 번당 최대 매수, 매도금액을 입력한다.&lt;br /&gt;
# 실행 버튼을 누른다.&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
4.a. 입력한 형식에 맞지 않는 경우 실행실패를 보여줌.&lt;br /&gt;
&lt;br /&gt;
4.b. 실행에 실패한 경우 오류메시지를 보여줌.&lt;br /&gt;
&lt;br /&gt;
4.c. 잔액이 없는 경우 투자 실패를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 학습 완료&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
해당 타이밍의 행동과 양을 출력&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====소프트웨어 전체 구성도====&lt;br /&gt;
[[파일:hoho11.png]]&lt;br /&gt;
* 광물시장 데이터 csv&lt;br /&gt;
** 광물 시장의 가격을 일봉형식으로 나타낸다.&lt;br /&gt;
** csv파일 형식으로 저장되어있다.&lt;br /&gt;
* 모의 투자&lt;br /&gt;
** 강화학습 모델에서 환경을 모의투자 api로 사용할 수 있는 부분이다.&lt;br /&gt;
* 학습 및 투자환경&lt;br /&gt;
** 강화학습 모델에 이용할 수 있는 환경요소로 추상화한다.&lt;br /&gt;
* 전략 및 트레이딩 DNN agent&lt;br /&gt;
** 가상화된 환경에서 실제로 매도나 매수등의 결정을 내리는 agent이다.&lt;br /&gt;
** 기본적으로 설정되어있는 다수의 알고리즘과 DNN을 합성하여 판단을 한다.&lt;br /&gt;
* 강화학습 정책&lt;br /&gt;
** 위의 DNN agent를 학습시키는 방법이다.&lt;br /&gt;
** PPO, DQN등의 방법을 사용한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====UI 정의====&lt;br /&gt;
* 메뉴구성&lt;br /&gt;
&lt;br /&gt;
{|cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 시스템&lt;br /&gt;
| Level1&lt;br /&gt;
| Level2&lt;br /&gt;
| Level3&lt;br /&gt;
| Level4&lt;br /&gt;
|-----&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|사용자용 프로그램&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|메인화면&lt;br /&gt;
|강화학습방식 설정&lt;br /&gt;
|모델생성&lt;br /&gt;
|모델학습&lt;br /&gt;
|-----&lt;br /&gt;
|사용할 트레이딩 전략&lt;br /&gt;
|모델 불러오기&lt;br /&gt;
|가상 트레이딩&lt;br /&gt;
|-----&lt;br /&gt;
|종목선택&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|모델저장&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|모델저장&lt;br /&gt;
|-----&lt;br /&gt;
|모델 불러오기&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* 화면 목록&lt;br /&gt;
&lt;br /&gt;
{|cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
|화면 ID&lt;br /&gt;
|화면명&lt;br /&gt;
|화면설정&lt;br /&gt;
|보안등급&lt;br /&gt;
|액터명&lt;br /&gt;
|권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-01&lt;br /&gt;
|메인화면&lt;br /&gt;
|메인화면&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-02&lt;br /&gt;
|강화학습방식 설정&lt;br /&gt;
|DQN이나 PPO선택 가능&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-03&lt;br /&gt;
|사용할 트레이딩 전략&lt;br /&gt;
|다양한 트레이딩 전략을 선택&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-04&lt;br /&gt;
|종목 선택&lt;br /&gt;
|다양한 종목 선택&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-05&lt;br /&gt;
|모델 불러오기&lt;br /&gt;
|기존에 저장한 모델을 불러옴&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-06&lt;br /&gt;
|모델 생성&lt;br /&gt;
|선택한 정보를 기준으로 모델 생성&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-07&lt;br /&gt;
|모델 저장&lt;br /&gt;
|현재 모델을 저장&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-08&lt;br /&gt;
|모델 학습&lt;br /&gt;
|현재 모델을 학습&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-09&lt;br /&gt;
|가상 트레이딩&lt;br /&gt;
|현재 모델로 가상 트레이딩&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*화면 흐름도&lt;br /&gt;
[[파일:hoho12.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====클래스 다이어그램====&lt;br /&gt;
[[파일:hoho9.png]]&lt;br /&gt;
* BaseTrainEnv&lt;br /&gt;
** 실제 시장의 환경을 강화학습에서 모델링하기 위한 베이스 클래스이다. API를 이용한 투자와 csv데이터로 가상화되는 환경의 베이스가 된다.&lt;br /&gt;
** reset()으로 환경을 초기화 한다.&lt;br /&gt;
** step()으로 거래를 전달하면, 다음날의 가격(state), 현재 가치(reward), 시간흐름의 완료(done), 기타정보를 반환한다.&lt;br /&gt;
* APITrainEnv&lt;br /&gt;
** 실제 투자API가 구현되는 클래스이다.&lt;br /&gt;
* CsvTrainEnv&lt;br /&gt;
** csv 데이터를 이용해 투자 환경이 구현되는 클래스이다.&lt;br /&gt;
*CsvTrainSet&lt;br /&gt;
** 투자 환경에 필요한 주가 데이터를 종합한 클래스이다.&lt;br /&gt;
** currency : 기준 통화&lt;br /&gt;
** exchange_rate : 기준 통화와 다른 통화의 환율&lt;br /&gt;
** object_price : 거래 대상의 가격데이터&lt;br /&gt;
** other_object_price : 거래 대상이외의 참고할 대상의 가격데이터&lt;br /&gt;
* PPOTrainModel &amp;amp; DQNTrainModel&lt;br /&gt;
** trainEnv: 사용한 투자환경 클래스이다.&lt;br /&gt;
** agent: 전략별 채택 가중치를 계산할 수 있는 오브젝트이다.&lt;br /&gt;
** tradeStrategies: 트레이딩에서 사용할 전략 알고리즘의 배열이다.&lt;br /&gt;
* BaseTradeStrategy&lt;br /&gt;
** 트레이딩에 사용할 수 있는 전략알고리즘을 추상화한 클래스이다.&lt;br /&gt;
** getInvest의 출력값은 +(매수), -(매도)로 나타낸다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====CSV데이터 포맷====&lt;br /&gt;
&lt;br /&gt;
* 최상단 줄에 해당하는 컬럼명 표기.&lt;br /&gt;
* 광물시장 가격 데이터&lt;br /&gt;
** 각 광물별, 거래소, 기준통화별로 파일 관리&lt;br /&gt;
** 파일내에서 날짜별로 시가, 종가, 고가, 저가, 거래량의 데이터를 가지고 있을 것&lt;br /&gt;
** 예시&lt;br /&gt;
&lt;br /&gt;
[[파일:hoho13.png]]&lt;br /&gt;
* 환율 데이터&lt;br /&gt;
** 각 기준통화별로 파일 관리&lt;br /&gt;
** 컬럼에 변환할 대상통화를 표기&lt;br /&gt;
** 날짜별로 통화량 표기&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====대표기능 사진====&lt;br /&gt;
[[파일:hoho14.png]]&lt;br /&gt;
===실행===&lt;br /&gt;
====사용가능한 기능들====&lt;br /&gt;
** 모델 생성&lt;br /&gt;
*** 강화학습 방식 설정&lt;br /&gt;
*** 베이스 트레이딩 전략 설정&lt;br /&gt;
*** 종목 설정&lt;br /&gt;
*** 새로운 모델 생성&lt;br /&gt;
** 모델 폴더 지정&lt;br /&gt;
*** 현재 학습된 모델이 저장될 폴더를 지정&lt;br /&gt;
** 모델 로딩&lt;br /&gt;
*** 학습 및 트레이딩시 자동으로 지정된 폴더에서 모델을 로드&lt;br /&gt;
*** 기존 모델에 대한 추가학습 옵션으로 새로운 학습, 기존모델에 대한 학습을 선택가능&lt;br /&gt;
** 모델 학습&lt;br /&gt;
*** 불러오거나 생성한 모델을 학습함&lt;br /&gt;
*** 매 에피소드마다 학습된 모델을 저장.&lt;br /&gt;
** 가상 트레이딩&lt;br /&gt;
*** 학습한 모델을 훈련데이터와 분리한 데이터에서도 학습이 잘 되는지 확인할 수 있음.&lt;br /&gt;
** 학습/결과 그래프 확인&lt;br /&gt;
*** 학습하거나 가상트레이딩을 진행한 그래프를 보여줌&lt;br /&gt;
*** 학습 시에는 에피소드마다, 트레이딩시 마지막 에피소드의 포트폴리오 그래프표시.&lt;br /&gt;
*** 그래프 데이터 자동 저장&lt;br /&gt;
&lt;br /&gt;
====학습예시====&lt;br /&gt;
[[파일:hoho15.png]]&lt;br /&gt;
** 위의 화면에 전략, 종목, 사용할 지표를 선택해야 한다. 학습할 에피소드 수, 추가학습이라면 체크박스를 선택한다. 최종적으로 모델 학습 시작을 눌러서 학습시작이라는 메시지를 확인할 수 있다.&lt;br /&gt;
[[파일:hoho16.png]]&lt;br /&gt;
** 위와 같이 학습이 진행중일 때에 각각의 에피소드마다의 결과값이 보여지는 것을 확인할 수 있다.&lt;br /&gt;
** 또한 학습 진행중에 그래프를 확인하면 아래와 같은 화면을 확인할 수 있다. 아래와 같은 그래프는 학습 에피소드마다 마지막 포트폴리오 가치가 어떠했는지를 확인할 수 있다. 이로써 모델의 학습이 성공적으로 되고 있는 것인지 추측해볼 수 있다.&lt;br /&gt;
** 이러한 그래프 보기 버튼을 누를 때 프로그램을 실행시킨 폴더에 graph.csv파일이 생성되고, 아래와 같은 그래프 데이터를 저장할 수 있다.&lt;br /&gt;
[[파일:hoho17.png]]&lt;br /&gt;
&lt;br /&gt;
====가상트레이딩 예시====&lt;br /&gt;
* 위와 같이 학습시 선택했던 종목, 지표와 강화학습 방법을 똑같이 선택한다.&lt;br /&gt;
** 만일 이전과 다르게 선택할 시 모델 트레이딩 과정중에 오류가 발생할 수 있다.&lt;br /&gt;
* 학습에 필요한 모델이 있는 폴더를 선택한다. 만일 선택하지 않고 트레이딩을 진행하거나 모델파일이 들어있지 않는 폴더를 선택하면, 아래와 같은 오류가 나타나면서 실행이 되지 않는다.&lt;br /&gt;
[[파일:hoho18.png]]&lt;br /&gt;
* 이 때의 에피소드 수는 여러 번으로 돌림으로써 학습과 유사하게 진행할 수 있으나, 최종적으로 얻는 그래프는 마지막 에피소드에서 테스트 데이터를 기반으로 진행한 트레이딩이기 때문에, 다수의 가상 트레이딩을 하는 것은 큰 의미가 있는 것은 아니다. 그러므로 에피소드 수는 1로 고정된다.&lt;br /&gt;
[[파일:hoho19.png]]&lt;br /&gt;
* 테스트가 완료되면 위와 같은 화면으로 바뀐다. 마지막 테스트 에피소드의 마지막 틱에서의 포트폴리오 가치가 얼마였는지를 나타낸다.&lt;br /&gt;
[[파일:hoho20.png]]&lt;br /&gt;
* 위의 그래프에서 초록색 점이 해당 틱에서 매수를 했음을 나타낸다. ma알고리즘에 기반해서 에어전트가 구매를 선택했고 이에 따른 수수료에 의해서 가치가 조금 감소한 것을 확인할 수 있다.&lt;br /&gt;
* 위의 그래프에서는 나타나지 않았지만 에어전트가 매도를 시도하게 되면 해당 점에서 붉은 점으로 표시가 된다.&lt;br /&gt;
&lt;br /&gt;
====그래프 데이터 자동 저장====&lt;br /&gt;
[[파일:hoho21.png]]&lt;br /&gt;
* 위의 그래프를 조회하게 되면 프로그램에서 자동으로 그래프 데이터를 저장하는 것을 확인할 수 있다.&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
&lt;br /&gt;
{|cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 auto; &amp;quot;&lt;br /&gt;
|평가항목&lt;br /&gt;
|평가방법&lt;br /&gt;
|적용기준&lt;br /&gt;
|개발 목표치&lt;br /&gt;
|비중(%)&lt;br /&gt;
|------&lt;br /&gt;
|1. 선정한 요인들이 충분히 근거가 있는가?&lt;br /&gt;
|해당 요인에 대한 논문이나 학술지가 있는지 확인&lt;br /&gt;
| Reference가 불분명하거나 없는 요인의 수&lt;br /&gt;
| 0개&lt;br /&gt;
|20&lt;br /&gt;
|------&lt;br /&gt;
|2. 요인들을 실험할 수 있는 프로토타입 강화학습 모델을 구현하였는가?&lt;br /&gt;
|해당 요인들을 환경에 넣어보고 테스트 해본다.&lt;br /&gt;
| 환경, 액션, 상태, 리워드 등을 넣었을 때 동작&lt;br /&gt;
|정상 동작 &lt;br /&gt;
|20&lt;br /&gt;
|------&lt;br /&gt;
|3. 다른 Trading Bot들과의 성능을 비교`분석하였는가?&lt;br /&gt;
|다른 Bot들과 모의투자를 진행하여 일정 시간 대비 수익률을 비교`분석한다.&lt;br /&gt;
| Bot들의 수익률 등수&lt;br /&gt;
|1위&lt;br /&gt;
|20&lt;br /&gt;
|------&lt;br /&gt;
|4. 요인들에 대한 연관성을 비교분석하였는가?&lt;br /&gt;
|요인들을 테스트해보고 각 요인들과 수익률간의 상관관계와 각 요인들 간의 상관관계를 분석&lt;br /&gt;
| 고려한 관계성이 있는 요인의 수&lt;br /&gt;
| 5개 이상&lt;br /&gt;
|20&lt;br /&gt;
|------&lt;br /&gt;
|5. 모의투자 상황에서 자동으로 Trading이 가능한가?&lt;br /&gt;
|모의투자 상황에서 Program을 실행시키고 자동으로 Trading이 되는지 확인함&lt;br /&gt;
| 거래 기록 및 수익률 기록&lt;br /&gt;
| 정상 동작&lt;br /&gt;
|20&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
가. 어려웠던 내용들&lt;br /&gt;
* 강화학습에 대한 이해&lt;br /&gt;
* 강화학습에서 비교적 최신 기술이었던 PPO를 구현한 점&lt;br /&gt;
* PPO에 대한 자료가 많이 없었던 점&lt;br /&gt;
* 주식시장이나 광물시장에서 가격에 연관이 있는 요인들 모듈화&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
나. 차후 구현할 내용&lt;br /&gt;
* PPO, DQN과는 다른 강화학습 방식 적용 및 실험&lt;br /&gt;
* 실제 트레이딩이 가능한 API를 연결함&lt;br /&gt;
* 주식시장과 코인시장에도 적용함&lt;br /&gt;
* 알고리즘적 트레이딩 전략을 다수 추가&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1499</id>
		<title>호호조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1499"/>
				<updated>2019-06-20T10:44:32Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 완료작품의 평가 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : 광물시장에서 강화학습을 이용한 트레이딩 봇&lt;br /&gt;
&lt;br /&gt;
''' 영문 :  Trading-bot using Reinforcement Learning in a mineral market&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
호호&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
이동희 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920044 이홍석(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920037 이정한&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
*이전부터 사용자들이 많이 사용하던 시계열 분석 알고리즘과 다양한 지표들을 활용하여 강화학습을 이용하여 광물 가격을 예측한다.&lt;br /&gt;
*광물시장에서 시가에 영향을 미치는 다양한 요인이 존재한다.&lt;br /&gt;
*이미 밝혀진 다양한 요인들과 우리들이 생각한 요인들을 정리한다.&lt;br /&gt;
*이러한 요인들을 강화학습을 통해서 상관관계가 있는지 확인하고 실제로 수익을 낼 수 있는 모델과 학습을 진행한다.&lt;br /&gt;
*여러 가지 요인(차트 및 시장표준지수)들과 전략들을 가지고 하나의 광물을 대상으로 수익률이 높을 것으로 예상되는 매수, 매도 타이밍을 찾아낼 수 있는 것을 목표로 한다.&lt;br /&gt;
*다양한 강화학습 알고리즘 중 PPO(Proximal Policy Optimization), DQN(Deep Q Network)을 사용하여 구현해보고 어떤 방식이 더 잘 맞는지 분석해본다.&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*광물 시장은 매 시간마다 변동함&lt;br /&gt;
*광물 시장의 변동은 어떠한 요인들에 의해 값어치가 올라가기도 하고 내려가기도 함&lt;br /&gt;
*다양한 논문 Research 및 분석을 통해 값에 변화를 주는 요인들을 선별&lt;br /&gt;
*해당 요인들을 강화학습 모델의 환경에 넣어서 학습을 시킴&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
*강화학습을 이용하여 트레이딩을 자동으로 하는 봇을 만든다.&lt;br /&gt;
*광물 가격에 영향을 주는 요인들을 찾아보고 어느 정도 연관관계가 있는지 확인한다.&lt;br /&gt;
*연관관계가 있는 요인들을 모아서 강화학습모델에 적용시켜보고 실제로 효과가 있는지 확인해본다.&lt;br /&gt;
*효과가 컸던 요인들을 모아서 모의 투자 상황에서 수익률 분석을 해본다.&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
**자동 거래 시스템(ATS;Automated Trading System)은 1949년 Richard Donchian이 funds를 사고 파는 일련의 규칙을 사용하여 처음 소개되었다. 1980년대에는 John Henry와 같은 유명한 Trader들이 전략을 사용하기 시작하여, 규칙 기반 거래(Rule Based Trading)라는 개념이 대중화되었다. 현재는 미국 증권 거래소 주식 거래의 75% 이상이 자동 거래 시스템으로 이루어진다.&lt;br /&gt;
**최근에는 AI의 등장으로, 수많은 은행이나 투자자들이 AI를 활용하여 규칙 기반 거래나 직접 거래보다 훨씬 수익률이 높은 모델을 개발중이다. 딥러닝, 머신러닝 등의 기술을 활용하여 Trading Bot을 개발하고 있으며, 강화학습의 등장이후, 다양한 Trading Bot Project에서 강화학습을 도입하려는 움직임을 보이고 있다.&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
**거절 : 알고리즘 자동 매매 봇, [https://doi.org/10.8080/1020090067197]&lt;br /&gt;
***알고리즘 트레이딩 봇들을 모아서 관리할 수 있는 시스템&lt;br /&gt;
***통상적인 기술자가 충분히 만들 수 있는 것으로 판단하여 특허 거절&lt;br /&gt;
**등록 : 소셜트레이딩 방법, [http://kpat.kipris.or.kr/kpat/biblioa.do?method=biblioFrame]&lt;br /&gt;
***리더를 설정하여 해당 리더의 매매를 확인하고 추종하는 알고리즘&lt;br /&gt;
*기술 로드맵&lt;br /&gt;
**자동으로 거래를 할 수 있는 봇의 형태를 만들어야 하고, 모의투자를 통해 테스트할 수 있는 환경을 만들어야하기 때문에 투자, 증권사 API 및 모의투자 서버가 필요하다. 따라서, 키움증권, 대신증권, 이베스트투자증권 등의 회사의 API를 활용하고, 이 회사들의 모의투자 서버를 통해 수익률을 분석할 수 있다.&lt;br /&gt;
**강화학습은 환경이 주어지고, 해당 환경에 액션을 취하면 그에 따른 보상을 주면서 학습을 시킨다. 일반적인 딥 러닝은 어떤 요인들의 상호관계를 표현하지 못한다. 하지만 강화학습은 환경을 통해 어떤 요인들의 상호관계를 표현할 수 있다. 주식들은 서로 상호관계를 가지고 있으므로 강화학습을 이용하는 것이 유리한 방법이라 할 수 있다.&lt;br /&gt;
**현재에는 차트분석만으로 주식이나 광물시장에서의 매도, 매수타이밍을 잡아서 수익을 낼 수 있는 다양한 방법이 연구되고 있다. 이를 기술적 매매라고 부른다. 이러한 방법을 이용하여 알고리즘으로 구현하면 보다 안정적이고 수익률이 검증된 매매방법을 사용할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
**이러한 제품들은 시장에 공개적으로 나와있는 것을 쉽게 찾을 수 없다. 이러한 트레이딩봇 자체가 실제 주식시장에서 수익을 낼 수 있기 때문이다. 이윤을 창출하는 기업의 입장에서는 이 트레이딩 봇을 직접적으로 사용하지 않을 이유가 없다.&lt;br /&gt;
**또한 많은 사용자가 트레이딩 봇을 사용한다고 가정했을 때 모두가 이익을 볼 수 있는 것은 아니다. 같은 알고리즘을 사용하는 트레이딩 봇이 많으면 수익률이 줄어 들기 때문에 이러한 트레이딩 봇을 상용화하지 않은 것으로 보인다.&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! 알고리즘 !! 증권사 API !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 브레인듀드의 듀드303, 듀드프로&lt;br /&gt;
| 사용자의 조건검색식 사용 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 키움증권의 로보마켓&lt;br /&gt;
| 다양한 알고리즘 전략 제시 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 주식몰 오토핫키&lt;br /&gt;
| 해당하는 설명이 없음 || 해당하는 설명이 없음 || 마켓팅 위주의 사업 진행&lt;br /&gt;
|}&lt;br /&gt;
**위와 같이 알고리즘 트레이딩 봇을 만드는 회사 이외에도 증권사나 펀드회사 같은 경우에도 가치투자를 위한 분석자료를 제공하는 서비스를 제공할 수 있다.&lt;br /&gt;
**한국거래소에서는 종목마다 투자가치를 판단할 수 있는 자료를 제공한다. 이에 따라서 우리의 트레이딩봇과 경쟁해야 하는 부분을 가지고 있다.&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**위와 같이 여러가지 요인을 연구, 분석함에 따라서 트레이딩 봇을 만들 수 있다. 이 요인들의 적당한 조합으로 여러가지 특성을 띠는 트레이딩 봇을 개발할 수 있다.&lt;br /&gt;
**사용자들에게 원하는 이익구조를 선택할 수 있게 한다. 예를 들어 수익률이 크게 높지 않더라도 안정적인 투자를 원하는 사용자가 있고, 위험을 감수하더라도 높은 수익률을 원하는 사용자가 있다. 요인분석에 따라서 얻을 수 있는 특징들을 찾아내고 이러한 요인들로 주식트레이딩의 위험, 최고 수익률등이 결정될 것이다. &lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
*기존의 주식 트레이딩봇들은 우리가 직접 알고리즘을 구현하고 설계함에 따라서 작동했다. 사람의 직관을 이용해서 장기투자를 하는 것이 아니라 짧은 시간의 시장변동을 감지해서 조금씩 수익을 올리는 등의 알고리즘이 만들어져 왔다. 하지만 강화학습과 딥러닝을 사용해서 좀 더 효과적인 방향을 찾을 수 있다.&lt;br /&gt;
*딥러닝에서 사용하는 뉴럴 네트워크는 학습이 완료되었을 때 예측속도가 매우 빠르다는 특징을 갖고 있다. 해당 요인을 성공적으로 학습한 네트워크를 얻은 후에 봇을 사용할 때는 컴퓨팅의 성능을 크게 사용하지 않고 빠른 속도의 트레이딩이 가능하다.&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
*위에서 서술한 대로 만일 강화학습을 이용해서 주식 트레이딩봇이 성공적으로 수익을 낼 수 있는 구조라면, 이와 유사한 트레이딩봇이 많이 등장할 것이다. 더불어서 강화학습에 딥러닝을 적용시키면서 구성할 수 있는 선택의 여지가 많아졌다. 각기 학습하는 방법에 따라서 각기 다른 여러가지 전략이 등장할 수 있는 것이다. 따라서 기존에 알고리즘을 이용해서 매매를 진행하던 투자자들이 새롭게 등장하는 트레이딩봇의 투자전략에 영향을 받을 것이며, 시장의 특성은 더 다양하고 복잡해질 것이다.&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  단계별 세부개발 내용 !! 담당자 !! 개발기간 !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 강화학습 환경 설계&lt;br /&gt;
| 이홍석 || 3~4 || &lt;br /&gt;
|-&lt;br /&gt;
! 모의투자 환경구성 및 트레이딩 봇 구현&lt;br /&gt;
| 이정한 || 4~5 ||&lt;br /&gt;
|-&lt;br /&gt;
! 학습진행 및 정확도 개선&lt;br /&gt;
| 이홍석 || 4~6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 기존의 트레이딩 봇과의 성능 비교&lt;br /&gt;
| 이정한 || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 요인 연구 및 분석&lt;br /&gt;
| 이홍석, 이정한 || 3~6 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
*컴퓨터과학부 2014920044 이홍석 : 작품설계 및 개발&lt;br /&gt;
*컴퓨터과학부 2014920037 이정한 : 작품설계 및 개발&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  번호 !! 요 구 사 항 !! D or W !! 중요도&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 기존 시계열 분석 논문에 있는 전략(요소, Factor)들을 모듈로 개발 || D || 대 &lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 시계열 데이터 분석 모듈을 적용할 수 있는 강화학습 모델을 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| 모델을 학습시킬 수 있는 환경(Env, DB) 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| PPO와 DQN 강화학습 알고리즘을 구현하고 분석 || W || 중&lt;br /&gt;
|}&lt;br /&gt;
====설계 사양====&lt;br /&gt;
*목적계통도&lt;br /&gt;
[[그림:Hoho7.png]]&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
*기존에 연구되어진 시계열 분석 알고리즘을 이용한 결과물들은 제각기 집중하는 부분이 다르기 때문에, 그 정확도가 서로 배타적 일 것이다. 즉 어느 한 알고리즘이 우위의 정확도를 가질 경우 다른 알고리즘은 상대적으로 낮은 정확도를 가질 것이다.&lt;br /&gt;
**서로 정확성에 있어 배타적일 정도로 다른 시계열 분석 알고리즘을 찾아야한다.&lt;br /&gt;
**배타적인 TA 알고리즘 a0~an을 찾고, 구현한다.&lt;br /&gt;
*강화학습 예측 모델&lt;br /&gt;
[[그림:Hoho8.png]]&lt;br /&gt;
**강화학습을 이용한 시계열 데이터의 학습을 통해 예측 모델을 생성한다.&lt;br /&gt;
**예측 모델은 다음과 같이 크게 두가지 단계로 구성된다.&lt;br /&gt;
***직접 시계열 데이터를 분석 / 예측하는 전략적 알고리즘&lt;br /&gt;
****네이밍: a0, a1, … , an&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {예측된 다음 시계열 데이터=o0, o1, …, on}&lt;br /&gt;
***인공신경망을 응용하는, 적절한 전략적 알고리즘에 가중치를 부여하는 알고리즘&lt;br /&gt;
****네이밍: M&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {w0, w1, …, wn}&lt;br /&gt;
****어느 하나의 전략적 알고리즘을 선택하는 방식(hard decision)이 아니라, 여러 전략적 알고리즘의 정확도를 연판정(soft decision)하여 그 비중을 출력한다. &lt;br /&gt;
**a의 결과인 O와 b의 결과인 W를 곱하여 최종 예측치를 계산한다. (가중평균)&lt;br /&gt;
***Predict = OW&lt;br /&gt;
**이 Agent의 결과에 따라서 전략을 어떤 비율로 선택하게 된다. 이를 조합한 값으로 특정 광물에 대한 매수 혹은 매도할 값을 선택하게 된다.&lt;br /&gt;
*강화학습 환경 구성 요소&lt;br /&gt;
**에이전트&lt;br /&gt;
***state값들을 DNN을 사용하여 전략을 선택할 수 있는 값으로 추출한다.&lt;br /&gt;
***전략개수 의존적&lt;br /&gt;
**환경&lt;br /&gt;
***한 거래소의 해당 광물의 일봉csv데이터를 시간에 따라서 사용&lt;br /&gt;
***USD, EUR (KRW 기준) 지수 데이터&lt;br /&gt;
**리워드 공식&lt;br /&gt;
***해당 광물의 가치와 잔금을 합산한 값을 리워드로 사용한다.&lt;br /&gt;
**액션 리스트&lt;br /&gt;
***양수는 매수, 음수는 매도의 의미로 하나의 출력값을 사용한다.&lt;br /&gt;
****광물 거래는 1주 단위의 이산적인 값을 사용한다.&lt;br /&gt;
****최대, 최소값을 설정한다.&lt;br /&gt;
*학습 시나리오&lt;br /&gt;
**매 학습에서 어떤 기간을 랜덤으로 설정한다.&lt;br /&gt;
**이 시간동안의 광물시장 데이터를 사용해서 하루 단위로 액션을 진행한다.&lt;br /&gt;
**시계열 분석 부분에서 각각의 전략이 매수/매도값을 도출한다.&lt;br /&gt;
**강화학습 부분에서 가중치를 도출한다.&lt;br /&gt;
**가중치값과 매수/매도값을 각각 곱하고 누적한다.&lt;br /&gt;
**해당 값을 통해 매수/매도/유지를 진행한다.매도가 될 때까지 진행하고 매도시 수익률을 구한다.&lt;br /&gt;
**수익률이 증가하는 방향으로 학습을 한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
*강화학습 오픈소스) DQN을 이용한 트레이딩 학습 테스트&lt;br /&gt;
**학습개요&lt;br /&gt;
***아래는 국내 3개 IT기업의 일봉데이터를 대상으로 학습을 진행한 결과이다.&lt;br /&gt;
***구현에서는 가능한 만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
***아래의 그래프에서는 초기 투자금을 가지고 시간에 따라서 자산 가치가 어떻게 변하는지 보여준다.&lt;br /&gt;
**트레이닝 데이터로 학습 진행 중 자산가치변화&lt;br /&gt;
[[파일:Hoho1.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***초반에는 매우 가치가 크지만 불안정한 트레이딩을 하다가 후에 안정적인 수익률을 보여주는 것을 알 수 있다.&lt;br /&gt;
**테스트 데이터에서 거래중 자산가치 변화&lt;br /&gt;
[[파일:Hoho2.png]]&lt;br /&gt;
***빨간 선은 초기 투자 금액이다.&lt;br /&gt;
***테스트 데이터로 트레이딩 했을 때 투자금액 보다 평균 12%의 수익을 올릴 수 있었다.&lt;br /&gt;
***단순 시가만으로 학습을 하는 경우, 위와 같이 매우 불안정하므로 다양한 전략을 통해 개선이 필요하다.&lt;br /&gt;
*전략 오픈소스) 10일, 30일 이동평균선 교차점 검출을 이용한 매수 매도 알고리즘 트레이딩&lt;br /&gt;
**방법&lt;br /&gt;
***현재까지 크롤링한 일봉데이터에서 단기 이동평균선과 장기 이동평균선의 교차점은 중요한 매도, 매수타이밍의 후보가 될 수 있다. 장기적인 추세를 따라가는 것이 미래에 대체로 좋은 방향이 되므로 장기평균선이 상승할 떄 매수, 하락 할 때 매도를 하는 것이 좋다.&lt;br /&gt;
***구현에서는 가능한만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
**Ta-lib&lt;br /&gt;
***Technical Analysis LIbrary&lt;br /&gt;
***시장분석과 같은 시계열 데이터 알고리즘을 분석하는데 사용하는 라이브러리&lt;br /&gt;
***내부에서는 기본 시장지표를 받으면 이에 따라서 새로운 보조지표를 만들어주거나 패턴을 검출하는 함수 제공&lt;br /&gt;
***구현에서 이동평균선 지표를 얻을 때 사용.&lt;br /&gt;
**가상트레이딩에 따른 자산가치 변화&lt;br /&gt;
[[파일:Hoho3.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***위와 같이 장기간 트레이딩을 진행하는데 있어서 이동평균선 교차점을 이용한 트레이딩이 좋은 효과를 보이는 것을 알 수 있다.&lt;br /&gt;
*광물시장 시가데이터 크롤링&lt;br /&gt;
**한국거래소([http://www.krx.co.kr])&lt;br /&gt;
**거래소홈페이지에서 1년단위의 데이터를 csv로 내려받을 수 있다.&lt;br /&gt;
**아래는 2014년 - 2019년의 종가를 그래프로 나타낸 것이다.&lt;br /&gt;
[[파일:Hoho4.png]]&lt;br /&gt;
*DQN 소스코드를 사용한 광물시장 가상 트레이딩&lt;br /&gt;
**위에서 사용한 DQN방법을 금시장을 대상으로 트레이딩을 진행했다.&lt;br /&gt;
**구현방식은 위의 DQN을 이용한 트레이딩 테스트와 같다.&lt;br /&gt;
**2000회 트레이닝을 진행하여서 매회 트레이닝마다 다음과 같은 결과를 얻을 수 있었다.&lt;br /&gt;
[[파일:Hoho5.png]]&lt;br /&gt;
**초기투자금액 10,000,000원으로 학습을 진행했다.&lt;br /&gt;
**위에서 트레이닝한 결과를 바탕으로 테스트를 진행했다.&lt;br /&gt;
[[파일:Hoho6.png]]&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
====유스케이스 다이어그램====&lt;br /&gt;
[[파일:hoho10.png]]&lt;br /&gt;
* 투자자가 각종 종목과 학습 정책 등을 선택한다.&lt;br /&gt;
* 선택을 기반으로 모델을 생성해서 가상 트레이딩을 진행할 때 수익률이 잘 나올 수  있는 지 확인한다.&lt;br /&gt;
* 학습 방법에 따른 비교 분석을 진행한다.&lt;br /&gt;
* 액터&lt;br /&gt;
** 액터명 : 투자자&lt;br /&gt;
** 설명 : 해당 프로그램을 투자의 지표로 사용하고 싶은 사람&lt;br /&gt;
* 각 유스케이스설명&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 종목선택&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 원하는 종목을 선택함&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
#투자자가 원하는 종목을 선택한다.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|프로그램 실행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 강화학습 정책 선택&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 원하는 강화학습 정책을 선택(PPO,DQN)&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
#투자자가 원하는 강화학습 정책을 선택한다.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|프로그램실행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 투자 젼략 선택&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 원하는 전략을 선택함&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
#투자자가 원하는 전략을 선택한다.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|프로그램실행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 강화학습 모델 생성&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 선택한 내용대로 강화학습 모델을 생성함.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 선택한 내용을 보여줌&lt;br /&gt;
# 확인 버튼을 누르면 모델을 생성함&lt;br /&gt;
# 모델 생성 성공 팝업을 보여줌&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
2.a. 최소 버튼을 누르면 선택화면으로 돌아옴.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
프로그램실행&lt;br /&gt;
종목 선택&lt;br /&gt;
강화학습 정책 선택&lt;br /&gt;
투자 전략 선택&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 생성에 성공해야 함&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 모델 학습&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 생성한 모델을 학습함.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 원하는 학습 인자를 입력&lt;br /&gt;
# 학습 실행&lt;br /&gt;
# 학습 결과를 보여줌&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
2.a. 학습 인자를 형식에 맞게 입력하지 않은 경우 학습 실패를 보여줌.&lt;br /&gt;
&lt;br /&gt;
2.b. 학습 도중 학습에 실패할 경우 에러 메시지를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 생성에 성공&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
학습 결과 출력.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 가상 트레이딩&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 학습한 모델로 가상 트레이딩을 함.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 초기금액을 입력한다.&lt;br /&gt;
# 기간을 설정한다.&lt;br /&gt;
# 한 번당 최대 매수, 매도금액을 입력한다.&lt;br /&gt;
# 가상 트레이딩을 실행한다.&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
4.a. 입력한 형식에 맞지 않는 경우 실행실패를 보여줌.&lt;br /&gt;
&lt;br /&gt;
4.b. 실행에 실패한 경우 오류메시지를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 학습 완료&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
실행 결과를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|참고 사항&lt;br /&gt;
|colspan=3|&lt;br /&gt;
CSV에서 Test데이터셋을 만들어서 진행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 실제 트레이딩&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 학습한 모델로 현재 상태를 넣었을 때 매수나 매도, 대기를 알려주고, 매수나 매도일 경우 양을 알려줌.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 현재 잔액을 입력한다.&lt;br /&gt;
# 투자자가 소지한 광물의 양을 입력한다.&lt;br /&gt;
# 한 번당 최대 매수, 매도금액을 입력한다.&lt;br /&gt;
# 실행 버튼을 누른다.&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
4.a. 입력한 형식에 맞지 않는 경우 실행실패를 보여줌.&lt;br /&gt;
&lt;br /&gt;
4.b. 실행에 실패한 경우 오류메시지를 보여줌.&lt;br /&gt;
&lt;br /&gt;
4.c. 잔액이 없는 경우 투자 실패를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 학습 완료&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
해당 타이밍의 행동과 양을 출력&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====소프트웨어 전체 구성도====&lt;br /&gt;
[[파일:hoho11.png]]&lt;br /&gt;
* 광물시장 데이터 csv&lt;br /&gt;
** 광물 시장의 가격을 일봉형식으로 나타낸다.&lt;br /&gt;
** csv파일 형식으로 저장되어있다.&lt;br /&gt;
* 모의 투자&lt;br /&gt;
** 강화학습 모델에서 환경을 모의투자 api로 사용할 수 있는 부분이다.&lt;br /&gt;
* 학습 및 투자환경&lt;br /&gt;
** 강화학습 모델에 이용할 수 있는 환경요소로 추상화한다.&lt;br /&gt;
* 전략 및 트레이딩 DNN agent&lt;br /&gt;
** 가상화된 환경에서 실제로 매도나 매수등의 결정을 내리는 agent이다.&lt;br /&gt;
** 기본적으로 설정되어있는 다수의 알고리즘과 DNN을 합성하여 판단을 한다.&lt;br /&gt;
* 강화학습 정책&lt;br /&gt;
** 위의 DNN agent를 학습시키는 방법이다.&lt;br /&gt;
** PPO, DQN등의 방법을 사용한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====UI 정의====&lt;br /&gt;
* 메뉴구성&lt;br /&gt;
&lt;br /&gt;
{|cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 시스템&lt;br /&gt;
| Level1&lt;br /&gt;
| Level2&lt;br /&gt;
| Level3&lt;br /&gt;
| Level4&lt;br /&gt;
|-----&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|사용자용 프로그램&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|메인화면&lt;br /&gt;
|강화학습방식 설정&lt;br /&gt;
|모델생성&lt;br /&gt;
|모델학습&lt;br /&gt;
|-----&lt;br /&gt;
|사용할 트레이딩 전략&lt;br /&gt;
|모델 불러오기&lt;br /&gt;
|가상 트레이딩&lt;br /&gt;
|-----&lt;br /&gt;
|종목선택&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|모델저장&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|모델저장&lt;br /&gt;
|-----&lt;br /&gt;
|모델 불러오기&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* 화면 목록&lt;br /&gt;
&lt;br /&gt;
{|cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
|화면 ID&lt;br /&gt;
|화면명&lt;br /&gt;
|화면설정&lt;br /&gt;
|보안등급&lt;br /&gt;
|액터명&lt;br /&gt;
|권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-01&lt;br /&gt;
|메인화면&lt;br /&gt;
|메인화면&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-02&lt;br /&gt;
|강화학습방식 설정&lt;br /&gt;
|DQN이나 PPO선택 가능&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-03&lt;br /&gt;
|사용할 트레이딩 전략&lt;br /&gt;
|다양한 트레이딩 전략을 선택&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-04&lt;br /&gt;
|종목 선택&lt;br /&gt;
|다양한 종목 선택&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-05&lt;br /&gt;
|모델 불러오기&lt;br /&gt;
|기존에 저장한 모델을 불러옴&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-06&lt;br /&gt;
|모델 생성&lt;br /&gt;
|선택한 정보를 기준으로 모델 생성&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-07&lt;br /&gt;
|모델 저장&lt;br /&gt;
|현재 모델을 저장&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-08&lt;br /&gt;
|모델 학습&lt;br /&gt;
|현재 모델을 학습&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-09&lt;br /&gt;
|가상 트레이딩&lt;br /&gt;
|현재 모델로 가상 트레이딩&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*화면 흐름도&lt;br /&gt;
[[파일:hoho12.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====클래스 다이어그램====&lt;br /&gt;
[[파일:hoho9.png]]&lt;br /&gt;
* BaseTrainEnv&lt;br /&gt;
** 실제 시장의 환경을 강화학습에서 모델링하기 위한 베이스 클래스이다. API를 이용한 투자와 csv데이터로 가상화되는 환경의 베이스가 된다.&lt;br /&gt;
** reset()으로 환경을 초기화 한다.&lt;br /&gt;
** step()으로 거래를 전달하면, 다음날의 가격(state), 현재 가치(reward), 시간흐름의 완료(done), 기타정보를 반환한다.&lt;br /&gt;
* APITrainEnv&lt;br /&gt;
** 실제 투자API가 구현되는 클래스이다.&lt;br /&gt;
* CsvTrainEnv&lt;br /&gt;
** csv 데이터를 이용해 투자 환경이 구현되는 클래스이다.&lt;br /&gt;
*CsvTrainSet&lt;br /&gt;
** 투자 환경에 필요한 주가 데이터를 종합한 클래스이다.&lt;br /&gt;
** currency : 기준 통화&lt;br /&gt;
** exchange_rate : 기준 통화와 다른 통화의 환율&lt;br /&gt;
** object_price : 거래 대상의 가격데이터&lt;br /&gt;
** other_object_price : 거래 대상이외의 참고할 대상의 가격데이터&lt;br /&gt;
* PPOTrainModel &amp;amp; DQNTrainModel&lt;br /&gt;
** trainEnv: 사용한 투자환경 클래스이다.&lt;br /&gt;
** agent: 전략별 채택 가중치를 계산할 수 있는 오브젝트이다.&lt;br /&gt;
** tradeStrategies: 트레이딩에서 사용할 전략 알고리즘의 배열이다.&lt;br /&gt;
* BaseTradeStrategy&lt;br /&gt;
** 트레이딩에 사용할 수 있는 전략알고리즘을 추상화한 클래스이다.&lt;br /&gt;
** getInvest의 출력값은 +(매수), -(매도)로 나타낸다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====CSV데이터 포맷====&lt;br /&gt;
&lt;br /&gt;
* 최상단 줄에 해당하는 컬럼명 표기.&lt;br /&gt;
* 광물시장 가격 데이터&lt;br /&gt;
** 각 광물별, 거래소, 기준통화별로 파일 관리&lt;br /&gt;
** 파일내에서 날짜별로 시가, 종가, 고가, 저가, 거래량의 데이터를 가지고 있을 것&lt;br /&gt;
** 예시&lt;br /&gt;
&lt;br /&gt;
[[파일:hoho13.png]]&lt;br /&gt;
* 환율 데이터&lt;br /&gt;
** 각 기준통화별로 파일 관리&lt;br /&gt;
** 컬럼에 변환할 대상통화를 표기&lt;br /&gt;
** 날짜별로 통화량 표기&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====대표기능 사진====&lt;br /&gt;
[[파일:hoho14.png]]&lt;br /&gt;
===실행===&lt;br /&gt;
====사용가능한 기능들====&lt;br /&gt;
** 모델 생성&lt;br /&gt;
*** 강화학습 방식 설정&lt;br /&gt;
*** 베이스 트레이딩 전략 설정&lt;br /&gt;
*** 종목 설정&lt;br /&gt;
*** 새로운 모델 생성&lt;br /&gt;
** 모델 폴더 지정&lt;br /&gt;
*** 현재 학습된 모델이 저장될 폴더를 지정&lt;br /&gt;
** 모델 로딩&lt;br /&gt;
*** 학습 및 트레이딩시 자동으로 지정된 폴더에서 모델을 로드&lt;br /&gt;
*** 기존 모델에 대한 추가학습 옵션으로 새로운 학습, 기존모델에 대한 학습을 선택가능&lt;br /&gt;
** 모델 학습&lt;br /&gt;
*** 불러오거나 생성한 모델을 학습함&lt;br /&gt;
*** 매 에피소드마다 학습된 모델을 저장.&lt;br /&gt;
** 가상 트레이딩&lt;br /&gt;
*** 학습한 모델을 훈련데이터와 분리한 데이터에서도 학습이 잘 되는지 확인할 수 있음.&lt;br /&gt;
** 학습/결과 그래프 확인&lt;br /&gt;
*** 학습하거나 가상트레이딩을 진행한 그래프를 보여줌&lt;br /&gt;
*** 학습 시에는 에피소드마다, 트레이딩시 마지막 에피소드의 포트폴리오 그래프표시.&lt;br /&gt;
*** 그래프 데이터 자동 저장&lt;br /&gt;
&lt;br /&gt;
====학습예시====&lt;br /&gt;
[[파일:hoho15.png]]&lt;br /&gt;
** 위의 화면에 전략, 종목, 사용할 지표를 선택해야 한다. 학습할 에피소드 수, 추가학습이라면 체크박스를 선택한다. 최종적으로 모델 학습 시작을 눌러서 학습시작이라는 메시지를 확인할 수 있다.&lt;br /&gt;
[[파일:hoho16.png]]&lt;br /&gt;
** 위와 같이 학습이 진행중일 때에 각각의 에피소드마다의 결과값이 보여지는 것을 확인할 수 있다.&lt;br /&gt;
** 또한 학습 진행중에 그래프를 확인하면 아래와 같은 화면을 확인할 수 있다. 아래와 같은 그래프는 학습 에피소드마다 마지막 포트폴리오 가치가 어떠했는지를 확인할 수 있다. 이로써 모델의 학습이 성공적으로 되고 있는 것인지 추측해볼 수 있다.&lt;br /&gt;
** 이러한 그래프 보기 버튼을 누를 때 프로그램을 실행시킨 폴더에 graph.csv파일이 생성되고, 아래와 같은 그래프 데이터를 저장할 수 있다.&lt;br /&gt;
[[파일:hoho17.png]]&lt;br /&gt;
&lt;br /&gt;
====가상트레이딩 예시====&lt;br /&gt;
* 위와 같이 학습시 선택했던 종목, 지표와 강화학습 방법을 똑같이 선택한다.&lt;br /&gt;
** 만일 이전과 다르게 선택할 시 모델 트레이딩 과정중에 오류가 발생할 수 있다.&lt;br /&gt;
* 학습에 필요한 모델이 있는 폴더를 선택한다. 만일 선택하지 않고 트레이딩을 진행하거나 모델파일이 들어있지 않는 폴더를 선택하면, 아래와 같은 오류가 나타나면서 실행이 되지 않는다.&lt;br /&gt;
[[파일:hoho18.png]]&lt;br /&gt;
* 이 때의 에피소드 수는 여러 번으로 돌림으로써 학습과 유사하게 진행할 수 있으나, 최종적으로 얻는 그래프는 마지막 에피소드에서 테스트 데이터를 기반으로 진행한 트레이딩이기 때문에, 다수의 가상 트레이딩을 하는 것은 큰 의미가 있는 것은 아니다. 그러므로 에피소드 수는 1로 고정된다.&lt;br /&gt;
[[파일:hoho19.png]]&lt;br /&gt;
* 테스트가 완료되면 위와 같은 화면으로 바뀐다. 마지막 테스트 에피소드의 마지막 틱에서의 포트폴리오 가치가 얼마였는지를 나타낸다.&lt;br /&gt;
[[파일:hoho20.png]]&lt;br /&gt;
* 위의 그래프에서 초록색 점이 해당 틱에서 매수를 했음을 나타낸다. ma알고리즘에 기반해서 에어전트가 구매를 선택했고 이에 따른 수수료에 의해서 가치가 조금 감소한 것을 확인할 수 있다.&lt;br /&gt;
* 위의 그래프에서는 나타나지 않았지만 에어전트가 매도를 시도하게 되면 해당 점에서 붉은 점으로 표시가 된다.&lt;br /&gt;
&lt;br /&gt;
====그래프 데이터 자동 저장====&lt;br /&gt;
[[파일:hoho21.png]]&lt;br /&gt;
* 위의 그래프를 조회하게 되면 프로그램에서 자동으로 그래프 데이터를 저장하는 것을 확인할 수 있다.&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
&lt;br /&gt;
{|cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 auto; &amp;quot;&lt;br /&gt;
|평가항목&lt;br /&gt;
|평가방법&lt;br /&gt;
|적용기준&lt;br /&gt;
|개발 목표치&lt;br /&gt;
|비중(%)&lt;br /&gt;
|------&lt;br /&gt;
|1. 선정한 요인들이 충분히 근거가 있는가?&lt;br /&gt;
|해당 요인에 대한 논문이나 학술지가 있는지 확인&lt;br /&gt;
| Reference가 불분명하거나 없는 요인의 수&lt;br /&gt;
| 0개&lt;br /&gt;
|20&lt;br /&gt;
|------&lt;br /&gt;
|2. 요인들을 실험할 수 있는 프로토타입 강화학습 모델을 구현하였는가?&lt;br /&gt;
|해당 요인들을 환경에 넣어보고 테스트 해본다.&lt;br /&gt;
| 환경, 액션, 상태, 리워드 등을 넣었을 때 동작&lt;br /&gt;
|정상 동작 &lt;br /&gt;
|20&lt;br /&gt;
|------&lt;br /&gt;
|3. 다른 Trading Bot들과의 성능을 비교`분석하였는가?&lt;br /&gt;
|다른 Bot들과 모의투자를 진행하여 일정 시간 대비 수익률을 비교`분석한다.&lt;br /&gt;
| Bot들의 수익률 등수&lt;br /&gt;
|1위&lt;br /&gt;
|20&lt;br /&gt;
|------&lt;br /&gt;
|4. 요인들에 대한 연관성을 비교분석하였는가?&lt;br /&gt;
|요인들을 테스트해보고 각 요인들과 수익률간의 상관관계와 각 요인들 간의 상관관계를 분석&lt;br /&gt;
| 고려한 관계성이 있는 요인의 수&lt;br /&gt;
| 5개 이상&lt;br /&gt;
|20&lt;br /&gt;
|------&lt;br /&gt;
|5. 모의투자 상황에서 자동으로 Trading이 가능한가?&lt;br /&gt;
|모의투자 상황에서 Program을 실행시키고 자동으로 Trading이 되는지 확인함&lt;br /&gt;
| 거래 기록 및 수익률 기록&lt;br /&gt;
| 정상 동작&lt;br /&gt;
|20&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho21.png&amp;diff=1498</id>
		<title>파일:Hoho21.png</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho21.png&amp;diff=1498"/>
				<updated>2019-06-20T10:03:54Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: 호호조 그래피데이터자동저장&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;호호조 그래피데이터자동저장&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho20.png&amp;diff=1497</id>
		<title>파일:Hoho20.png</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho20.png&amp;diff=1497"/>
				<updated>2019-06-20T10:03:40Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: 호호조 가상트레이딩예시3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;호호조 가상트레이딩예시3&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho19.png&amp;diff=1496</id>
		<title>파일:Hoho19.png</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho19.png&amp;diff=1496"/>
				<updated>2019-06-20T10:03:28Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: 호호조 가상트레이딩예시2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;호호조 가상트레이딩예시2&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho18.png&amp;diff=1495</id>
		<title>파일:Hoho18.png</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho18.png&amp;diff=1495"/>
				<updated>2019-06-20T10:03:20Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: 호호조 가상트레이딩예시1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;호호조 가상트레이딩예시1&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho17.png&amp;diff=1494</id>
		<title>파일:Hoho17.png</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho17.png&amp;diff=1494"/>
				<updated>2019-06-20T10:03:02Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: 호호조 학습예시3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;호호조 학습예시3&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho16.png&amp;diff=1493</id>
		<title>파일:Hoho16.png</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho16.png&amp;diff=1493"/>
				<updated>2019-06-20T10:02:39Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: 호호조 학습예시2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;호호조 학습예시2&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho15.png&amp;diff=1492</id>
		<title>파일:Hoho15.png</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho15.png&amp;diff=1492"/>
				<updated>2019-06-20T10:02:27Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: 호호조 학습예시1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;호호조 학습예시1&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1491</id>
		<title>호호조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1491"/>
				<updated>2019-06-20T10:01:54Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 결과 및 평가 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : 광물시장에서 강화학습을 이용한 트레이딩 봇&lt;br /&gt;
&lt;br /&gt;
''' 영문 :  Trading-bot using Reinforcement Learning in a mineral market&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
호호&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
이동희 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920044 이홍석(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920037 이정한&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
*이전부터 사용자들이 많이 사용하던 시계열 분석 알고리즘과 다양한 지표들을 활용하여 강화학습을 이용하여 광물 가격을 예측한다.&lt;br /&gt;
*광물시장에서 시가에 영향을 미치는 다양한 요인이 존재한다.&lt;br /&gt;
*이미 밝혀진 다양한 요인들과 우리들이 생각한 요인들을 정리한다.&lt;br /&gt;
*이러한 요인들을 강화학습을 통해서 상관관계가 있는지 확인하고 실제로 수익을 낼 수 있는 모델과 학습을 진행한다.&lt;br /&gt;
*여러 가지 요인(차트 및 시장표준지수)들과 전략들을 가지고 하나의 광물을 대상으로 수익률이 높을 것으로 예상되는 매수, 매도 타이밍을 찾아낼 수 있는 것을 목표로 한다.&lt;br /&gt;
*다양한 강화학습 알고리즘 중 PPO(Proximal Policy Optimization), DQN(Deep Q Network)을 사용하여 구현해보고 어떤 방식이 더 잘 맞는지 분석해본다.&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*광물 시장은 매 시간마다 변동함&lt;br /&gt;
*광물 시장의 변동은 어떠한 요인들에 의해 값어치가 올라가기도 하고 내려가기도 함&lt;br /&gt;
*다양한 논문 Research 및 분석을 통해 값에 변화를 주는 요인들을 선별&lt;br /&gt;
*해당 요인들을 강화학습 모델의 환경에 넣어서 학습을 시킴&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
*강화학습을 이용하여 트레이딩을 자동으로 하는 봇을 만든다.&lt;br /&gt;
*광물 가격에 영향을 주는 요인들을 찾아보고 어느 정도 연관관계가 있는지 확인한다.&lt;br /&gt;
*연관관계가 있는 요인들을 모아서 강화학습모델에 적용시켜보고 실제로 효과가 있는지 확인해본다.&lt;br /&gt;
*효과가 컸던 요인들을 모아서 모의 투자 상황에서 수익률 분석을 해본다.&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
**자동 거래 시스템(ATS;Automated Trading System)은 1949년 Richard Donchian이 funds를 사고 파는 일련의 규칙을 사용하여 처음 소개되었다. 1980년대에는 John Henry와 같은 유명한 Trader들이 전략을 사용하기 시작하여, 규칙 기반 거래(Rule Based Trading)라는 개념이 대중화되었다. 현재는 미국 증권 거래소 주식 거래의 75% 이상이 자동 거래 시스템으로 이루어진다.&lt;br /&gt;
**최근에는 AI의 등장으로, 수많은 은행이나 투자자들이 AI를 활용하여 규칙 기반 거래나 직접 거래보다 훨씬 수익률이 높은 모델을 개발중이다. 딥러닝, 머신러닝 등의 기술을 활용하여 Trading Bot을 개발하고 있으며, 강화학습의 등장이후, 다양한 Trading Bot Project에서 강화학습을 도입하려는 움직임을 보이고 있다.&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
**거절 : 알고리즘 자동 매매 봇, [https://doi.org/10.8080/1020090067197]&lt;br /&gt;
***알고리즘 트레이딩 봇들을 모아서 관리할 수 있는 시스템&lt;br /&gt;
***통상적인 기술자가 충분히 만들 수 있는 것으로 판단하여 특허 거절&lt;br /&gt;
**등록 : 소셜트레이딩 방법, [http://kpat.kipris.or.kr/kpat/biblioa.do?method=biblioFrame]&lt;br /&gt;
***리더를 설정하여 해당 리더의 매매를 확인하고 추종하는 알고리즘&lt;br /&gt;
*기술 로드맵&lt;br /&gt;
**자동으로 거래를 할 수 있는 봇의 형태를 만들어야 하고, 모의투자를 통해 테스트할 수 있는 환경을 만들어야하기 때문에 투자, 증권사 API 및 모의투자 서버가 필요하다. 따라서, 키움증권, 대신증권, 이베스트투자증권 등의 회사의 API를 활용하고, 이 회사들의 모의투자 서버를 통해 수익률을 분석할 수 있다.&lt;br /&gt;
**강화학습은 환경이 주어지고, 해당 환경에 액션을 취하면 그에 따른 보상을 주면서 학습을 시킨다. 일반적인 딥 러닝은 어떤 요인들의 상호관계를 표현하지 못한다. 하지만 강화학습은 환경을 통해 어떤 요인들의 상호관계를 표현할 수 있다. 주식들은 서로 상호관계를 가지고 있으므로 강화학습을 이용하는 것이 유리한 방법이라 할 수 있다.&lt;br /&gt;
**현재에는 차트분석만으로 주식이나 광물시장에서의 매도, 매수타이밍을 잡아서 수익을 낼 수 있는 다양한 방법이 연구되고 있다. 이를 기술적 매매라고 부른다. 이러한 방법을 이용하여 알고리즘으로 구현하면 보다 안정적이고 수익률이 검증된 매매방법을 사용할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
**이러한 제품들은 시장에 공개적으로 나와있는 것을 쉽게 찾을 수 없다. 이러한 트레이딩봇 자체가 실제 주식시장에서 수익을 낼 수 있기 때문이다. 이윤을 창출하는 기업의 입장에서는 이 트레이딩 봇을 직접적으로 사용하지 않을 이유가 없다.&lt;br /&gt;
**또한 많은 사용자가 트레이딩 봇을 사용한다고 가정했을 때 모두가 이익을 볼 수 있는 것은 아니다. 같은 알고리즘을 사용하는 트레이딩 봇이 많으면 수익률이 줄어 들기 때문에 이러한 트레이딩 봇을 상용화하지 않은 것으로 보인다.&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! 알고리즘 !! 증권사 API !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 브레인듀드의 듀드303, 듀드프로&lt;br /&gt;
| 사용자의 조건검색식 사용 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 키움증권의 로보마켓&lt;br /&gt;
| 다양한 알고리즘 전략 제시 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 주식몰 오토핫키&lt;br /&gt;
| 해당하는 설명이 없음 || 해당하는 설명이 없음 || 마켓팅 위주의 사업 진행&lt;br /&gt;
|}&lt;br /&gt;
**위와 같이 알고리즘 트레이딩 봇을 만드는 회사 이외에도 증권사나 펀드회사 같은 경우에도 가치투자를 위한 분석자료를 제공하는 서비스를 제공할 수 있다.&lt;br /&gt;
**한국거래소에서는 종목마다 투자가치를 판단할 수 있는 자료를 제공한다. 이에 따라서 우리의 트레이딩봇과 경쟁해야 하는 부분을 가지고 있다.&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**위와 같이 여러가지 요인을 연구, 분석함에 따라서 트레이딩 봇을 만들 수 있다. 이 요인들의 적당한 조합으로 여러가지 특성을 띠는 트레이딩 봇을 개발할 수 있다.&lt;br /&gt;
**사용자들에게 원하는 이익구조를 선택할 수 있게 한다. 예를 들어 수익률이 크게 높지 않더라도 안정적인 투자를 원하는 사용자가 있고, 위험을 감수하더라도 높은 수익률을 원하는 사용자가 있다. 요인분석에 따라서 얻을 수 있는 특징들을 찾아내고 이러한 요인들로 주식트레이딩의 위험, 최고 수익률등이 결정될 것이다. &lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
*기존의 주식 트레이딩봇들은 우리가 직접 알고리즘을 구현하고 설계함에 따라서 작동했다. 사람의 직관을 이용해서 장기투자를 하는 것이 아니라 짧은 시간의 시장변동을 감지해서 조금씩 수익을 올리는 등의 알고리즘이 만들어져 왔다. 하지만 강화학습과 딥러닝을 사용해서 좀 더 효과적인 방향을 찾을 수 있다.&lt;br /&gt;
*딥러닝에서 사용하는 뉴럴 네트워크는 학습이 완료되었을 때 예측속도가 매우 빠르다는 특징을 갖고 있다. 해당 요인을 성공적으로 학습한 네트워크를 얻은 후에 봇을 사용할 때는 컴퓨팅의 성능을 크게 사용하지 않고 빠른 속도의 트레이딩이 가능하다.&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
*위에서 서술한 대로 만일 강화학습을 이용해서 주식 트레이딩봇이 성공적으로 수익을 낼 수 있는 구조라면, 이와 유사한 트레이딩봇이 많이 등장할 것이다. 더불어서 강화학습에 딥러닝을 적용시키면서 구성할 수 있는 선택의 여지가 많아졌다. 각기 학습하는 방법에 따라서 각기 다른 여러가지 전략이 등장할 수 있는 것이다. 따라서 기존에 알고리즘을 이용해서 매매를 진행하던 투자자들이 새롭게 등장하는 트레이딩봇의 투자전략에 영향을 받을 것이며, 시장의 특성은 더 다양하고 복잡해질 것이다.&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  단계별 세부개발 내용 !! 담당자 !! 개발기간 !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 강화학습 환경 설계&lt;br /&gt;
| 이홍석 || 3~4 || &lt;br /&gt;
|-&lt;br /&gt;
! 모의투자 환경구성 및 트레이딩 봇 구현&lt;br /&gt;
| 이정한 || 4~5 ||&lt;br /&gt;
|-&lt;br /&gt;
! 학습진행 및 정확도 개선&lt;br /&gt;
| 이홍석 || 4~6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 기존의 트레이딩 봇과의 성능 비교&lt;br /&gt;
| 이정한 || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 요인 연구 및 분석&lt;br /&gt;
| 이홍석, 이정한 || 3~6 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
*컴퓨터과학부 2014920044 이홍석 : 작품설계 및 개발&lt;br /&gt;
*컴퓨터과학부 2014920037 이정한 : 작품설계 및 개발&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  번호 !! 요 구 사 항 !! D or W !! 중요도&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 기존 시계열 분석 논문에 있는 전략(요소, Factor)들을 모듈로 개발 || D || 대 &lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 시계열 데이터 분석 모듈을 적용할 수 있는 강화학습 모델을 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| 모델을 학습시킬 수 있는 환경(Env, DB) 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| PPO와 DQN 강화학습 알고리즘을 구현하고 분석 || W || 중&lt;br /&gt;
|}&lt;br /&gt;
====설계 사양====&lt;br /&gt;
*목적계통도&lt;br /&gt;
[[그림:Hoho7.png]]&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
*기존에 연구되어진 시계열 분석 알고리즘을 이용한 결과물들은 제각기 집중하는 부분이 다르기 때문에, 그 정확도가 서로 배타적 일 것이다. 즉 어느 한 알고리즘이 우위의 정확도를 가질 경우 다른 알고리즘은 상대적으로 낮은 정확도를 가질 것이다.&lt;br /&gt;
**서로 정확성에 있어 배타적일 정도로 다른 시계열 분석 알고리즘을 찾아야한다.&lt;br /&gt;
**배타적인 TA 알고리즘 a0~an을 찾고, 구현한다.&lt;br /&gt;
*강화학습 예측 모델&lt;br /&gt;
[[그림:Hoho8.png]]&lt;br /&gt;
**강화학습을 이용한 시계열 데이터의 학습을 통해 예측 모델을 생성한다.&lt;br /&gt;
**예측 모델은 다음과 같이 크게 두가지 단계로 구성된다.&lt;br /&gt;
***직접 시계열 데이터를 분석 / 예측하는 전략적 알고리즘&lt;br /&gt;
****네이밍: a0, a1, … , an&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {예측된 다음 시계열 데이터=o0, o1, …, on}&lt;br /&gt;
***인공신경망을 응용하는, 적절한 전략적 알고리즘에 가중치를 부여하는 알고리즘&lt;br /&gt;
****네이밍: M&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {w0, w1, …, wn}&lt;br /&gt;
****어느 하나의 전략적 알고리즘을 선택하는 방식(hard decision)이 아니라, 여러 전략적 알고리즘의 정확도를 연판정(soft decision)하여 그 비중을 출력한다. &lt;br /&gt;
**a의 결과인 O와 b의 결과인 W를 곱하여 최종 예측치를 계산한다. (가중평균)&lt;br /&gt;
***Predict = OW&lt;br /&gt;
**이 Agent의 결과에 따라서 전략을 어떤 비율로 선택하게 된다. 이를 조합한 값으로 특정 광물에 대한 매수 혹은 매도할 값을 선택하게 된다.&lt;br /&gt;
*강화학습 환경 구성 요소&lt;br /&gt;
**에이전트&lt;br /&gt;
***state값들을 DNN을 사용하여 전략을 선택할 수 있는 값으로 추출한다.&lt;br /&gt;
***전략개수 의존적&lt;br /&gt;
**환경&lt;br /&gt;
***한 거래소의 해당 광물의 일봉csv데이터를 시간에 따라서 사용&lt;br /&gt;
***USD, EUR (KRW 기준) 지수 데이터&lt;br /&gt;
**리워드 공식&lt;br /&gt;
***해당 광물의 가치와 잔금을 합산한 값을 리워드로 사용한다.&lt;br /&gt;
**액션 리스트&lt;br /&gt;
***양수는 매수, 음수는 매도의 의미로 하나의 출력값을 사용한다.&lt;br /&gt;
****광물 거래는 1주 단위의 이산적인 값을 사용한다.&lt;br /&gt;
****최대, 최소값을 설정한다.&lt;br /&gt;
*학습 시나리오&lt;br /&gt;
**매 학습에서 어떤 기간을 랜덤으로 설정한다.&lt;br /&gt;
**이 시간동안의 광물시장 데이터를 사용해서 하루 단위로 액션을 진행한다.&lt;br /&gt;
**시계열 분석 부분에서 각각의 전략이 매수/매도값을 도출한다.&lt;br /&gt;
**강화학습 부분에서 가중치를 도출한다.&lt;br /&gt;
**가중치값과 매수/매도값을 각각 곱하고 누적한다.&lt;br /&gt;
**해당 값을 통해 매수/매도/유지를 진행한다.매도가 될 때까지 진행하고 매도시 수익률을 구한다.&lt;br /&gt;
**수익률이 증가하는 방향으로 학습을 한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
*강화학습 오픈소스) DQN을 이용한 트레이딩 학습 테스트&lt;br /&gt;
**학습개요&lt;br /&gt;
***아래는 국내 3개 IT기업의 일봉데이터를 대상으로 학습을 진행한 결과이다.&lt;br /&gt;
***구현에서는 가능한 만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
***아래의 그래프에서는 초기 투자금을 가지고 시간에 따라서 자산 가치가 어떻게 변하는지 보여준다.&lt;br /&gt;
**트레이닝 데이터로 학습 진행 중 자산가치변화&lt;br /&gt;
[[파일:Hoho1.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***초반에는 매우 가치가 크지만 불안정한 트레이딩을 하다가 후에 안정적인 수익률을 보여주는 것을 알 수 있다.&lt;br /&gt;
**테스트 데이터에서 거래중 자산가치 변화&lt;br /&gt;
[[파일:Hoho2.png]]&lt;br /&gt;
***빨간 선은 초기 투자 금액이다.&lt;br /&gt;
***테스트 데이터로 트레이딩 했을 때 투자금액 보다 평균 12%의 수익을 올릴 수 있었다.&lt;br /&gt;
***단순 시가만으로 학습을 하는 경우, 위와 같이 매우 불안정하므로 다양한 전략을 통해 개선이 필요하다.&lt;br /&gt;
*전략 오픈소스) 10일, 30일 이동평균선 교차점 검출을 이용한 매수 매도 알고리즘 트레이딩&lt;br /&gt;
**방법&lt;br /&gt;
***현재까지 크롤링한 일봉데이터에서 단기 이동평균선과 장기 이동평균선의 교차점은 중요한 매도, 매수타이밍의 후보가 될 수 있다. 장기적인 추세를 따라가는 것이 미래에 대체로 좋은 방향이 되므로 장기평균선이 상승할 떄 매수, 하락 할 때 매도를 하는 것이 좋다.&lt;br /&gt;
***구현에서는 가능한만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
**Ta-lib&lt;br /&gt;
***Technical Analysis LIbrary&lt;br /&gt;
***시장분석과 같은 시계열 데이터 알고리즘을 분석하는데 사용하는 라이브러리&lt;br /&gt;
***내부에서는 기본 시장지표를 받으면 이에 따라서 새로운 보조지표를 만들어주거나 패턴을 검출하는 함수 제공&lt;br /&gt;
***구현에서 이동평균선 지표를 얻을 때 사용.&lt;br /&gt;
**가상트레이딩에 따른 자산가치 변화&lt;br /&gt;
[[파일:Hoho3.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***위와 같이 장기간 트레이딩을 진행하는데 있어서 이동평균선 교차점을 이용한 트레이딩이 좋은 효과를 보이는 것을 알 수 있다.&lt;br /&gt;
*광물시장 시가데이터 크롤링&lt;br /&gt;
**한국거래소([http://www.krx.co.kr])&lt;br /&gt;
**거래소홈페이지에서 1년단위의 데이터를 csv로 내려받을 수 있다.&lt;br /&gt;
**아래는 2014년 - 2019년의 종가를 그래프로 나타낸 것이다.&lt;br /&gt;
[[파일:Hoho4.png]]&lt;br /&gt;
*DQN 소스코드를 사용한 광물시장 가상 트레이딩&lt;br /&gt;
**위에서 사용한 DQN방법을 금시장을 대상으로 트레이딩을 진행했다.&lt;br /&gt;
**구현방식은 위의 DQN을 이용한 트레이딩 테스트와 같다.&lt;br /&gt;
**2000회 트레이닝을 진행하여서 매회 트레이닝마다 다음과 같은 결과를 얻을 수 있었다.&lt;br /&gt;
[[파일:Hoho5.png]]&lt;br /&gt;
**초기투자금액 10,000,000원으로 학습을 진행했다.&lt;br /&gt;
**위에서 트레이닝한 결과를 바탕으로 테스트를 진행했다.&lt;br /&gt;
[[파일:Hoho6.png]]&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
====유스케이스 다이어그램====&lt;br /&gt;
[[파일:hoho10.png]]&lt;br /&gt;
* 투자자가 각종 종목과 학습 정책 등을 선택한다.&lt;br /&gt;
* 선택을 기반으로 모델을 생성해서 가상 트레이딩을 진행할 때 수익률이 잘 나올 수  있는 지 확인한다.&lt;br /&gt;
* 학습 방법에 따른 비교 분석을 진행한다.&lt;br /&gt;
* 액터&lt;br /&gt;
** 액터명 : 투자자&lt;br /&gt;
** 설명 : 해당 프로그램을 투자의 지표로 사용하고 싶은 사람&lt;br /&gt;
* 각 유스케이스설명&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 종목선택&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 원하는 종목을 선택함&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
#투자자가 원하는 종목을 선택한다.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|프로그램 실행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 강화학습 정책 선택&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 원하는 강화학습 정책을 선택(PPO,DQN)&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
#투자자가 원하는 강화학습 정책을 선택한다.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|프로그램실행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 투자 젼략 선택&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 원하는 전략을 선택함&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
#투자자가 원하는 전략을 선택한다.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|프로그램실행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 강화학습 모델 생성&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 선택한 내용대로 강화학습 모델을 생성함.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 선택한 내용을 보여줌&lt;br /&gt;
# 확인 버튼을 누르면 모델을 생성함&lt;br /&gt;
# 모델 생성 성공 팝업을 보여줌&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
2.a. 최소 버튼을 누르면 선택화면으로 돌아옴.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
프로그램실행&lt;br /&gt;
종목 선택&lt;br /&gt;
강화학습 정책 선택&lt;br /&gt;
투자 전략 선택&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 생성에 성공해야 함&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 모델 학습&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 생성한 모델을 학습함.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 원하는 학습 인자를 입력&lt;br /&gt;
# 학습 실행&lt;br /&gt;
# 학습 결과를 보여줌&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
2.a. 학습 인자를 형식에 맞게 입력하지 않은 경우 학습 실패를 보여줌.&lt;br /&gt;
&lt;br /&gt;
2.b. 학습 도중 학습에 실패할 경우 에러 메시지를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 생성에 성공&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
학습 결과 출력.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 가상 트레이딩&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 학습한 모델로 가상 트레이딩을 함.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 초기금액을 입력한다.&lt;br /&gt;
# 기간을 설정한다.&lt;br /&gt;
# 한 번당 최대 매수, 매도금액을 입력한다.&lt;br /&gt;
# 가상 트레이딩을 실행한다.&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
4.a. 입력한 형식에 맞지 않는 경우 실행실패를 보여줌.&lt;br /&gt;
&lt;br /&gt;
4.b. 실행에 실패한 경우 오류메시지를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 학습 완료&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
실행 결과를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|참고 사항&lt;br /&gt;
|colspan=3|&lt;br /&gt;
CSV에서 Test데이터셋을 만들어서 진행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 실제 트레이딩&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 학습한 모델로 현재 상태를 넣었을 때 매수나 매도, 대기를 알려주고, 매수나 매도일 경우 양을 알려줌.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 현재 잔액을 입력한다.&lt;br /&gt;
# 투자자가 소지한 광물의 양을 입력한다.&lt;br /&gt;
# 한 번당 최대 매수, 매도금액을 입력한다.&lt;br /&gt;
# 실행 버튼을 누른다.&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
4.a. 입력한 형식에 맞지 않는 경우 실행실패를 보여줌.&lt;br /&gt;
&lt;br /&gt;
4.b. 실행에 실패한 경우 오류메시지를 보여줌.&lt;br /&gt;
&lt;br /&gt;
4.c. 잔액이 없는 경우 투자 실패를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 학습 완료&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
해당 타이밍의 행동과 양을 출력&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====소프트웨어 전체 구성도====&lt;br /&gt;
[[파일:hoho11.png]]&lt;br /&gt;
* 광물시장 데이터 csv&lt;br /&gt;
** 광물 시장의 가격을 일봉형식으로 나타낸다.&lt;br /&gt;
** csv파일 형식으로 저장되어있다.&lt;br /&gt;
* 모의 투자&lt;br /&gt;
** 강화학습 모델에서 환경을 모의투자 api로 사용할 수 있는 부분이다.&lt;br /&gt;
* 학습 및 투자환경&lt;br /&gt;
** 강화학습 모델에 이용할 수 있는 환경요소로 추상화한다.&lt;br /&gt;
* 전략 및 트레이딩 DNN agent&lt;br /&gt;
** 가상화된 환경에서 실제로 매도나 매수등의 결정을 내리는 agent이다.&lt;br /&gt;
** 기본적으로 설정되어있는 다수의 알고리즘과 DNN을 합성하여 판단을 한다.&lt;br /&gt;
* 강화학습 정책&lt;br /&gt;
** 위의 DNN agent를 학습시키는 방법이다.&lt;br /&gt;
** PPO, DQN등의 방법을 사용한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====UI 정의====&lt;br /&gt;
* 메뉴구성&lt;br /&gt;
&lt;br /&gt;
{|cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 시스템&lt;br /&gt;
| Level1&lt;br /&gt;
| Level2&lt;br /&gt;
| Level3&lt;br /&gt;
| Level4&lt;br /&gt;
|-----&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|사용자용 프로그램&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|메인화면&lt;br /&gt;
|강화학습방식 설정&lt;br /&gt;
|모델생성&lt;br /&gt;
|모델학습&lt;br /&gt;
|-----&lt;br /&gt;
|사용할 트레이딩 전략&lt;br /&gt;
|모델 불러오기&lt;br /&gt;
|가상 트레이딩&lt;br /&gt;
|-----&lt;br /&gt;
|종목선택&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|모델저장&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|모델저장&lt;br /&gt;
|-----&lt;br /&gt;
|모델 불러오기&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* 화면 목록&lt;br /&gt;
&lt;br /&gt;
{|cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
|화면 ID&lt;br /&gt;
|화면명&lt;br /&gt;
|화면설정&lt;br /&gt;
|보안등급&lt;br /&gt;
|액터명&lt;br /&gt;
|권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-01&lt;br /&gt;
|메인화면&lt;br /&gt;
|메인화면&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-02&lt;br /&gt;
|강화학습방식 설정&lt;br /&gt;
|DQN이나 PPO선택 가능&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-03&lt;br /&gt;
|사용할 트레이딩 전략&lt;br /&gt;
|다양한 트레이딩 전략을 선택&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-04&lt;br /&gt;
|종목 선택&lt;br /&gt;
|다양한 종목 선택&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-05&lt;br /&gt;
|모델 불러오기&lt;br /&gt;
|기존에 저장한 모델을 불러옴&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-06&lt;br /&gt;
|모델 생성&lt;br /&gt;
|선택한 정보를 기준으로 모델 생성&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-07&lt;br /&gt;
|모델 저장&lt;br /&gt;
|현재 모델을 저장&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-08&lt;br /&gt;
|모델 학습&lt;br /&gt;
|현재 모델을 학습&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-09&lt;br /&gt;
|가상 트레이딩&lt;br /&gt;
|현재 모델로 가상 트레이딩&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*화면 흐름도&lt;br /&gt;
[[파일:hoho12.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====클래스 다이어그램====&lt;br /&gt;
[[파일:hoho9.png]]&lt;br /&gt;
* BaseTrainEnv&lt;br /&gt;
** 실제 시장의 환경을 강화학습에서 모델링하기 위한 베이스 클래스이다. API를 이용한 투자와 csv데이터로 가상화되는 환경의 베이스가 된다.&lt;br /&gt;
** reset()으로 환경을 초기화 한다.&lt;br /&gt;
** step()으로 거래를 전달하면, 다음날의 가격(state), 현재 가치(reward), 시간흐름의 완료(done), 기타정보를 반환한다.&lt;br /&gt;
* APITrainEnv&lt;br /&gt;
** 실제 투자API가 구현되는 클래스이다.&lt;br /&gt;
* CsvTrainEnv&lt;br /&gt;
** csv 데이터를 이용해 투자 환경이 구현되는 클래스이다.&lt;br /&gt;
*CsvTrainSet&lt;br /&gt;
** 투자 환경에 필요한 주가 데이터를 종합한 클래스이다.&lt;br /&gt;
** currency : 기준 통화&lt;br /&gt;
** exchange_rate : 기준 통화와 다른 통화의 환율&lt;br /&gt;
** object_price : 거래 대상의 가격데이터&lt;br /&gt;
** other_object_price : 거래 대상이외의 참고할 대상의 가격데이터&lt;br /&gt;
* PPOTrainModel &amp;amp; DQNTrainModel&lt;br /&gt;
** trainEnv: 사용한 투자환경 클래스이다.&lt;br /&gt;
** agent: 전략별 채택 가중치를 계산할 수 있는 오브젝트이다.&lt;br /&gt;
** tradeStrategies: 트레이딩에서 사용할 전략 알고리즘의 배열이다.&lt;br /&gt;
* BaseTradeStrategy&lt;br /&gt;
** 트레이딩에 사용할 수 있는 전략알고리즘을 추상화한 클래스이다.&lt;br /&gt;
** getInvest의 출력값은 +(매수), -(매도)로 나타낸다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====CSV데이터 포맷====&lt;br /&gt;
&lt;br /&gt;
* 최상단 줄에 해당하는 컬럼명 표기.&lt;br /&gt;
* 광물시장 가격 데이터&lt;br /&gt;
** 각 광물별, 거래소, 기준통화별로 파일 관리&lt;br /&gt;
** 파일내에서 날짜별로 시가, 종가, 고가, 저가, 거래량의 데이터를 가지고 있을 것&lt;br /&gt;
** 예시&lt;br /&gt;
&lt;br /&gt;
[[파일:hoho13.png]]&lt;br /&gt;
* 환율 데이터&lt;br /&gt;
** 각 기준통화별로 파일 관리&lt;br /&gt;
** 컬럼에 변환할 대상통화를 표기&lt;br /&gt;
** 날짜별로 통화량 표기&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====대표기능 사진====&lt;br /&gt;
[[파일:hoho14.png]]&lt;br /&gt;
===실행===&lt;br /&gt;
====사용가능한 기능들====&lt;br /&gt;
** 모델 생성&lt;br /&gt;
*** 강화학습 방식 설정&lt;br /&gt;
*** 베이스 트레이딩 전략 설정&lt;br /&gt;
*** 종목 설정&lt;br /&gt;
*** 새로운 모델 생성&lt;br /&gt;
** 모델 폴더 지정&lt;br /&gt;
*** 현재 학습된 모델이 저장될 폴더를 지정&lt;br /&gt;
** 모델 로딩&lt;br /&gt;
*** 학습 및 트레이딩시 자동으로 지정된 폴더에서 모델을 로드&lt;br /&gt;
*** 기존 모델에 대한 추가학습 옵션으로 새로운 학습, 기존모델에 대한 학습을 선택가능&lt;br /&gt;
** 모델 학습&lt;br /&gt;
*** 불러오거나 생성한 모델을 학습함&lt;br /&gt;
*** 매 에피소드마다 학습된 모델을 저장.&lt;br /&gt;
** 가상 트레이딩&lt;br /&gt;
*** 학습한 모델을 훈련데이터와 분리한 데이터에서도 학습이 잘 되는지 확인할 수 있음.&lt;br /&gt;
** 학습/결과 그래프 확인&lt;br /&gt;
*** 학습하거나 가상트레이딩을 진행한 그래프를 보여줌&lt;br /&gt;
*** 학습 시에는 에피소드마다, 트레이딩시 마지막 에피소드의 포트폴리오 그래프표시.&lt;br /&gt;
*** 그래프 데이터 자동 저장&lt;br /&gt;
&lt;br /&gt;
====학습예시====&lt;br /&gt;
[[파일:hoho15.png]]&lt;br /&gt;
** 위의 화면에 전략, 종목, 사용할 지표를 선택해야 한다. 학습할 에피소드 수, 추가학습이라면 체크박스를 선택한다. 최종적으로 모델 학습 시작을 눌러서 학습시작이라는 메시지를 확인할 수 있다.&lt;br /&gt;
[[파일:hoho16.png]]&lt;br /&gt;
** 위와 같이 학습이 진행중일 때에 각각의 에피소드마다의 결과값이 보여지는 것을 확인할 수 있다.&lt;br /&gt;
** 또한 학습 진행중에 그래프를 확인하면 아래와 같은 화면을 확인할 수 있다. 아래와 같은 그래프는 학습 에피소드마다 마지막 포트폴리오 가치가 어떠했는지를 확인할 수 있다. 이로써 모델의 학습이 성공적으로 되고 있는 것인지 추측해볼 수 있다.&lt;br /&gt;
** 이러한 그래프 보기 버튼을 누를 때 프로그램을 실행시킨 폴더에 graph.csv파일이 생성되고, 아래와 같은 그래프 데이터를 저장할 수 있다.&lt;br /&gt;
[[파일:hoho17.png]]&lt;br /&gt;
&lt;br /&gt;
====가상트레이딩 예시====&lt;br /&gt;
* 위와 같이 학습시 선택했던 종목, 지표와 강화학습 방법을 똑같이 선택한다.&lt;br /&gt;
** 만일 이전과 다르게 선택할 시 모델 트레이딩 과정중에 오류가 발생할 수 있다.&lt;br /&gt;
* 학습에 필요한 모델이 있는 폴더를 선택한다. 만일 선택하지 않고 트레이딩을 진행하거나 모델파일이 들어있지 않는 폴더를 선택하면, 아래와 같은 오류가 나타나면서 실행이 되지 않는다.&lt;br /&gt;
[[파일:hoho18.png]]&lt;br /&gt;
* 이 때의 에피소드 수는 여러 번으로 돌림으로써 학습과 유사하게 진행할 수 있으나, 최종적으로 얻는 그래프는 마지막 에피소드에서 테스트 데이터를 기반으로 진행한 트레이딩이기 때문에, 다수의 가상 트레이딩을 하는 것은 큰 의미가 있는 것은 아니다. 그러므로 에피소드 수는 1로 고정된다.&lt;br /&gt;
[[파일:hoho19.png]]&lt;br /&gt;
* 테스트가 완료되면 위와 같은 화면으로 바뀐다. 마지막 테스트 에피소드의 마지막 틱에서의 포트폴리오 가치가 얼마였는지를 나타낸다.&lt;br /&gt;
[[파일:hoho20.png]]&lt;br /&gt;
* 위의 그래프에서 초록색 점이 해당 틱에서 매수를 했음을 나타낸다. ma알고리즘에 기반해서 에어전트가 구매를 선택했고 이에 따른 수수료에 의해서 가치가 조금 감소한 것을 확인할 수 있다.&lt;br /&gt;
* 위의 그래프에서는 나타나지 않았지만 에어전트가 매도를 시도하게 되면 해당 점에서 붉은 점으로 표시가 된다.&lt;br /&gt;
&lt;br /&gt;
====그래프 데이터 자동 저장====&lt;br /&gt;
[[파일:hoho21.png]]&lt;br /&gt;
* 위의 그래프를 조회하게 되면 프로그램에서 자동으로 그래프 데이터를 저장하는 것을 확인할 수 있다.&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho14.png&amp;diff=1490</id>
		<title>파일:Hoho14.png</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho14.png&amp;diff=1490"/>
				<updated>2019-06-20T09:48:40Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: 호호조 프로그램 사진&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;호호조 프로그램 사진&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1489</id>
		<title>호호조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1489"/>
				<updated>2019-06-20T09:43:30Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : 광물시장에서 강화학습을 이용한 트레이딩 봇&lt;br /&gt;
&lt;br /&gt;
''' 영문 :  Trading-bot using Reinforcement Learning in a mineral market&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
호호&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
이동희 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920044 이홍석(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920037 이정한&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
*이전부터 사용자들이 많이 사용하던 시계열 분석 알고리즘과 다양한 지표들을 활용하여 강화학습을 이용하여 광물 가격을 예측한다.&lt;br /&gt;
*광물시장에서 시가에 영향을 미치는 다양한 요인이 존재한다.&lt;br /&gt;
*이미 밝혀진 다양한 요인들과 우리들이 생각한 요인들을 정리한다.&lt;br /&gt;
*이러한 요인들을 강화학습을 통해서 상관관계가 있는지 확인하고 실제로 수익을 낼 수 있는 모델과 학습을 진행한다.&lt;br /&gt;
*여러 가지 요인(차트 및 시장표준지수)들과 전략들을 가지고 하나의 광물을 대상으로 수익률이 높을 것으로 예상되는 매수, 매도 타이밍을 찾아낼 수 있는 것을 목표로 한다.&lt;br /&gt;
*다양한 강화학습 알고리즘 중 PPO(Proximal Policy Optimization), DQN(Deep Q Network)을 사용하여 구현해보고 어떤 방식이 더 잘 맞는지 분석해본다.&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*광물 시장은 매 시간마다 변동함&lt;br /&gt;
*광물 시장의 변동은 어떠한 요인들에 의해 값어치가 올라가기도 하고 내려가기도 함&lt;br /&gt;
*다양한 논문 Research 및 분석을 통해 값에 변화를 주는 요인들을 선별&lt;br /&gt;
*해당 요인들을 강화학습 모델의 환경에 넣어서 학습을 시킴&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
*강화학습을 이용하여 트레이딩을 자동으로 하는 봇을 만든다.&lt;br /&gt;
*광물 가격에 영향을 주는 요인들을 찾아보고 어느 정도 연관관계가 있는지 확인한다.&lt;br /&gt;
*연관관계가 있는 요인들을 모아서 강화학습모델에 적용시켜보고 실제로 효과가 있는지 확인해본다.&lt;br /&gt;
*효과가 컸던 요인들을 모아서 모의 투자 상황에서 수익률 분석을 해본다.&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
**자동 거래 시스템(ATS;Automated Trading System)은 1949년 Richard Donchian이 funds를 사고 파는 일련의 규칙을 사용하여 처음 소개되었다. 1980년대에는 John Henry와 같은 유명한 Trader들이 전략을 사용하기 시작하여, 규칙 기반 거래(Rule Based Trading)라는 개념이 대중화되었다. 현재는 미국 증권 거래소 주식 거래의 75% 이상이 자동 거래 시스템으로 이루어진다.&lt;br /&gt;
**최근에는 AI의 등장으로, 수많은 은행이나 투자자들이 AI를 활용하여 규칙 기반 거래나 직접 거래보다 훨씬 수익률이 높은 모델을 개발중이다. 딥러닝, 머신러닝 등의 기술을 활용하여 Trading Bot을 개발하고 있으며, 강화학습의 등장이후, 다양한 Trading Bot Project에서 강화학습을 도입하려는 움직임을 보이고 있다.&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
**거절 : 알고리즘 자동 매매 봇, [https://doi.org/10.8080/1020090067197]&lt;br /&gt;
***알고리즘 트레이딩 봇들을 모아서 관리할 수 있는 시스템&lt;br /&gt;
***통상적인 기술자가 충분히 만들 수 있는 것으로 판단하여 특허 거절&lt;br /&gt;
**등록 : 소셜트레이딩 방법, [http://kpat.kipris.or.kr/kpat/biblioa.do?method=biblioFrame]&lt;br /&gt;
***리더를 설정하여 해당 리더의 매매를 확인하고 추종하는 알고리즘&lt;br /&gt;
*기술 로드맵&lt;br /&gt;
**자동으로 거래를 할 수 있는 봇의 형태를 만들어야 하고, 모의투자를 통해 테스트할 수 있는 환경을 만들어야하기 때문에 투자, 증권사 API 및 모의투자 서버가 필요하다. 따라서, 키움증권, 대신증권, 이베스트투자증권 등의 회사의 API를 활용하고, 이 회사들의 모의투자 서버를 통해 수익률을 분석할 수 있다.&lt;br /&gt;
**강화학습은 환경이 주어지고, 해당 환경에 액션을 취하면 그에 따른 보상을 주면서 학습을 시킨다. 일반적인 딥 러닝은 어떤 요인들의 상호관계를 표현하지 못한다. 하지만 강화학습은 환경을 통해 어떤 요인들의 상호관계를 표현할 수 있다. 주식들은 서로 상호관계를 가지고 있으므로 강화학습을 이용하는 것이 유리한 방법이라 할 수 있다.&lt;br /&gt;
**현재에는 차트분석만으로 주식이나 광물시장에서의 매도, 매수타이밍을 잡아서 수익을 낼 수 있는 다양한 방법이 연구되고 있다. 이를 기술적 매매라고 부른다. 이러한 방법을 이용하여 알고리즘으로 구현하면 보다 안정적이고 수익률이 검증된 매매방법을 사용할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
**이러한 제품들은 시장에 공개적으로 나와있는 것을 쉽게 찾을 수 없다. 이러한 트레이딩봇 자체가 실제 주식시장에서 수익을 낼 수 있기 때문이다. 이윤을 창출하는 기업의 입장에서는 이 트레이딩 봇을 직접적으로 사용하지 않을 이유가 없다.&lt;br /&gt;
**또한 많은 사용자가 트레이딩 봇을 사용한다고 가정했을 때 모두가 이익을 볼 수 있는 것은 아니다. 같은 알고리즘을 사용하는 트레이딩 봇이 많으면 수익률이 줄어 들기 때문에 이러한 트레이딩 봇을 상용화하지 않은 것으로 보인다.&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! 알고리즘 !! 증권사 API !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 브레인듀드의 듀드303, 듀드프로&lt;br /&gt;
| 사용자의 조건검색식 사용 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 키움증권의 로보마켓&lt;br /&gt;
| 다양한 알고리즘 전략 제시 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 주식몰 오토핫키&lt;br /&gt;
| 해당하는 설명이 없음 || 해당하는 설명이 없음 || 마켓팅 위주의 사업 진행&lt;br /&gt;
|}&lt;br /&gt;
**위와 같이 알고리즘 트레이딩 봇을 만드는 회사 이외에도 증권사나 펀드회사 같은 경우에도 가치투자를 위한 분석자료를 제공하는 서비스를 제공할 수 있다.&lt;br /&gt;
**한국거래소에서는 종목마다 투자가치를 판단할 수 있는 자료를 제공한다. 이에 따라서 우리의 트레이딩봇과 경쟁해야 하는 부분을 가지고 있다.&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**위와 같이 여러가지 요인을 연구, 분석함에 따라서 트레이딩 봇을 만들 수 있다. 이 요인들의 적당한 조합으로 여러가지 특성을 띠는 트레이딩 봇을 개발할 수 있다.&lt;br /&gt;
**사용자들에게 원하는 이익구조를 선택할 수 있게 한다. 예를 들어 수익률이 크게 높지 않더라도 안정적인 투자를 원하는 사용자가 있고, 위험을 감수하더라도 높은 수익률을 원하는 사용자가 있다. 요인분석에 따라서 얻을 수 있는 특징들을 찾아내고 이러한 요인들로 주식트레이딩의 위험, 최고 수익률등이 결정될 것이다. &lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
*기존의 주식 트레이딩봇들은 우리가 직접 알고리즘을 구현하고 설계함에 따라서 작동했다. 사람의 직관을 이용해서 장기투자를 하는 것이 아니라 짧은 시간의 시장변동을 감지해서 조금씩 수익을 올리는 등의 알고리즘이 만들어져 왔다. 하지만 강화학습과 딥러닝을 사용해서 좀 더 효과적인 방향을 찾을 수 있다.&lt;br /&gt;
*딥러닝에서 사용하는 뉴럴 네트워크는 학습이 완료되었을 때 예측속도가 매우 빠르다는 특징을 갖고 있다. 해당 요인을 성공적으로 학습한 네트워크를 얻은 후에 봇을 사용할 때는 컴퓨팅의 성능을 크게 사용하지 않고 빠른 속도의 트레이딩이 가능하다.&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
*위에서 서술한 대로 만일 강화학습을 이용해서 주식 트레이딩봇이 성공적으로 수익을 낼 수 있는 구조라면, 이와 유사한 트레이딩봇이 많이 등장할 것이다. 더불어서 강화학습에 딥러닝을 적용시키면서 구성할 수 있는 선택의 여지가 많아졌다. 각기 학습하는 방법에 따라서 각기 다른 여러가지 전략이 등장할 수 있는 것이다. 따라서 기존에 알고리즘을 이용해서 매매를 진행하던 투자자들이 새롭게 등장하는 트레이딩봇의 투자전략에 영향을 받을 것이며, 시장의 특성은 더 다양하고 복잡해질 것이다.&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  단계별 세부개발 내용 !! 담당자 !! 개발기간 !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 강화학습 환경 설계&lt;br /&gt;
| 이홍석 || 3~4 || &lt;br /&gt;
|-&lt;br /&gt;
! 모의투자 환경구성 및 트레이딩 봇 구현&lt;br /&gt;
| 이정한 || 4~5 ||&lt;br /&gt;
|-&lt;br /&gt;
! 학습진행 및 정확도 개선&lt;br /&gt;
| 이홍석 || 4~6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 기존의 트레이딩 봇과의 성능 비교&lt;br /&gt;
| 이정한 || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 요인 연구 및 분석&lt;br /&gt;
| 이홍석, 이정한 || 3~6 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
*컴퓨터과학부 2014920044 이홍석 : 작품설계 및 개발&lt;br /&gt;
*컴퓨터과학부 2014920037 이정한 : 작품설계 및 개발&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  번호 !! 요 구 사 항 !! D or W !! 중요도&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 기존 시계열 분석 논문에 있는 전략(요소, Factor)들을 모듈로 개발 || D || 대 &lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 시계열 데이터 분석 모듈을 적용할 수 있는 강화학습 모델을 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| 모델을 학습시킬 수 있는 환경(Env, DB) 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| PPO와 DQN 강화학습 알고리즘을 구현하고 분석 || W || 중&lt;br /&gt;
|}&lt;br /&gt;
====설계 사양====&lt;br /&gt;
*목적계통도&lt;br /&gt;
[[그림:Hoho7.png]]&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
*기존에 연구되어진 시계열 분석 알고리즘을 이용한 결과물들은 제각기 집중하는 부분이 다르기 때문에, 그 정확도가 서로 배타적 일 것이다. 즉 어느 한 알고리즘이 우위의 정확도를 가질 경우 다른 알고리즘은 상대적으로 낮은 정확도를 가질 것이다.&lt;br /&gt;
**서로 정확성에 있어 배타적일 정도로 다른 시계열 분석 알고리즘을 찾아야한다.&lt;br /&gt;
**배타적인 TA 알고리즘 a0~an을 찾고, 구현한다.&lt;br /&gt;
*강화학습 예측 모델&lt;br /&gt;
[[그림:Hoho8.png]]&lt;br /&gt;
**강화학습을 이용한 시계열 데이터의 학습을 통해 예측 모델을 생성한다.&lt;br /&gt;
**예측 모델은 다음과 같이 크게 두가지 단계로 구성된다.&lt;br /&gt;
***직접 시계열 데이터를 분석 / 예측하는 전략적 알고리즘&lt;br /&gt;
****네이밍: a0, a1, … , an&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {예측된 다음 시계열 데이터=o0, o1, …, on}&lt;br /&gt;
***인공신경망을 응용하는, 적절한 전략적 알고리즘에 가중치를 부여하는 알고리즘&lt;br /&gt;
****네이밍: M&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {w0, w1, …, wn}&lt;br /&gt;
****어느 하나의 전략적 알고리즘을 선택하는 방식(hard decision)이 아니라, 여러 전략적 알고리즘의 정확도를 연판정(soft decision)하여 그 비중을 출력한다. &lt;br /&gt;
**a의 결과인 O와 b의 결과인 W를 곱하여 최종 예측치를 계산한다. (가중평균)&lt;br /&gt;
***Predict = OW&lt;br /&gt;
**이 Agent의 결과에 따라서 전략을 어떤 비율로 선택하게 된다. 이를 조합한 값으로 특정 광물에 대한 매수 혹은 매도할 값을 선택하게 된다.&lt;br /&gt;
*강화학습 환경 구성 요소&lt;br /&gt;
**에이전트&lt;br /&gt;
***state값들을 DNN을 사용하여 전략을 선택할 수 있는 값으로 추출한다.&lt;br /&gt;
***전략개수 의존적&lt;br /&gt;
**환경&lt;br /&gt;
***한 거래소의 해당 광물의 일봉csv데이터를 시간에 따라서 사용&lt;br /&gt;
***USD, EUR (KRW 기준) 지수 데이터&lt;br /&gt;
**리워드 공식&lt;br /&gt;
***해당 광물의 가치와 잔금을 합산한 값을 리워드로 사용한다.&lt;br /&gt;
**액션 리스트&lt;br /&gt;
***양수는 매수, 음수는 매도의 의미로 하나의 출력값을 사용한다.&lt;br /&gt;
****광물 거래는 1주 단위의 이산적인 값을 사용한다.&lt;br /&gt;
****최대, 최소값을 설정한다.&lt;br /&gt;
*학습 시나리오&lt;br /&gt;
**매 학습에서 어떤 기간을 랜덤으로 설정한다.&lt;br /&gt;
**이 시간동안의 광물시장 데이터를 사용해서 하루 단위로 액션을 진행한다.&lt;br /&gt;
**시계열 분석 부분에서 각각의 전략이 매수/매도값을 도출한다.&lt;br /&gt;
**강화학습 부분에서 가중치를 도출한다.&lt;br /&gt;
**가중치값과 매수/매도값을 각각 곱하고 누적한다.&lt;br /&gt;
**해당 값을 통해 매수/매도/유지를 진행한다.매도가 될 때까지 진행하고 매도시 수익률을 구한다.&lt;br /&gt;
**수익률이 증가하는 방향으로 학습을 한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
*강화학습 오픈소스) DQN을 이용한 트레이딩 학습 테스트&lt;br /&gt;
**학습개요&lt;br /&gt;
***아래는 국내 3개 IT기업의 일봉데이터를 대상으로 학습을 진행한 결과이다.&lt;br /&gt;
***구현에서는 가능한 만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
***아래의 그래프에서는 초기 투자금을 가지고 시간에 따라서 자산 가치가 어떻게 변하는지 보여준다.&lt;br /&gt;
**트레이닝 데이터로 학습 진행 중 자산가치변화&lt;br /&gt;
[[파일:Hoho1.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***초반에는 매우 가치가 크지만 불안정한 트레이딩을 하다가 후에 안정적인 수익률을 보여주는 것을 알 수 있다.&lt;br /&gt;
**테스트 데이터에서 거래중 자산가치 변화&lt;br /&gt;
[[파일:Hoho2.png]]&lt;br /&gt;
***빨간 선은 초기 투자 금액이다.&lt;br /&gt;
***테스트 데이터로 트레이딩 했을 때 투자금액 보다 평균 12%의 수익을 올릴 수 있었다.&lt;br /&gt;
***단순 시가만으로 학습을 하는 경우, 위와 같이 매우 불안정하므로 다양한 전략을 통해 개선이 필요하다.&lt;br /&gt;
*전략 오픈소스) 10일, 30일 이동평균선 교차점 검출을 이용한 매수 매도 알고리즘 트레이딩&lt;br /&gt;
**방법&lt;br /&gt;
***현재까지 크롤링한 일봉데이터에서 단기 이동평균선과 장기 이동평균선의 교차점은 중요한 매도, 매수타이밍의 후보가 될 수 있다. 장기적인 추세를 따라가는 것이 미래에 대체로 좋은 방향이 되므로 장기평균선이 상승할 떄 매수, 하락 할 때 매도를 하는 것이 좋다.&lt;br /&gt;
***구현에서는 가능한만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
**Ta-lib&lt;br /&gt;
***Technical Analysis LIbrary&lt;br /&gt;
***시장분석과 같은 시계열 데이터 알고리즘을 분석하는데 사용하는 라이브러리&lt;br /&gt;
***내부에서는 기본 시장지표를 받으면 이에 따라서 새로운 보조지표를 만들어주거나 패턴을 검출하는 함수 제공&lt;br /&gt;
***구현에서 이동평균선 지표를 얻을 때 사용.&lt;br /&gt;
**가상트레이딩에 따른 자산가치 변화&lt;br /&gt;
[[파일:Hoho3.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***위와 같이 장기간 트레이딩을 진행하는데 있어서 이동평균선 교차점을 이용한 트레이딩이 좋은 효과를 보이는 것을 알 수 있다.&lt;br /&gt;
*광물시장 시가데이터 크롤링&lt;br /&gt;
**한국거래소([http://www.krx.co.kr])&lt;br /&gt;
**거래소홈페이지에서 1년단위의 데이터를 csv로 내려받을 수 있다.&lt;br /&gt;
**아래는 2014년 - 2019년의 종가를 그래프로 나타낸 것이다.&lt;br /&gt;
[[파일:Hoho4.png]]&lt;br /&gt;
*DQN 소스코드를 사용한 광물시장 가상 트레이딩&lt;br /&gt;
**위에서 사용한 DQN방법을 금시장을 대상으로 트레이딩을 진행했다.&lt;br /&gt;
**구현방식은 위의 DQN을 이용한 트레이딩 테스트와 같다.&lt;br /&gt;
**2000회 트레이닝을 진행하여서 매회 트레이닝마다 다음과 같은 결과를 얻을 수 있었다.&lt;br /&gt;
[[파일:Hoho5.png]]&lt;br /&gt;
**초기투자금액 10,000,000원으로 학습을 진행했다.&lt;br /&gt;
**위에서 트레이닝한 결과를 바탕으로 테스트를 진행했다.&lt;br /&gt;
[[파일:Hoho6.png]]&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
====유스케이스 다이어그램====&lt;br /&gt;
[[파일:hoho10.png]]&lt;br /&gt;
* 투자자가 각종 종목과 학습 정책 등을 선택한다.&lt;br /&gt;
* 선택을 기반으로 모델을 생성해서 가상 트레이딩을 진행할 때 수익률이 잘 나올 수  있는 지 확인한다.&lt;br /&gt;
* 학습 방법에 따른 비교 분석을 진행한다.&lt;br /&gt;
* 액터&lt;br /&gt;
** 액터명 : 투자자&lt;br /&gt;
** 설명 : 해당 프로그램을 투자의 지표로 사용하고 싶은 사람&lt;br /&gt;
* 각 유스케이스설명&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 종목선택&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 원하는 종목을 선택함&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
#투자자가 원하는 종목을 선택한다.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|프로그램 실행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 강화학습 정책 선택&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 원하는 강화학습 정책을 선택(PPO,DQN)&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
#투자자가 원하는 강화학습 정책을 선택한다.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|프로그램실행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 투자 젼략 선택&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 원하는 전략을 선택함&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
#투자자가 원하는 전략을 선택한다.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|프로그램실행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 강화학습 모델 생성&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 선택한 내용대로 강화학습 모델을 생성함.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 선택한 내용을 보여줌&lt;br /&gt;
# 확인 버튼을 누르면 모델을 생성함&lt;br /&gt;
# 모델 생성 성공 팝업을 보여줌&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
2.a. 최소 버튼을 누르면 선택화면으로 돌아옴.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
프로그램실행&lt;br /&gt;
종목 선택&lt;br /&gt;
강화학습 정책 선택&lt;br /&gt;
투자 전략 선택&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 생성에 성공해야 함&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 모델 학습&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 생성한 모델을 학습함.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 원하는 학습 인자를 입력&lt;br /&gt;
# 학습 실행&lt;br /&gt;
# 학습 결과를 보여줌&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
2.a. 학습 인자를 형식에 맞게 입력하지 않은 경우 학습 실패를 보여줌.&lt;br /&gt;
&lt;br /&gt;
2.b. 학습 도중 학습에 실패할 경우 에러 메시지를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 생성에 성공&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
학습 결과 출력.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 가상 트레이딩&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 학습한 모델로 가상 트레이딩을 함.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 초기금액을 입력한다.&lt;br /&gt;
# 기간을 설정한다.&lt;br /&gt;
# 한 번당 최대 매수, 매도금액을 입력한다.&lt;br /&gt;
# 가상 트레이딩을 실행한다.&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
4.a. 입력한 형식에 맞지 않는 경우 실행실패를 보여줌.&lt;br /&gt;
&lt;br /&gt;
4.b. 실행에 실패한 경우 오류메시지를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 학습 완료&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
실행 결과를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|참고 사항&lt;br /&gt;
|colspan=3|&lt;br /&gt;
CSV에서 Test데이터셋을 만들어서 진행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 실제 트레이딩&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 학습한 모델로 현재 상태를 넣었을 때 매수나 매도, 대기를 알려주고, 매수나 매도일 경우 양을 알려줌.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 현재 잔액을 입력한다.&lt;br /&gt;
# 투자자가 소지한 광물의 양을 입력한다.&lt;br /&gt;
# 한 번당 최대 매수, 매도금액을 입력한다.&lt;br /&gt;
# 실행 버튼을 누른다.&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
4.a. 입력한 형식에 맞지 않는 경우 실행실패를 보여줌.&lt;br /&gt;
&lt;br /&gt;
4.b. 실행에 실패한 경우 오류메시지를 보여줌.&lt;br /&gt;
&lt;br /&gt;
4.c. 잔액이 없는 경우 투자 실패를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 학습 완료&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
해당 타이밍의 행동과 양을 출력&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====소프트웨어 전체 구성도====&lt;br /&gt;
[[파일:hoho11.png]]&lt;br /&gt;
* 광물시장 데이터 csv&lt;br /&gt;
** 광물 시장의 가격을 일봉형식으로 나타낸다.&lt;br /&gt;
** csv파일 형식으로 저장되어있다.&lt;br /&gt;
* 모의 투자&lt;br /&gt;
** 강화학습 모델에서 환경을 모의투자 api로 사용할 수 있는 부분이다.&lt;br /&gt;
* 학습 및 투자환경&lt;br /&gt;
** 강화학습 모델에 이용할 수 있는 환경요소로 추상화한다.&lt;br /&gt;
* 전략 및 트레이딩 DNN agent&lt;br /&gt;
** 가상화된 환경에서 실제로 매도나 매수등의 결정을 내리는 agent이다.&lt;br /&gt;
** 기본적으로 설정되어있는 다수의 알고리즘과 DNN을 합성하여 판단을 한다.&lt;br /&gt;
* 강화학습 정책&lt;br /&gt;
** 위의 DNN agent를 학습시키는 방법이다.&lt;br /&gt;
** PPO, DQN등의 방법을 사용한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====UI 정의====&lt;br /&gt;
* 메뉴구성&lt;br /&gt;
&lt;br /&gt;
{|cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 시스템&lt;br /&gt;
| Level1&lt;br /&gt;
| Level2&lt;br /&gt;
| Level3&lt;br /&gt;
| Level4&lt;br /&gt;
|-----&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|사용자용 프로그램&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|메인화면&lt;br /&gt;
|강화학습방식 설정&lt;br /&gt;
|모델생성&lt;br /&gt;
|모델학습&lt;br /&gt;
|-----&lt;br /&gt;
|사용할 트레이딩 전략&lt;br /&gt;
|모델 불러오기&lt;br /&gt;
|가상 트레이딩&lt;br /&gt;
|-----&lt;br /&gt;
|종목선택&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|모델저장&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|모델저장&lt;br /&gt;
|-----&lt;br /&gt;
|모델 불러오기&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* 화면 목록&lt;br /&gt;
&lt;br /&gt;
{|cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
|화면 ID&lt;br /&gt;
|화면명&lt;br /&gt;
|화면설정&lt;br /&gt;
|보안등급&lt;br /&gt;
|액터명&lt;br /&gt;
|권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-01&lt;br /&gt;
|메인화면&lt;br /&gt;
|메인화면&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-02&lt;br /&gt;
|강화학습방식 설정&lt;br /&gt;
|DQN이나 PPO선택 가능&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-03&lt;br /&gt;
|사용할 트레이딩 전략&lt;br /&gt;
|다양한 트레이딩 전략을 선택&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-04&lt;br /&gt;
|종목 선택&lt;br /&gt;
|다양한 종목 선택&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-05&lt;br /&gt;
|모델 불러오기&lt;br /&gt;
|기존에 저장한 모델을 불러옴&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-06&lt;br /&gt;
|모델 생성&lt;br /&gt;
|선택한 정보를 기준으로 모델 생성&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-07&lt;br /&gt;
|모델 저장&lt;br /&gt;
|현재 모델을 저장&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-08&lt;br /&gt;
|모델 학습&lt;br /&gt;
|현재 모델을 학습&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-09&lt;br /&gt;
|가상 트레이딩&lt;br /&gt;
|현재 모델로 가상 트레이딩&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*화면 흐름도&lt;br /&gt;
[[파일:hoho12.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====클래스 다이어그램====&lt;br /&gt;
[[파일:hoho9.png]]&lt;br /&gt;
* BaseTrainEnv&lt;br /&gt;
** 실제 시장의 환경을 강화학습에서 모델링하기 위한 베이스 클래스이다. API를 이용한 투자와 csv데이터로 가상화되는 환경의 베이스가 된다.&lt;br /&gt;
** reset()으로 환경을 초기화 한다.&lt;br /&gt;
** step()으로 거래를 전달하면, 다음날의 가격(state), 현재 가치(reward), 시간흐름의 완료(done), 기타정보를 반환한다.&lt;br /&gt;
* APITrainEnv&lt;br /&gt;
** 실제 투자API가 구현되는 클래스이다.&lt;br /&gt;
* CsvTrainEnv&lt;br /&gt;
** csv 데이터를 이용해 투자 환경이 구현되는 클래스이다.&lt;br /&gt;
*CsvTrainSet&lt;br /&gt;
** 투자 환경에 필요한 주가 데이터를 종합한 클래스이다.&lt;br /&gt;
** currency : 기준 통화&lt;br /&gt;
** exchange_rate : 기준 통화와 다른 통화의 환율&lt;br /&gt;
** object_price : 거래 대상의 가격데이터&lt;br /&gt;
** other_object_price : 거래 대상이외의 참고할 대상의 가격데이터&lt;br /&gt;
* PPOTrainModel &amp;amp; DQNTrainModel&lt;br /&gt;
** trainEnv: 사용한 투자환경 클래스이다.&lt;br /&gt;
** agent: 전략별 채택 가중치를 계산할 수 있는 오브젝트이다.&lt;br /&gt;
** tradeStrategies: 트레이딩에서 사용할 전략 알고리즘의 배열이다.&lt;br /&gt;
* BaseTradeStrategy&lt;br /&gt;
** 트레이딩에 사용할 수 있는 전략알고리즘을 추상화한 클래스이다.&lt;br /&gt;
** getInvest의 출력값은 +(매수), -(매도)로 나타낸다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====CSV데이터 포맷====&lt;br /&gt;
&lt;br /&gt;
* 최상단 줄에 해당하는 컬럼명 표기.&lt;br /&gt;
* 광물시장 가격 데이터&lt;br /&gt;
** 각 광물별, 거래소, 기준통화별로 파일 관리&lt;br /&gt;
** 파일내에서 날짜별로 시가, 종가, 고가, 저가, 거래량의 데이터를 가지고 있을 것&lt;br /&gt;
** 예시&lt;br /&gt;
&lt;br /&gt;
[[파일:hoho13.png]]&lt;br /&gt;
* 환율 데이터&lt;br /&gt;
** 각 기준통화별로 파일 관리&lt;br /&gt;
** 컬럼에 변환할 대상통화를 표기&lt;br /&gt;
** 날짜별로 통화량 표기&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho13.png&amp;diff=1488</id>
		<title>파일:Hoho13.png</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho13.png&amp;diff=1488"/>
				<updated>2019-06-20T09:39:15Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: 호호조 csv예시&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;호호조 csv예시&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1487</id>
		<title>호호조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1487"/>
				<updated>2019-06-20T09:38:33Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : 광물시장에서 강화학습을 이용한 트레이딩 봇&lt;br /&gt;
&lt;br /&gt;
''' 영문 :  Trading-bot using Reinforcement Learning in a mineral market&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
호호&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
이동희 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920044 이홍석(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920037 이정한&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
*이전부터 사용자들이 많이 사용하던 시계열 분석 알고리즘과 다양한 지표들을 활용하여 강화학습을 이용하여 광물 가격을 예측한다.&lt;br /&gt;
*광물시장에서 시가에 영향을 미치는 다양한 요인이 존재한다.&lt;br /&gt;
*이미 밝혀진 다양한 요인들과 우리들이 생각한 요인들을 정리한다.&lt;br /&gt;
*이러한 요인들을 강화학습을 통해서 상관관계가 있는지 확인하고 실제로 수익을 낼 수 있는 모델과 학습을 진행한다.&lt;br /&gt;
*여러 가지 요인(차트 및 시장표준지수)들과 전략들을 가지고 하나의 광물을 대상으로 수익률이 높을 것으로 예상되는 매수, 매도 타이밍을 찾아낼 수 있는 것을 목표로 한다.&lt;br /&gt;
*다양한 강화학습 알고리즘 중 PPO(Proximal Policy Optimization), DQN(Deep Q Network)을 사용하여 구현해보고 어떤 방식이 더 잘 맞는지 분석해본다.&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*광물 시장은 매 시간마다 변동함&lt;br /&gt;
*광물 시장의 변동은 어떠한 요인들에 의해 값어치가 올라가기도 하고 내려가기도 함&lt;br /&gt;
*다양한 논문 Research 및 분석을 통해 값에 변화를 주는 요인들을 선별&lt;br /&gt;
*해당 요인들을 강화학습 모델의 환경에 넣어서 학습을 시킴&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
*강화학습을 이용하여 트레이딩을 자동으로 하는 봇을 만든다.&lt;br /&gt;
*광물 가격에 영향을 주는 요인들을 찾아보고 어느 정도 연관관계가 있는지 확인한다.&lt;br /&gt;
*연관관계가 있는 요인들을 모아서 강화학습모델에 적용시켜보고 실제로 효과가 있는지 확인해본다.&lt;br /&gt;
*효과가 컸던 요인들을 모아서 모의 투자 상황에서 수익률 분석을 해본다.&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
**자동 거래 시스템(ATS;Automated Trading System)은 1949년 Richard Donchian이 funds를 사고 파는 일련의 규칙을 사용하여 처음 소개되었다. 1980년대에는 John Henry와 같은 유명한 Trader들이 전략을 사용하기 시작하여, 규칙 기반 거래(Rule Based Trading)라는 개념이 대중화되었다. 현재는 미국 증권 거래소 주식 거래의 75% 이상이 자동 거래 시스템으로 이루어진다.&lt;br /&gt;
**최근에는 AI의 등장으로, 수많은 은행이나 투자자들이 AI를 활용하여 규칙 기반 거래나 직접 거래보다 훨씬 수익률이 높은 모델을 개발중이다. 딥러닝, 머신러닝 등의 기술을 활용하여 Trading Bot을 개발하고 있으며, 강화학습의 등장이후, 다양한 Trading Bot Project에서 강화학습을 도입하려는 움직임을 보이고 있다.&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
**거절 : 알고리즘 자동 매매 봇, [https://doi.org/10.8080/1020090067197]&lt;br /&gt;
***알고리즘 트레이딩 봇들을 모아서 관리할 수 있는 시스템&lt;br /&gt;
***통상적인 기술자가 충분히 만들 수 있는 것으로 판단하여 특허 거절&lt;br /&gt;
**등록 : 소셜트레이딩 방법, [http://kpat.kipris.or.kr/kpat/biblioa.do?method=biblioFrame]&lt;br /&gt;
***리더를 설정하여 해당 리더의 매매를 확인하고 추종하는 알고리즘&lt;br /&gt;
*기술 로드맵&lt;br /&gt;
**자동으로 거래를 할 수 있는 봇의 형태를 만들어야 하고, 모의투자를 통해 테스트할 수 있는 환경을 만들어야하기 때문에 투자, 증권사 API 및 모의투자 서버가 필요하다. 따라서, 키움증권, 대신증권, 이베스트투자증권 등의 회사의 API를 활용하고, 이 회사들의 모의투자 서버를 통해 수익률을 분석할 수 있다.&lt;br /&gt;
**강화학습은 환경이 주어지고, 해당 환경에 액션을 취하면 그에 따른 보상을 주면서 학습을 시킨다. 일반적인 딥 러닝은 어떤 요인들의 상호관계를 표현하지 못한다. 하지만 강화학습은 환경을 통해 어떤 요인들의 상호관계를 표현할 수 있다. 주식들은 서로 상호관계를 가지고 있으므로 강화학습을 이용하는 것이 유리한 방법이라 할 수 있다.&lt;br /&gt;
**현재에는 차트분석만으로 주식이나 광물시장에서의 매도, 매수타이밍을 잡아서 수익을 낼 수 있는 다양한 방법이 연구되고 있다. 이를 기술적 매매라고 부른다. 이러한 방법을 이용하여 알고리즘으로 구현하면 보다 안정적이고 수익률이 검증된 매매방법을 사용할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
**이러한 제품들은 시장에 공개적으로 나와있는 것을 쉽게 찾을 수 없다. 이러한 트레이딩봇 자체가 실제 주식시장에서 수익을 낼 수 있기 때문이다. 이윤을 창출하는 기업의 입장에서는 이 트레이딩 봇을 직접적으로 사용하지 않을 이유가 없다.&lt;br /&gt;
**또한 많은 사용자가 트레이딩 봇을 사용한다고 가정했을 때 모두가 이익을 볼 수 있는 것은 아니다. 같은 알고리즘을 사용하는 트레이딩 봇이 많으면 수익률이 줄어 들기 때문에 이러한 트레이딩 봇을 상용화하지 않은 것으로 보인다.&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! 알고리즘 !! 증권사 API !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 브레인듀드의 듀드303, 듀드프로&lt;br /&gt;
| 사용자의 조건검색식 사용 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 키움증권의 로보마켓&lt;br /&gt;
| 다양한 알고리즘 전략 제시 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 주식몰 오토핫키&lt;br /&gt;
| 해당하는 설명이 없음 || 해당하는 설명이 없음 || 마켓팅 위주의 사업 진행&lt;br /&gt;
|}&lt;br /&gt;
**위와 같이 알고리즘 트레이딩 봇을 만드는 회사 이외에도 증권사나 펀드회사 같은 경우에도 가치투자를 위한 분석자료를 제공하는 서비스를 제공할 수 있다.&lt;br /&gt;
**한국거래소에서는 종목마다 투자가치를 판단할 수 있는 자료를 제공한다. 이에 따라서 우리의 트레이딩봇과 경쟁해야 하는 부분을 가지고 있다.&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**위와 같이 여러가지 요인을 연구, 분석함에 따라서 트레이딩 봇을 만들 수 있다. 이 요인들의 적당한 조합으로 여러가지 특성을 띠는 트레이딩 봇을 개발할 수 있다.&lt;br /&gt;
**사용자들에게 원하는 이익구조를 선택할 수 있게 한다. 예를 들어 수익률이 크게 높지 않더라도 안정적인 투자를 원하는 사용자가 있고, 위험을 감수하더라도 높은 수익률을 원하는 사용자가 있다. 요인분석에 따라서 얻을 수 있는 특징들을 찾아내고 이러한 요인들로 주식트레이딩의 위험, 최고 수익률등이 결정될 것이다. &lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
*기존의 주식 트레이딩봇들은 우리가 직접 알고리즘을 구현하고 설계함에 따라서 작동했다. 사람의 직관을 이용해서 장기투자를 하는 것이 아니라 짧은 시간의 시장변동을 감지해서 조금씩 수익을 올리는 등의 알고리즘이 만들어져 왔다. 하지만 강화학습과 딥러닝을 사용해서 좀 더 효과적인 방향을 찾을 수 있다.&lt;br /&gt;
*딥러닝에서 사용하는 뉴럴 네트워크는 학습이 완료되었을 때 예측속도가 매우 빠르다는 특징을 갖고 있다. 해당 요인을 성공적으로 학습한 네트워크를 얻은 후에 봇을 사용할 때는 컴퓨팅의 성능을 크게 사용하지 않고 빠른 속도의 트레이딩이 가능하다.&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
*위에서 서술한 대로 만일 강화학습을 이용해서 주식 트레이딩봇이 성공적으로 수익을 낼 수 있는 구조라면, 이와 유사한 트레이딩봇이 많이 등장할 것이다. 더불어서 강화학습에 딥러닝을 적용시키면서 구성할 수 있는 선택의 여지가 많아졌다. 각기 학습하는 방법에 따라서 각기 다른 여러가지 전략이 등장할 수 있는 것이다. 따라서 기존에 알고리즘을 이용해서 매매를 진행하던 투자자들이 새롭게 등장하는 트레이딩봇의 투자전략에 영향을 받을 것이며, 시장의 특성은 더 다양하고 복잡해질 것이다.&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  단계별 세부개발 내용 !! 담당자 !! 개발기간 !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 강화학습 환경 설계&lt;br /&gt;
| 이홍석 || 3~4 || &lt;br /&gt;
|-&lt;br /&gt;
! 모의투자 환경구성 및 트레이딩 봇 구현&lt;br /&gt;
| 이정한 || 4~5 ||&lt;br /&gt;
|-&lt;br /&gt;
! 학습진행 및 정확도 개선&lt;br /&gt;
| 이홍석 || 4~6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 기존의 트레이딩 봇과의 성능 비교&lt;br /&gt;
| 이정한 || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 요인 연구 및 분석&lt;br /&gt;
| 이홍석, 이정한 || 3~6 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
*컴퓨터과학부 2014920044 이홍석 : 작품설계 및 개발&lt;br /&gt;
*컴퓨터과학부 2014920037 이정한 : 작품설계 및 개발&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  번호 !! 요 구 사 항 !! D or W !! 중요도&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 기존 시계열 분석 논문에 있는 전략(요소, Factor)들을 모듈로 개발 || D || 대 &lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 시계열 데이터 분석 모듈을 적용할 수 있는 강화학습 모델을 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| 모델을 학습시킬 수 있는 환경(Env, DB) 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| PPO와 DQN 강화학습 알고리즘을 구현하고 분석 || W || 중&lt;br /&gt;
|}&lt;br /&gt;
====설계 사양====&lt;br /&gt;
*목적계통도&lt;br /&gt;
[[그림:Hoho7.png]]&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
*기존에 연구되어진 시계열 분석 알고리즘을 이용한 결과물들은 제각기 집중하는 부분이 다르기 때문에, 그 정확도가 서로 배타적 일 것이다. 즉 어느 한 알고리즘이 우위의 정확도를 가질 경우 다른 알고리즘은 상대적으로 낮은 정확도를 가질 것이다.&lt;br /&gt;
**서로 정확성에 있어 배타적일 정도로 다른 시계열 분석 알고리즘을 찾아야한다.&lt;br /&gt;
**배타적인 TA 알고리즘 a0~an을 찾고, 구현한다.&lt;br /&gt;
*강화학습 예측 모델&lt;br /&gt;
[[그림:Hoho8.png]]&lt;br /&gt;
**강화학습을 이용한 시계열 데이터의 학습을 통해 예측 모델을 생성한다.&lt;br /&gt;
**예측 모델은 다음과 같이 크게 두가지 단계로 구성된다.&lt;br /&gt;
***직접 시계열 데이터를 분석 / 예측하는 전략적 알고리즘&lt;br /&gt;
****네이밍: a0, a1, … , an&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {예측된 다음 시계열 데이터=o0, o1, …, on}&lt;br /&gt;
***인공신경망을 응용하는, 적절한 전략적 알고리즘에 가중치를 부여하는 알고리즘&lt;br /&gt;
****네이밍: M&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {w0, w1, …, wn}&lt;br /&gt;
****어느 하나의 전략적 알고리즘을 선택하는 방식(hard decision)이 아니라, 여러 전략적 알고리즘의 정확도를 연판정(soft decision)하여 그 비중을 출력한다. &lt;br /&gt;
**a의 결과인 O와 b의 결과인 W를 곱하여 최종 예측치를 계산한다. (가중평균)&lt;br /&gt;
***Predict = OW&lt;br /&gt;
**이 Agent의 결과에 따라서 전략을 어떤 비율로 선택하게 된다. 이를 조합한 값으로 특정 광물에 대한 매수 혹은 매도할 값을 선택하게 된다.&lt;br /&gt;
*강화학습 환경 구성 요소&lt;br /&gt;
**에이전트&lt;br /&gt;
***state값들을 DNN을 사용하여 전략을 선택할 수 있는 값으로 추출한다.&lt;br /&gt;
***전략개수 의존적&lt;br /&gt;
**환경&lt;br /&gt;
***한 거래소의 해당 광물의 일봉csv데이터를 시간에 따라서 사용&lt;br /&gt;
***USD, EUR (KRW 기준) 지수 데이터&lt;br /&gt;
**리워드 공식&lt;br /&gt;
***해당 광물의 가치와 잔금을 합산한 값을 리워드로 사용한다.&lt;br /&gt;
**액션 리스트&lt;br /&gt;
***양수는 매수, 음수는 매도의 의미로 하나의 출력값을 사용한다.&lt;br /&gt;
****광물 거래는 1주 단위의 이산적인 값을 사용한다.&lt;br /&gt;
****최대, 최소값을 설정한다.&lt;br /&gt;
*학습 시나리오&lt;br /&gt;
**매 학습에서 어떤 기간을 랜덤으로 설정한다.&lt;br /&gt;
**이 시간동안의 광물시장 데이터를 사용해서 하루 단위로 액션을 진행한다.&lt;br /&gt;
**시계열 분석 부분에서 각각의 전략이 매수/매도값을 도출한다.&lt;br /&gt;
**강화학습 부분에서 가중치를 도출한다.&lt;br /&gt;
**가중치값과 매수/매도값을 각각 곱하고 누적한다.&lt;br /&gt;
**해당 값을 통해 매수/매도/유지를 진행한다.매도가 될 때까지 진행하고 매도시 수익률을 구한다.&lt;br /&gt;
**수익률이 증가하는 방향으로 학습을 한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
*강화학습 오픈소스) DQN을 이용한 트레이딩 학습 테스트&lt;br /&gt;
**학습개요&lt;br /&gt;
***아래는 국내 3개 IT기업의 일봉데이터를 대상으로 학습을 진행한 결과이다.&lt;br /&gt;
***구현에서는 가능한 만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
***아래의 그래프에서는 초기 투자금을 가지고 시간에 따라서 자산 가치가 어떻게 변하는지 보여준다.&lt;br /&gt;
**트레이닝 데이터로 학습 진행 중 자산가치변화&lt;br /&gt;
[[파일:Hoho1.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***초반에는 매우 가치가 크지만 불안정한 트레이딩을 하다가 후에 안정적인 수익률을 보여주는 것을 알 수 있다.&lt;br /&gt;
**테스트 데이터에서 거래중 자산가치 변화&lt;br /&gt;
[[파일:Hoho2.png]]&lt;br /&gt;
***빨간 선은 초기 투자 금액이다.&lt;br /&gt;
***테스트 데이터로 트레이딩 했을 때 투자금액 보다 평균 12%의 수익을 올릴 수 있었다.&lt;br /&gt;
***단순 시가만으로 학습을 하는 경우, 위와 같이 매우 불안정하므로 다양한 전략을 통해 개선이 필요하다.&lt;br /&gt;
*전략 오픈소스) 10일, 30일 이동평균선 교차점 검출을 이용한 매수 매도 알고리즘 트레이딩&lt;br /&gt;
**방법&lt;br /&gt;
***현재까지 크롤링한 일봉데이터에서 단기 이동평균선과 장기 이동평균선의 교차점은 중요한 매도, 매수타이밍의 후보가 될 수 있다. 장기적인 추세를 따라가는 것이 미래에 대체로 좋은 방향이 되므로 장기평균선이 상승할 떄 매수, 하락 할 때 매도를 하는 것이 좋다.&lt;br /&gt;
***구현에서는 가능한만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
**Ta-lib&lt;br /&gt;
***Technical Analysis LIbrary&lt;br /&gt;
***시장분석과 같은 시계열 데이터 알고리즘을 분석하는데 사용하는 라이브러리&lt;br /&gt;
***내부에서는 기본 시장지표를 받으면 이에 따라서 새로운 보조지표를 만들어주거나 패턴을 검출하는 함수 제공&lt;br /&gt;
***구현에서 이동평균선 지표를 얻을 때 사용.&lt;br /&gt;
**가상트레이딩에 따른 자산가치 변화&lt;br /&gt;
[[파일:Hoho3.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***위와 같이 장기간 트레이딩을 진행하는데 있어서 이동평균선 교차점을 이용한 트레이딩이 좋은 효과를 보이는 것을 알 수 있다.&lt;br /&gt;
*광물시장 시가데이터 크롤링&lt;br /&gt;
**한국거래소([http://www.krx.co.kr])&lt;br /&gt;
**거래소홈페이지에서 1년단위의 데이터를 csv로 내려받을 수 있다.&lt;br /&gt;
**아래는 2014년 - 2019년의 종가를 그래프로 나타낸 것이다.&lt;br /&gt;
[[파일:Hoho4.png]]&lt;br /&gt;
*DQN 소스코드를 사용한 광물시장 가상 트레이딩&lt;br /&gt;
**위에서 사용한 DQN방법을 금시장을 대상으로 트레이딩을 진행했다.&lt;br /&gt;
**구현방식은 위의 DQN을 이용한 트레이딩 테스트와 같다.&lt;br /&gt;
**2000회 트레이닝을 진행하여서 매회 트레이닝마다 다음과 같은 결과를 얻을 수 있었다.&lt;br /&gt;
[[파일:Hoho5.png]]&lt;br /&gt;
**초기투자금액 10,000,000원으로 학습을 진행했다.&lt;br /&gt;
**위에서 트레이닝한 결과를 바탕으로 테스트를 진행했다.&lt;br /&gt;
[[파일:Hoho6.png]]&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
* 유스케이스 다이어그램&lt;br /&gt;
[[파일:hoho10.png]]&lt;br /&gt;
** 투자자가 각종 종목과 학습 정책 등을 선택한다.&lt;br /&gt;
** 선택을 기반으로 모델을 생성해서 가상 트레이딩을 진행할 때 수익률이 잘 나올 수  있는 지 확인한다.&lt;br /&gt;
** 학습 방법에 따른 비교 분석을 진행한다.&lt;br /&gt;
** 액터&lt;br /&gt;
*** 액터명 : 투자자&lt;br /&gt;
*** 설명 : 해당 프로그램을 투자의 지표로 사용하고 싶은 사람&lt;br /&gt;
* 각 유스케이스설명&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 종목선택&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 원하는 종목을 선택함&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
#투자자가 원하는 종목을 선택한다.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|프로그램 실행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 강화학습 정책 선택&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 원하는 강화학습 정책을 선택(PPO,DQN)&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
#투자자가 원하는 강화학습 정책을 선택한다.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|프로그램실행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 투자 젼략 선택&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 원하는 전략을 선택함&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
#투자자가 원하는 전략을 선택한다.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|프로그램실행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 강화학습 모델 생성&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 선택한 내용대로 강화학습 모델을 생성함.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 선택한 내용을 보여줌&lt;br /&gt;
# 확인 버튼을 누르면 모델을 생성함&lt;br /&gt;
# 모델 생성 성공 팝업을 보여줌&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
2.a. 최소 버튼을 누르면 선택화면으로 돌아옴.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
프로그램실행&lt;br /&gt;
종목 선택&lt;br /&gt;
강화학습 정책 선택&lt;br /&gt;
투자 전략 선택&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 생성에 성공해야 함&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 모델 학습&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 생성한 모델을 학습함.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 원하는 학습 인자를 입력&lt;br /&gt;
# 학습 실행&lt;br /&gt;
# 학습 결과를 보여줌&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
2.a. 학습 인자를 형식에 맞게 입력하지 않은 경우 학습 실패를 보여줌.&lt;br /&gt;
&lt;br /&gt;
2.b. 학습 도중 학습에 실패할 경우 에러 메시지를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 생성에 성공&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
학습 결과 출력.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 가상 트레이딩&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 학습한 모델로 가상 트레이딩을 함.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 초기금액을 입력한다.&lt;br /&gt;
# 기간을 설정한다.&lt;br /&gt;
# 한 번당 최대 매수, 매도금액을 입력한다.&lt;br /&gt;
# 가상 트레이딩을 실행한다.&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
4.a. 입력한 형식에 맞지 않는 경우 실행실패를 보여줌.&lt;br /&gt;
&lt;br /&gt;
4.b. 실행에 실패한 경우 오류메시지를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 학습 완료&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
실행 결과를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|참고 사항&lt;br /&gt;
|colspan=3|&lt;br /&gt;
CSV에서 Test데이터셋을 만들어서 진행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 실제 트레이딩&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 학습한 모델로 현재 상태를 넣었을 때 매수나 매도, 대기를 알려주고, 매수나 매도일 경우 양을 알려줌.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 현재 잔액을 입력한다.&lt;br /&gt;
# 투자자가 소지한 광물의 양을 입력한다.&lt;br /&gt;
# 한 번당 최대 매수, 매도금액을 입력한다.&lt;br /&gt;
# 실행 버튼을 누른다.&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
4.a. 입력한 형식에 맞지 않는 경우 실행실패를 보여줌.&lt;br /&gt;
&lt;br /&gt;
4.b. 실행에 실패한 경우 오류메시지를 보여줌.&lt;br /&gt;
&lt;br /&gt;
4.c. 잔액이 없는 경우 투자 실패를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 학습 완료&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
해당 타이밍의 행동과 양을 출력&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* 소프트웨어 전체 구성도&lt;br /&gt;
[[파일:hoho11.png]]&lt;br /&gt;
** 광물시장 데이터 csv&lt;br /&gt;
*** 광물 시장의 가격을 일봉형식으로 나타낸다.&lt;br /&gt;
*** csv파일 형식으로 저장되어있다.&lt;br /&gt;
** 모의 투자&lt;br /&gt;
*** 강화학습 모델에서 환경을 모의투자 api로 사용할 수 있는 부분이다.&lt;br /&gt;
** 학습 및 투자환경&lt;br /&gt;
*** 강화학습 모델에 이용할 수 있는 환경요소로 추상화한다.&lt;br /&gt;
** 전략 및 트레이딩 DNN agent&lt;br /&gt;
*** 가상화된 환경에서 실제로 매도나 매수등의 결정을 내리는 agent이다.&lt;br /&gt;
*** 기본적으로 설정되어있는 다수의 알고리즘과 DNN을 합성하여 판단을 한다.&lt;br /&gt;
** 강화학습 정책&lt;br /&gt;
*** 위의 DNN agent를 학습시키는 방법이다.&lt;br /&gt;
*** PPO, DQN등의 방법을 사용한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* UI정의&lt;br /&gt;
** 메뉴구성&lt;br /&gt;
&lt;br /&gt;
{|cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 시스템&lt;br /&gt;
| Level1&lt;br /&gt;
| Level2&lt;br /&gt;
| Level3&lt;br /&gt;
| Level4&lt;br /&gt;
|-----&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|사용자용 프로그램&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|메인화면&lt;br /&gt;
|강화학습방식 설정&lt;br /&gt;
|모델생성&lt;br /&gt;
|모델학습&lt;br /&gt;
|-----&lt;br /&gt;
|사용할 트레이딩 전략&lt;br /&gt;
|모델 불러오기&lt;br /&gt;
|가상 트레이딩&lt;br /&gt;
|-----&lt;br /&gt;
|종목선택&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|모델저장&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|모델저장&lt;br /&gt;
|-----&lt;br /&gt;
|모델 불러오기&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
** 화면 목록&lt;br /&gt;
&lt;br /&gt;
{|cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
|화면 ID&lt;br /&gt;
|화면명&lt;br /&gt;
|화면설정&lt;br /&gt;
|보안등급&lt;br /&gt;
|액터명&lt;br /&gt;
|권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-01&lt;br /&gt;
|메인화면&lt;br /&gt;
|메인화면&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-02&lt;br /&gt;
|강화학습방식 설정&lt;br /&gt;
|DQN이나 PPO선택 가능&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-03&lt;br /&gt;
|사용할 트레이딩 전략&lt;br /&gt;
|다양한 트레이딩 전략을 선택&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-04&lt;br /&gt;
|종목 선택&lt;br /&gt;
|다양한 종목 선택&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-05&lt;br /&gt;
|모델 불러오기&lt;br /&gt;
|기존에 저장한 모델을 불러옴&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-06&lt;br /&gt;
|모델 생성&lt;br /&gt;
|선택한 정보를 기준으로 모델 생성&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-07&lt;br /&gt;
|모델 저장&lt;br /&gt;
|현재 모델을 저장&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-08&lt;br /&gt;
|모델 학습&lt;br /&gt;
|현재 모델을 학습&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|------&lt;br /&gt;
|UI-09&lt;br /&gt;
|가상 트레이딩&lt;br /&gt;
|현재 모델로 가상 트레이딩&lt;br /&gt;
|평문&lt;br /&gt;
|고객&lt;br /&gt;
|전체권한&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
** 화면 흐름도&lt;br /&gt;
[[파일:hoho12.png]]&lt;br /&gt;
&lt;br /&gt;
* 클래스 다이어그램&lt;br /&gt;
[[파일:hoho9.png]]&lt;br /&gt;
** BaseTrainEnv&lt;br /&gt;
*** 실제 시장의 환경을 강화학습에서 모델링하기 위한 베이스 클래스이다. API를 이용한 투자와 csv데이터로 가상화되는 환경의 베이스가 된다.&lt;br /&gt;
*** reset()으로 환경을 초기화 한다.&lt;br /&gt;
*** step()으로 거래를 전달하면, 다음날의 가격(state), 현재 가치(reward), 시간흐름의 완료(done), 기타정보를 반환한다.&lt;br /&gt;
** APITrainEnv&lt;br /&gt;
*** 실제 투자API가 구현되는 클래스이다.&lt;br /&gt;
** CsvTrainEnv&lt;br /&gt;
*** csv 데이터를 이용해 투자 환경이 구현되는 클래스이다.&lt;br /&gt;
**CsvTrainSet&lt;br /&gt;
*** 투자 환경에 필요한 주가 데이터를 종합한 클래스이다.&lt;br /&gt;
*** currency : 기준 통화&lt;br /&gt;
*** exchange_rate : 기준 통화와 다른 통화의 환율&lt;br /&gt;
*** object_price : 거래 대상의 가격데이터&lt;br /&gt;
*** other_object_price : 거래 대상이외의 참고할 대상의 가격데이터&lt;br /&gt;
** PPOTrainModel &amp;amp; DQNTrainModel&lt;br /&gt;
*** trainEnv: 사용한 투자환경 클래스이다.&lt;br /&gt;
*** agent: 전략별 채택 가중치를 계산할 수 있는 오브젝트이다.&lt;br /&gt;
*** tradeStrategies: 트레이딩에서 사용할 전략 알고리즘의 배열이다.&lt;br /&gt;
** BaseTradeStrategy&lt;br /&gt;
*** 트레이딩에 사용할 수 있는 전략알고리즘을 추상화한 클래스이다.&lt;br /&gt;
*** getInvest의 출력값은 +(매수), -(매도)로 나타낸다.&lt;br /&gt;
&lt;br /&gt;
* CSV 데이터 포맷&lt;br /&gt;
&lt;br /&gt;
** 최상단 줄에 해당하는 컬럼명 표기.&lt;br /&gt;
** 광물시장 가격 데이터&lt;br /&gt;
*** 각 광물별, 거래소, 기준통화별로 파일 관리&lt;br /&gt;
*** 파일내에서 날짜별로 시가, 종가, 고가, 저가, 거래량의 데이터를 가지고 있을 것&lt;br /&gt;
*** 예시&lt;br /&gt;
&lt;br /&gt;
[[파일:hoho13.png]]&lt;br /&gt;
** 환율 데이터&lt;br /&gt;
*** 각 기준통화별로 파일 관리&lt;br /&gt;
*** 컬럼에 변환할 대상통화를 표기&lt;br /&gt;
*** 날짜별로 통화량 표기&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho12.png&amp;diff=1486</id>
		<title>파일:Hoho12.png</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho12.png&amp;diff=1486"/>
				<updated>2019-06-20T09:36:02Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: 호호조 화면흐름도&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;호호조 화면흐름도&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1485</id>
		<title>호호조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1485"/>
				<updated>2019-06-20T09:27:58Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : 광물시장에서 강화학습을 이용한 트레이딩 봇&lt;br /&gt;
&lt;br /&gt;
''' 영문 :  Trading-bot using Reinforcement Learning in a mineral market&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
호호&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
이동희 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920044 이홍석(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920037 이정한&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
*이전부터 사용자들이 많이 사용하던 시계열 분석 알고리즘과 다양한 지표들을 활용하여 강화학습을 이용하여 광물 가격을 예측한다.&lt;br /&gt;
*광물시장에서 시가에 영향을 미치는 다양한 요인이 존재한다.&lt;br /&gt;
*이미 밝혀진 다양한 요인들과 우리들이 생각한 요인들을 정리한다.&lt;br /&gt;
*이러한 요인들을 강화학습을 통해서 상관관계가 있는지 확인하고 실제로 수익을 낼 수 있는 모델과 학습을 진행한다.&lt;br /&gt;
*여러 가지 요인(차트 및 시장표준지수)들과 전략들을 가지고 하나의 광물을 대상으로 수익률이 높을 것으로 예상되는 매수, 매도 타이밍을 찾아낼 수 있는 것을 목표로 한다.&lt;br /&gt;
*다양한 강화학습 알고리즘 중 PPO(Proximal Policy Optimization), DQN(Deep Q Network)을 사용하여 구현해보고 어떤 방식이 더 잘 맞는지 분석해본다.&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*광물 시장은 매 시간마다 변동함&lt;br /&gt;
*광물 시장의 변동은 어떠한 요인들에 의해 값어치가 올라가기도 하고 내려가기도 함&lt;br /&gt;
*다양한 논문 Research 및 분석을 통해 값에 변화를 주는 요인들을 선별&lt;br /&gt;
*해당 요인들을 강화학습 모델의 환경에 넣어서 학습을 시킴&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
*강화학습을 이용하여 트레이딩을 자동으로 하는 봇을 만든다.&lt;br /&gt;
*광물 가격에 영향을 주는 요인들을 찾아보고 어느 정도 연관관계가 있는지 확인한다.&lt;br /&gt;
*연관관계가 있는 요인들을 모아서 강화학습모델에 적용시켜보고 실제로 효과가 있는지 확인해본다.&lt;br /&gt;
*효과가 컸던 요인들을 모아서 모의 투자 상황에서 수익률 분석을 해본다.&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
**자동 거래 시스템(ATS;Automated Trading System)은 1949년 Richard Donchian이 funds를 사고 파는 일련의 규칙을 사용하여 처음 소개되었다. 1980년대에는 John Henry와 같은 유명한 Trader들이 전략을 사용하기 시작하여, 규칙 기반 거래(Rule Based Trading)라는 개념이 대중화되었다. 현재는 미국 증권 거래소 주식 거래의 75% 이상이 자동 거래 시스템으로 이루어진다.&lt;br /&gt;
**최근에는 AI의 등장으로, 수많은 은행이나 투자자들이 AI를 활용하여 규칙 기반 거래나 직접 거래보다 훨씬 수익률이 높은 모델을 개발중이다. 딥러닝, 머신러닝 등의 기술을 활용하여 Trading Bot을 개발하고 있으며, 강화학습의 등장이후, 다양한 Trading Bot Project에서 강화학습을 도입하려는 움직임을 보이고 있다.&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
**거절 : 알고리즘 자동 매매 봇, [https://doi.org/10.8080/1020090067197]&lt;br /&gt;
***알고리즘 트레이딩 봇들을 모아서 관리할 수 있는 시스템&lt;br /&gt;
***통상적인 기술자가 충분히 만들 수 있는 것으로 판단하여 특허 거절&lt;br /&gt;
**등록 : 소셜트레이딩 방법, [http://kpat.kipris.or.kr/kpat/biblioa.do?method=biblioFrame]&lt;br /&gt;
***리더를 설정하여 해당 리더의 매매를 확인하고 추종하는 알고리즘&lt;br /&gt;
*기술 로드맵&lt;br /&gt;
**자동으로 거래를 할 수 있는 봇의 형태를 만들어야 하고, 모의투자를 통해 테스트할 수 있는 환경을 만들어야하기 때문에 투자, 증권사 API 및 모의투자 서버가 필요하다. 따라서, 키움증권, 대신증권, 이베스트투자증권 등의 회사의 API를 활용하고, 이 회사들의 모의투자 서버를 통해 수익률을 분석할 수 있다.&lt;br /&gt;
**강화학습은 환경이 주어지고, 해당 환경에 액션을 취하면 그에 따른 보상을 주면서 학습을 시킨다. 일반적인 딥 러닝은 어떤 요인들의 상호관계를 표현하지 못한다. 하지만 강화학습은 환경을 통해 어떤 요인들의 상호관계를 표현할 수 있다. 주식들은 서로 상호관계를 가지고 있으므로 강화학습을 이용하는 것이 유리한 방법이라 할 수 있다.&lt;br /&gt;
**현재에는 차트분석만으로 주식이나 광물시장에서의 매도, 매수타이밍을 잡아서 수익을 낼 수 있는 다양한 방법이 연구되고 있다. 이를 기술적 매매라고 부른다. 이러한 방법을 이용하여 알고리즘으로 구현하면 보다 안정적이고 수익률이 검증된 매매방법을 사용할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
**이러한 제품들은 시장에 공개적으로 나와있는 것을 쉽게 찾을 수 없다. 이러한 트레이딩봇 자체가 실제 주식시장에서 수익을 낼 수 있기 때문이다. 이윤을 창출하는 기업의 입장에서는 이 트레이딩 봇을 직접적으로 사용하지 않을 이유가 없다.&lt;br /&gt;
**또한 많은 사용자가 트레이딩 봇을 사용한다고 가정했을 때 모두가 이익을 볼 수 있는 것은 아니다. 같은 알고리즘을 사용하는 트레이딩 봇이 많으면 수익률이 줄어 들기 때문에 이러한 트레이딩 봇을 상용화하지 않은 것으로 보인다.&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! 알고리즘 !! 증권사 API !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 브레인듀드의 듀드303, 듀드프로&lt;br /&gt;
| 사용자의 조건검색식 사용 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 키움증권의 로보마켓&lt;br /&gt;
| 다양한 알고리즘 전략 제시 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 주식몰 오토핫키&lt;br /&gt;
| 해당하는 설명이 없음 || 해당하는 설명이 없음 || 마켓팅 위주의 사업 진행&lt;br /&gt;
|}&lt;br /&gt;
**위와 같이 알고리즘 트레이딩 봇을 만드는 회사 이외에도 증권사나 펀드회사 같은 경우에도 가치투자를 위한 분석자료를 제공하는 서비스를 제공할 수 있다.&lt;br /&gt;
**한국거래소에서는 종목마다 투자가치를 판단할 수 있는 자료를 제공한다. 이에 따라서 우리의 트레이딩봇과 경쟁해야 하는 부분을 가지고 있다.&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**위와 같이 여러가지 요인을 연구, 분석함에 따라서 트레이딩 봇을 만들 수 있다. 이 요인들의 적당한 조합으로 여러가지 특성을 띠는 트레이딩 봇을 개발할 수 있다.&lt;br /&gt;
**사용자들에게 원하는 이익구조를 선택할 수 있게 한다. 예를 들어 수익률이 크게 높지 않더라도 안정적인 투자를 원하는 사용자가 있고, 위험을 감수하더라도 높은 수익률을 원하는 사용자가 있다. 요인분석에 따라서 얻을 수 있는 특징들을 찾아내고 이러한 요인들로 주식트레이딩의 위험, 최고 수익률등이 결정될 것이다. &lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
*기존의 주식 트레이딩봇들은 우리가 직접 알고리즘을 구현하고 설계함에 따라서 작동했다. 사람의 직관을 이용해서 장기투자를 하는 것이 아니라 짧은 시간의 시장변동을 감지해서 조금씩 수익을 올리는 등의 알고리즘이 만들어져 왔다. 하지만 강화학습과 딥러닝을 사용해서 좀 더 효과적인 방향을 찾을 수 있다.&lt;br /&gt;
*딥러닝에서 사용하는 뉴럴 네트워크는 학습이 완료되었을 때 예측속도가 매우 빠르다는 특징을 갖고 있다. 해당 요인을 성공적으로 학습한 네트워크를 얻은 후에 봇을 사용할 때는 컴퓨팅의 성능을 크게 사용하지 않고 빠른 속도의 트레이딩이 가능하다.&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
*위에서 서술한 대로 만일 강화학습을 이용해서 주식 트레이딩봇이 성공적으로 수익을 낼 수 있는 구조라면, 이와 유사한 트레이딩봇이 많이 등장할 것이다. 더불어서 강화학습에 딥러닝을 적용시키면서 구성할 수 있는 선택의 여지가 많아졌다. 각기 학습하는 방법에 따라서 각기 다른 여러가지 전략이 등장할 수 있는 것이다. 따라서 기존에 알고리즘을 이용해서 매매를 진행하던 투자자들이 새롭게 등장하는 트레이딩봇의 투자전략에 영향을 받을 것이며, 시장의 특성은 더 다양하고 복잡해질 것이다.&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  단계별 세부개발 내용 !! 담당자 !! 개발기간 !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 강화학습 환경 설계&lt;br /&gt;
| 이홍석 || 3~4 || &lt;br /&gt;
|-&lt;br /&gt;
! 모의투자 환경구성 및 트레이딩 봇 구현&lt;br /&gt;
| 이정한 || 4~5 ||&lt;br /&gt;
|-&lt;br /&gt;
! 학습진행 및 정확도 개선&lt;br /&gt;
| 이홍석 || 4~6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 기존의 트레이딩 봇과의 성능 비교&lt;br /&gt;
| 이정한 || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 요인 연구 및 분석&lt;br /&gt;
| 이홍석, 이정한 || 3~6 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
*컴퓨터과학부 2014920044 이홍석 : 작품설계 및 개발&lt;br /&gt;
*컴퓨터과학부 2014920037 이정한 : 작품설계 및 개발&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  번호 !! 요 구 사 항 !! D or W !! 중요도&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 기존 시계열 분석 논문에 있는 전략(요소, Factor)들을 모듈로 개발 || D || 대 &lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 시계열 데이터 분석 모듈을 적용할 수 있는 강화학습 모델을 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| 모델을 학습시킬 수 있는 환경(Env, DB) 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| PPO와 DQN 강화학습 알고리즘을 구현하고 분석 || W || 중&lt;br /&gt;
|}&lt;br /&gt;
====설계 사양====&lt;br /&gt;
*목적계통도&lt;br /&gt;
[[그림:Hoho7.png]]&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
*기존에 연구되어진 시계열 분석 알고리즘을 이용한 결과물들은 제각기 집중하는 부분이 다르기 때문에, 그 정확도가 서로 배타적 일 것이다. 즉 어느 한 알고리즘이 우위의 정확도를 가질 경우 다른 알고리즘은 상대적으로 낮은 정확도를 가질 것이다.&lt;br /&gt;
**서로 정확성에 있어 배타적일 정도로 다른 시계열 분석 알고리즘을 찾아야한다.&lt;br /&gt;
**배타적인 TA 알고리즘 a0~an을 찾고, 구현한다.&lt;br /&gt;
*강화학습 예측 모델&lt;br /&gt;
[[그림:Hoho8.png]]&lt;br /&gt;
**강화학습을 이용한 시계열 데이터의 학습을 통해 예측 모델을 생성한다.&lt;br /&gt;
**예측 모델은 다음과 같이 크게 두가지 단계로 구성된다.&lt;br /&gt;
***직접 시계열 데이터를 분석 / 예측하는 전략적 알고리즘&lt;br /&gt;
****네이밍: a0, a1, … , an&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {예측된 다음 시계열 데이터=o0, o1, …, on}&lt;br /&gt;
***인공신경망을 응용하는, 적절한 전략적 알고리즘에 가중치를 부여하는 알고리즘&lt;br /&gt;
****네이밍: M&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {w0, w1, …, wn}&lt;br /&gt;
****어느 하나의 전략적 알고리즘을 선택하는 방식(hard decision)이 아니라, 여러 전략적 알고리즘의 정확도를 연판정(soft decision)하여 그 비중을 출력한다. &lt;br /&gt;
**a의 결과인 O와 b의 결과인 W를 곱하여 최종 예측치를 계산한다. (가중평균)&lt;br /&gt;
***Predict = OW&lt;br /&gt;
**이 Agent의 결과에 따라서 전략을 어떤 비율로 선택하게 된다. 이를 조합한 값으로 특정 광물에 대한 매수 혹은 매도할 값을 선택하게 된다.&lt;br /&gt;
*강화학습 환경 구성 요소&lt;br /&gt;
**에이전트&lt;br /&gt;
***state값들을 DNN을 사용하여 전략을 선택할 수 있는 값으로 추출한다.&lt;br /&gt;
***전략개수 의존적&lt;br /&gt;
**환경&lt;br /&gt;
***한 거래소의 해당 광물의 일봉csv데이터를 시간에 따라서 사용&lt;br /&gt;
***USD, EUR (KRW 기준) 지수 데이터&lt;br /&gt;
**리워드 공식&lt;br /&gt;
***해당 광물의 가치와 잔금을 합산한 값을 리워드로 사용한다.&lt;br /&gt;
**액션 리스트&lt;br /&gt;
***양수는 매수, 음수는 매도의 의미로 하나의 출력값을 사용한다.&lt;br /&gt;
****광물 거래는 1주 단위의 이산적인 값을 사용한다.&lt;br /&gt;
****최대, 최소값을 설정한다.&lt;br /&gt;
*학습 시나리오&lt;br /&gt;
**매 학습에서 어떤 기간을 랜덤으로 설정한다.&lt;br /&gt;
**이 시간동안의 광물시장 데이터를 사용해서 하루 단위로 액션을 진행한다.&lt;br /&gt;
**시계열 분석 부분에서 각각의 전략이 매수/매도값을 도출한다.&lt;br /&gt;
**강화학습 부분에서 가중치를 도출한다.&lt;br /&gt;
**가중치값과 매수/매도값을 각각 곱하고 누적한다.&lt;br /&gt;
**해당 값을 통해 매수/매도/유지를 진행한다.매도가 될 때까지 진행하고 매도시 수익률을 구한다.&lt;br /&gt;
**수익률이 증가하는 방향으로 학습을 한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
*강화학습 오픈소스) DQN을 이용한 트레이딩 학습 테스트&lt;br /&gt;
**학습개요&lt;br /&gt;
***아래는 국내 3개 IT기업의 일봉데이터를 대상으로 학습을 진행한 결과이다.&lt;br /&gt;
***구현에서는 가능한 만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
***아래의 그래프에서는 초기 투자금을 가지고 시간에 따라서 자산 가치가 어떻게 변하는지 보여준다.&lt;br /&gt;
**트레이닝 데이터로 학습 진행 중 자산가치변화&lt;br /&gt;
[[파일:Hoho1.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***초반에는 매우 가치가 크지만 불안정한 트레이딩을 하다가 후에 안정적인 수익률을 보여주는 것을 알 수 있다.&lt;br /&gt;
**테스트 데이터에서 거래중 자산가치 변화&lt;br /&gt;
[[파일:Hoho2.png]]&lt;br /&gt;
***빨간 선은 초기 투자 금액이다.&lt;br /&gt;
***테스트 데이터로 트레이딩 했을 때 투자금액 보다 평균 12%의 수익을 올릴 수 있었다.&lt;br /&gt;
***단순 시가만으로 학습을 하는 경우, 위와 같이 매우 불안정하므로 다양한 전략을 통해 개선이 필요하다.&lt;br /&gt;
*전략 오픈소스) 10일, 30일 이동평균선 교차점 검출을 이용한 매수 매도 알고리즘 트레이딩&lt;br /&gt;
**방법&lt;br /&gt;
***현재까지 크롤링한 일봉데이터에서 단기 이동평균선과 장기 이동평균선의 교차점은 중요한 매도, 매수타이밍의 후보가 될 수 있다. 장기적인 추세를 따라가는 것이 미래에 대체로 좋은 방향이 되므로 장기평균선이 상승할 떄 매수, 하락 할 때 매도를 하는 것이 좋다.&lt;br /&gt;
***구현에서는 가능한만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
**Ta-lib&lt;br /&gt;
***Technical Analysis LIbrary&lt;br /&gt;
***시장분석과 같은 시계열 데이터 알고리즘을 분석하는데 사용하는 라이브러리&lt;br /&gt;
***내부에서는 기본 시장지표를 받으면 이에 따라서 새로운 보조지표를 만들어주거나 패턴을 검출하는 함수 제공&lt;br /&gt;
***구현에서 이동평균선 지표를 얻을 때 사용.&lt;br /&gt;
**가상트레이딩에 따른 자산가치 변화&lt;br /&gt;
[[파일:Hoho3.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***위와 같이 장기간 트레이딩을 진행하는데 있어서 이동평균선 교차점을 이용한 트레이딩이 좋은 효과를 보이는 것을 알 수 있다.&lt;br /&gt;
*광물시장 시가데이터 크롤링&lt;br /&gt;
**한국거래소([http://www.krx.co.kr])&lt;br /&gt;
**거래소홈페이지에서 1년단위의 데이터를 csv로 내려받을 수 있다.&lt;br /&gt;
**아래는 2014년 - 2019년의 종가를 그래프로 나타낸 것이다.&lt;br /&gt;
[[파일:Hoho4.png]]&lt;br /&gt;
*DQN 소스코드를 사용한 광물시장 가상 트레이딩&lt;br /&gt;
**위에서 사용한 DQN방법을 금시장을 대상으로 트레이딩을 진행했다.&lt;br /&gt;
**구현방식은 위의 DQN을 이용한 트레이딩 테스트와 같다.&lt;br /&gt;
**2000회 트레이닝을 진행하여서 매회 트레이닝마다 다음과 같은 결과를 얻을 수 있었다.&lt;br /&gt;
[[파일:Hoho5.png]]&lt;br /&gt;
**초기투자금액 10,000,000원으로 학습을 진행했다.&lt;br /&gt;
**위에서 트레이닝한 결과를 바탕으로 테스트를 진행했다.&lt;br /&gt;
[[파일:Hoho6.png]]&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
* 유스케이스 다이어그램&lt;br /&gt;
[[파일:hoho10.png]]&lt;br /&gt;
** 투자자가 각종 종목과 학습 정책 등을 선택한다.&lt;br /&gt;
** 선택을 기반으로 모델을 생성해서 가상 트레이딩을 진행할 때 수익률이 잘 나올 수  있는 지 확인한다.&lt;br /&gt;
** 학습 방법에 따른 비교 분석을 진행한다.&lt;br /&gt;
** 액터&lt;br /&gt;
*** 액터명 : 투자자&lt;br /&gt;
*** 설명 : 해당 프로그램을 투자의 지표로 사용하고 싶은 사람&lt;br /&gt;
* 각 유스케이스설명&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 종목선택&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 원하는 종목을 선택함&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
#투자자가 원하는 종목을 선택한다.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|프로그램 실행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 강화학습 정책 선택&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 원하는 강화학습 정책을 선택(PPO,DQN)&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
#투자자가 원하는 강화학습 정책을 선택한다.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|프로그램실행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 투자 젼략 선택&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 원하는 전략을 선택함&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
#투자자가 원하는 전략을 선택한다.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|프로그램실행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 강화학습 모델 생성&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 선택한 내용대로 강화학습 모델을 생성함.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 선택한 내용을 보여줌&lt;br /&gt;
# 확인 버튼을 누르면 모델을 생성함&lt;br /&gt;
# 모델 생성 성공 팝업을 보여줌&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
2.a. 최소 버튼을 누르면 선택화면으로 돌아옴.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
프로그램실행&lt;br /&gt;
종목 선택&lt;br /&gt;
강화학습 정책 선택&lt;br /&gt;
투자 전략 선택&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 생성에 성공해야 함&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 모델 학습&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 생성한 모델을 학습함.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 원하는 학습 인자를 입력&lt;br /&gt;
# 학습 실행&lt;br /&gt;
# 학습 결과를 보여줌&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
2.a. 학습 인자를 형식에 맞게 입력하지 않은 경우 학습 실패를 보여줌.&lt;br /&gt;
&lt;br /&gt;
2.b. 학습 도중 학습에 실패할 경우 에러 메시지를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 생성에 성공&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
학습 결과 출력.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 가상 트레이딩&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 학습한 모델로 가상 트레이딩을 함.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 초기금액을 입력한다.&lt;br /&gt;
# 기간을 설정한다.&lt;br /&gt;
# 한 번당 최대 매수, 매도금액을 입력한다.&lt;br /&gt;
# 가상 트레이딩을 실행한다.&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
4.a. 입력한 형식에 맞지 않는 경우 실행실패를 보여줌.&lt;br /&gt;
&lt;br /&gt;
4.b. 실행에 실패한 경우 오류메시지를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 학습 완료&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
실행 결과를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|참고 사항&lt;br /&gt;
|colspan=3|&lt;br /&gt;
CSV에서 Test데이터셋을 만들어서 진행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 실제 트레이딩&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 학습한 모델로 현재 상태를 넣었을 때 매수나 매도, 대기를 알려주고, 매수나 매도일 경우 양을 알려줌.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 현재 잔액을 입력한다.&lt;br /&gt;
# 투자자가 소지한 광물의 양을 입력한다.&lt;br /&gt;
# 한 번당 최대 매수, 매도금액을 입력한다.&lt;br /&gt;
# 실행 버튼을 누른다.&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
4.a. 입력한 형식에 맞지 않는 경우 실행실패를 보여줌.&lt;br /&gt;
&lt;br /&gt;
4.b. 실행에 실패한 경우 오류메시지를 보여줌.&lt;br /&gt;
&lt;br /&gt;
4.c. 잔액이 없는 경우 투자 실패를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 학습 완료&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
해당 타이밍의 행동과 양을 출력&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* 클래스 다이어그램&lt;br /&gt;
[[파일:hoho9.png]]&lt;br /&gt;
** BaseTrainEnv&lt;br /&gt;
*** 실제 시장의 환경을 강화학습에서 모델링하기 위한 베이스 클래스이다. API를 이용한 투자와 csv데이터로 가상화되는 환경의 베이스가 된다.&lt;br /&gt;
*** reset()으로 환경을 초기화 한다.&lt;br /&gt;
*** step()으로 거래를 전달하면, 다음날의 가격(state), 현재 가치(reward), 시간흐름의 완료(done), 기타정보를 반환한다.&lt;br /&gt;
** APITrainEnv&lt;br /&gt;
*** 실제 투자API가 구현되는 클래스이다.&lt;br /&gt;
** CsvTrainEnv&lt;br /&gt;
*** csv 데이터를 이용해 투자 환경이 구현되는 클래스이다.&lt;br /&gt;
**CsvTrainSet&lt;br /&gt;
*** 투자 환경에 필요한 주가 데이터를 종합한 클래스이다.&lt;br /&gt;
*** currency : 기준 통화&lt;br /&gt;
*** exchange_rate : 기준 통화와 다른 통화의 환율&lt;br /&gt;
*** object_price : 거래 대상의 가격데이터&lt;br /&gt;
*** other_object_price : 거래 대상이외의 참고할 대상의 가격데이터&lt;br /&gt;
** PPOTrainModel &amp;amp; DQNTrainModel&lt;br /&gt;
*** trainEnv: 사용한 투자환경 클래스이다.&lt;br /&gt;
*** agent: 전략별 채택 가중치를 계산할 수 있는 오브젝트이다.&lt;br /&gt;
*** tradeStrategies: 트레이딩에서 사용할 전략 알고리즘의 배열이다.&lt;br /&gt;
** BaseTradeStrategy&lt;br /&gt;
*** 트레이딩에 사용할 수 있는 전략알고리즘을 추상화한 클래스이다.&lt;br /&gt;
*** getInvest의 출력값은 +(매수), -(매도)로 나타낸다.&lt;br /&gt;
&lt;br /&gt;
* 소프트웨어 전체 구성도&lt;br /&gt;
[[파일:hoho11.png]]&lt;br /&gt;
** 광물시장 데이터 csv&lt;br /&gt;
*** 광물 시장의 가격을 일봉형식으로 나타낸다.&lt;br /&gt;
*** csv파일 형식으로 저장되어있다.&lt;br /&gt;
** 모의 투자&lt;br /&gt;
*** 강화학습 모델에서 환경을 모의투자 api로 사용할 수 있는 부분이다.&lt;br /&gt;
** 학습 및 투자환경&lt;br /&gt;
*** 강화학습 모델에 이용할 수 있는 환경요소로 추상화한다.&lt;br /&gt;
** 전략 및 트레이딩 DNN agent&lt;br /&gt;
*** 가상화된 환경에서 실제로 매도나 매수등의 결정을 내리는 agent이다.&lt;br /&gt;
*** 기본적으로 설정되어있는 다수의 알고리즘과 DNN을 합성하여 판단을 한다.&lt;br /&gt;
** 강화학습 정책&lt;br /&gt;
*** 위의 DNN agent를 학습시키는 방법이다.&lt;br /&gt;
*** PPO, DQN등의 방법을 사용한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* UI정의&lt;br /&gt;
** 호호호&lt;br /&gt;
** 호호호&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho11.png&amp;diff=1484</id>
		<title>파일:Hoho11.png</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho11.png&amp;diff=1484"/>
				<updated>2019-06-20T09:25:32Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: 소프트웨어 아키텍쳐&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;소프트웨어 아키텍쳐&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1483</id>
		<title>호호조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1483"/>
				<updated>2019-06-20T09:23:36Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : 광물시장에서 강화학습을 이용한 트레이딩 봇&lt;br /&gt;
&lt;br /&gt;
''' 영문 :  Trading-bot using Reinforcement Learning in a mineral market&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
호호&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
이동희 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920044 이홍석(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920037 이정한&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
*이전부터 사용자들이 많이 사용하던 시계열 분석 알고리즘과 다양한 지표들을 활용하여 강화학습을 이용하여 광물 가격을 예측한다.&lt;br /&gt;
*광물시장에서 시가에 영향을 미치는 다양한 요인이 존재한다.&lt;br /&gt;
*이미 밝혀진 다양한 요인들과 우리들이 생각한 요인들을 정리한다.&lt;br /&gt;
*이러한 요인들을 강화학습을 통해서 상관관계가 있는지 확인하고 실제로 수익을 낼 수 있는 모델과 학습을 진행한다.&lt;br /&gt;
*여러 가지 요인(차트 및 시장표준지수)들과 전략들을 가지고 하나의 광물을 대상으로 수익률이 높을 것으로 예상되는 매수, 매도 타이밍을 찾아낼 수 있는 것을 목표로 한다.&lt;br /&gt;
*다양한 강화학습 알고리즘 중 PPO(Proximal Policy Optimization), DQN(Deep Q Network)을 사용하여 구현해보고 어떤 방식이 더 잘 맞는지 분석해본다.&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*광물 시장은 매 시간마다 변동함&lt;br /&gt;
*광물 시장의 변동은 어떠한 요인들에 의해 값어치가 올라가기도 하고 내려가기도 함&lt;br /&gt;
*다양한 논문 Research 및 분석을 통해 값에 변화를 주는 요인들을 선별&lt;br /&gt;
*해당 요인들을 강화학습 모델의 환경에 넣어서 학습을 시킴&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
*강화학습을 이용하여 트레이딩을 자동으로 하는 봇을 만든다.&lt;br /&gt;
*광물 가격에 영향을 주는 요인들을 찾아보고 어느 정도 연관관계가 있는지 확인한다.&lt;br /&gt;
*연관관계가 있는 요인들을 모아서 강화학습모델에 적용시켜보고 실제로 효과가 있는지 확인해본다.&lt;br /&gt;
*효과가 컸던 요인들을 모아서 모의 투자 상황에서 수익률 분석을 해본다.&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
**자동 거래 시스템(ATS;Automated Trading System)은 1949년 Richard Donchian이 funds를 사고 파는 일련의 규칙을 사용하여 처음 소개되었다. 1980년대에는 John Henry와 같은 유명한 Trader들이 전략을 사용하기 시작하여, 규칙 기반 거래(Rule Based Trading)라는 개념이 대중화되었다. 현재는 미국 증권 거래소 주식 거래의 75% 이상이 자동 거래 시스템으로 이루어진다.&lt;br /&gt;
**최근에는 AI의 등장으로, 수많은 은행이나 투자자들이 AI를 활용하여 규칙 기반 거래나 직접 거래보다 훨씬 수익률이 높은 모델을 개발중이다. 딥러닝, 머신러닝 등의 기술을 활용하여 Trading Bot을 개발하고 있으며, 강화학습의 등장이후, 다양한 Trading Bot Project에서 강화학습을 도입하려는 움직임을 보이고 있다.&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
**거절 : 알고리즘 자동 매매 봇, [https://doi.org/10.8080/1020090067197]&lt;br /&gt;
***알고리즘 트레이딩 봇들을 모아서 관리할 수 있는 시스템&lt;br /&gt;
***통상적인 기술자가 충분히 만들 수 있는 것으로 판단하여 특허 거절&lt;br /&gt;
**등록 : 소셜트레이딩 방법, [http://kpat.kipris.or.kr/kpat/biblioa.do?method=biblioFrame]&lt;br /&gt;
***리더를 설정하여 해당 리더의 매매를 확인하고 추종하는 알고리즘&lt;br /&gt;
*기술 로드맵&lt;br /&gt;
**자동으로 거래를 할 수 있는 봇의 형태를 만들어야 하고, 모의투자를 통해 테스트할 수 있는 환경을 만들어야하기 때문에 투자, 증권사 API 및 모의투자 서버가 필요하다. 따라서, 키움증권, 대신증권, 이베스트투자증권 등의 회사의 API를 활용하고, 이 회사들의 모의투자 서버를 통해 수익률을 분석할 수 있다.&lt;br /&gt;
**강화학습은 환경이 주어지고, 해당 환경에 액션을 취하면 그에 따른 보상을 주면서 학습을 시킨다. 일반적인 딥 러닝은 어떤 요인들의 상호관계를 표현하지 못한다. 하지만 강화학습은 환경을 통해 어떤 요인들의 상호관계를 표현할 수 있다. 주식들은 서로 상호관계를 가지고 있으므로 강화학습을 이용하는 것이 유리한 방법이라 할 수 있다.&lt;br /&gt;
**현재에는 차트분석만으로 주식이나 광물시장에서의 매도, 매수타이밍을 잡아서 수익을 낼 수 있는 다양한 방법이 연구되고 있다. 이를 기술적 매매라고 부른다. 이러한 방법을 이용하여 알고리즘으로 구현하면 보다 안정적이고 수익률이 검증된 매매방법을 사용할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
**이러한 제품들은 시장에 공개적으로 나와있는 것을 쉽게 찾을 수 없다. 이러한 트레이딩봇 자체가 실제 주식시장에서 수익을 낼 수 있기 때문이다. 이윤을 창출하는 기업의 입장에서는 이 트레이딩 봇을 직접적으로 사용하지 않을 이유가 없다.&lt;br /&gt;
**또한 많은 사용자가 트레이딩 봇을 사용한다고 가정했을 때 모두가 이익을 볼 수 있는 것은 아니다. 같은 알고리즘을 사용하는 트레이딩 봇이 많으면 수익률이 줄어 들기 때문에 이러한 트레이딩 봇을 상용화하지 않은 것으로 보인다.&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! 알고리즘 !! 증권사 API !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 브레인듀드의 듀드303, 듀드프로&lt;br /&gt;
| 사용자의 조건검색식 사용 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 키움증권의 로보마켓&lt;br /&gt;
| 다양한 알고리즘 전략 제시 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 주식몰 오토핫키&lt;br /&gt;
| 해당하는 설명이 없음 || 해당하는 설명이 없음 || 마켓팅 위주의 사업 진행&lt;br /&gt;
|}&lt;br /&gt;
**위와 같이 알고리즘 트레이딩 봇을 만드는 회사 이외에도 증권사나 펀드회사 같은 경우에도 가치투자를 위한 분석자료를 제공하는 서비스를 제공할 수 있다.&lt;br /&gt;
**한국거래소에서는 종목마다 투자가치를 판단할 수 있는 자료를 제공한다. 이에 따라서 우리의 트레이딩봇과 경쟁해야 하는 부분을 가지고 있다.&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**위와 같이 여러가지 요인을 연구, 분석함에 따라서 트레이딩 봇을 만들 수 있다. 이 요인들의 적당한 조합으로 여러가지 특성을 띠는 트레이딩 봇을 개발할 수 있다.&lt;br /&gt;
**사용자들에게 원하는 이익구조를 선택할 수 있게 한다. 예를 들어 수익률이 크게 높지 않더라도 안정적인 투자를 원하는 사용자가 있고, 위험을 감수하더라도 높은 수익률을 원하는 사용자가 있다. 요인분석에 따라서 얻을 수 있는 특징들을 찾아내고 이러한 요인들로 주식트레이딩의 위험, 최고 수익률등이 결정될 것이다. &lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
*기존의 주식 트레이딩봇들은 우리가 직접 알고리즘을 구현하고 설계함에 따라서 작동했다. 사람의 직관을 이용해서 장기투자를 하는 것이 아니라 짧은 시간의 시장변동을 감지해서 조금씩 수익을 올리는 등의 알고리즘이 만들어져 왔다. 하지만 강화학습과 딥러닝을 사용해서 좀 더 효과적인 방향을 찾을 수 있다.&lt;br /&gt;
*딥러닝에서 사용하는 뉴럴 네트워크는 학습이 완료되었을 때 예측속도가 매우 빠르다는 특징을 갖고 있다. 해당 요인을 성공적으로 학습한 네트워크를 얻은 후에 봇을 사용할 때는 컴퓨팅의 성능을 크게 사용하지 않고 빠른 속도의 트레이딩이 가능하다.&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
*위에서 서술한 대로 만일 강화학습을 이용해서 주식 트레이딩봇이 성공적으로 수익을 낼 수 있는 구조라면, 이와 유사한 트레이딩봇이 많이 등장할 것이다. 더불어서 강화학습에 딥러닝을 적용시키면서 구성할 수 있는 선택의 여지가 많아졌다. 각기 학습하는 방법에 따라서 각기 다른 여러가지 전략이 등장할 수 있는 것이다. 따라서 기존에 알고리즘을 이용해서 매매를 진행하던 투자자들이 새롭게 등장하는 트레이딩봇의 투자전략에 영향을 받을 것이며, 시장의 특성은 더 다양하고 복잡해질 것이다.&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  단계별 세부개발 내용 !! 담당자 !! 개발기간 !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 강화학습 환경 설계&lt;br /&gt;
| 이홍석 || 3~4 || &lt;br /&gt;
|-&lt;br /&gt;
! 모의투자 환경구성 및 트레이딩 봇 구현&lt;br /&gt;
| 이정한 || 4~5 ||&lt;br /&gt;
|-&lt;br /&gt;
! 학습진행 및 정확도 개선&lt;br /&gt;
| 이홍석 || 4~6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 기존의 트레이딩 봇과의 성능 비교&lt;br /&gt;
| 이정한 || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 요인 연구 및 분석&lt;br /&gt;
| 이홍석, 이정한 || 3~6 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
*컴퓨터과학부 2014920044 이홍석 : 작품설계 및 개발&lt;br /&gt;
*컴퓨터과학부 2014920037 이정한 : 작품설계 및 개발&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  번호 !! 요 구 사 항 !! D or W !! 중요도&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 기존 시계열 분석 논문에 있는 전략(요소, Factor)들을 모듈로 개발 || D || 대 &lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 시계열 데이터 분석 모듈을 적용할 수 있는 강화학습 모델을 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| 모델을 학습시킬 수 있는 환경(Env, DB) 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| PPO와 DQN 강화학습 알고리즘을 구현하고 분석 || W || 중&lt;br /&gt;
|}&lt;br /&gt;
====설계 사양====&lt;br /&gt;
*목적계통도&lt;br /&gt;
[[그림:Hoho7.png]]&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
*기존에 연구되어진 시계열 분석 알고리즘을 이용한 결과물들은 제각기 집중하는 부분이 다르기 때문에, 그 정확도가 서로 배타적 일 것이다. 즉 어느 한 알고리즘이 우위의 정확도를 가질 경우 다른 알고리즘은 상대적으로 낮은 정확도를 가질 것이다.&lt;br /&gt;
**서로 정확성에 있어 배타적일 정도로 다른 시계열 분석 알고리즘을 찾아야한다.&lt;br /&gt;
**배타적인 TA 알고리즘 a0~an을 찾고, 구현한다.&lt;br /&gt;
*강화학습 예측 모델&lt;br /&gt;
[[그림:Hoho8.png]]&lt;br /&gt;
**강화학습을 이용한 시계열 데이터의 학습을 통해 예측 모델을 생성한다.&lt;br /&gt;
**예측 모델은 다음과 같이 크게 두가지 단계로 구성된다.&lt;br /&gt;
***직접 시계열 데이터를 분석 / 예측하는 전략적 알고리즘&lt;br /&gt;
****네이밍: a0, a1, … , an&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {예측된 다음 시계열 데이터=o0, o1, …, on}&lt;br /&gt;
***인공신경망을 응용하는, 적절한 전략적 알고리즘에 가중치를 부여하는 알고리즘&lt;br /&gt;
****네이밍: M&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {w0, w1, …, wn}&lt;br /&gt;
****어느 하나의 전략적 알고리즘을 선택하는 방식(hard decision)이 아니라, 여러 전략적 알고리즘의 정확도를 연판정(soft decision)하여 그 비중을 출력한다. &lt;br /&gt;
**a의 결과인 O와 b의 결과인 W를 곱하여 최종 예측치를 계산한다. (가중평균)&lt;br /&gt;
***Predict = OW&lt;br /&gt;
**이 Agent의 결과에 따라서 전략을 어떤 비율로 선택하게 된다. 이를 조합한 값으로 특정 광물에 대한 매수 혹은 매도할 값을 선택하게 된다.&lt;br /&gt;
*강화학습 환경 구성 요소&lt;br /&gt;
**에이전트&lt;br /&gt;
***state값들을 DNN을 사용하여 전략을 선택할 수 있는 값으로 추출한다.&lt;br /&gt;
***전략개수 의존적&lt;br /&gt;
**환경&lt;br /&gt;
***한 거래소의 해당 광물의 일봉csv데이터를 시간에 따라서 사용&lt;br /&gt;
***USD, EUR (KRW 기준) 지수 데이터&lt;br /&gt;
**리워드 공식&lt;br /&gt;
***해당 광물의 가치와 잔금을 합산한 값을 리워드로 사용한다.&lt;br /&gt;
**액션 리스트&lt;br /&gt;
***양수는 매수, 음수는 매도의 의미로 하나의 출력값을 사용한다.&lt;br /&gt;
****광물 거래는 1주 단위의 이산적인 값을 사용한다.&lt;br /&gt;
****최대, 최소값을 설정한다.&lt;br /&gt;
*학습 시나리오&lt;br /&gt;
**매 학습에서 어떤 기간을 랜덤으로 설정한다.&lt;br /&gt;
**이 시간동안의 광물시장 데이터를 사용해서 하루 단위로 액션을 진행한다.&lt;br /&gt;
**시계열 분석 부분에서 각각의 전략이 매수/매도값을 도출한다.&lt;br /&gt;
**강화학습 부분에서 가중치를 도출한다.&lt;br /&gt;
**가중치값과 매수/매도값을 각각 곱하고 누적한다.&lt;br /&gt;
**해당 값을 통해 매수/매도/유지를 진행한다.매도가 될 때까지 진행하고 매도시 수익률을 구한다.&lt;br /&gt;
**수익률이 증가하는 방향으로 학습을 한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
*강화학습 오픈소스) DQN을 이용한 트레이딩 학습 테스트&lt;br /&gt;
**학습개요&lt;br /&gt;
***아래는 국내 3개 IT기업의 일봉데이터를 대상으로 학습을 진행한 결과이다.&lt;br /&gt;
***구현에서는 가능한 만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
***아래의 그래프에서는 초기 투자금을 가지고 시간에 따라서 자산 가치가 어떻게 변하는지 보여준다.&lt;br /&gt;
**트레이닝 데이터로 학습 진행 중 자산가치변화&lt;br /&gt;
[[파일:Hoho1.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***초반에는 매우 가치가 크지만 불안정한 트레이딩을 하다가 후에 안정적인 수익률을 보여주는 것을 알 수 있다.&lt;br /&gt;
**테스트 데이터에서 거래중 자산가치 변화&lt;br /&gt;
[[파일:Hoho2.png]]&lt;br /&gt;
***빨간 선은 초기 투자 금액이다.&lt;br /&gt;
***테스트 데이터로 트레이딩 했을 때 투자금액 보다 평균 12%의 수익을 올릴 수 있었다.&lt;br /&gt;
***단순 시가만으로 학습을 하는 경우, 위와 같이 매우 불안정하므로 다양한 전략을 통해 개선이 필요하다.&lt;br /&gt;
*전략 오픈소스) 10일, 30일 이동평균선 교차점 검출을 이용한 매수 매도 알고리즘 트레이딩&lt;br /&gt;
**방법&lt;br /&gt;
***현재까지 크롤링한 일봉데이터에서 단기 이동평균선과 장기 이동평균선의 교차점은 중요한 매도, 매수타이밍의 후보가 될 수 있다. 장기적인 추세를 따라가는 것이 미래에 대체로 좋은 방향이 되므로 장기평균선이 상승할 떄 매수, 하락 할 때 매도를 하는 것이 좋다.&lt;br /&gt;
***구현에서는 가능한만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
**Ta-lib&lt;br /&gt;
***Technical Analysis LIbrary&lt;br /&gt;
***시장분석과 같은 시계열 데이터 알고리즘을 분석하는데 사용하는 라이브러리&lt;br /&gt;
***내부에서는 기본 시장지표를 받으면 이에 따라서 새로운 보조지표를 만들어주거나 패턴을 검출하는 함수 제공&lt;br /&gt;
***구현에서 이동평균선 지표를 얻을 때 사용.&lt;br /&gt;
**가상트레이딩에 따른 자산가치 변화&lt;br /&gt;
[[파일:Hoho3.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***위와 같이 장기간 트레이딩을 진행하는데 있어서 이동평균선 교차점을 이용한 트레이딩이 좋은 효과를 보이는 것을 알 수 있다.&lt;br /&gt;
*광물시장 시가데이터 크롤링&lt;br /&gt;
**한국거래소([http://www.krx.co.kr])&lt;br /&gt;
**거래소홈페이지에서 1년단위의 데이터를 csv로 내려받을 수 있다.&lt;br /&gt;
**아래는 2014년 - 2019년의 종가를 그래프로 나타낸 것이다.&lt;br /&gt;
[[파일:Hoho4.png]]&lt;br /&gt;
*DQN 소스코드를 사용한 광물시장 가상 트레이딩&lt;br /&gt;
**위에서 사용한 DQN방법을 금시장을 대상으로 트레이딩을 진행했다.&lt;br /&gt;
**구현방식은 위의 DQN을 이용한 트레이딩 테스트와 같다.&lt;br /&gt;
**2000회 트레이닝을 진행하여서 매회 트레이닝마다 다음과 같은 결과를 얻을 수 있었다.&lt;br /&gt;
[[파일:Hoho5.png]]&lt;br /&gt;
**초기투자금액 10,000,000원으로 학습을 진행했다.&lt;br /&gt;
**위에서 트레이닝한 결과를 바탕으로 테스트를 진행했다.&lt;br /&gt;
[[파일:Hoho6.png]]&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
* 유스케이스 다이어그램&lt;br /&gt;
[[파일:hoho10.png]]&lt;br /&gt;
** 투자자가 각종 종목과 학습 정책 등을 선택한다.&lt;br /&gt;
** 선택을 기반으로 모델을 생성해서 가상 트레이딩을 진행할 때 수익률이 잘 나올 수  있는 지 확인한다.&lt;br /&gt;
** 학습 방법에 따른 비교 분석을 진행한다.&lt;br /&gt;
** 액터&lt;br /&gt;
*** 액터명 : 투자자&lt;br /&gt;
*** 설명 : 해당 프로그램을 투자의 지표로 사용하고 싶은 사람&lt;br /&gt;
* 각 유스케이스설명&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 종목선택&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 원하는 종목을 선택함&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
#투자자가 원하는 종목을 선택한다.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|프로그램 실행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 강화학습 정책 선택&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 원하는 강화학습 정책을 선택(PPO,DQN)&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
#투자자가 원하는 강화학습 정책을 선택한다.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|프로그램실행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 투자 젼략 선택&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 원하는 전략을 선택함&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
#투자자가 원하는 전략을 선택한다.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|프로그램실행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 강화학습 모델 생성&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 선택한 내용대로 강화학습 모델을 생성함.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 선택한 내용을 보여줌&lt;br /&gt;
# 확인 버튼을 누르면 모델을 생성함&lt;br /&gt;
# 모델 생성 성공 팝업을 보여줌&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
2.a. 최소 버튼을 누르면 선택화면으로 돌아옴.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
프로그램실행&lt;br /&gt;
종목 선택&lt;br /&gt;
강화학습 정책 선택&lt;br /&gt;
투자 전략 선택&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 생성에 성공해야 함&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 모델 학습&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 생성한 모델을 학습함.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 원하는 학습 인자를 입력&lt;br /&gt;
# 학습 실행&lt;br /&gt;
# 학습 결과를 보여줌&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
2.a. 학습 인자를 형식에 맞게 입력하지 않은 경우 학습 실패를 보여줌.&lt;br /&gt;
&lt;br /&gt;
2.b. 학습 도중 학습에 실패할 경우 에러 메시지를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 생성에 성공&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
학습 결과 출력.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 가상 트레이딩&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 학습한 모델로 가상 트레이딩을 함.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 초기금액을 입력한다.&lt;br /&gt;
# 기간을 설정한다.&lt;br /&gt;
# 한 번당 최대 매수, 매도금액을 입력한다.&lt;br /&gt;
# 가상 트레이딩을 실행한다.&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
4.a. 입력한 형식에 맞지 않는 경우 실행실패를 보여줌.&lt;br /&gt;
&lt;br /&gt;
4.b. 실행에 실패한 경우 오류메시지를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 학습 완료&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
실행 결과를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|참고 사항&lt;br /&gt;
|colspan=3|&lt;br /&gt;
CSV에서 Test데이터셋을 만들어서 진행&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; style=&amp;quot;margin: 2em; margin-left: 0 atuo; &amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 실제 트레이딩&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 투자자가 학습한 모델로 현재 상태를 넣었을 때 매수나 매도, 대기를 알려주고, 매수나 매도일 경우 양을 알려줌.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
# 투자자가 현재 잔액을 입력한다.&lt;br /&gt;
# 투자자가 소지한 광물의 양을 입력한다.&lt;br /&gt;
# 한 번당 최대 매수, 매도금액을 입력한다.&lt;br /&gt;
# 실행 버튼을 누른다.&lt;br /&gt;
|------&lt;br /&gt;
|예외 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
4.a. 입력한 형식에 맞지 않는 경우 실행실패를 보여줌.&lt;br /&gt;
&lt;br /&gt;
4.b. 실행에 실패한 경우 오류메시지를 보여줌.&lt;br /&gt;
&lt;br /&gt;
4.c. 잔액이 없는 경우 투자 실패를 보여줌.&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
모델 학습 완료&lt;br /&gt;
|------&lt;br /&gt;
|사후 조건&lt;br /&gt;
|colspan=3|&lt;br /&gt;
해당 타이밍의 행동과 양을 출력&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
* 클래스 다이어그램&lt;br /&gt;
[[파일:hoho9.png]]&lt;br /&gt;
** BaseTrainEnv&lt;br /&gt;
*** 실제 시장의 환경을 강화학습에서 모델링하기 위한 베이스 클래스이다. API를 이용한 투자와 csv데이터로 가상화되는 환경의 베이스가 된다.&lt;br /&gt;
*** reset()으로 환경을 초기화 한다.&lt;br /&gt;
*** step()으로 거래를 전달하면, 다음날의 가격(state), 현재 가치(reward), 시간흐름의 완료(done), 기타정보를 반환한다.&lt;br /&gt;
** APITrainEnv&lt;br /&gt;
*** 실제 투자API가 구현되는 클래스이다.&lt;br /&gt;
** CsvTrainEnv&lt;br /&gt;
*** csv 데이터를 이용해 투자 환경이 구현되는 클래스이다.&lt;br /&gt;
**CsvTrainSet&lt;br /&gt;
*** 투자 환경에 필요한 주가 데이터를 종합한 클래스이다.&lt;br /&gt;
*** currency : 기준 통화&lt;br /&gt;
*** exchange_rate : 기준 통화와 다른 통화의 환율&lt;br /&gt;
*** object_price : 거래 대상의 가격데이터&lt;br /&gt;
*** other_object_price : 거래 대상이외의 참고할 대상의 가격데이터&lt;br /&gt;
** PPOTrainModel &amp;amp; DQNTrainModel&lt;br /&gt;
*** trainEnv: 사용한 투자환경 클래스이다.&lt;br /&gt;
*** agent: 전략별 채택 가중치를 계산할 수 있는 오브젝트이다.&lt;br /&gt;
*** tradeStrategies: 트레이딩에서 사용할 전략 알고리즘의 배열이다.&lt;br /&gt;
** BaseTradeStrategy&lt;br /&gt;
*** 트레이딩에 사용할 수 있는 전략알고리즘을 추상화한 클래스이다.&lt;br /&gt;
*** getInvest의 출력값은 +(매수), -(매도)로 나타낸다.&lt;br /&gt;
&lt;br /&gt;
** &lt;br /&gt;
** 호호호&lt;br /&gt;
&lt;br /&gt;
* UI구성&lt;br /&gt;
** 호호호&lt;br /&gt;
** 호호호&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1482</id>
		<title>호호조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1482"/>
				<updated>2019-06-20T08:46:55Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : 광물시장에서 강화학습을 이용한 트레이딩 봇&lt;br /&gt;
&lt;br /&gt;
''' 영문 :  Trading-bot using Reinforcement Learning in a mineral market&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
호호&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
이동희 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920044 이홍석(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920037 이정한&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
*이전부터 사용자들이 많이 사용하던 시계열 분석 알고리즘과 다양한 지표들을 활용하여 강화학습을 이용하여 광물 가격을 예측한다.&lt;br /&gt;
*광물시장에서 시가에 영향을 미치는 다양한 요인이 존재한다.&lt;br /&gt;
*이미 밝혀진 다양한 요인들과 우리들이 생각한 요인들을 정리한다.&lt;br /&gt;
*이러한 요인들을 강화학습을 통해서 상관관계가 있는지 확인하고 실제로 수익을 낼 수 있는 모델과 학습을 진행한다.&lt;br /&gt;
*여러 가지 요인(차트 및 시장표준지수)들과 전략들을 가지고 하나의 광물을 대상으로 수익률이 높을 것으로 예상되는 매수, 매도 타이밍을 찾아낼 수 있는 것을 목표로 한다.&lt;br /&gt;
*다양한 강화학습 알고리즘 중 PPO(Proximal Policy Optimization), DQN(Deep Q Network)을 사용하여 구현해보고 어떤 방식이 더 잘 맞는지 분석해본다.&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*광물 시장은 매 시간마다 변동함&lt;br /&gt;
*광물 시장의 변동은 어떠한 요인들에 의해 값어치가 올라가기도 하고 내려가기도 함&lt;br /&gt;
*다양한 논문 Research 및 분석을 통해 값에 변화를 주는 요인들을 선별&lt;br /&gt;
*해당 요인들을 강화학습 모델의 환경에 넣어서 학습을 시킴&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
*강화학습을 이용하여 트레이딩을 자동으로 하는 봇을 만든다.&lt;br /&gt;
*광물 가격에 영향을 주는 요인들을 찾아보고 어느 정도 연관관계가 있는지 확인한다.&lt;br /&gt;
*연관관계가 있는 요인들을 모아서 강화학습모델에 적용시켜보고 실제로 효과가 있는지 확인해본다.&lt;br /&gt;
*효과가 컸던 요인들을 모아서 모의 투자 상황에서 수익률 분석을 해본다.&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
**자동 거래 시스템(ATS;Automated Trading System)은 1949년 Richard Donchian이 funds를 사고 파는 일련의 규칙을 사용하여 처음 소개되었다. 1980년대에는 John Henry와 같은 유명한 Trader들이 전략을 사용하기 시작하여, 규칙 기반 거래(Rule Based Trading)라는 개념이 대중화되었다. 현재는 미국 증권 거래소 주식 거래의 75% 이상이 자동 거래 시스템으로 이루어진다.&lt;br /&gt;
**최근에는 AI의 등장으로, 수많은 은행이나 투자자들이 AI를 활용하여 규칙 기반 거래나 직접 거래보다 훨씬 수익률이 높은 모델을 개발중이다. 딥러닝, 머신러닝 등의 기술을 활용하여 Trading Bot을 개발하고 있으며, 강화학습의 등장이후, 다양한 Trading Bot Project에서 강화학습을 도입하려는 움직임을 보이고 있다.&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
**거절 : 알고리즘 자동 매매 봇, [https://doi.org/10.8080/1020090067197]&lt;br /&gt;
***알고리즘 트레이딩 봇들을 모아서 관리할 수 있는 시스템&lt;br /&gt;
***통상적인 기술자가 충분히 만들 수 있는 것으로 판단하여 특허 거절&lt;br /&gt;
**등록 : 소셜트레이딩 방법, [http://kpat.kipris.or.kr/kpat/biblioa.do?method=biblioFrame]&lt;br /&gt;
***리더를 설정하여 해당 리더의 매매를 확인하고 추종하는 알고리즘&lt;br /&gt;
*기술 로드맵&lt;br /&gt;
**자동으로 거래를 할 수 있는 봇의 형태를 만들어야 하고, 모의투자를 통해 테스트할 수 있는 환경을 만들어야하기 때문에 투자, 증권사 API 및 모의투자 서버가 필요하다. 따라서, 키움증권, 대신증권, 이베스트투자증권 등의 회사의 API를 활용하고, 이 회사들의 모의투자 서버를 통해 수익률을 분석할 수 있다.&lt;br /&gt;
**강화학습은 환경이 주어지고, 해당 환경에 액션을 취하면 그에 따른 보상을 주면서 학습을 시킨다. 일반적인 딥 러닝은 어떤 요인들의 상호관계를 표현하지 못한다. 하지만 강화학습은 환경을 통해 어떤 요인들의 상호관계를 표현할 수 있다. 주식들은 서로 상호관계를 가지고 있으므로 강화학습을 이용하는 것이 유리한 방법이라 할 수 있다.&lt;br /&gt;
**현재에는 차트분석만으로 주식이나 광물시장에서의 매도, 매수타이밍을 잡아서 수익을 낼 수 있는 다양한 방법이 연구되고 있다. 이를 기술적 매매라고 부른다. 이러한 방법을 이용하여 알고리즘으로 구현하면 보다 안정적이고 수익률이 검증된 매매방법을 사용할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
**이러한 제품들은 시장에 공개적으로 나와있는 것을 쉽게 찾을 수 없다. 이러한 트레이딩봇 자체가 실제 주식시장에서 수익을 낼 수 있기 때문이다. 이윤을 창출하는 기업의 입장에서는 이 트레이딩 봇을 직접적으로 사용하지 않을 이유가 없다.&lt;br /&gt;
**또한 많은 사용자가 트레이딩 봇을 사용한다고 가정했을 때 모두가 이익을 볼 수 있는 것은 아니다. 같은 알고리즘을 사용하는 트레이딩 봇이 많으면 수익률이 줄어 들기 때문에 이러한 트레이딩 봇을 상용화하지 않은 것으로 보인다.&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! 알고리즘 !! 증권사 API !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 브레인듀드의 듀드303, 듀드프로&lt;br /&gt;
| 사용자의 조건검색식 사용 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 키움증권의 로보마켓&lt;br /&gt;
| 다양한 알고리즘 전략 제시 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 주식몰 오토핫키&lt;br /&gt;
| 해당하는 설명이 없음 || 해당하는 설명이 없음 || 마켓팅 위주의 사업 진행&lt;br /&gt;
|}&lt;br /&gt;
**위와 같이 알고리즘 트레이딩 봇을 만드는 회사 이외에도 증권사나 펀드회사 같은 경우에도 가치투자를 위한 분석자료를 제공하는 서비스를 제공할 수 있다.&lt;br /&gt;
**한국거래소에서는 종목마다 투자가치를 판단할 수 있는 자료를 제공한다. 이에 따라서 우리의 트레이딩봇과 경쟁해야 하는 부분을 가지고 있다.&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**위와 같이 여러가지 요인을 연구, 분석함에 따라서 트레이딩 봇을 만들 수 있다. 이 요인들의 적당한 조합으로 여러가지 특성을 띠는 트레이딩 봇을 개발할 수 있다.&lt;br /&gt;
**사용자들에게 원하는 이익구조를 선택할 수 있게 한다. 예를 들어 수익률이 크게 높지 않더라도 안정적인 투자를 원하는 사용자가 있고, 위험을 감수하더라도 높은 수익률을 원하는 사용자가 있다. 요인분석에 따라서 얻을 수 있는 특징들을 찾아내고 이러한 요인들로 주식트레이딩의 위험, 최고 수익률등이 결정될 것이다. &lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
*기존의 주식 트레이딩봇들은 우리가 직접 알고리즘을 구현하고 설계함에 따라서 작동했다. 사람의 직관을 이용해서 장기투자를 하는 것이 아니라 짧은 시간의 시장변동을 감지해서 조금씩 수익을 올리는 등의 알고리즘이 만들어져 왔다. 하지만 강화학습과 딥러닝을 사용해서 좀 더 효과적인 방향을 찾을 수 있다.&lt;br /&gt;
*딥러닝에서 사용하는 뉴럴 네트워크는 학습이 완료되었을 때 예측속도가 매우 빠르다는 특징을 갖고 있다. 해당 요인을 성공적으로 학습한 네트워크를 얻은 후에 봇을 사용할 때는 컴퓨팅의 성능을 크게 사용하지 않고 빠른 속도의 트레이딩이 가능하다.&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
*위에서 서술한 대로 만일 강화학습을 이용해서 주식 트레이딩봇이 성공적으로 수익을 낼 수 있는 구조라면, 이와 유사한 트레이딩봇이 많이 등장할 것이다. 더불어서 강화학습에 딥러닝을 적용시키면서 구성할 수 있는 선택의 여지가 많아졌다. 각기 학습하는 방법에 따라서 각기 다른 여러가지 전략이 등장할 수 있는 것이다. 따라서 기존에 알고리즘을 이용해서 매매를 진행하던 투자자들이 새롭게 등장하는 트레이딩봇의 투자전략에 영향을 받을 것이며, 시장의 특성은 더 다양하고 복잡해질 것이다.&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  단계별 세부개발 내용 !! 담당자 !! 개발기간 !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 강화학습 환경 설계&lt;br /&gt;
| 이홍석 || 3~4 || &lt;br /&gt;
|-&lt;br /&gt;
! 모의투자 환경구성 및 트레이딩 봇 구현&lt;br /&gt;
| 이정한 || 4~5 ||&lt;br /&gt;
|-&lt;br /&gt;
! 학습진행 및 정확도 개선&lt;br /&gt;
| 이홍석 || 4~6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 기존의 트레이딩 봇과의 성능 비교&lt;br /&gt;
| 이정한 || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 요인 연구 및 분석&lt;br /&gt;
| 이홍석, 이정한 || 3~6 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
*컴퓨터과학부 2014920044 이홍석 : 작품설계 및 개발&lt;br /&gt;
*컴퓨터과학부 2014920037 이정한 : 작품설계 및 개발&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  번호 !! 요 구 사 항 !! D or W !! 중요도&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 기존 시계열 분석 논문에 있는 전략(요소, Factor)들을 모듈로 개발 || D || 대 &lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 시계열 데이터 분석 모듈을 적용할 수 있는 강화학습 모델을 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| 모델을 학습시킬 수 있는 환경(Env, DB) 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| PPO와 DQN 강화학습 알고리즘을 구현하고 분석 || W || 중&lt;br /&gt;
|}&lt;br /&gt;
====설계 사양====&lt;br /&gt;
*목적계통도&lt;br /&gt;
[[그림:Hoho7.png]]&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
*기존에 연구되어진 시계열 분석 알고리즘을 이용한 결과물들은 제각기 집중하는 부분이 다르기 때문에, 그 정확도가 서로 배타적 일 것이다. 즉 어느 한 알고리즘이 우위의 정확도를 가질 경우 다른 알고리즘은 상대적으로 낮은 정확도를 가질 것이다.&lt;br /&gt;
**서로 정확성에 있어 배타적일 정도로 다른 시계열 분석 알고리즘을 찾아야한다.&lt;br /&gt;
**배타적인 TA 알고리즘 a0~an을 찾고, 구현한다.&lt;br /&gt;
*강화학습 예측 모델&lt;br /&gt;
[[그림:Hoho8.png]]&lt;br /&gt;
**강화학습을 이용한 시계열 데이터의 학습을 통해 예측 모델을 생성한다.&lt;br /&gt;
**예측 모델은 다음과 같이 크게 두가지 단계로 구성된다.&lt;br /&gt;
***직접 시계열 데이터를 분석 / 예측하는 전략적 알고리즘&lt;br /&gt;
****네이밍: a0, a1, … , an&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {예측된 다음 시계열 데이터=o0, o1, …, on}&lt;br /&gt;
***인공신경망을 응용하는, 적절한 전략적 알고리즘에 가중치를 부여하는 알고리즘&lt;br /&gt;
****네이밍: M&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {w0, w1, …, wn}&lt;br /&gt;
****어느 하나의 전략적 알고리즘을 선택하는 방식(hard decision)이 아니라, 여러 전략적 알고리즘의 정확도를 연판정(soft decision)하여 그 비중을 출력한다. &lt;br /&gt;
**a의 결과인 O와 b의 결과인 W를 곱하여 최종 예측치를 계산한다. (가중평균)&lt;br /&gt;
***Predict = OW&lt;br /&gt;
**이 Agent의 결과에 따라서 전략을 어떤 비율로 선택하게 된다. 이를 조합한 값으로 특정 광물에 대한 매수 혹은 매도할 값을 선택하게 된다.&lt;br /&gt;
*강화학습 환경 구성 요소&lt;br /&gt;
**에이전트&lt;br /&gt;
***state값들을 DNN을 사용하여 전략을 선택할 수 있는 값으로 추출한다.&lt;br /&gt;
***전략개수 의존적&lt;br /&gt;
**환경&lt;br /&gt;
***한 거래소의 해당 광물의 일봉csv데이터를 시간에 따라서 사용&lt;br /&gt;
***USD, EUR (KRW 기준) 지수 데이터&lt;br /&gt;
**리워드 공식&lt;br /&gt;
***해당 광물의 가치와 잔금을 합산한 값을 리워드로 사용한다.&lt;br /&gt;
**액션 리스트&lt;br /&gt;
***양수는 매수, 음수는 매도의 의미로 하나의 출력값을 사용한다.&lt;br /&gt;
****광물 거래는 1주 단위의 이산적인 값을 사용한다.&lt;br /&gt;
****최대, 최소값을 설정한다.&lt;br /&gt;
*학습 시나리오&lt;br /&gt;
**매 학습에서 어떤 기간을 랜덤으로 설정한다.&lt;br /&gt;
**이 시간동안의 광물시장 데이터를 사용해서 하루 단위로 액션을 진행한다.&lt;br /&gt;
**시계열 분석 부분에서 각각의 전략이 매수/매도값을 도출한다.&lt;br /&gt;
**강화학습 부분에서 가중치를 도출한다.&lt;br /&gt;
**가중치값과 매수/매도값을 각각 곱하고 누적한다.&lt;br /&gt;
**해당 값을 통해 매수/매도/유지를 진행한다.매도가 될 때까지 진행하고 매도시 수익률을 구한다.&lt;br /&gt;
**수익률이 증가하는 방향으로 학습을 한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
*강화학습 오픈소스) DQN을 이용한 트레이딩 학습 테스트&lt;br /&gt;
**학습개요&lt;br /&gt;
***아래는 국내 3개 IT기업의 일봉데이터를 대상으로 학습을 진행한 결과이다.&lt;br /&gt;
***구현에서는 가능한 만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
***아래의 그래프에서는 초기 투자금을 가지고 시간에 따라서 자산 가치가 어떻게 변하는지 보여준다.&lt;br /&gt;
**트레이닝 데이터로 학습 진행 중 자산가치변화&lt;br /&gt;
[[파일:Hoho1.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***초반에는 매우 가치가 크지만 불안정한 트레이딩을 하다가 후에 안정적인 수익률을 보여주는 것을 알 수 있다.&lt;br /&gt;
**테스트 데이터에서 거래중 자산가치 변화&lt;br /&gt;
[[파일:Hoho2.png]]&lt;br /&gt;
***빨간 선은 초기 투자 금액이다.&lt;br /&gt;
***테스트 데이터로 트레이딩 했을 때 투자금액 보다 평균 12%의 수익을 올릴 수 있었다.&lt;br /&gt;
***단순 시가만으로 학습을 하는 경우, 위와 같이 매우 불안정하므로 다양한 전략을 통해 개선이 필요하다.&lt;br /&gt;
*전략 오픈소스) 10일, 30일 이동평균선 교차점 검출을 이용한 매수 매도 알고리즘 트레이딩&lt;br /&gt;
**방법&lt;br /&gt;
***현재까지 크롤링한 일봉데이터에서 단기 이동평균선과 장기 이동평균선의 교차점은 중요한 매도, 매수타이밍의 후보가 될 수 있다. 장기적인 추세를 따라가는 것이 미래에 대체로 좋은 방향이 되므로 장기평균선이 상승할 떄 매수, 하락 할 때 매도를 하는 것이 좋다.&lt;br /&gt;
***구현에서는 가능한만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
**Ta-lib&lt;br /&gt;
***Technical Analysis LIbrary&lt;br /&gt;
***시장분석과 같은 시계열 데이터 알고리즘을 분석하는데 사용하는 라이브러리&lt;br /&gt;
***내부에서는 기본 시장지표를 받으면 이에 따라서 새로운 보조지표를 만들어주거나 패턴을 검출하는 함수 제공&lt;br /&gt;
***구현에서 이동평균선 지표를 얻을 때 사용.&lt;br /&gt;
**가상트레이딩에 따른 자산가치 변화&lt;br /&gt;
[[파일:Hoho3.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***위와 같이 장기간 트레이딩을 진행하는데 있어서 이동평균선 교차점을 이용한 트레이딩이 좋은 효과를 보이는 것을 알 수 있다.&lt;br /&gt;
*광물시장 시가데이터 크롤링&lt;br /&gt;
**한국거래소([http://www.krx.co.kr])&lt;br /&gt;
**거래소홈페이지에서 1년단위의 데이터를 csv로 내려받을 수 있다.&lt;br /&gt;
**아래는 2014년 - 2019년의 종가를 그래프로 나타낸 것이다.&lt;br /&gt;
[[파일:Hoho4.png]]&lt;br /&gt;
*DQN 소스코드를 사용한 광물시장 가상 트레이딩&lt;br /&gt;
**위에서 사용한 DQN방법을 금시장을 대상으로 트레이딩을 진행했다.&lt;br /&gt;
**구현방식은 위의 DQN을 이용한 트레이딩 테스트와 같다.&lt;br /&gt;
**2000회 트레이닝을 진행하여서 매회 트레이닝마다 다음과 같은 결과를 얻을 수 있었다.&lt;br /&gt;
[[파일:Hoho5.png]]&lt;br /&gt;
**초기투자금액 10,000,000원으로 학습을 진행했다.&lt;br /&gt;
**위에서 트레이닝한 결과를 바탕으로 테스트를 진행했다.&lt;br /&gt;
[[파일:Hoho6.png]]&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
* 유스케이스 다이어그램&lt;br /&gt;
[[파일:hoho10.png]]&lt;br /&gt;
** 투자자가 각종 종목과 학습 정책 등을 선택한다.&lt;br /&gt;
** 선택을 기반으로 모델을 생성해서 가상 트레이딩을 진행할 때 수익률이 잘 나올 수  있는 지 확인한다.&lt;br /&gt;
** 학습 방법에 따른 비교 분석을 진행한다.&lt;br /&gt;
** 액터&lt;br /&gt;
*** 액터명 : 투자자&lt;br /&gt;
*** 설명 : 해당 프로그램을 투자의 지표로 사용하고 싶은 사람&lt;br /&gt;
** 설명&lt;br /&gt;
*** 종목선택 / 투자자&lt;br /&gt;
**** 투자자가 원하는 종목을 선택함.&lt;br /&gt;
**** 사건흐름_기본&lt;br /&gt;
****# 투자자가 원하는 종목을 선택한다.&lt;br /&gt;
**** 사전조건&lt;br /&gt;
***** 프로그램 실행&lt;br /&gt;
*** 강화학습 정책 선택 / 투자자&lt;br /&gt;
**** 투자자가 원하는 강화학습 정책을 선택(PPO,DQN)&lt;br /&gt;
**** 사건흐름_기본&lt;br /&gt;
****# 투자자가 원하는 강화학습 정책을 선택한다.&lt;br /&gt;
**** 사전조건&lt;br /&gt;
***** 프로그램 실행&lt;br /&gt;
*** 투자 전략 선택 / 투자자&lt;br /&gt;
**** 투자자가 원하는 전략을 선택함&lt;br /&gt;
**** 사건흐름_기본&lt;br /&gt;
****# 투자자가 원하는 전략을 선택한다&lt;br /&gt;
**** 사전 조건&lt;br /&gt;
***** 프로그램 실행&lt;br /&gt;
*** 강화학습 모델 생성 / 투자자&lt;br /&gt;
*** 모델학습 / 투자자&lt;br /&gt;
*** 가상 트레이딩 / 투자자&lt;br /&gt;
*** 실제 트레이딩 / 투자자&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| 이름&lt;br /&gt;
| 강화학습 모델 생성&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 이런겁니다.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
#호호&lt;br /&gt;
#이호&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|오로로&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* 클래스 다이어그램&lt;br /&gt;
[[파일:hoho9.png]]&lt;br /&gt;
** BaseTrainEnv&lt;br /&gt;
*** 실제 시장의 환경을 강화학습에서 모델링하기 위한 베이스 클래스이다. API를 이용한 투자와 csv데이터로 가상화되는 환경의 베이스가 된다.&lt;br /&gt;
*** reset()으로 환경을 초기화 한다.&lt;br /&gt;
*** step()으로 거래를 전달하면, 다음날의 가격(state), 현재 가치(reward), 시간흐름의 완료(done), 기타정보를 반환한다.&lt;br /&gt;
** APITrainEnv&lt;br /&gt;
*** 실제 투자API가 구현되는 클래스이다.&lt;br /&gt;
** CsvTrainEnv&lt;br /&gt;
*** csv 데이터를 이용해 투자 환경이 구현되는 클래스이다.&lt;br /&gt;
**CsvTrainSet&lt;br /&gt;
*** 투자 환경에 필요한 주가 데이터를 종합한 클래스이다.&lt;br /&gt;
*** currency : 기준 통화&lt;br /&gt;
*** exchange_rate : 기준 통화와 다른 통화의 환율&lt;br /&gt;
*** object_price : 거래 대상의 가격데이터&lt;br /&gt;
*** other_object_price : 거래 대상이외의 참고할 대상의 가격데이터&lt;br /&gt;
** PPOTrainModel &amp;amp; DQNTrainModel&lt;br /&gt;
*** trainEnv: 사용한 투자환경 클래스이다.&lt;br /&gt;
*** agent: 전략별 채택 가중치를 계산할 수 있는 오브젝트이다.&lt;br /&gt;
*** tradeStrategies: 트레이딩에서 사용할 전략 알고리즘의 배열이다.&lt;br /&gt;
** BaseTradeStrategy&lt;br /&gt;
*** 트레이딩에 사용할 수 있는 전략알고리즘을 추상화한 클래스이다.&lt;br /&gt;
*** getInvest의 출력값은 +(매수), -(매도)로 나타낸다.&lt;br /&gt;
&lt;br /&gt;
** &lt;br /&gt;
** 호호호&lt;br /&gt;
&lt;br /&gt;
* UI구성&lt;br /&gt;
** 호호호&lt;br /&gt;
** 호호호&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1481</id>
		<title>호호조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1481"/>
				<updated>2019-06-20T08:45:05Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : 광물시장에서 강화학습을 이용한 트레이딩 봇&lt;br /&gt;
&lt;br /&gt;
''' 영문 :  Trading-bot using Reinforcement Learning in a mineral market&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
호호&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
이동희 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920044 이홍석(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920037 이정한&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
*이전부터 사용자들이 많이 사용하던 시계열 분석 알고리즘과 다양한 지표들을 활용하여 강화학습을 이용하여 광물 가격을 예측한다.&lt;br /&gt;
*광물시장에서 시가에 영향을 미치는 다양한 요인이 존재한다.&lt;br /&gt;
*이미 밝혀진 다양한 요인들과 우리들이 생각한 요인들을 정리한다.&lt;br /&gt;
*이러한 요인들을 강화학습을 통해서 상관관계가 있는지 확인하고 실제로 수익을 낼 수 있는 모델과 학습을 진행한다.&lt;br /&gt;
*여러 가지 요인(차트 및 시장표준지수)들과 전략들을 가지고 하나의 광물을 대상으로 수익률이 높을 것으로 예상되는 매수, 매도 타이밍을 찾아낼 수 있는 것을 목표로 한다.&lt;br /&gt;
*다양한 강화학습 알고리즘 중 PPO(Proximal Policy Optimization), DQN(Deep Q Network)을 사용하여 구현해보고 어떤 방식이 더 잘 맞는지 분석해본다.&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*광물 시장은 매 시간마다 변동함&lt;br /&gt;
*광물 시장의 변동은 어떠한 요인들에 의해 값어치가 올라가기도 하고 내려가기도 함&lt;br /&gt;
*다양한 논문 Research 및 분석을 통해 값에 변화를 주는 요인들을 선별&lt;br /&gt;
*해당 요인들을 강화학습 모델의 환경에 넣어서 학습을 시킴&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
*강화학습을 이용하여 트레이딩을 자동으로 하는 봇을 만든다.&lt;br /&gt;
*광물 가격에 영향을 주는 요인들을 찾아보고 어느 정도 연관관계가 있는지 확인한다.&lt;br /&gt;
*연관관계가 있는 요인들을 모아서 강화학습모델에 적용시켜보고 실제로 효과가 있는지 확인해본다.&lt;br /&gt;
*효과가 컸던 요인들을 모아서 모의 투자 상황에서 수익률 분석을 해본다.&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
**자동 거래 시스템(ATS;Automated Trading System)은 1949년 Richard Donchian이 funds를 사고 파는 일련의 규칙을 사용하여 처음 소개되었다. 1980년대에는 John Henry와 같은 유명한 Trader들이 전략을 사용하기 시작하여, 규칙 기반 거래(Rule Based Trading)라는 개념이 대중화되었다. 현재는 미국 증권 거래소 주식 거래의 75% 이상이 자동 거래 시스템으로 이루어진다.&lt;br /&gt;
**최근에는 AI의 등장으로, 수많은 은행이나 투자자들이 AI를 활용하여 규칙 기반 거래나 직접 거래보다 훨씬 수익률이 높은 모델을 개발중이다. 딥러닝, 머신러닝 등의 기술을 활용하여 Trading Bot을 개발하고 있으며, 강화학습의 등장이후, 다양한 Trading Bot Project에서 강화학습을 도입하려는 움직임을 보이고 있다.&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
**거절 : 알고리즘 자동 매매 봇, [https://doi.org/10.8080/1020090067197]&lt;br /&gt;
***알고리즘 트레이딩 봇들을 모아서 관리할 수 있는 시스템&lt;br /&gt;
***통상적인 기술자가 충분히 만들 수 있는 것으로 판단하여 특허 거절&lt;br /&gt;
**등록 : 소셜트레이딩 방법, [http://kpat.kipris.or.kr/kpat/biblioa.do?method=biblioFrame]&lt;br /&gt;
***리더를 설정하여 해당 리더의 매매를 확인하고 추종하는 알고리즘&lt;br /&gt;
*기술 로드맵&lt;br /&gt;
**자동으로 거래를 할 수 있는 봇의 형태를 만들어야 하고, 모의투자를 통해 테스트할 수 있는 환경을 만들어야하기 때문에 투자, 증권사 API 및 모의투자 서버가 필요하다. 따라서, 키움증권, 대신증권, 이베스트투자증권 등의 회사의 API를 활용하고, 이 회사들의 모의투자 서버를 통해 수익률을 분석할 수 있다.&lt;br /&gt;
**강화학습은 환경이 주어지고, 해당 환경에 액션을 취하면 그에 따른 보상을 주면서 학습을 시킨다. 일반적인 딥 러닝은 어떤 요인들의 상호관계를 표현하지 못한다. 하지만 강화학습은 환경을 통해 어떤 요인들의 상호관계를 표현할 수 있다. 주식들은 서로 상호관계를 가지고 있으므로 강화학습을 이용하는 것이 유리한 방법이라 할 수 있다.&lt;br /&gt;
**현재에는 차트분석만으로 주식이나 광물시장에서의 매도, 매수타이밍을 잡아서 수익을 낼 수 있는 다양한 방법이 연구되고 있다. 이를 기술적 매매라고 부른다. 이러한 방법을 이용하여 알고리즘으로 구현하면 보다 안정적이고 수익률이 검증된 매매방법을 사용할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
**이러한 제품들은 시장에 공개적으로 나와있는 것을 쉽게 찾을 수 없다. 이러한 트레이딩봇 자체가 실제 주식시장에서 수익을 낼 수 있기 때문이다. 이윤을 창출하는 기업의 입장에서는 이 트레이딩 봇을 직접적으로 사용하지 않을 이유가 없다.&lt;br /&gt;
**또한 많은 사용자가 트레이딩 봇을 사용한다고 가정했을 때 모두가 이익을 볼 수 있는 것은 아니다. 같은 알고리즘을 사용하는 트레이딩 봇이 많으면 수익률이 줄어 들기 때문에 이러한 트레이딩 봇을 상용화하지 않은 것으로 보인다.&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! 알고리즘 !! 증권사 API !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 브레인듀드의 듀드303, 듀드프로&lt;br /&gt;
| 사용자의 조건검색식 사용 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 키움증권의 로보마켓&lt;br /&gt;
| 다양한 알고리즘 전략 제시 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 주식몰 오토핫키&lt;br /&gt;
| 해당하는 설명이 없음 || 해당하는 설명이 없음 || 마켓팅 위주의 사업 진행&lt;br /&gt;
|}&lt;br /&gt;
**위와 같이 알고리즘 트레이딩 봇을 만드는 회사 이외에도 증권사나 펀드회사 같은 경우에도 가치투자를 위한 분석자료를 제공하는 서비스를 제공할 수 있다.&lt;br /&gt;
**한국거래소에서는 종목마다 투자가치를 판단할 수 있는 자료를 제공한다. 이에 따라서 우리의 트레이딩봇과 경쟁해야 하는 부분을 가지고 있다.&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**위와 같이 여러가지 요인을 연구, 분석함에 따라서 트레이딩 봇을 만들 수 있다. 이 요인들의 적당한 조합으로 여러가지 특성을 띠는 트레이딩 봇을 개발할 수 있다.&lt;br /&gt;
**사용자들에게 원하는 이익구조를 선택할 수 있게 한다. 예를 들어 수익률이 크게 높지 않더라도 안정적인 투자를 원하는 사용자가 있고, 위험을 감수하더라도 높은 수익률을 원하는 사용자가 있다. 요인분석에 따라서 얻을 수 있는 특징들을 찾아내고 이러한 요인들로 주식트레이딩의 위험, 최고 수익률등이 결정될 것이다. &lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
*기존의 주식 트레이딩봇들은 우리가 직접 알고리즘을 구현하고 설계함에 따라서 작동했다. 사람의 직관을 이용해서 장기투자를 하는 것이 아니라 짧은 시간의 시장변동을 감지해서 조금씩 수익을 올리는 등의 알고리즘이 만들어져 왔다. 하지만 강화학습과 딥러닝을 사용해서 좀 더 효과적인 방향을 찾을 수 있다.&lt;br /&gt;
*딥러닝에서 사용하는 뉴럴 네트워크는 학습이 완료되었을 때 예측속도가 매우 빠르다는 특징을 갖고 있다. 해당 요인을 성공적으로 학습한 네트워크를 얻은 후에 봇을 사용할 때는 컴퓨팅의 성능을 크게 사용하지 않고 빠른 속도의 트레이딩이 가능하다.&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
*위에서 서술한 대로 만일 강화학습을 이용해서 주식 트레이딩봇이 성공적으로 수익을 낼 수 있는 구조라면, 이와 유사한 트레이딩봇이 많이 등장할 것이다. 더불어서 강화학습에 딥러닝을 적용시키면서 구성할 수 있는 선택의 여지가 많아졌다. 각기 학습하는 방법에 따라서 각기 다른 여러가지 전략이 등장할 수 있는 것이다. 따라서 기존에 알고리즘을 이용해서 매매를 진행하던 투자자들이 새롭게 등장하는 트레이딩봇의 투자전략에 영향을 받을 것이며, 시장의 특성은 더 다양하고 복잡해질 것이다.&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  단계별 세부개발 내용 !! 담당자 !! 개발기간 !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 강화학습 환경 설계&lt;br /&gt;
| 이홍석 || 3~4 || &lt;br /&gt;
|-&lt;br /&gt;
! 모의투자 환경구성 및 트레이딩 봇 구현&lt;br /&gt;
| 이정한 || 4~5 ||&lt;br /&gt;
|-&lt;br /&gt;
! 학습진행 및 정확도 개선&lt;br /&gt;
| 이홍석 || 4~6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 기존의 트레이딩 봇과의 성능 비교&lt;br /&gt;
| 이정한 || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 요인 연구 및 분석&lt;br /&gt;
| 이홍석, 이정한 || 3~6 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
*컴퓨터과학부 2014920044 이홍석 : 작품설계 및 개발&lt;br /&gt;
*컴퓨터과학부 2014920037 이정한 : 작품설계 및 개발&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  번호 !! 요 구 사 항 !! D or W !! 중요도&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 기존 시계열 분석 논문에 있는 전략(요소, Factor)들을 모듈로 개발 || D || 대 &lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 시계열 데이터 분석 모듈을 적용할 수 있는 강화학습 모델을 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| 모델을 학습시킬 수 있는 환경(Env, DB) 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| PPO와 DQN 강화학습 알고리즘을 구현하고 분석 || W || 중&lt;br /&gt;
|}&lt;br /&gt;
====설계 사양====&lt;br /&gt;
*목적계통도&lt;br /&gt;
[[그림:Hoho7.png]]&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
*기존에 연구되어진 시계열 분석 알고리즘을 이용한 결과물들은 제각기 집중하는 부분이 다르기 때문에, 그 정확도가 서로 배타적 일 것이다. 즉 어느 한 알고리즘이 우위의 정확도를 가질 경우 다른 알고리즘은 상대적으로 낮은 정확도를 가질 것이다.&lt;br /&gt;
**서로 정확성에 있어 배타적일 정도로 다른 시계열 분석 알고리즘을 찾아야한다.&lt;br /&gt;
**배타적인 TA 알고리즘 a0~an을 찾고, 구현한다.&lt;br /&gt;
*강화학습 예측 모델&lt;br /&gt;
[[그림:Hoho8.png]]&lt;br /&gt;
**강화학습을 이용한 시계열 데이터의 학습을 통해 예측 모델을 생성한다.&lt;br /&gt;
**예측 모델은 다음과 같이 크게 두가지 단계로 구성된다.&lt;br /&gt;
***직접 시계열 데이터를 분석 / 예측하는 전략적 알고리즘&lt;br /&gt;
****네이밍: a0, a1, … , an&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {예측된 다음 시계열 데이터=o0, o1, …, on}&lt;br /&gt;
***인공신경망을 응용하는, 적절한 전략적 알고리즘에 가중치를 부여하는 알고리즘&lt;br /&gt;
****네이밍: M&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {w0, w1, …, wn}&lt;br /&gt;
****어느 하나의 전략적 알고리즘을 선택하는 방식(hard decision)이 아니라, 여러 전략적 알고리즘의 정확도를 연판정(soft decision)하여 그 비중을 출력한다. &lt;br /&gt;
**a의 결과인 O와 b의 결과인 W를 곱하여 최종 예측치를 계산한다. (가중평균)&lt;br /&gt;
***Predict = OW&lt;br /&gt;
**이 Agent의 결과에 따라서 전략을 어떤 비율로 선택하게 된다. 이를 조합한 값으로 특정 광물에 대한 매수 혹은 매도할 값을 선택하게 된다.&lt;br /&gt;
*강화학습 환경 구성 요소&lt;br /&gt;
**에이전트&lt;br /&gt;
***state값들을 DNN을 사용하여 전략을 선택할 수 있는 값으로 추출한다.&lt;br /&gt;
***전략개수 의존적&lt;br /&gt;
**환경&lt;br /&gt;
***한 거래소의 해당 광물의 일봉csv데이터를 시간에 따라서 사용&lt;br /&gt;
***USD, EUR (KRW 기준) 지수 데이터&lt;br /&gt;
**리워드 공식&lt;br /&gt;
***해당 광물의 가치와 잔금을 합산한 값을 리워드로 사용한다.&lt;br /&gt;
**액션 리스트&lt;br /&gt;
***양수는 매수, 음수는 매도의 의미로 하나의 출력값을 사용한다.&lt;br /&gt;
****광물 거래는 1주 단위의 이산적인 값을 사용한다.&lt;br /&gt;
****최대, 최소값을 설정한다.&lt;br /&gt;
*학습 시나리오&lt;br /&gt;
**매 학습에서 어떤 기간을 랜덤으로 설정한다.&lt;br /&gt;
**이 시간동안의 광물시장 데이터를 사용해서 하루 단위로 액션을 진행한다.&lt;br /&gt;
**시계열 분석 부분에서 각각의 전략이 매수/매도값을 도출한다.&lt;br /&gt;
**강화학습 부분에서 가중치를 도출한다.&lt;br /&gt;
**가중치값과 매수/매도값을 각각 곱하고 누적한다.&lt;br /&gt;
**해당 값을 통해 매수/매도/유지를 진행한다.매도가 될 때까지 진행하고 매도시 수익률을 구한다.&lt;br /&gt;
**수익률이 증가하는 방향으로 학습을 한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
*강화학습 오픈소스) DQN을 이용한 트레이딩 학습 테스트&lt;br /&gt;
**학습개요&lt;br /&gt;
***아래는 국내 3개 IT기업의 일봉데이터를 대상으로 학습을 진행한 결과이다.&lt;br /&gt;
***구현에서는 가능한 만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
***아래의 그래프에서는 초기 투자금을 가지고 시간에 따라서 자산 가치가 어떻게 변하는지 보여준다.&lt;br /&gt;
**트레이닝 데이터로 학습 진행 중 자산가치변화&lt;br /&gt;
[[파일:Hoho1.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***초반에는 매우 가치가 크지만 불안정한 트레이딩을 하다가 후에 안정적인 수익률을 보여주는 것을 알 수 있다.&lt;br /&gt;
**테스트 데이터에서 거래중 자산가치 변화&lt;br /&gt;
[[파일:Hoho2.png]]&lt;br /&gt;
***빨간 선은 초기 투자 금액이다.&lt;br /&gt;
***테스트 데이터로 트레이딩 했을 때 투자금액 보다 평균 12%의 수익을 올릴 수 있었다.&lt;br /&gt;
***단순 시가만으로 학습을 하는 경우, 위와 같이 매우 불안정하므로 다양한 전략을 통해 개선이 필요하다.&lt;br /&gt;
*전략 오픈소스) 10일, 30일 이동평균선 교차점 검출을 이용한 매수 매도 알고리즘 트레이딩&lt;br /&gt;
**방법&lt;br /&gt;
***현재까지 크롤링한 일봉데이터에서 단기 이동평균선과 장기 이동평균선의 교차점은 중요한 매도, 매수타이밍의 후보가 될 수 있다. 장기적인 추세를 따라가는 것이 미래에 대체로 좋은 방향이 되므로 장기평균선이 상승할 떄 매수, 하락 할 때 매도를 하는 것이 좋다.&lt;br /&gt;
***구현에서는 가능한만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
**Ta-lib&lt;br /&gt;
***Technical Analysis LIbrary&lt;br /&gt;
***시장분석과 같은 시계열 데이터 알고리즘을 분석하는데 사용하는 라이브러리&lt;br /&gt;
***내부에서는 기본 시장지표를 받으면 이에 따라서 새로운 보조지표를 만들어주거나 패턴을 검출하는 함수 제공&lt;br /&gt;
***구현에서 이동평균선 지표를 얻을 때 사용.&lt;br /&gt;
**가상트레이딩에 따른 자산가치 변화&lt;br /&gt;
[[파일:Hoho3.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***위와 같이 장기간 트레이딩을 진행하는데 있어서 이동평균선 교차점을 이용한 트레이딩이 좋은 효과를 보이는 것을 알 수 있다.&lt;br /&gt;
*광물시장 시가데이터 크롤링&lt;br /&gt;
**한국거래소([http://www.krx.co.kr])&lt;br /&gt;
**거래소홈페이지에서 1년단위의 데이터를 csv로 내려받을 수 있다.&lt;br /&gt;
**아래는 2014년 - 2019년의 종가를 그래프로 나타낸 것이다.&lt;br /&gt;
[[파일:Hoho4.png]]&lt;br /&gt;
*DQN 소스코드를 사용한 광물시장 가상 트레이딩&lt;br /&gt;
**위에서 사용한 DQN방법을 금시장을 대상으로 트레이딩을 진행했다.&lt;br /&gt;
**구현방식은 위의 DQN을 이용한 트레이딩 테스트와 같다.&lt;br /&gt;
**2000회 트레이닝을 진행하여서 매회 트레이닝마다 다음과 같은 결과를 얻을 수 있었다.&lt;br /&gt;
[[파일:Hoho5.png]]&lt;br /&gt;
**초기투자금액 10,000,000원으로 학습을 진행했다.&lt;br /&gt;
**위에서 트레이닝한 결과를 바탕으로 테스트를 진행했다.&lt;br /&gt;
[[파일:Hoho6.png]]&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
* 유스케이스 다이어그램&lt;br /&gt;
[[파일:hoho10.png]]&lt;br /&gt;
** 투자자가 각종 종목과 학습 정책 등을 선택한다.&lt;br /&gt;
** 선택을 기반으로 모델을 생성해서 가상 트레이딩을 진행할 때 수익률이 잘 나올 수  있는 지 확인한다.&lt;br /&gt;
** 학습 방법에 따른 비교 분석을 진행한다.&lt;br /&gt;
** 액터&lt;br /&gt;
*** 액터명 : 투자자&lt;br /&gt;
*** 설명 : 해당 프로그램을 투자의 지표로 사용하고 싶은 사람&lt;br /&gt;
** 설명&lt;br /&gt;
*** 종목선택 / 투자자&lt;br /&gt;
**** 투자자가 원하는 종목을 선택함.&lt;br /&gt;
**** 사건흐름_기본&lt;br /&gt;
****# 투자자가 원하는 종목을 선택한다.&lt;br /&gt;
**** 사전조건&lt;br /&gt;
***** 프로그램 실행&lt;br /&gt;
*** 강화학습 정책 선택 / 투자자&lt;br /&gt;
**** 투자자가 원하는 강화학습 정책을 선택(PPO,DQN)&lt;br /&gt;
**** 사건흐름_기본&lt;br /&gt;
****# 투자자가 원하는 강화학습 정책을 선택한다.&lt;br /&gt;
**** 사전조건&lt;br /&gt;
***** 프로그램 실행&lt;br /&gt;
*** 투자 전략 선택 / 투자자&lt;br /&gt;
**** 투자자가 원하는 전략을 선택함&lt;br /&gt;
**** 사건흐름_기본&lt;br /&gt;
****# 투자자가 원하는 전략을 선택한다&lt;br /&gt;
**** 사전 조건&lt;br /&gt;
***** 프로그램 실행&lt;br /&gt;
*** 강화학습 모델 생성 / 투자자&lt;br /&gt;
*** 모델학습 / 투자자&lt;br /&gt;
*** 가상 트레이딩 / 투자자&lt;br /&gt;
*** 실제 트레이딩 / 투자자&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| 이름&lt;br /&gt;
| 강화학습 모델 생성&lt;br /&gt;
| 관련액터&lt;br /&gt;
| 투자자&lt;br /&gt;
|------&lt;br /&gt;
| 설명&lt;br /&gt;
|colspan=3| 이런겁니다.&lt;br /&gt;
|------&lt;br /&gt;
|기본 사건흐름&lt;br /&gt;
|colspan=3|&lt;br /&gt;
#호호&lt;br /&gt;
#이호&lt;br /&gt;
|------&lt;br /&gt;
|사전 조건&lt;br /&gt;
|colspan=3|오로로&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* 클래스 다이어그램&lt;br /&gt;
[[파일:hoho9.png]]&lt;br /&gt;
** BaseTrainEnv&lt;br /&gt;
*** 실제 시장의 환경을 강화학습에서 모델링하기 위한 베이스 클래스이다. API를 이용한 투자와 csv데이터로 가상화되는 환경의 베이스가 된다.&lt;br /&gt;
*** reset()으로 환경을 초기화 한다.&lt;br /&gt;
*** step()으로 거래를 전달하면, 다음날의 가격(state), 현재 가치(reward), 시간흐름의 완료(done), 기타정보를 반환한다.&lt;br /&gt;
** APITrainEnv&lt;br /&gt;
*** 실제 투자API가 구현되는 클래스이다.&lt;br /&gt;
** CsvTrainEnv&lt;br /&gt;
*** csv 데이터를 이용해 투자 환경이 구현되는 클래스이다.&lt;br /&gt;
**CsvTrainSet&lt;br /&gt;
*** 투자 환경에 필요한 주가 데이터를 종합한 클래스이다.&lt;br /&gt;
*** currency : 기준 통화&lt;br /&gt;
*** exchange_rate : 기준 통화와 다른 통화의 환율&lt;br /&gt;
*** object_price : 거래 대상의 가격데이터&lt;br /&gt;
*** other_object_price : 거래 대상이외의 참고할 대상의 가격데이터&lt;br /&gt;
** PPOTrainModel &amp;amp; DQNTrainModel&lt;br /&gt;
*** trainEnv: 사용한 투자환경 클래스이다.&lt;br /&gt;
*** agent: 전략별 채택 가중치를 계산할 수 있는 오브젝트이다.&lt;br /&gt;
*** tradeStrategies: 트레이딩에서 사용할 전략 알고리즘의 배열이다.&lt;br /&gt;
** BaseTradeStrategy&lt;br /&gt;
*** 트레이딩에 사용할 수 있는 전략알고리즘을 추상화한 클래스이다.&lt;br /&gt;
*** getInvest의 출력값은 +(매수), -(매도)로 나타낸다.&lt;br /&gt;
&lt;br /&gt;
** &lt;br /&gt;
** 호호호&lt;br /&gt;
&lt;br /&gt;
* UI구성&lt;br /&gt;
** 호호호&lt;br /&gt;
** 호호호&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1472</id>
		<title>호호조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1472"/>
				<updated>2019-06-20T08:39:35Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : 광물시장에서 강화학습을 이용한 트레이딩 봇&lt;br /&gt;
&lt;br /&gt;
''' 영문 :  Trading-bot using Reinforcement Learning in a mineral market&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
호호&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
이동희 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920044 이홍석(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920037 이정한&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
*이전부터 사용자들이 많이 사용하던 시계열 분석 알고리즘과 다양한 지표들을 활용하여 강화학습을 이용하여 광물 가격을 예측한다.&lt;br /&gt;
*광물시장에서 시가에 영향을 미치는 다양한 요인이 존재한다.&lt;br /&gt;
*이미 밝혀진 다양한 요인들과 우리들이 생각한 요인들을 정리한다.&lt;br /&gt;
*이러한 요인들을 강화학습을 통해서 상관관계가 있는지 확인하고 실제로 수익을 낼 수 있는 모델과 학습을 진행한다.&lt;br /&gt;
*여러 가지 요인(차트 및 시장표준지수)들과 전략들을 가지고 하나의 광물을 대상으로 수익률이 높을 것으로 예상되는 매수, 매도 타이밍을 찾아낼 수 있는 것을 목표로 한다.&lt;br /&gt;
*다양한 강화학습 알고리즘 중 PPO(Proximal Policy Optimization), DQN(Deep Q Network)을 사용하여 구현해보고 어떤 방식이 더 잘 맞는지 분석해본다.&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*광물 시장은 매 시간마다 변동함&lt;br /&gt;
*광물 시장의 변동은 어떠한 요인들에 의해 값어치가 올라가기도 하고 내려가기도 함&lt;br /&gt;
*다양한 논문 Research 및 분석을 통해 값에 변화를 주는 요인들을 선별&lt;br /&gt;
*해당 요인들을 강화학습 모델의 환경에 넣어서 학습을 시킴&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
*강화학습을 이용하여 트레이딩을 자동으로 하는 봇을 만든다.&lt;br /&gt;
*광물 가격에 영향을 주는 요인들을 찾아보고 어느 정도 연관관계가 있는지 확인한다.&lt;br /&gt;
*연관관계가 있는 요인들을 모아서 강화학습모델에 적용시켜보고 실제로 효과가 있는지 확인해본다.&lt;br /&gt;
*효과가 컸던 요인들을 모아서 모의 투자 상황에서 수익률 분석을 해본다.&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
**자동 거래 시스템(ATS;Automated Trading System)은 1949년 Richard Donchian이 funds를 사고 파는 일련의 규칙을 사용하여 처음 소개되었다. 1980년대에는 John Henry와 같은 유명한 Trader들이 전략을 사용하기 시작하여, 규칙 기반 거래(Rule Based Trading)라는 개념이 대중화되었다. 현재는 미국 증권 거래소 주식 거래의 75% 이상이 자동 거래 시스템으로 이루어진다.&lt;br /&gt;
**최근에는 AI의 등장으로, 수많은 은행이나 투자자들이 AI를 활용하여 규칙 기반 거래나 직접 거래보다 훨씬 수익률이 높은 모델을 개발중이다. 딥러닝, 머신러닝 등의 기술을 활용하여 Trading Bot을 개발하고 있으며, 강화학습의 등장이후, 다양한 Trading Bot Project에서 강화학습을 도입하려는 움직임을 보이고 있다.&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
**거절 : 알고리즘 자동 매매 봇, [https://doi.org/10.8080/1020090067197]&lt;br /&gt;
***알고리즘 트레이딩 봇들을 모아서 관리할 수 있는 시스템&lt;br /&gt;
***통상적인 기술자가 충분히 만들 수 있는 것으로 판단하여 특허 거절&lt;br /&gt;
**등록 : 소셜트레이딩 방법, [http://kpat.kipris.or.kr/kpat/biblioa.do?method=biblioFrame]&lt;br /&gt;
***리더를 설정하여 해당 리더의 매매를 확인하고 추종하는 알고리즘&lt;br /&gt;
*기술 로드맵&lt;br /&gt;
**자동으로 거래를 할 수 있는 봇의 형태를 만들어야 하고, 모의투자를 통해 테스트할 수 있는 환경을 만들어야하기 때문에 투자, 증권사 API 및 모의투자 서버가 필요하다. 따라서, 키움증권, 대신증권, 이베스트투자증권 등의 회사의 API를 활용하고, 이 회사들의 모의투자 서버를 통해 수익률을 분석할 수 있다.&lt;br /&gt;
**강화학습은 환경이 주어지고, 해당 환경에 액션을 취하면 그에 따른 보상을 주면서 학습을 시킨다. 일반적인 딥 러닝은 어떤 요인들의 상호관계를 표현하지 못한다. 하지만 강화학습은 환경을 통해 어떤 요인들의 상호관계를 표현할 수 있다. 주식들은 서로 상호관계를 가지고 있으므로 강화학습을 이용하는 것이 유리한 방법이라 할 수 있다.&lt;br /&gt;
**현재에는 차트분석만으로 주식이나 광물시장에서의 매도, 매수타이밍을 잡아서 수익을 낼 수 있는 다양한 방법이 연구되고 있다. 이를 기술적 매매라고 부른다. 이러한 방법을 이용하여 알고리즘으로 구현하면 보다 안정적이고 수익률이 검증된 매매방법을 사용할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
**이러한 제품들은 시장에 공개적으로 나와있는 것을 쉽게 찾을 수 없다. 이러한 트레이딩봇 자체가 실제 주식시장에서 수익을 낼 수 있기 때문이다. 이윤을 창출하는 기업의 입장에서는 이 트레이딩 봇을 직접적으로 사용하지 않을 이유가 없다.&lt;br /&gt;
**또한 많은 사용자가 트레이딩 봇을 사용한다고 가정했을 때 모두가 이익을 볼 수 있는 것은 아니다. 같은 알고리즘을 사용하는 트레이딩 봇이 많으면 수익률이 줄어 들기 때문에 이러한 트레이딩 봇을 상용화하지 않은 것으로 보인다.&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! 알고리즘 !! 증권사 API !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 브레인듀드의 듀드303, 듀드프로&lt;br /&gt;
| 사용자의 조건검색식 사용 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 키움증권의 로보마켓&lt;br /&gt;
| 다양한 알고리즘 전략 제시 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 주식몰 오토핫키&lt;br /&gt;
| 해당하는 설명이 없음 || 해당하는 설명이 없음 || 마켓팅 위주의 사업 진행&lt;br /&gt;
|}&lt;br /&gt;
**위와 같이 알고리즘 트레이딩 봇을 만드는 회사 이외에도 증권사나 펀드회사 같은 경우에도 가치투자를 위한 분석자료를 제공하는 서비스를 제공할 수 있다.&lt;br /&gt;
**한국거래소에서는 종목마다 투자가치를 판단할 수 있는 자료를 제공한다. 이에 따라서 우리의 트레이딩봇과 경쟁해야 하는 부분을 가지고 있다.&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**위와 같이 여러가지 요인을 연구, 분석함에 따라서 트레이딩 봇을 만들 수 있다. 이 요인들의 적당한 조합으로 여러가지 특성을 띠는 트레이딩 봇을 개발할 수 있다.&lt;br /&gt;
**사용자들에게 원하는 이익구조를 선택할 수 있게 한다. 예를 들어 수익률이 크게 높지 않더라도 안정적인 투자를 원하는 사용자가 있고, 위험을 감수하더라도 높은 수익률을 원하는 사용자가 있다. 요인분석에 따라서 얻을 수 있는 특징들을 찾아내고 이러한 요인들로 주식트레이딩의 위험, 최고 수익률등이 결정될 것이다. &lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
*기존의 주식 트레이딩봇들은 우리가 직접 알고리즘을 구현하고 설계함에 따라서 작동했다. 사람의 직관을 이용해서 장기투자를 하는 것이 아니라 짧은 시간의 시장변동을 감지해서 조금씩 수익을 올리는 등의 알고리즘이 만들어져 왔다. 하지만 강화학습과 딥러닝을 사용해서 좀 더 효과적인 방향을 찾을 수 있다.&lt;br /&gt;
*딥러닝에서 사용하는 뉴럴 네트워크는 학습이 완료되었을 때 예측속도가 매우 빠르다는 특징을 갖고 있다. 해당 요인을 성공적으로 학습한 네트워크를 얻은 후에 봇을 사용할 때는 컴퓨팅의 성능을 크게 사용하지 않고 빠른 속도의 트레이딩이 가능하다.&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
*위에서 서술한 대로 만일 강화학습을 이용해서 주식 트레이딩봇이 성공적으로 수익을 낼 수 있는 구조라면, 이와 유사한 트레이딩봇이 많이 등장할 것이다. 더불어서 강화학습에 딥러닝을 적용시키면서 구성할 수 있는 선택의 여지가 많아졌다. 각기 학습하는 방법에 따라서 각기 다른 여러가지 전략이 등장할 수 있는 것이다. 따라서 기존에 알고리즘을 이용해서 매매를 진행하던 투자자들이 새롭게 등장하는 트레이딩봇의 투자전략에 영향을 받을 것이며, 시장의 특성은 더 다양하고 복잡해질 것이다.&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  단계별 세부개발 내용 !! 담당자 !! 개발기간 !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 강화학습 환경 설계&lt;br /&gt;
| 이홍석 || 3~4 || &lt;br /&gt;
|-&lt;br /&gt;
! 모의투자 환경구성 및 트레이딩 봇 구현&lt;br /&gt;
| 이정한 || 4~5 ||&lt;br /&gt;
|-&lt;br /&gt;
! 학습진행 및 정확도 개선&lt;br /&gt;
| 이홍석 || 4~6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 기존의 트레이딩 봇과의 성능 비교&lt;br /&gt;
| 이정한 || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 요인 연구 및 분석&lt;br /&gt;
| 이홍석, 이정한 || 3~6 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
*컴퓨터과학부 2014920044 이홍석 : 작품설계 및 개발&lt;br /&gt;
*컴퓨터과학부 2014920037 이정한 : 작품설계 및 개발&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  번호 !! 요 구 사 항 !! D or W !! 중요도&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 기존 시계열 분석 논문에 있는 전략(요소, Factor)들을 모듈로 개발 || D || 대 &lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 시계열 데이터 분석 모듈을 적용할 수 있는 강화학습 모델을 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| 모델을 학습시킬 수 있는 환경(Env, DB) 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| PPO와 DQN 강화학습 알고리즘을 구현하고 분석 || W || 중&lt;br /&gt;
|}&lt;br /&gt;
====설계 사양====&lt;br /&gt;
*목적계통도&lt;br /&gt;
[[그림:Hoho7.png]]&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
*기존에 연구되어진 시계열 분석 알고리즘을 이용한 결과물들은 제각기 집중하는 부분이 다르기 때문에, 그 정확도가 서로 배타적 일 것이다. 즉 어느 한 알고리즘이 우위의 정확도를 가질 경우 다른 알고리즘은 상대적으로 낮은 정확도를 가질 것이다.&lt;br /&gt;
**서로 정확성에 있어 배타적일 정도로 다른 시계열 분석 알고리즘을 찾아야한다.&lt;br /&gt;
**배타적인 TA 알고리즘 a0~an을 찾고, 구현한다.&lt;br /&gt;
*강화학습 예측 모델&lt;br /&gt;
[[그림:Hoho8.png]]&lt;br /&gt;
**강화학습을 이용한 시계열 데이터의 학습을 통해 예측 모델을 생성한다.&lt;br /&gt;
**예측 모델은 다음과 같이 크게 두가지 단계로 구성된다.&lt;br /&gt;
***직접 시계열 데이터를 분석 / 예측하는 전략적 알고리즘&lt;br /&gt;
****네이밍: a0, a1, … , an&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {예측된 다음 시계열 데이터=o0, o1, …, on}&lt;br /&gt;
***인공신경망을 응용하는, 적절한 전략적 알고리즘에 가중치를 부여하는 알고리즘&lt;br /&gt;
****네이밍: M&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {w0, w1, …, wn}&lt;br /&gt;
****어느 하나의 전략적 알고리즘을 선택하는 방식(hard decision)이 아니라, 여러 전략적 알고리즘의 정확도를 연판정(soft decision)하여 그 비중을 출력한다. &lt;br /&gt;
**a의 결과인 O와 b의 결과인 W를 곱하여 최종 예측치를 계산한다. (가중평균)&lt;br /&gt;
***Predict = OW&lt;br /&gt;
**이 Agent의 결과에 따라서 전략을 어떤 비율로 선택하게 된다. 이를 조합한 값으로 특정 광물에 대한 매수 혹은 매도할 값을 선택하게 된다.&lt;br /&gt;
*강화학습 환경 구성 요소&lt;br /&gt;
**에이전트&lt;br /&gt;
***state값들을 DNN을 사용하여 전략을 선택할 수 있는 값으로 추출한다.&lt;br /&gt;
***전략개수 의존적&lt;br /&gt;
**환경&lt;br /&gt;
***한 거래소의 해당 광물의 일봉csv데이터를 시간에 따라서 사용&lt;br /&gt;
***USD, EUR (KRW 기준) 지수 데이터&lt;br /&gt;
**리워드 공식&lt;br /&gt;
***해당 광물의 가치와 잔금을 합산한 값을 리워드로 사용한다.&lt;br /&gt;
**액션 리스트&lt;br /&gt;
***양수는 매수, 음수는 매도의 의미로 하나의 출력값을 사용한다.&lt;br /&gt;
****광물 거래는 1주 단위의 이산적인 값을 사용한다.&lt;br /&gt;
****최대, 최소값을 설정한다.&lt;br /&gt;
*학습 시나리오&lt;br /&gt;
**매 학습에서 어떤 기간을 랜덤으로 설정한다.&lt;br /&gt;
**이 시간동안의 광물시장 데이터를 사용해서 하루 단위로 액션을 진행한다.&lt;br /&gt;
**시계열 분석 부분에서 각각의 전략이 매수/매도값을 도출한다.&lt;br /&gt;
**강화학습 부분에서 가중치를 도출한다.&lt;br /&gt;
**가중치값과 매수/매도값을 각각 곱하고 누적한다.&lt;br /&gt;
**해당 값을 통해 매수/매도/유지를 진행한다.매도가 될 때까지 진행하고 매도시 수익률을 구한다.&lt;br /&gt;
**수익률이 증가하는 방향으로 학습을 한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
*강화학습 오픈소스) DQN을 이용한 트레이딩 학습 테스트&lt;br /&gt;
**학습개요&lt;br /&gt;
***아래는 국내 3개 IT기업의 일봉데이터를 대상으로 학습을 진행한 결과이다.&lt;br /&gt;
***구현에서는 가능한 만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
***아래의 그래프에서는 초기 투자금을 가지고 시간에 따라서 자산 가치가 어떻게 변하는지 보여준다.&lt;br /&gt;
**트레이닝 데이터로 학습 진행 중 자산가치변화&lt;br /&gt;
[[파일:Hoho1.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***초반에는 매우 가치가 크지만 불안정한 트레이딩을 하다가 후에 안정적인 수익률을 보여주는 것을 알 수 있다.&lt;br /&gt;
**테스트 데이터에서 거래중 자산가치 변화&lt;br /&gt;
[[파일:Hoho2.png]]&lt;br /&gt;
***빨간 선은 초기 투자 금액이다.&lt;br /&gt;
***테스트 데이터로 트레이딩 했을 때 투자금액 보다 평균 12%의 수익을 올릴 수 있었다.&lt;br /&gt;
***단순 시가만으로 학습을 하는 경우, 위와 같이 매우 불안정하므로 다양한 전략을 통해 개선이 필요하다.&lt;br /&gt;
*전략 오픈소스) 10일, 30일 이동평균선 교차점 검출을 이용한 매수 매도 알고리즘 트레이딩&lt;br /&gt;
**방법&lt;br /&gt;
***현재까지 크롤링한 일봉데이터에서 단기 이동평균선과 장기 이동평균선의 교차점은 중요한 매도, 매수타이밍의 후보가 될 수 있다. 장기적인 추세를 따라가는 것이 미래에 대체로 좋은 방향이 되므로 장기평균선이 상승할 떄 매수, 하락 할 때 매도를 하는 것이 좋다.&lt;br /&gt;
***구현에서는 가능한만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
**Ta-lib&lt;br /&gt;
***Technical Analysis LIbrary&lt;br /&gt;
***시장분석과 같은 시계열 데이터 알고리즘을 분석하는데 사용하는 라이브러리&lt;br /&gt;
***내부에서는 기본 시장지표를 받으면 이에 따라서 새로운 보조지표를 만들어주거나 패턴을 검출하는 함수 제공&lt;br /&gt;
***구현에서 이동평균선 지표를 얻을 때 사용.&lt;br /&gt;
**가상트레이딩에 따른 자산가치 변화&lt;br /&gt;
[[파일:Hoho3.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***위와 같이 장기간 트레이딩을 진행하는데 있어서 이동평균선 교차점을 이용한 트레이딩이 좋은 효과를 보이는 것을 알 수 있다.&lt;br /&gt;
*광물시장 시가데이터 크롤링&lt;br /&gt;
**한국거래소([http://www.krx.co.kr])&lt;br /&gt;
**거래소홈페이지에서 1년단위의 데이터를 csv로 내려받을 수 있다.&lt;br /&gt;
**아래는 2014년 - 2019년의 종가를 그래프로 나타낸 것이다.&lt;br /&gt;
[[파일:Hoho4.png]]&lt;br /&gt;
*DQN 소스코드를 사용한 광물시장 가상 트레이딩&lt;br /&gt;
**위에서 사용한 DQN방법을 금시장을 대상으로 트레이딩을 진행했다.&lt;br /&gt;
**구현방식은 위의 DQN을 이용한 트레이딩 테스트와 같다.&lt;br /&gt;
**2000회 트레이닝을 진행하여서 매회 트레이닝마다 다음과 같은 결과를 얻을 수 있었다.&lt;br /&gt;
[[파일:Hoho5.png]]&lt;br /&gt;
**초기투자금액 10,000,000원으로 학습을 진행했다.&lt;br /&gt;
**위에서 트레이닝한 결과를 바탕으로 테스트를 진행했다.&lt;br /&gt;
[[파일:Hoho6.png]]&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
* 유스케이스 다이어그램&lt;br /&gt;
[[파일:hoho10.png]]&lt;br /&gt;
** 투자자가 각종 종목과 학습 정책 등을 선택한다.&lt;br /&gt;
** 선택을 기반으로 모델을 생성해서 가상 트레이딩을 진행할 때 수익률이 잘 나올 수  있는 지 확인한다.&lt;br /&gt;
** 학습 방법에 따른 비교 분석을 진행한다.&lt;br /&gt;
** 액터&lt;br /&gt;
*** 액터명 : 투자자&lt;br /&gt;
*** 설명 : 해당 프로그램을 투자의 지표로 사용하고 싶은 사람&lt;br /&gt;
** 설명&lt;br /&gt;
*** 종목선택 / 투자자&lt;br /&gt;
**** 투자자가 원하는 종목을 선택함.&lt;br /&gt;
**** 사건흐름_기본&lt;br /&gt;
****# 투자자가 원하는 종목을 선택한다.&lt;br /&gt;
**** 사전조건&lt;br /&gt;
***** 프로그램 실행&lt;br /&gt;
*** 강화학습 정책 선택 / 투자자&lt;br /&gt;
**** 투자자가 원하는 강화학습 정책을 선택(PPO,DQN)&lt;br /&gt;
**** 사건흐름_기본&lt;br /&gt;
****# 투자자가 원하는 강화학습 정책을 선택한다.&lt;br /&gt;
**** 사전조건&lt;br /&gt;
***** 프로그램 실행&lt;br /&gt;
*** 투자 전략 선택 / 투자자&lt;br /&gt;
**** 투자자가 원하는 전략을 선택함&lt;br /&gt;
**** 사건흐름_기본&lt;br /&gt;
****# 투자자가 원하는 전략을 선택한다&lt;br /&gt;
**** 사전 조건&lt;br /&gt;
***** 프로그램 실행&lt;br /&gt;
*** 강화학습 모델 생성 / 투자자&lt;br /&gt;
*** 모델학습 / 투자자&lt;br /&gt;
*** 가상 트레이딩 / 투자자&lt;br /&gt;
*** 실제 트레이딩 / 투자자&lt;br /&gt;
&lt;br /&gt;
* 클래스 다이어그램&lt;br /&gt;
[[파일:hoho9.png]]&lt;br /&gt;
** BaseTrainEnv&lt;br /&gt;
*** 실제 시장의 환경을 강화학습에서 모델링하기 위한 베이스 클래스이다. API를 이용한 투자와 csv데이터로 가상화되는 환경의 베이스가 된다.&lt;br /&gt;
*** reset()으로 환경을 초기화 한다.&lt;br /&gt;
*** step()으로 거래를 전달하면, 다음날의 가격(state), 현재 가치(reward), 시간흐름의 완료(done), 기타정보를 반환한다.&lt;br /&gt;
** APITrainEnv&lt;br /&gt;
*** 실제 투자API가 구현되는 클래스이다.&lt;br /&gt;
** CsvTrainEnv&lt;br /&gt;
*** csv 데이터를 이용해 투자 환경이 구현되는 클래스이다.&lt;br /&gt;
**CsvTrainSet&lt;br /&gt;
*** 투자 환경에 필요한 주가 데이터를 종합한 클래스이다.&lt;br /&gt;
*** currency : 기준 통화&lt;br /&gt;
*** exchange_rate : 기준 통화와 다른 통화의 환율&lt;br /&gt;
*** object_price : 거래 대상의 가격데이터&lt;br /&gt;
*** other_object_price : 거래 대상이외의 참고할 대상의 가격데이터&lt;br /&gt;
** PPOTrainModel &amp;amp; DQNTrainModel&lt;br /&gt;
*** trainEnv: 사용한 투자환경 클래스이다.&lt;br /&gt;
*** agent: 전략별 채택 가중치를 계산할 수 있는 오브젝트이다.&lt;br /&gt;
*** tradeStrategies: 트레이딩에서 사용할 전략 알고리즘의 배열이다.&lt;br /&gt;
** BaseTradeStrategy&lt;br /&gt;
*** 트레이딩에 사용할 수 있는 전략알고리즘을 추상화한 클래스이다.&lt;br /&gt;
*** getInvest의 출력값은 +(매수), -(매도)로 나타낸다.&lt;br /&gt;
&lt;br /&gt;
** &lt;br /&gt;
** 호호호&lt;br /&gt;
&lt;br /&gt;
* UI구성&lt;br /&gt;
** 호호호&lt;br /&gt;
** 호호호&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1449</id>
		<title>호호조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1449"/>
				<updated>2019-06-20T06:05:12Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : 광물시장에서 강화학습을 이용한 트레이딩 봇&lt;br /&gt;
&lt;br /&gt;
''' 영문 :  Trading-bot using Reinforcement Learning in a mineral market&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
호호&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
이동희 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920044 이홍석(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920037 이정한&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
*이전부터 사용자들이 많이 사용하던 시계열 분석 알고리즘과 다양한 지표들을 활용하여 강화학습을 이용하여 광물 가격을 예측한다.&lt;br /&gt;
*광물시장에서 시가에 영향을 미치는 다양한 요인이 존재한다.&lt;br /&gt;
*이미 밝혀진 다양한 요인들과 우리들이 생각한 요인들을 정리한다.&lt;br /&gt;
*이러한 요인들을 강화학습을 통해서 상관관계가 있는지 확인하고 실제로 수익을 낼 수 있는 모델과 학습을 진행한다.&lt;br /&gt;
*여러 가지 요인(차트 및 시장표준지수)들과 전략들을 가지고 하나의 광물을 대상으로 수익률이 높을 것으로 예상되는 매수, 매도 타이밍을 찾아낼 수 있는 것을 목표로 한다.&lt;br /&gt;
*다양한 강화학습 알고리즘 중 PPO(Proximal Policy Optimization), DQN(Deep Q Network)을 사용하여 구현해보고 어떤 방식이 더 잘 맞는지 분석해본다.&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*광물 시장은 매 시간마다 변동함&lt;br /&gt;
*광물 시장의 변동은 어떠한 요인들에 의해 값어치가 올라가기도 하고 내려가기도 함&lt;br /&gt;
*다양한 논문 Research 및 분석을 통해 값에 변화를 주는 요인들을 선별&lt;br /&gt;
*해당 요인들을 강화학습 모델의 환경에 넣어서 학습을 시킴&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
*강화학습을 이용하여 트레이딩을 자동으로 하는 봇을 만든다.&lt;br /&gt;
*광물 가격에 영향을 주는 요인들을 찾아보고 어느 정도 연관관계가 있는지 확인한다.&lt;br /&gt;
*연관관계가 있는 요인들을 모아서 강화학습모델에 적용시켜보고 실제로 효과가 있는지 확인해본다.&lt;br /&gt;
*효과가 컸던 요인들을 모아서 모의 투자 상황에서 수익률 분석을 해본다.&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
**자동 거래 시스템(ATS;Automated Trading System)은 1949년 Richard Donchian이 funds를 사고 파는 일련의 규칙을 사용하여 처음 소개되었다. 1980년대에는 John Henry와 같은 유명한 Trader들이 전략을 사용하기 시작하여, 규칙 기반 거래(Rule Based Trading)라는 개념이 대중화되었다. 현재는 미국 증권 거래소 주식 거래의 75% 이상이 자동 거래 시스템으로 이루어진다.&lt;br /&gt;
**최근에는 AI의 등장으로, 수많은 은행이나 투자자들이 AI를 활용하여 규칙 기반 거래나 직접 거래보다 훨씬 수익률이 높은 모델을 개발중이다. 딥러닝, 머신러닝 등의 기술을 활용하여 Trading Bot을 개발하고 있으며, 강화학습의 등장이후, 다양한 Trading Bot Project에서 강화학습을 도입하려는 움직임을 보이고 있다.&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
**거절 : 알고리즘 자동 매매 봇, [https://doi.org/10.8080/1020090067197]&lt;br /&gt;
***알고리즘 트레이딩 봇들을 모아서 관리할 수 있는 시스템&lt;br /&gt;
***통상적인 기술자가 충분히 만들 수 있는 것으로 판단하여 특허 거절&lt;br /&gt;
**등록 : 소셜트레이딩 방법, [http://kpat.kipris.or.kr/kpat/biblioa.do?method=biblioFrame]&lt;br /&gt;
***리더를 설정하여 해당 리더의 매매를 확인하고 추종하는 알고리즘&lt;br /&gt;
*기술 로드맵&lt;br /&gt;
**자동으로 거래를 할 수 있는 봇의 형태를 만들어야 하고, 모의투자를 통해 테스트할 수 있는 환경을 만들어야하기 때문에 투자, 증권사 API 및 모의투자 서버가 필요하다. 따라서, 키움증권, 대신증권, 이베스트투자증권 등의 회사의 API를 활용하고, 이 회사들의 모의투자 서버를 통해 수익률을 분석할 수 있다.&lt;br /&gt;
**강화학습은 환경이 주어지고, 해당 환경에 액션을 취하면 그에 따른 보상을 주면서 학습을 시킨다. 일반적인 딥 러닝은 어떤 요인들의 상호관계를 표현하지 못한다. 하지만 강화학습은 환경을 통해 어떤 요인들의 상호관계를 표현할 수 있다. 주식들은 서로 상호관계를 가지고 있으므로 강화학습을 이용하는 것이 유리한 방법이라 할 수 있다.&lt;br /&gt;
**현재에는 차트분석만으로 주식이나 광물시장에서의 매도, 매수타이밍을 잡아서 수익을 낼 수 있는 다양한 방법이 연구되고 있다. 이를 기술적 매매라고 부른다. 이러한 방법을 이용하여 알고리즘으로 구현하면 보다 안정적이고 수익률이 검증된 매매방법을 사용할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
**이러한 제품들은 시장에 공개적으로 나와있는 것을 쉽게 찾을 수 없다. 이러한 트레이딩봇 자체가 실제 주식시장에서 수익을 낼 수 있기 때문이다. 이윤을 창출하는 기업의 입장에서는 이 트레이딩 봇을 직접적으로 사용하지 않을 이유가 없다.&lt;br /&gt;
**또한 많은 사용자가 트레이딩 봇을 사용한다고 가정했을 때 모두가 이익을 볼 수 있는 것은 아니다. 같은 알고리즘을 사용하는 트레이딩 봇이 많으면 수익률이 줄어 들기 때문에 이러한 트레이딩 봇을 상용화하지 않은 것으로 보인다.&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! 알고리즘 !! 증권사 API !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 브레인듀드의 듀드303, 듀드프로&lt;br /&gt;
| 사용자의 조건검색식 사용 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 키움증권의 로보마켓&lt;br /&gt;
| 다양한 알고리즘 전략 제시 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 주식몰 오토핫키&lt;br /&gt;
| 해당하는 설명이 없음 || 해당하는 설명이 없음 || 마켓팅 위주의 사업 진행&lt;br /&gt;
|}&lt;br /&gt;
**위와 같이 알고리즘 트레이딩 봇을 만드는 회사 이외에도 증권사나 펀드회사 같은 경우에도 가치투자를 위한 분석자료를 제공하는 서비스를 제공할 수 있다.&lt;br /&gt;
**한국거래소에서는 종목마다 투자가치를 판단할 수 있는 자료를 제공한다. 이에 따라서 우리의 트레이딩봇과 경쟁해야 하는 부분을 가지고 있다.&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**위와 같이 여러가지 요인을 연구, 분석함에 따라서 트레이딩 봇을 만들 수 있다. 이 요인들의 적당한 조합으로 여러가지 특성을 띠는 트레이딩 봇을 개발할 수 있다.&lt;br /&gt;
**사용자들에게 원하는 이익구조를 선택할 수 있게 한다. 예를 들어 수익률이 크게 높지 않더라도 안정적인 투자를 원하는 사용자가 있고, 위험을 감수하더라도 높은 수익률을 원하는 사용자가 있다. 요인분석에 따라서 얻을 수 있는 특징들을 찾아내고 이러한 요인들로 주식트레이딩의 위험, 최고 수익률등이 결정될 것이다. &lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
*기존의 주식 트레이딩봇들은 우리가 직접 알고리즘을 구현하고 설계함에 따라서 작동했다. 사람의 직관을 이용해서 장기투자를 하는 것이 아니라 짧은 시간의 시장변동을 감지해서 조금씩 수익을 올리는 등의 알고리즘이 만들어져 왔다. 하지만 강화학습과 딥러닝을 사용해서 좀 더 효과적인 방향을 찾을 수 있다.&lt;br /&gt;
*딥러닝에서 사용하는 뉴럴 네트워크는 학습이 완료되었을 때 예측속도가 매우 빠르다는 특징을 갖고 있다. 해당 요인을 성공적으로 학습한 네트워크를 얻은 후에 봇을 사용할 때는 컴퓨팅의 성능을 크게 사용하지 않고 빠른 속도의 트레이딩이 가능하다.&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
*위에서 서술한 대로 만일 강화학습을 이용해서 주식 트레이딩봇이 성공적으로 수익을 낼 수 있는 구조라면, 이와 유사한 트레이딩봇이 많이 등장할 것이다. 더불어서 강화학습에 딥러닝을 적용시키면서 구성할 수 있는 선택의 여지가 많아졌다. 각기 학습하는 방법에 따라서 각기 다른 여러가지 전략이 등장할 수 있는 것이다. 따라서 기존에 알고리즘을 이용해서 매매를 진행하던 투자자들이 새롭게 등장하는 트레이딩봇의 투자전략에 영향을 받을 것이며, 시장의 특성은 더 다양하고 복잡해질 것이다.&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  단계별 세부개발 내용 !! 담당자 !! 개발기간 !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 강화학습 환경 설계&lt;br /&gt;
| 이홍석 || 3~4 || &lt;br /&gt;
|-&lt;br /&gt;
! 모의투자 환경구성 및 트레이딩 봇 구현&lt;br /&gt;
| 이정한 || 4~5 ||&lt;br /&gt;
|-&lt;br /&gt;
! 학습진행 및 정확도 개선&lt;br /&gt;
| 이홍석 || 4~6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 기존의 트레이딩 봇과의 성능 비교&lt;br /&gt;
| 이정한 || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 요인 연구 및 분석&lt;br /&gt;
| 이홍석, 이정한 || 3~6 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
*컴퓨터과학부 2014920044 이홍석 : 작품설계 및 개발&lt;br /&gt;
*컴퓨터과학부 2014920037 이정한 : 작품설계 및 개발&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  번호 !! 요 구 사 항 !! D or W !! 중요도&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 기존 시계열 분석 논문에 있는 전략(요소, Factor)들을 모듈로 개발 || D || 대 &lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 시계열 데이터 분석 모듈을 적용할 수 있는 강화학습 모델을 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| 모델을 학습시킬 수 있는 환경(Env, DB) 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| PPO와 DQN 강화학습 알고리즘을 구현하고 분석 || W || 중&lt;br /&gt;
|}&lt;br /&gt;
====설계 사양====&lt;br /&gt;
*목적계통도&lt;br /&gt;
[[그림:Hoho7.png]]&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
*기존에 연구되어진 시계열 분석 알고리즘을 이용한 결과물들은 제각기 집중하는 부분이 다르기 때문에, 그 정확도가 서로 배타적 일 것이다. 즉 어느 한 알고리즘이 우위의 정확도를 가질 경우 다른 알고리즘은 상대적으로 낮은 정확도를 가질 것이다.&lt;br /&gt;
**서로 정확성에 있어 배타적일 정도로 다른 시계열 분석 알고리즘을 찾아야한다.&lt;br /&gt;
**배타적인 TA 알고리즘 a0~an을 찾고, 구현한다.&lt;br /&gt;
*강화학습 예측 모델&lt;br /&gt;
[[그림:Hoho8.png]]&lt;br /&gt;
**강화학습을 이용한 시계열 데이터의 학습을 통해 예측 모델을 생성한다.&lt;br /&gt;
**예측 모델은 다음과 같이 크게 두가지 단계로 구성된다.&lt;br /&gt;
***직접 시계열 데이터를 분석 / 예측하는 전략적 알고리즘&lt;br /&gt;
****네이밍: a0, a1, … , an&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {예측된 다음 시계열 데이터=o0, o1, …, on}&lt;br /&gt;
***인공신경망을 응용하는, 적절한 전략적 알고리즘에 가중치를 부여하는 알고리즘&lt;br /&gt;
****네이밍: M&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {w0, w1, …, wn}&lt;br /&gt;
****어느 하나의 전략적 알고리즘을 선택하는 방식(hard decision)이 아니라, 여러 전략적 알고리즘의 정확도를 연판정(soft decision)하여 그 비중을 출력한다. &lt;br /&gt;
**a의 결과인 O와 b의 결과인 W를 곱하여 최종 예측치를 계산한다. (가중평균)&lt;br /&gt;
***Predict = OW&lt;br /&gt;
**이 Agent의 결과에 따라서 전략을 어떤 비율로 선택하게 된다. 이를 조합한 값으로 특정 광물에 대한 매수 혹은 매도할 값을 선택하게 된다.&lt;br /&gt;
*강화학습 환경 구성 요소&lt;br /&gt;
**에이전트&lt;br /&gt;
***state값들을 DNN을 사용하여 전략을 선택할 수 있는 값으로 추출한다.&lt;br /&gt;
***전략개수 의존적&lt;br /&gt;
**환경&lt;br /&gt;
***한 거래소의 해당 광물의 일봉csv데이터를 시간에 따라서 사용&lt;br /&gt;
***USD, EUR (KRW 기준) 지수 데이터&lt;br /&gt;
**리워드 공식&lt;br /&gt;
***해당 광물의 가치와 잔금을 합산한 값을 리워드로 사용한다.&lt;br /&gt;
**액션 리스트&lt;br /&gt;
***양수는 매수, 음수는 매도의 의미로 하나의 출력값을 사용한다.&lt;br /&gt;
****광물 거래는 1주 단위의 이산적인 값을 사용한다.&lt;br /&gt;
****최대, 최소값을 설정한다.&lt;br /&gt;
*학습 시나리오&lt;br /&gt;
**매 학습에서 어떤 기간을 랜덤으로 설정한다.&lt;br /&gt;
**이 시간동안의 광물시장 데이터를 사용해서 하루 단위로 액션을 진행한다.&lt;br /&gt;
**시계열 분석 부분에서 각각의 전략이 매수/매도값을 도출한다.&lt;br /&gt;
**강화학습 부분에서 가중치를 도출한다.&lt;br /&gt;
**가중치값과 매수/매도값을 각각 곱하고 누적한다.&lt;br /&gt;
**해당 값을 통해 매수/매도/유지를 진행한다.매도가 될 때까지 진행하고 매도시 수익률을 구한다.&lt;br /&gt;
**수익률이 증가하는 방향으로 학습을 한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
*강화학습 오픈소스) DQN을 이용한 트레이딩 학습 테스트&lt;br /&gt;
**학습개요&lt;br /&gt;
***아래는 국내 3개 IT기업의 일봉데이터를 대상으로 학습을 진행한 결과이다.&lt;br /&gt;
***구현에서는 가능한 만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
***아래의 그래프에서는 초기 투자금을 가지고 시간에 따라서 자산 가치가 어떻게 변하는지 보여준다.&lt;br /&gt;
**트레이닝 데이터로 학습 진행 중 자산가치변화&lt;br /&gt;
[[파일:Hoho1.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***초반에는 매우 가치가 크지만 불안정한 트레이딩을 하다가 후에 안정적인 수익률을 보여주는 것을 알 수 있다.&lt;br /&gt;
**테스트 데이터에서 거래중 자산가치 변화&lt;br /&gt;
[[파일:Hoho2.png]]&lt;br /&gt;
***빨간 선은 초기 투자 금액이다.&lt;br /&gt;
***테스트 데이터로 트레이딩 했을 때 투자금액 보다 평균 12%의 수익을 올릴 수 있었다.&lt;br /&gt;
***단순 시가만으로 학습을 하는 경우, 위와 같이 매우 불안정하므로 다양한 전략을 통해 개선이 필요하다.&lt;br /&gt;
*전략 오픈소스) 10일, 30일 이동평균선 교차점 검출을 이용한 매수 매도 알고리즘 트레이딩&lt;br /&gt;
**방법&lt;br /&gt;
***현재까지 크롤링한 일봉데이터에서 단기 이동평균선과 장기 이동평균선의 교차점은 중요한 매도, 매수타이밍의 후보가 될 수 있다. 장기적인 추세를 따라가는 것이 미래에 대체로 좋은 방향이 되므로 장기평균선이 상승할 떄 매수, 하락 할 때 매도를 하는 것이 좋다.&lt;br /&gt;
***구현에서는 가능한만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
**Ta-lib&lt;br /&gt;
***Technical Analysis LIbrary&lt;br /&gt;
***시장분석과 같은 시계열 데이터 알고리즘을 분석하는데 사용하는 라이브러리&lt;br /&gt;
***내부에서는 기본 시장지표를 받으면 이에 따라서 새로운 보조지표를 만들어주거나 패턴을 검출하는 함수 제공&lt;br /&gt;
***구현에서 이동평균선 지표를 얻을 때 사용.&lt;br /&gt;
**가상트레이딩에 따른 자산가치 변화&lt;br /&gt;
[[파일:Hoho3.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***위와 같이 장기간 트레이딩을 진행하는데 있어서 이동평균선 교차점을 이용한 트레이딩이 좋은 효과를 보이는 것을 알 수 있다.&lt;br /&gt;
*광물시장 시가데이터 크롤링&lt;br /&gt;
**한국거래소([http://www.krx.co.kr])&lt;br /&gt;
**거래소홈페이지에서 1년단위의 데이터를 csv로 내려받을 수 있다.&lt;br /&gt;
**아래는 2014년 - 2019년의 종가를 그래프로 나타낸 것이다.&lt;br /&gt;
[[파일:Hoho4.png]]&lt;br /&gt;
*DQN 소스코드를 사용한 광물시장 가상 트레이딩&lt;br /&gt;
**위에서 사용한 DQN방법을 금시장을 대상으로 트레이딩을 진행했다.&lt;br /&gt;
**구현방식은 위의 DQN을 이용한 트레이딩 테스트와 같다.&lt;br /&gt;
**2000회 트레이닝을 진행하여서 매회 트레이닝마다 다음과 같은 결과를 얻을 수 있었다.&lt;br /&gt;
[[파일:Hoho5.png]]&lt;br /&gt;
**초기투자금액 10,000,000원으로 학습을 진행했다.&lt;br /&gt;
**위에서 트레이닝한 결과를 바탕으로 테스트를 진행했다.&lt;br /&gt;
[[파일:Hoho6.png]]&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
* 유스케이스 다이어그램&lt;br /&gt;
[[파일:hoho10.png]]&lt;br /&gt;
** 투자자가 각종 종목과 학습 정책 등을 선택한다.&lt;br /&gt;
** 선택을 기반으로 모델을 생성해서 가상 트레이딩을 진행할 때 수익률이 잘 나올 수  있는 지 확인한다.&lt;br /&gt;
** 학습 방법에 따른 비교 분석을 진행한다.&lt;br /&gt;
** 액터&lt;br /&gt;
*** 액터명 : 투자자&lt;br /&gt;
*** 설명 : 해당 프로그램을 투자의 지표로 사용하고 싶은 사람&lt;br /&gt;
** 설명&lt;br /&gt;
*** 종목선택 / 투자자&lt;br /&gt;
**** 투자자가 원하는 종목을 선택함.&lt;br /&gt;
**** 사건흐름_기본&lt;br /&gt;
****# 투자자가 원하는 종목을 선택한다.&lt;br /&gt;
**** 사전조건&lt;br /&gt;
***** 프로그램 실행&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 클래스 다이어그램&lt;br /&gt;
[[파일:hoho9.png]]&lt;br /&gt;
** BaseTrainEnv&lt;br /&gt;
*** 실제 시장의 환경을 강화학습에서 모델링하기 위한 베이스 클래스이다. API를 이용한 투자와 csv데이터로 가상화되는 환경의 베이스가 된다.&lt;br /&gt;
*** reset()으로 환경을 초기화 한다.&lt;br /&gt;
*** step()으로 거래를 전달하면, 다음날의 가격(state), 현재 가치(reward), 시간흐름의 완료(done), 기타정보를 반환한다.&lt;br /&gt;
** APITrainEnv&lt;br /&gt;
*** 실제 투자API가 구현되는 클래스이다.&lt;br /&gt;
** CsvTrainEnv&lt;br /&gt;
*** csv 데이터를 이용해 투자 환경이 구현되는 클래스이다.&lt;br /&gt;
**CsvTrainSet&lt;br /&gt;
*** 투자 환경에 필요한 주가 데이터를 종합한 클래스이다.&lt;br /&gt;
*** currency : 기준 통화&lt;br /&gt;
*** exchange_rate : 기준 통화와 다른 통화의 환율&lt;br /&gt;
*** object_price : 거래 대상의 가격데이터&lt;br /&gt;
*** other_object_price : 거래 대상이외의 참고할 대상의 가격데이터&lt;br /&gt;
** PPOTrainModel &amp;amp; DQNTrainModel&lt;br /&gt;
*** trainEnv: 사용한 투자환경 클래스이다.&lt;br /&gt;
*** agent: 전략별 채택 가중치를 계산할 수 있는 오브젝트이다.&lt;br /&gt;
*** tradeStrategies: 트레이딩에서 사용할 전략 알고리즘의 배열이다.&lt;br /&gt;
** BaseTradeStrategy&lt;br /&gt;
*** 트레이딩에 사용할 수 있는 전략알고리즘을 추상화한 클래스이다.&lt;br /&gt;
*** getInvest의 출력값은 +(매수), -(매도)로 나타낸다.&lt;br /&gt;
&lt;br /&gt;
** &lt;br /&gt;
** 호호호&lt;br /&gt;
&lt;br /&gt;
* UI구성&lt;br /&gt;
** 호호호&lt;br /&gt;
** 호호호&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1448</id>
		<title>호호조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1448"/>
				<updated>2019-06-20T05:15:15Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : 광물시장에서 강화학습을 이용한 트레이딩 봇&lt;br /&gt;
&lt;br /&gt;
''' 영문 :  Trading-bot using Reinforcement Learning in a mineral market&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
호호&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
이동희 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920044 이홍석(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920037 이정한&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
*이전부터 사용자들이 많이 사용하던 시계열 분석 알고리즘과 다양한 지표들을 활용하여 강화학습을 이용하여 광물 가격을 예측한다.&lt;br /&gt;
*광물시장에서 시가에 영향을 미치는 다양한 요인이 존재한다.&lt;br /&gt;
*이미 밝혀진 다양한 요인들과 우리들이 생각한 요인들을 정리한다.&lt;br /&gt;
*이러한 요인들을 강화학습을 통해서 상관관계가 있는지 확인하고 실제로 수익을 낼 수 있는 모델과 학습을 진행한다.&lt;br /&gt;
*여러 가지 요인(차트 및 시장표준지수)들과 전략들을 가지고 하나의 광물을 대상으로 수익률이 높을 것으로 예상되는 매수, 매도 타이밍을 찾아낼 수 있는 것을 목표로 한다.&lt;br /&gt;
*다양한 강화학습 알고리즘 중 PPO(Proximal Policy Optimization), DQN(Deep Q Network)을 사용하여 구현해보고 어떤 방식이 더 잘 맞는지 분석해본다.&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*광물 시장은 매 시간마다 변동함&lt;br /&gt;
*광물 시장의 변동은 어떠한 요인들에 의해 값어치가 올라가기도 하고 내려가기도 함&lt;br /&gt;
*다양한 논문 Research 및 분석을 통해 값에 변화를 주는 요인들을 선별&lt;br /&gt;
*해당 요인들을 강화학습 모델의 환경에 넣어서 학습을 시킴&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
*강화학습을 이용하여 트레이딩을 자동으로 하는 봇을 만든다.&lt;br /&gt;
*광물 가격에 영향을 주는 요인들을 찾아보고 어느 정도 연관관계가 있는지 확인한다.&lt;br /&gt;
*연관관계가 있는 요인들을 모아서 강화학습모델에 적용시켜보고 실제로 효과가 있는지 확인해본다.&lt;br /&gt;
*효과가 컸던 요인들을 모아서 모의 투자 상황에서 수익률 분석을 해본다.&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
**자동 거래 시스템(ATS;Automated Trading System)은 1949년 Richard Donchian이 funds를 사고 파는 일련의 규칙을 사용하여 처음 소개되었다. 1980년대에는 John Henry와 같은 유명한 Trader들이 전략을 사용하기 시작하여, 규칙 기반 거래(Rule Based Trading)라는 개념이 대중화되었다. 현재는 미국 증권 거래소 주식 거래의 75% 이상이 자동 거래 시스템으로 이루어진다.&lt;br /&gt;
**최근에는 AI의 등장으로, 수많은 은행이나 투자자들이 AI를 활용하여 규칙 기반 거래나 직접 거래보다 훨씬 수익률이 높은 모델을 개발중이다. 딥러닝, 머신러닝 등의 기술을 활용하여 Trading Bot을 개발하고 있으며, 강화학습의 등장이후, 다양한 Trading Bot Project에서 강화학습을 도입하려는 움직임을 보이고 있다.&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
**거절 : 알고리즘 자동 매매 봇, [https://doi.org/10.8080/1020090067197]&lt;br /&gt;
***알고리즘 트레이딩 봇들을 모아서 관리할 수 있는 시스템&lt;br /&gt;
***통상적인 기술자가 충분히 만들 수 있는 것으로 판단하여 특허 거절&lt;br /&gt;
**등록 : 소셜트레이딩 방법, [http://kpat.kipris.or.kr/kpat/biblioa.do?method=biblioFrame]&lt;br /&gt;
***리더를 설정하여 해당 리더의 매매를 확인하고 추종하는 알고리즘&lt;br /&gt;
*기술 로드맵&lt;br /&gt;
**자동으로 거래를 할 수 있는 봇의 형태를 만들어야 하고, 모의투자를 통해 테스트할 수 있는 환경을 만들어야하기 때문에 투자, 증권사 API 및 모의투자 서버가 필요하다. 따라서, 키움증권, 대신증권, 이베스트투자증권 등의 회사의 API를 활용하고, 이 회사들의 모의투자 서버를 통해 수익률을 분석할 수 있다.&lt;br /&gt;
**강화학습은 환경이 주어지고, 해당 환경에 액션을 취하면 그에 따른 보상을 주면서 학습을 시킨다. 일반적인 딥 러닝은 어떤 요인들의 상호관계를 표현하지 못한다. 하지만 강화학습은 환경을 통해 어떤 요인들의 상호관계를 표현할 수 있다. 주식들은 서로 상호관계를 가지고 있으므로 강화학습을 이용하는 것이 유리한 방법이라 할 수 있다.&lt;br /&gt;
**현재에는 차트분석만으로 주식이나 광물시장에서의 매도, 매수타이밍을 잡아서 수익을 낼 수 있는 다양한 방법이 연구되고 있다. 이를 기술적 매매라고 부른다. 이러한 방법을 이용하여 알고리즘으로 구현하면 보다 안정적이고 수익률이 검증된 매매방법을 사용할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
**이러한 제품들은 시장에 공개적으로 나와있는 것을 쉽게 찾을 수 없다. 이러한 트레이딩봇 자체가 실제 주식시장에서 수익을 낼 수 있기 때문이다. 이윤을 창출하는 기업의 입장에서는 이 트레이딩 봇을 직접적으로 사용하지 않을 이유가 없다.&lt;br /&gt;
**또한 많은 사용자가 트레이딩 봇을 사용한다고 가정했을 때 모두가 이익을 볼 수 있는 것은 아니다. 같은 알고리즘을 사용하는 트레이딩 봇이 많으면 수익률이 줄어 들기 때문에 이러한 트레이딩 봇을 상용화하지 않은 것으로 보인다.&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! 알고리즘 !! 증권사 API !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 브레인듀드의 듀드303, 듀드프로&lt;br /&gt;
| 사용자의 조건검색식 사용 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 키움증권의 로보마켓&lt;br /&gt;
| 다양한 알고리즘 전략 제시 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 주식몰 오토핫키&lt;br /&gt;
| 해당하는 설명이 없음 || 해당하는 설명이 없음 || 마켓팅 위주의 사업 진행&lt;br /&gt;
|}&lt;br /&gt;
**위와 같이 알고리즘 트레이딩 봇을 만드는 회사 이외에도 증권사나 펀드회사 같은 경우에도 가치투자를 위한 분석자료를 제공하는 서비스를 제공할 수 있다.&lt;br /&gt;
**한국거래소에서는 종목마다 투자가치를 판단할 수 있는 자료를 제공한다. 이에 따라서 우리의 트레이딩봇과 경쟁해야 하는 부분을 가지고 있다.&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**위와 같이 여러가지 요인을 연구, 분석함에 따라서 트레이딩 봇을 만들 수 있다. 이 요인들의 적당한 조합으로 여러가지 특성을 띠는 트레이딩 봇을 개발할 수 있다.&lt;br /&gt;
**사용자들에게 원하는 이익구조를 선택할 수 있게 한다. 예를 들어 수익률이 크게 높지 않더라도 안정적인 투자를 원하는 사용자가 있고, 위험을 감수하더라도 높은 수익률을 원하는 사용자가 있다. 요인분석에 따라서 얻을 수 있는 특징들을 찾아내고 이러한 요인들로 주식트레이딩의 위험, 최고 수익률등이 결정될 것이다. &lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
*기존의 주식 트레이딩봇들은 우리가 직접 알고리즘을 구현하고 설계함에 따라서 작동했다. 사람의 직관을 이용해서 장기투자를 하는 것이 아니라 짧은 시간의 시장변동을 감지해서 조금씩 수익을 올리는 등의 알고리즘이 만들어져 왔다. 하지만 강화학습과 딥러닝을 사용해서 좀 더 효과적인 방향을 찾을 수 있다.&lt;br /&gt;
*딥러닝에서 사용하는 뉴럴 네트워크는 학습이 완료되었을 때 예측속도가 매우 빠르다는 특징을 갖고 있다. 해당 요인을 성공적으로 학습한 네트워크를 얻은 후에 봇을 사용할 때는 컴퓨팅의 성능을 크게 사용하지 않고 빠른 속도의 트레이딩이 가능하다.&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
*위에서 서술한 대로 만일 강화학습을 이용해서 주식 트레이딩봇이 성공적으로 수익을 낼 수 있는 구조라면, 이와 유사한 트레이딩봇이 많이 등장할 것이다. 더불어서 강화학습에 딥러닝을 적용시키면서 구성할 수 있는 선택의 여지가 많아졌다. 각기 학습하는 방법에 따라서 각기 다른 여러가지 전략이 등장할 수 있는 것이다. 따라서 기존에 알고리즘을 이용해서 매매를 진행하던 투자자들이 새롭게 등장하는 트레이딩봇의 투자전략에 영향을 받을 것이며, 시장의 특성은 더 다양하고 복잡해질 것이다.&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  단계별 세부개발 내용 !! 담당자 !! 개발기간 !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 강화학습 환경 설계&lt;br /&gt;
| 이홍석 || 3~4 || &lt;br /&gt;
|-&lt;br /&gt;
! 모의투자 환경구성 및 트레이딩 봇 구현&lt;br /&gt;
| 이정한 || 4~5 ||&lt;br /&gt;
|-&lt;br /&gt;
! 학습진행 및 정확도 개선&lt;br /&gt;
| 이홍석 || 4~6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 기존의 트레이딩 봇과의 성능 비교&lt;br /&gt;
| 이정한 || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 요인 연구 및 분석&lt;br /&gt;
| 이홍석, 이정한 || 3~6 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
*컴퓨터과학부 2014920044 이홍석 : 작품설계 및 개발&lt;br /&gt;
*컴퓨터과학부 2014920037 이정한 : 작품설계 및 개발&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  번호 !! 요 구 사 항 !! D or W !! 중요도&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 기존 시계열 분석 논문에 있는 전략(요소, Factor)들을 모듈로 개발 || D || 대 &lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 시계열 데이터 분석 모듈을 적용할 수 있는 강화학습 모델을 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| 모델을 학습시킬 수 있는 환경(Env, DB) 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| PPO와 DQN 강화학습 알고리즘을 구현하고 분석 || W || 중&lt;br /&gt;
|}&lt;br /&gt;
====설계 사양====&lt;br /&gt;
*목적계통도&lt;br /&gt;
[[그림:Hoho7.png]]&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
*기존에 연구되어진 시계열 분석 알고리즘을 이용한 결과물들은 제각기 집중하는 부분이 다르기 때문에, 그 정확도가 서로 배타적 일 것이다. 즉 어느 한 알고리즘이 우위의 정확도를 가질 경우 다른 알고리즘은 상대적으로 낮은 정확도를 가질 것이다.&lt;br /&gt;
**서로 정확성에 있어 배타적일 정도로 다른 시계열 분석 알고리즘을 찾아야한다.&lt;br /&gt;
**배타적인 TA 알고리즘 a0~an을 찾고, 구현한다.&lt;br /&gt;
*강화학습 예측 모델&lt;br /&gt;
[[그림:Hoho8.png]]&lt;br /&gt;
**강화학습을 이용한 시계열 데이터의 학습을 통해 예측 모델을 생성한다.&lt;br /&gt;
**예측 모델은 다음과 같이 크게 두가지 단계로 구성된다.&lt;br /&gt;
***직접 시계열 데이터를 분석 / 예측하는 전략적 알고리즘&lt;br /&gt;
****네이밍: a0, a1, … , an&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {예측된 다음 시계열 데이터=o0, o1, …, on}&lt;br /&gt;
***인공신경망을 응용하는, 적절한 전략적 알고리즘에 가중치를 부여하는 알고리즘&lt;br /&gt;
****네이밍: M&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {w0, w1, …, wn}&lt;br /&gt;
****어느 하나의 전략적 알고리즘을 선택하는 방식(hard decision)이 아니라, 여러 전략적 알고리즘의 정확도를 연판정(soft decision)하여 그 비중을 출력한다. &lt;br /&gt;
**a의 결과인 O와 b의 결과인 W를 곱하여 최종 예측치를 계산한다. (가중평균)&lt;br /&gt;
***Predict = OW&lt;br /&gt;
**이 Agent의 결과에 따라서 전략을 어떤 비율로 선택하게 된다. 이를 조합한 값으로 특정 광물에 대한 매수 혹은 매도할 값을 선택하게 된다.&lt;br /&gt;
*강화학습 환경 구성 요소&lt;br /&gt;
**에이전트&lt;br /&gt;
***state값들을 DNN을 사용하여 전략을 선택할 수 있는 값으로 추출한다.&lt;br /&gt;
***전략개수 의존적&lt;br /&gt;
**환경&lt;br /&gt;
***한 거래소의 해당 광물의 일봉csv데이터를 시간에 따라서 사용&lt;br /&gt;
***USD, EUR (KRW 기준) 지수 데이터&lt;br /&gt;
**리워드 공식&lt;br /&gt;
***해당 광물의 가치와 잔금을 합산한 값을 리워드로 사용한다.&lt;br /&gt;
**액션 리스트&lt;br /&gt;
***양수는 매수, 음수는 매도의 의미로 하나의 출력값을 사용한다.&lt;br /&gt;
****광물 거래는 1주 단위의 이산적인 값을 사용한다.&lt;br /&gt;
****최대, 최소값을 설정한다.&lt;br /&gt;
*학습 시나리오&lt;br /&gt;
**매 학습에서 어떤 기간을 랜덤으로 설정한다.&lt;br /&gt;
**이 시간동안의 광물시장 데이터를 사용해서 하루 단위로 액션을 진행한다.&lt;br /&gt;
**시계열 분석 부분에서 각각의 전략이 매수/매도값을 도출한다.&lt;br /&gt;
**강화학습 부분에서 가중치를 도출한다.&lt;br /&gt;
**가중치값과 매수/매도값을 각각 곱하고 누적한다.&lt;br /&gt;
**해당 값을 통해 매수/매도/유지를 진행한다.매도가 될 때까지 진행하고 매도시 수익률을 구한다.&lt;br /&gt;
**수익률이 증가하는 방향으로 학습을 한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
*강화학습 오픈소스) DQN을 이용한 트레이딩 학습 테스트&lt;br /&gt;
**학습개요&lt;br /&gt;
***아래는 국내 3개 IT기업의 일봉데이터를 대상으로 학습을 진행한 결과이다.&lt;br /&gt;
***구현에서는 가능한 만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
***아래의 그래프에서는 초기 투자금을 가지고 시간에 따라서 자산 가치가 어떻게 변하는지 보여준다.&lt;br /&gt;
**트레이닝 데이터로 학습 진행 중 자산가치변화&lt;br /&gt;
[[파일:Hoho1.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***초반에는 매우 가치가 크지만 불안정한 트레이딩을 하다가 후에 안정적인 수익률을 보여주는 것을 알 수 있다.&lt;br /&gt;
**테스트 데이터에서 거래중 자산가치 변화&lt;br /&gt;
[[파일:Hoho2.png]]&lt;br /&gt;
***빨간 선은 초기 투자 금액이다.&lt;br /&gt;
***테스트 데이터로 트레이딩 했을 때 투자금액 보다 평균 12%의 수익을 올릴 수 있었다.&lt;br /&gt;
***단순 시가만으로 학습을 하는 경우, 위와 같이 매우 불안정하므로 다양한 전략을 통해 개선이 필요하다.&lt;br /&gt;
*전략 오픈소스) 10일, 30일 이동평균선 교차점 검출을 이용한 매수 매도 알고리즘 트레이딩&lt;br /&gt;
**방법&lt;br /&gt;
***현재까지 크롤링한 일봉데이터에서 단기 이동평균선과 장기 이동평균선의 교차점은 중요한 매도, 매수타이밍의 후보가 될 수 있다. 장기적인 추세를 따라가는 것이 미래에 대체로 좋은 방향이 되므로 장기평균선이 상승할 떄 매수, 하락 할 때 매도를 하는 것이 좋다.&lt;br /&gt;
***구현에서는 가능한만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
**Ta-lib&lt;br /&gt;
***Technical Analysis LIbrary&lt;br /&gt;
***시장분석과 같은 시계열 데이터 알고리즘을 분석하는데 사용하는 라이브러리&lt;br /&gt;
***내부에서는 기본 시장지표를 받으면 이에 따라서 새로운 보조지표를 만들어주거나 패턴을 검출하는 함수 제공&lt;br /&gt;
***구현에서 이동평균선 지표를 얻을 때 사용.&lt;br /&gt;
**가상트레이딩에 따른 자산가치 변화&lt;br /&gt;
[[파일:Hoho3.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***위와 같이 장기간 트레이딩을 진행하는데 있어서 이동평균선 교차점을 이용한 트레이딩이 좋은 효과를 보이는 것을 알 수 있다.&lt;br /&gt;
*광물시장 시가데이터 크롤링&lt;br /&gt;
**한국거래소([http://www.krx.co.kr])&lt;br /&gt;
**거래소홈페이지에서 1년단위의 데이터를 csv로 내려받을 수 있다.&lt;br /&gt;
**아래는 2014년 - 2019년의 종가를 그래프로 나타낸 것이다.&lt;br /&gt;
[[파일:Hoho4.png]]&lt;br /&gt;
*DQN 소스코드를 사용한 광물시장 가상 트레이딩&lt;br /&gt;
**위에서 사용한 DQN방법을 금시장을 대상으로 트레이딩을 진행했다.&lt;br /&gt;
**구현방식은 위의 DQN을 이용한 트레이딩 테스트와 같다.&lt;br /&gt;
**2000회 트레이닝을 진행하여서 매회 트레이닝마다 다음과 같은 결과를 얻을 수 있었다.&lt;br /&gt;
[[파일:Hoho5.png]]&lt;br /&gt;
**초기투자금액 10,000,000원으로 학습을 진행했다.&lt;br /&gt;
**위에서 트레이닝한 결과를 바탕으로 테스트를 진행했다.&lt;br /&gt;
[[파일:Hoho6.png]]&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
* 유스케이스 다이어그램&lt;br /&gt;
[[파일:hoho10.png]]&lt;br /&gt;
** 투자자가 각종 종목과 학습 정책 등을 선택한다.&lt;br /&gt;
** 선택을 기반으로 모델을 생성해서 가상 트레이딩을 진행할 때 수익률이 잘 나올 수  있는 지 확인한다.&lt;br /&gt;
** 학습 방법에 따른 비교 분석을 진행한다.&lt;br /&gt;
** 액터&lt;br /&gt;
*** 호호&lt;br /&gt;
** 설명&lt;br /&gt;
*** 호호&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 클래스 다이어그램&lt;br /&gt;
[[파일:hoho9.png]]&lt;br /&gt;
** BaseTrainEnv&lt;br /&gt;
*** 실제 시장의 환경을 강화학습에서 모델링하기 위한 베이스 클래스이다. API를 이용한 투자와 csv데이터로 가상화되는 환경의 베이스가 된다.&lt;br /&gt;
*** reset()으로 환경을 초기화 한다.&lt;br /&gt;
*** step()으로 거래를 전달하면, 다음날의 가격(state), 현재 가치(reward), 시간흐름의 완료(done), 기타정보를 반환한다.&lt;br /&gt;
** APITrainEnv&lt;br /&gt;
*** 실제 투자API가 구현되는 클래스이다.&lt;br /&gt;
** CsvTrainEnv&lt;br /&gt;
*** csv 데이터를 이용해 투자 환경이 구현되는 클래스이다.&lt;br /&gt;
**CsvTrainSet&lt;br /&gt;
*** 투자 환경에 필요한 주가 데이터를 종합한 클래스이다.&lt;br /&gt;
*** currency : 기준 통화&lt;br /&gt;
*** exchange_rate : 기준 통화와 다른 통화의 환율&lt;br /&gt;
*** object_price : 거래 대상의 가격데이터&lt;br /&gt;
*** other_object_price : 거래 대상이외의 참고할 대상의 가격데이터&lt;br /&gt;
** PPOTrainModel &amp;amp; DQNTrainModel&lt;br /&gt;
*** trainEnv: 사용한 투자환경 클래스이다.&lt;br /&gt;
*** agent: 전략별 채택 가중치를 계산할 수 있는 오브젝트이다.&lt;br /&gt;
*** tradeStrategies: 트레이딩에서 사용할 전략 알고리즘의 배열이다.&lt;br /&gt;
** BaseTradeStrategy&lt;br /&gt;
*** 트레이딩에 사용할 수 있는 전략알고리즘을 추상화한 클래스이다.&lt;br /&gt;
*** getInvest의 출력값은 +(매수), -(매도)로 나타낸다.&lt;br /&gt;
&lt;br /&gt;
** &lt;br /&gt;
** 호호호&lt;br /&gt;
&lt;br /&gt;
* UI구성&lt;br /&gt;
** 호호호&lt;br /&gt;
** 호호호&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho10.png&amp;diff=1447</id>
		<title>파일:Hoho10.png</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho10.png&amp;diff=1447"/>
				<updated>2019-06-20T05:13:39Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: 호호조 유스케이스 다이어그램&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;호호조 유스케이스 다이어그램&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1446</id>
		<title>호호조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1446"/>
				<updated>2019-06-20T05:05:24Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : 광물시장에서 강화학습을 이용한 트레이딩 봇&lt;br /&gt;
&lt;br /&gt;
''' 영문 :  Trading-bot using Reinforcement Learning in a mineral market&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
호호&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
이동희 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920044 이홍석(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920037 이정한&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
*이전부터 사용자들이 많이 사용하던 시계열 분석 알고리즘과 다양한 지표들을 활용하여 강화학습을 이용하여 광물 가격을 예측한다.&lt;br /&gt;
*광물시장에서 시가에 영향을 미치는 다양한 요인이 존재한다.&lt;br /&gt;
*이미 밝혀진 다양한 요인들과 우리들이 생각한 요인들을 정리한다.&lt;br /&gt;
*이러한 요인들을 강화학습을 통해서 상관관계가 있는지 확인하고 실제로 수익을 낼 수 있는 모델과 학습을 진행한다.&lt;br /&gt;
*여러 가지 요인(차트 및 시장표준지수)들과 전략들을 가지고 하나의 광물을 대상으로 수익률이 높을 것으로 예상되는 매수, 매도 타이밍을 찾아낼 수 있는 것을 목표로 한다.&lt;br /&gt;
*다양한 강화학습 알고리즘 중 PPO(Proximal Policy Optimization), DQN(Deep Q Network)을 사용하여 구현해보고 어떤 방식이 더 잘 맞는지 분석해본다.&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*광물 시장은 매 시간마다 변동함&lt;br /&gt;
*광물 시장의 변동은 어떠한 요인들에 의해 값어치가 올라가기도 하고 내려가기도 함&lt;br /&gt;
*다양한 논문 Research 및 분석을 통해 값에 변화를 주는 요인들을 선별&lt;br /&gt;
*해당 요인들을 강화학습 모델의 환경에 넣어서 학습을 시킴&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
*강화학습을 이용하여 트레이딩을 자동으로 하는 봇을 만든다.&lt;br /&gt;
*광물 가격에 영향을 주는 요인들을 찾아보고 어느 정도 연관관계가 있는지 확인한다.&lt;br /&gt;
*연관관계가 있는 요인들을 모아서 강화학습모델에 적용시켜보고 실제로 효과가 있는지 확인해본다.&lt;br /&gt;
*효과가 컸던 요인들을 모아서 모의 투자 상황에서 수익률 분석을 해본다.&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
**자동 거래 시스템(ATS;Automated Trading System)은 1949년 Richard Donchian이 funds를 사고 파는 일련의 규칙을 사용하여 처음 소개되었다. 1980년대에는 John Henry와 같은 유명한 Trader들이 전략을 사용하기 시작하여, 규칙 기반 거래(Rule Based Trading)라는 개념이 대중화되었다. 현재는 미국 증권 거래소 주식 거래의 75% 이상이 자동 거래 시스템으로 이루어진다.&lt;br /&gt;
**최근에는 AI의 등장으로, 수많은 은행이나 투자자들이 AI를 활용하여 규칙 기반 거래나 직접 거래보다 훨씬 수익률이 높은 모델을 개발중이다. 딥러닝, 머신러닝 등의 기술을 활용하여 Trading Bot을 개발하고 있으며, 강화학습의 등장이후, 다양한 Trading Bot Project에서 강화학습을 도입하려는 움직임을 보이고 있다.&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
**거절 : 알고리즘 자동 매매 봇, [https://doi.org/10.8080/1020090067197]&lt;br /&gt;
***알고리즘 트레이딩 봇들을 모아서 관리할 수 있는 시스템&lt;br /&gt;
***통상적인 기술자가 충분히 만들 수 있는 것으로 판단하여 특허 거절&lt;br /&gt;
**등록 : 소셜트레이딩 방법, [http://kpat.kipris.or.kr/kpat/biblioa.do?method=biblioFrame]&lt;br /&gt;
***리더를 설정하여 해당 리더의 매매를 확인하고 추종하는 알고리즘&lt;br /&gt;
*기술 로드맵&lt;br /&gt;
**자동으로 거래를 할 수 있는 봇의 형태를 만들어야 하고, 모의투자를 통해 테스트할 수 있는 환경을 만들어야하기 때문에 투자, 증권사 API 및 모의투자 서버가 필요하다. 따라서, 키움증권, 대신증권, 이베스트투자증권 등의 회사의 API를 활용하고, 이 회사들의 모의투자 서버를 통해 수익률을 분석할 수 있다.&lt;br /&gt;
**강화학습은 환경이 주어지고, 해당 환경에 액션을 취하면 그에 따른 보상을 주면서 학습을 시킨다. 일반적인 딥 러닝은 어떤 요인들의 상호관계를 표현하지 못한다. 하지만 강화학습은 환경을 통해 어떤 요인들의 상호관계를 표현할 수 있다. 주식들은 서로 상호관계를 가지고 있으므로 강화학습을 이용하는 것이 유리한 방법이라 할 수 있다.&lt;br /&gt;
**현재에는 차트분석만으로 주식이나 광물시장에서의 매도, 매수타이밍을 잡아서 수익을 낼 수 있는 다양한 방법이 연구되고 있다. 이를 기술적 매매라고 부른다. 이러한 방법을 이용하여 알고리즘으로 구현하면 보다 안정적이고 수익률이 검증된 매매방법을 사용할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
**이러한 제품들은 시장에 공개적으로 나와있는 것을 쉽게 찾을 수 없다. 이러한 트레이딩봇 자체가 실제 주식시장에서 수익을 낼 수 있기 때문이다. 이윤을 창출하는 기업의 입장에서는 이 트레이딩 봇을 직접적으로 사용하지 않을 이유가 없다.&lt;br /&gt;
**또한 많은 사용자가 트레이딩 봇을 사용한다고 가정했을 때 모두가 이익을 볼 수 있는 것은 아니다. 같은 알고리즘을 사용하는 트레이딩 봇이 많으면 수익률이 줄어 들기 때문에 이러한 트레이딩 봇을 상용화하지 않은 것으로 보인다.&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! 알고리즘 !! 증권사 API !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 브레인듀드의 듀드303, 듀드프로&lt;br /&gt;
| 사용자의 조건검색식 사용 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 키움증권의 로보마켓&lt;br /&gt;
| 다양한 알고리즘 전략 제시 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 주식몰 오토핫키&lt;br /&gt;
| 해당하는 설명이 없음 || 해당하는 설명이 없음 || 마켓팅 위주의 사업 진행&lt;br /&gt;
|}&lt;br /&gt;
**위와 같이 알고리즘 트레이딩 봇을 만드는 회사 이외에도 증권사나 펀드회사 같은 경우에도 가치투자를 위한 분석자료를 제공하는 서비스를 제공할 수 있다.&lt;br /&gt;
**한국거래소에서는 종목마다 투자가치를 판단할 수 있는 자료를 제공한다. 이에 따라서 우리의 트레이딩봇과 경쟁해야 하는 부분을 가지고 있다.&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**위와 같이 여러가지 요인을 연구, 분석함에 따라서 트레이딩 봇을 만들 수 있다. 이 요인들의 적당한 조합으로 여러가지 특성을 띠는 트레이딩 봇을 개발할 수 있다.&lt;br /&gt;
**사용자들에게 원하는 이익구조를 선택할 수 있게 한다. 예를 들어 수익률이 크게 높지 않더라도 안정적인 투자를 원하는 사용자가 있고, 위험을 감수하더라도 높은 수익률을 원하는 사용자가 있다. 요인분석에 따라서 얻을 수 있는 특징들을 찾아내고 이러한 요인들로 주식트레이딩의 위험, 최고 수익률등이 결정될 것이다. &lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
*기존의 주식 트레이딩봇들은 우리가 직접 알고리즘을 구현하고 설계함에 따라서 작동했다. 사람의 직관을 이용해서 장기투자를 하는 것이 아니라 짧은 시간의 시장변동을 감지해서 조금씩 수익을 올리는 등의 알고리즘이 만들어져 왔다. 하지만 강화학습과 딥러닝을 사용해서 좀 더 효과적인 방향을 찾을 수 있다.&lt;br /&gt;
*딥러닝에서 사용하는 뉴럴 네트워크는 학습이 완료되었을 때 예측속도가 매우 빠르다는 특징을 갖고 있다. 해당 요인을 성공적으로 학습한 네트워크를 얻은 후에 봇을 사용할 때는 컴퓨팅의 성능을 크게 사용하지 않고 빠른 속도의 트레이딩이 가능하다.&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
*위에서 서술한 대로 만일 강화학습을 이용해서 주식 트레이딩봇이 성공적으로 수익을 낼 수 있는 구조라면, 이와 유사한 트레이딩봇이 많이 등장할 것이다. 더불어서 강화학습에 딥러닝을 적용시키면서 구성할 수 있는 선택의 여지가 많아졌다. 각기 학습하는 방법에 따라서 각기 다른 여러가지 전략이 등장할 수 있는 것이다. 따라서 기존에 알고리즘을 이용해서 매매를 진행하던 투자자들이 새롭게 등장하는 트레이딩봇의 투자전략에 영향을 받을 것이며, 시장의 특성은 더 다양하고 복잡해질 것이다.&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  단계별 세부개발 내용 !! 담당자 !! 개발기간 !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 강화학습 환경 설계&lt;br /&gt;
| 이홍석 || 3~4 || &lt;br /&gt;
|-&lt;br /&gt;
! 모의투자 환경구성 및 트레이딩 봇 구현&lt;br /&gt;
| 이정한 || 4~5 ||&lt;br /&gt;
|-&lt;br /&gt;
! 학습진행 및 정확도 개선&lt;br /&gt;
| 이홍석 || 4~6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 기존의 트레이딩 봇과의 성능 비교&lt;br /&gt;
| 이정한 || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 요인 연구 및 분석&lt;br /&gt;
| 이홍석, 이정한 || 3~6 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
*컴퓨터과학부 2014920044 이홍석 : 작품설계 및 개발&lt;br /&gt;
*컴퓨터과학부 2014920037 이정한 : 작품설계 및 개발&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  번호 !! 요 구 사 항 !! D or W !! 중요도&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 기존 시계열 분석 논문에 있는 전략(요소, Factor)들을 모듈로 개발 || D || 대 &lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 시계열 데이터 분석 모듈을 적용할 수 있는 강화학습 모델을 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| 모델을 학습시킬 수 있는 환경(Env, DB) 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| PPO와 DQN 강화학습 알고리즘을 구현하고 분석 || W || 중&lt;br /&gt;
|}&lt;br /&gt;
====설계 사양====&lt;br /&gt;
*목적계통도&lt;br /&gt;
[[그림:Hoho7.png]]&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
*기존에 연구되어진 시계열 분석 알고리즘을 이용한 결과물들은 제각기 집중하는 부분이 다르기 때문에, 그 정확도가 서로 배타적 일 것이다. 즉 어느 한 알고리즘이 우위의 정확도를 가질 경우 다른 알고리즘은 상대적으로 낮은 정확도를 가질 것이다.&lt;br /&gt;
**서로 정확성에 있어 배타적일 정도로 다른 시계열 분석 알고리즘을 찾아야한다.&lt;br /&gt;
**배타적인 TA 알고리즘 a0~an을 찾고, 구현한다.&lt;br /&gt;
*강화학습 예측 모델&lt;br /&gt;
[[그림:Hoho8.png]]&lt;br /&gt;
**강화학습을 이용한 시계열 데이터의 학습을 통해 예측 모델을 생성한다.&lt;br /&gt;
**예측 모델은 다음과 같이 크게 두가지 단계로 구성된다.&lt;br /&gt;
***직접 시계열 데이터를 분석 / 예측하는 전략적 알고리즘&lt;br /&gt;
****네이밍: a0, a1, … , an&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {예측된 다음 시계열 데이터=o0, o1, …, on}&lt;br /&gt;
***인공신경망을 응용하는, 적절한 전략적 알고리즘에 가중치를 부여하는 알고리즘&lt;br /&gt;
****네이밍: M&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {w0, w1, …, wn}&lt;br /&gt;
****어느 하나의 전략적 알고리즘을 선택하는 방식(hard decision)이 아니라, 여러 전략적 알고리즘의 정확도를 연판정(soft decision)하여 그 비중을 출력한다. &lt;br /&gt;
**a의 결과인 O와 b의 결과인 W를 곱하여 최종 예측치를 계산한다. (가중평균)&lt;br /&gt;
***Predict = OW&lt;br /&gt;
**이 Agent의 결과에 따라서 전략을 어떤 비율로 선택하게 된다. 이를 조합한 값으로 특정 광물에 대한 매수 혹은 매도할 값을 선택하게 된다.&lt;br /&gt;
*강화학습 환경 구성 요소&lt;br /&gt;
**에이전트&lt;br /&gt;
***state값들을 DNN을 사용하여 전략을 선택할 수 있는 값으로 추출한다.&lt;br /&gt;
***전략개수 의존적&lt;br /&gt;
**환경&lt;br /&gt;
***한 거래소의 해당 광물의 일봉csv데이터를 시간에 따라서 사용&lt;br /&gt;
***USD, EUR (KRW 기준) 지수 데이터&lt;br /&gt;
**리워드 공식&lt;br /&gt;
***해당 광물의 가치와 잔금을 합산한 값을 리워드로 사용한다.&lt;br /&gt;
**액션 리스트&lt;br /&gt;
***양수는 매수, 음수는 매도의 의미로 하나의 출력값을 사용한다.&lt;br /&gt;
****광물 거래는 1주 단위의 이산적인 값을 사용한다.&lt;br /&gt;
****최대, 최소값을 설정한다.&lt;br /&gt;
*학습 시나리오&lt;br /&gt;
**매 학습에서 어떤 기간을 랜덤으로 설정한다.&lt;br /&gt;
**이 시간동안의 광물시장 데이터를 사용해서 하루 단위로 액션을 진행한다.&lt;br /&gt;
**시계열 분석 부분에서 각각의 전략이 매수/매도값을 도출한다.&lt;br /&gt;
**강화학습 부분에서 가중치를 도출한다.&lt;br /&gt;
**가중치값과 매수/매도값을 각각 곱하고 누적한다.&lt;br /&gt;
**해당 값을 통해 매수/매도/유지를 진행한다.매도가 될 때까지 진행하고 매도시 수익률을 구한다.&lt;br /&gt;
**수익률이 증가하는 방향으로 학습을 한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
*강화학습 오픈소스) DQN을 이용한 트레이딩 학습 테스트&lt;br /&gt;
**학습개요&lt;br /&gt;
***아래는 국내 3개 IT기업의 일봉데이터를 대상으로 학습을 진행한 결과이다.&lt;br /&gt;
***구현에서는 가능한 만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
***아래의 그래프에서는 초기 투자금을 가지고 시간에 따라서 자산 가치가 어떻게 변하는지 보여준다.&lt;br /&gt;
**트레이닝 데이터로 학습 진행 중 자산가치변화&lt;br /&gt;
[[파일:Hoho1.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***초반에는 매우 가치가 크지만 불안정한 트레이딩을 하다가 후에 안정적인 수익률을 보여주는 것을 알 수 있다.&lt;br /&gt;
**테스트 데이터에서 거래중 자산가치 변화&lt;br /&gt;
[[파일:Hoho2.png]]&lt;br /&gt;
***빨간 선은 초기 투자 금액이다.&lt;br /&gt;
***테스트 데이터로 트레이딩 했을 때 투자금액 보다 평균 12%의 수익을 올릴 수 있었다.&lt;br /&gt;
***단순 시가만으로 학습을 하는 경우, 위와 같이 매우 불안정하므로 다양한 전략을 통해 개선이 필요하다.&lt;br /&gt;
*전략 오픈소스) 10일, 30일 이동평균선 교차점 검출을 이용한 매수 매도 알고리즘 트레이딩&lt;br /&gt;
**방법&lt;br /&gt;
***현재까지 크롤링한 일봉데이터에서 단기 이동평균선과 장기 이동평균선의 교차점은 중요한 매도, 매수타이밍의 후보가 될 수 있다. 장기적인 추세를 따라가는 것이 미래에 대체로 좋은 방향이 되므로 장기평균선이 상승할 떄 매수, 하락 할 때 매도를 하는 것이 좋다.&lt;br /&gt;
***구현에서는 가능한만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
**Ta-lib&lt;br /&gt;
***Technical Analysis LIbrary&lt;br /&gt;
***시장분석과 같은 시계열 데이터 알고리즘을 분석하는데 사용하는 라이브러리&lt;br /&gt;
***내부에서는 기본 시장지표를 받으면 이에 따라서 새로운 보조지표를 만들어주거나 패턴을 검출하는 함수 제공&lt;br /&gt;
***구현에서 이동평균선 지표를 얻을 때 사용.&lt;br /&gt;
**가상트레이딩에 따른 자산가치 변화&lt;br /&gt;
[[파일:Hoho3.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***위와 같이 장기간 트레이딩을 진행하는데 있어서 이동평균선 교차점을 이용한 트레이딩이 좋은 효과를 보이는 것을 알 수 있다.&lt;br /&gt;
*광물시장 시가데이터 크롤링&lt;br /&gt;
**한국거래소([http://www.krx.co.kr])&lt;br /&gt;
**거래소홈페이지에서 1년단위의 데이터를 csv로 내려받을 수 있다.&lt;br /&gt;
**아래는 2014년 - 2019년의 종가를 그래프로 나타낸 것이다.&lt;br /&gt;
[[파일:Hoho4.png]]&lt;br /&gt;
*DQN 소스코드를 사용한 광물시장 가상 트레이딩&lt;br /&gt;
**위에서 사용한 DQN방법을 금시장을 대상으로 트레이딩을 진행했다.&lt;br /&gt;
**구현방식은 위의 DQN을 이용한 트레이딩 테스트와 같다.&lt;br /&gt;
**2000회 트레이닝을 진행하여서 매회 트레이닝마다 다음과 같은 결과를 얻을 수 있었다.&lt;br /&gt;
[[파일:Hoho5.png]]&lt;br /&gt;
**초기투자금액 10,000,000원으로 학습을 진행했다.&lt;br /&gt;
**위에서 트레이닝한 결과를 바탕으로 테스트를 진행했다.&lt;br /&gt;
[[파일:Hoho6.png]]&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
&lt;br /&gt;
* 클래스 다이어그램&lt;br /&gt;
[[파일:hoho9.png]]&lt;br /&gt;
** BaseTrainEnv&lt;br /&gt;
*** 실제 시장의 환경을 강화학습에서 모델링하기 위한 베이스 클래스이다. API를 이용한 투자와 csv데이터로 가상화되는 환경의 베이스가 된다.&lt;br /&gt;
*** reset()으로 환경을 초기화 한다.&lt;br /&gt;
*** step()으로 거래를 전달하면, 다음날의 가격(state), 현재 가치(reward), 시간흐름의 완료(done), 기타정보를 반환한다.&lt;br /&gt;
** APITrainEnv&lt;br /&gt;
*** 실제 투자API가 구현되는 클래스이다.&lt;br /&gt;
** CsvTrainEnv&lt;br /&gt;
*** csv 데이터를 이용해 투자 환경이 구현되는 클래스이다.&lt;br /&gt;
**CsvTrainSet&lt;br /&gt;
*** 투자 환경에 필요한 주가 데이터를 종합한 클래스이다.&lt;br /&gt;
*** currency : 기준 통화&lt;br /&gt;
*** exchange_rate : 기준 통화와 다른 통화의 환율&lt;br /&gt;
*** object_price : 거래 대상의 가격데이터&lt;br /&gt;
*** other_object_price : 거래 대상이외의 참고할 대상의 가격데이터&lt;br /&gt;
** PPOTrainModel &amp;amp; DQNTrainModel&lt;br /&gt;
*** trainEnv: 사용한 투자환경 클래스이다.&lt;br /&gt;
*** agent: 전략별 채택 가중치를 계산할 수 있는 오브젝트이다.&lt;br /&gt;
*** tradeStrategies: 트레이딩에서 사용할 전략 알고리즘의 배열이다.&lt;br /&gt;
** BaseTradeStrategy&lt;br /&gt;
*** 트레이딩에 사용할 수 있는 전략알고리즘을 추상화한 클래스이다.&lt;br /&gt;
*** getInvest의 출력값은 +(매수), -(매도)로 나타낸다.&lt;br /&gt;
&lt;br /&gt;
** &lt;br /&gt;
** 호호호&lt;br /&gt;
&lt;br /&gt;
* UI구성&lt;br /&gt;
** 호호호&lt;br /&gt;
** 호호호&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1445</id>
		<title>호호조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1445"/>
				<updated>2019-06-20T05:03:10Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : 광물시장에서 강화학습을 이용한 트레이딩 봇&lt;br /&gt;
&lt;br /&gt;
''' 영문 :  Trading-bot using Reinforcement Learning in a mineral market&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
호호&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
이동희 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920044 이홍석(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920037 이정한&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
*이전부터 사용자들이 많이 사용하던 시계열 분석 알고리즘과 다양한 지표들을 활용하여 강화학습을 이용하여 광물 가격을 예측한다.&lt;br /&gt;
*광물시장에서 시가에 영향을 미치는 다양한 요인이 존재한다.&lt;br /&gt;
*이미 밝혀진 다양한 요인들과 우리들이 생각한 요인들을 정리한다.&lt;br /&gt;
*이러한 요인들을 강화학습을 통해서 상관관계가 있는지 확인하고 실제로 수익을 낼 수 있는 모델과 학습을 진행한다.&lt;br /&gt;
*여러 가지 요인(차트 및 시장표준지수)들과 전략들을 가지고 하나의 광물을 대상으로 수익률이 높을 것으로 예상되는 매수, 매도 타이밍을 찾아낼 수 있는 것을 목표로 한다.&lt;br /&gt;
*다양한 강화학습 알고리즘 중 PPO(Proximal Policy Optimization), DQN(Deep Q Network)을 사용하여 구현해보고 어떤 방식이 더 잘 맞는지 분석해본다.&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*광물 시장은 매 시간마다 변동함&lt;br /&gt;
*광물 시장의 변동은 어떠한 요인들에 의해 값어치가 올라가기도 하고 내려가기도 함&lt;br /&gt;
*다양한 논문 Research 및 분석을 통해 값에 변화를 주는 요인들을 선별&lt;br /&gt;
*해당 요인들을 강화학습 모델의 환경에 넣어서 학습을 시킴&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
*강화학습을 이용하여 트레이딩을 자동으로 하는 봇을 만든다.&lt;br /&gt;
*광물 가격에 영향을 주는 요인들을 찾아보고 어느 정도 연관관계가 있는지 확인한다.&lt;br /&gt;
*연관관계가 있는 요인들을 모아서 강화학습모델에 적용시켜보고 실제로 효과가 있는지 확인해본다.&lt;br /&gt;
*효과가 컸던 요인들을 모아서 모의 투자 상황에서 수익률 분석을 해본다.&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
**자동 거래 시스템(ATS;Automated Trading System)은 1949년 Richard Donchian이 funds를 사고 파는 일련의 규칙을 사용하여 처음 소개되었다. 1980년대에는 John Henry와 같은 유명한 Trader들이 전략을 사용하기 시작하여, 규칙 기반 거래(Rule Based Trading)라는 개념이 대중화되었다. 현재는 미국 증권 거래소 주식 거래의 75% 이상이 자동 거래 시스템으로 이루어진다.&lt;br /&gt;
**최근에는 AI의 등장으로, 수많은 은행이나 투자자들이 AI를 활용하여 규칙 기반 거래나 직접 거래보다 훨씬 수익률이 높은 모델을 개발중이다. 딥러닝, 머신러닝 등의 기술을 활용하여 Trading Bot을 개발하고 있으며, 강화학습의 등장이후, 다양한 Trading Bot Project에서 강화학습을 도입하려는 움직임을 보이고 있다.&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
**거절 : 알고리즘 자동 매매 봇, [https://doi.org/10.8080/1020090067197]&lt;br /&gt;
***알고리즘 트레이딩 봇들을 모아서 관리할 수 있는 시스템&lt;br /&gt;
***통상적인 기술자가 충분히 만들 수 있는 것으로 판단하여 특허 거절&lt;br /&gt;
**등록 : 소셜트레이딩 방법, [http://kpat.kipris.or.kr/kpat/biblioa.do?method=biblioFrame]&lt;br /&gt;
***리더를 설정하여 해당 리더의 매매를 확인하고 추종하는 알고리즘&lt;br /&gt;
*기술 로드맵&lt;br /&gt;
**자동으로 거래를 할 수 있는 봇의 형태를 만들어야 하고, 모의투자를 통해 테스트할 수 있는 환경을 만들어야하기 때문에 투자, 증권사 API 및 모의투자 서버가 필요하다. 따라서, 키움증권, 대신증권, 이베스트투자증권 등의 회사의 API를 활용하고, 이 회사들의 모의투자 서버를 통해 수익률을 분석할 수 있다.&lt;br /&gt;
**강화학습은 환경이 주어지고, 해당 환경에 액션을 취하면 그에 따른 보상을 주면서 학습을 시킨다. 일반적인 딥 러닝은 어떤 요인들의 상호관계를 표현하지 못한다. 하지만 강화학습은 환경을 통해 어떤 요인들의 상호관계를 표현할 수 있다. 주식들은 서로 상호관계를 가지고 있으므로 강화학습을 이용하는 것이 유리한 방법이라 할 수 있다.&lt;br /&gt;
**현재에는 차트분석만으로 주식이나 광물시장에서의 매도, 매수타이밍을 잡아서 수익을 낼 수 있는 다양한 방법이 연구되고 있다. 이를 기술적 매매라고 부른다. 이러한 방법을 이용하여 알고리즘으로 구현하면 보다 안정적이고 수익률이 검증된 매매방법을 사용할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
**이러한 제품들은 시장에 공개적으로 나와있는 것을 쉽게 찾을 수 없다. 이러한 트레이딩봇 자체가 실제 주식시장에서 수익을 낼 수 있기 때문이다. 이윤을 창출하는 기업의 입장에서는 이 트레이딩 봇을 직접적으로 사용하지 않을 이유가 없다.&lt;br /&gt;
**또한 많은 사용자가 트레이딩 봇을 사용한다고 가정했을 때 모두가 이익을 볼 수 있는 것은 아니다. 같은 알고리즘을 사용하는 트레이딩 봇이 많으면 수익률이 줄어 들기 때문에 이러한 트레이딩 봇을 상용화하지 않은 것으로 보인다.&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! 알고리즘 !! 증권사 API !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 브레인듀드의 듀드303, 듀드프로&lt;br /&gt;
| 사용자의 조건검색식 사용 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 키움증권의 로보마켓&lt;br /&gt;
| 다양한 알고리즘 전략 제시 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 주식몰 오토핫키&lt;br /&gt;
| 해당하는 설명이 없음 || 해당하는 설명이 없음 || 마켓팅 위주의 사업 진행&lt;br /&gt;
|}&lt;br /&gt;
**위와 같이 알고리즘 트레이딩 봇을 만드는 회사 이외에도 증권사나 펀드회사 같은 경우에도 가치투자를 위한 분석자료를 제공하는 서비스를 제공할 수 있다.&lt;br /&gt;
**한국거래소에서는 종목마다 투자가치를 판단할 수 있는 자료를 제공한다. 이에 따라서 우리의 트레이딩봇과 경쟁해야 하는 부분을 가지고 있다.&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**위와 같이 여러가지 요인을 연구, 분석함에 따라서 트레이딩 봇을 만들 수 있다. 이 요인들의 적당한 조합으로 여러가지 특성을 띠는 트레이딩 봇을 개발할 수 있다.&lt;br /&gt;
**사용자들에게 원하는 이익구조를 선택할 수 있게 한다. 예를 들어 수익률이 크게 높지 않더라도 안정적인 투자를 원하는 사용자가 있고, 위험을 감수하더라도 높은 수익률을 원하는 사용자가 있다. 요인분석에 따라서 얻을 수 있는 특징들을 찾아내고 이러한 요인들로 주식트레이딩의 위험, 최고 수익률등이 결정될 것이다. &lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
*기존의 주식 트레이딩봇들은 우리가 직접 알고리즘을 구현하고 설계함에 따라서 작동했다. 사람의 직관을 이용해서 장기투자를 하는 것이 아니라 짧은 시간의 시장변동을 감지해서 조금씩 수익을 올리는 등의 알고리즘이 만들어져 왔다. 하지만 강화학습과 딥러닝을 사용해서 좀 더 효과적인 방향을 찾을 수 있다.&lt;br /&gt;
*딥러닝에서 사용하는 뉴럴 네트워크는 학습이 완료되었을 때 예측속도가 매우 빠르다는 특징을 갖고 있다. 해당 요인을 성공적으로 학습한 네트워크를 얻은 후에 봇을 사용할 때는 컴퓨팅의 성능을 크게 사용하지 않고 빠른 속도의 트레이딩이 가능하다.&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
*위에서 서술한 대로 만일 강화학습을 이용해서 주식 트레이딩봇이 성공적으로 수익을 낼 수 있는 구조라면, 이와 유사한 트레이딩봇이 많이 등장할 것이다. 더불어서 강화학습에 딥러닝을 적용시키면서 구성할 수 있는 선택의 여지가 많아졌다. 각기 학습하는 방법에 따라서 각기 다른 여러가지 전략이 등장할 수 있는 것이다. 따라서 기존에 알고리즘을 이용해서 매매를 진행하던 투자자들이 새롭게 등장하는 트레이딩봇의 투자전략에 영향을 받을 것이며, 시장의 특성은 더 다양하고 복잡해질 것이다.&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  단계별 세부개발 내용 !! 담당자 !! 개발기간 !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 강화학습 환경 설계&lt;br /&gt;
| 이홍석 || 3~4 || &lt;br /&gt;
|-&lt;br /&gt;
! 모의투자 환경구성 및 트레이딩 봇 구현&lt;br /&gt;
| 이정한 || 4~5 ||&lt;br /&gt;
|-&lt;br /&gt;
! 학습진행 및 정확도 개선&lt;br /&gt;
| 이홍석 || 4~6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 기존의 트레이딩 봇과의 성능 비교&lt;br /&gt;
| 이정한 || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 요인 연구 및 분석&lt;br /&gt;
| 이홍석, 이정한 || 3~6 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
*컴퓨터과학부 2014920044 이홍석 : 작품설계 및 개발&lt;br /&gt;
*컴퓨터과학부 2014920037 이정한 : 작품설계 및 개발&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  번호 !! 요 구 사 항 !! D or W !! 중요도&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 기존 시계열 분석 논문에 있는 전략(요소, Factor)들을 모듈로 개발 || D || 대 &lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 시계열 데이터 분석 모듈을 적용할 수 있는 강화학습 모델을 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| 모델을 학습시킬 수 있는 환경(Env, DB) 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| PPO와 DQN 강화학습 알고리즘을 구현하고 분석 || W || 중&lt;br /&gt;
|}&lt;br /&gt;
====설계 사양====&lt;br /&gt;
*목적계통도&lt;br /&gt;
[[그림:Hoho7.png]]&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
*기존에 연구되어진 시계열 분석 알고리즘을 이용한 결과물들은 제각기 집중하는 부분이 다르기 때문에, 그 정확도가 서로 배타적 일 것이다. 즉 어느 한 알고리즘이 우위의 정확도를 가질 경우 다른 알고리즘은 상대적으로 낮은 정확도를 가질 것이다.&lt;br /&gt;
**서로 정확성에 있어 배타적일 정도로 다른 시계열 분석 알고리즘을 찾아야한다.&lt;br /&gt;
**배타적인 TA 알고리즘 a0~an을 찾고, 구현한다.&lt;br /&gt;
*강화학습 예측 모델&lt;br /&gt;
[[그림:Hoho8.png]]&lt;br /&gt;
**강화학습을 이용한 시계열 데이터의 학습을 통해 예측 모델을 생성한다.&lt;br /&gt;
**예측 모델은 다음과 같이 크게 두가지 단계로 구성된다.&lt;br /&gt;
***직접 시계열 데이터를 분석 / 예측하는 전략적 알고리즘&lt;br /&gt;
****네이밍: a0, a1, … , an&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {예측된 다음 시계열 데이터=o0, o1, …, on}&lt;br /&gt;
***인공신경망을 응용하는, 적절한 전략적 알고리즘에 가중치를 부여하는 알고리즘&lt;br /&gt;
****네이밍: M&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {w0, w1, …, wn}&lt;br /&gt;
****어느 하나의 전략적 알고리즘을 선택하는 방식(hard decision)이 아니라, 여러 전략적 알고리즘의 정확도를 연판정(soft decision)하여 그 비중을 출력한다. &lt;br /&gt;
**a의 결과인 O와 b의 결과인 W를 곱하여 최종 예측치를 계산한다. (가중평균)&lt;br /&gt;
***Predict = OW&lt;br /&gt;
**이 Agent의 결과에 따라서 전략을 어떤 비율로 선택하게 된다. 이를 조합한 값으로 특정 광물에 대한 매수 혹은 매도할 값을 선택하게 된다.&lt;br /&gt;
*강화학습 환경 구성 요소&lt;br /&gt;
**에이전트&lt;br /&gt;
***state값들을 DNN을 사용하여 전략을 선택할 수 있는 값으로 추출한다.&lt;br /&gt;
***전략개수 의존적&lt;br /&gt;
**환경&lt;br /&gt;
***한 거래소의 해당 광물의 일봉csv데이터를 시간에 따라서 사용&lt;br /&gt;
***USD, EUR (KRW 기준) 지수 데이터&lt;br /&gt;
**리워드 공식&lt;br /&gt;
***해당 광물의 가치와 잔금을 합산한 값을 리워드로 사용한다.&lt;br /&gt;
**액션 리스트&lt;br /&gt;
***양수는 매수, 음수는 매도의 의미로 하나의 출력값을 사용한다.&lt;br /&gt;
****광물 거래는 1주 단위의 이산적인 값을 사용한다.&lt;br /&gt;
****최대, 최소값을 설정한다.&lt;br /&gt;
*학습 시나리오&lt;br /&gt;
**매 학습에서 어떤 기간을 랜덤으로 설정한다.&lt;br /&gt;
**이 시간동안의 광물시장 데이터를 사용해서 하루 단위로 액션을 진행한다.&lt;br /&gt;
**시계열 분석 부분에서 각각의 전략이 매수/매도값을 도출한다.&lt;br /&gt;
**강화학습 부분에서 가중치를 도출한다.&lt;br /&gt;
**가중치값과 매수/매도값을 각각 곱하고 누적한다.&lt;br /&gt;
**해당 값을 통해 매수/매도/유지를 진행한다.매도가 될 때까지 진행하고 매도시 수익률을 구한다.&lt;br /&gt;
**수익률이 증가하는 방향으로 학습을 한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
*강화학습 오픈소스) DQN을 이용한 트레이딩 학습 테스트&lt;br /&gt;
**학습개요&lt;br /&gt;
***아래는 국내 3개 IT기업의 일봉데이터를 대상으로 학습을 진행한 결과이다.&lt;br /&gt;
***구현에서는 가능한 만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
***아래의 그래프에서는 초기 투자금을 가지고 시간에 따라서 자산 가치가 어떻게 변하는지 보여준다.&lt;br /&gt;
**트레이닝 데이터로 학습 진행 중 자산가치변화&lt;br /&gt;
[[파일:Hoho1.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***초반에는 매우 가치가 크지만 불안정한 트레이딩을 하다가 후에 안정적인 수익률을 보여주는 것을 알 수 있다.&lt;br /&gt;
**테스트 데이터에서 거래중 자산가치 변화&lt;br /&gt;
[[파일:Hoho2.png]]&lt;br /&gt;
***빨간 선은 초기 투자 금액이다.&lt;br /&gt;
***테스트 데이터로 트레이딩 했을 때 투자금액 보다 평균 12%의 수익을 올릴 수 있었다.&lt;br /&gt;
***단순 시가만으로 학습을 하는 경우, 위와 같이 매우 불안정하므로 다양한 전략을 통해 개선이 필요하다.&lt;br /&gt;
*전략 오픈소스) 10일, 30일 이동평균선 교차점 검출을 이용한 매수 매도 알고리즘 트레이딩&lt;br /&gt;
**방법&lt;br /&gt;
***현재까지 크롤링한 일봉데이터에서 단기 이동평균선과 장기 이동평균선의 교차점은 중요한 매도, 매수타이밍의 후보가 될 수 있다. 장기적인 추세를 따라가는 것이 미래에 대체로 좋은 방향이 되므로 장기평균선이 상승할 떄 매수, 하락 할 때 매도를 하는 것이 좋다.&lt;br /&gt;
***구현에서는 가능한만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
**Ta-lib&lt;br /&gt;
***Technical Analysis LIbrary&lt;br /&gt;
***시장분석과 같은 시계열 데이터 알고리즘을 분석하는데 사용하는 라이브러리&lt;br /&gt;
***내부에서는 기본 시장지표를 받으면 이에 따라서 새로운 보조지표를 만들어주거나 패턴을 검출하는 함수 제공&lt;br /&gt;
***구현에서 이동평균선 지표를 얻을 때 사용.&lt;br /&gt;
**가상트레이딩에 따른 자산가치 변화&lt;br /&gt;
[[파일:Hoho3.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***위와 같이 장기간 트레이딩을 진행하는데 있어서 이동평균선 교차점을 이용한 트레이딩이 좋은 효과를 보이는 것을 알 수 있다.&lt;br /&gt;
*광물시장 시가데이터 크롤링&lt;br /&gt;
**한국거래소([http://www.krx.co.kr])&lt;br /&gt;
**거래소홈페이지에서 1년단위의 데이터를 csv로 내려받을 수 있다.&lt;br /&gt;
**아래는 2014년 - 2019년의 종가를 그래프로 나타낸 것이다.&lt;br /&gt;
[[파일:Hoho4.png]]&lt;br /&gt;
*DQN 소스코드를 사용한 광물시장 가상 트레이딩&lt;br /&gt;
**위에서 사용한 DQN방법을 금시장을 대상으로 트레이딩을 진행했다.&lt;br /&gt;
**구현방식은 위의 DQN을 이용한 트레이딩 테스트와 같다.&lt;br /&gt;
**2000회 트레이닝을 진행하여서 매회 트레이닝마다 다음과 같은 결과를 얻을 수 있었다.&lt;br /&gt;
[[파일:Hoho5.png]]&lt;br /&gt;
**초기투자금액 10,000,000원으로 학습을 진행했다.&lt;br /&gt;
**위에서 트레이닝한 결과를 바탕으로 테스트를 진행했다.&lt;br /&gt;
[[파일:Hoho6.png]]&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
&lt;br /&gt;
* 클래스 다이어그램&lt;br /&gt;
[[파일:hoho9.png]]&lt;br /&gt;
한글이 된다고?!&lt;br /&gt;
** 호호&lt;br /&gt;
** 호호호&lt;br /&gt;
&lt;br /&gt;
* UI구성&lt;br /&gt;
** 호호호&lt;br /&gt;
** 호호호&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho9.png&amp;diff=1444</id>
		<title>파일:Hoho9.png</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho9.png&amp;diff=1444"/>
				<updated>2019-06-20T05:02:34Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: 호호조 클래스 다이어그램&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;호호조 클래스 다이어그램&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1443</id>
		<title>호호조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1443"/>
				<updated>2019-06-20T04:45:42Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : 광물시장에서 강화학습을 이용한 트레이딩 봇&lt;br /&gt;
&lt;br /&gt;
''' 영문 :  Trading-bot using Reinforcement Learning in a mineral market&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
호호&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
이동희 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920044 이홍석(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920037 이정한&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
*이전부터 사용자들이 많이 사용하던 시계열 분석 알고리즘과 다양한 지표들을 활용하여 강화학습을 이용하여 광물 가격을 예측한다.&lt;br /&gt;
*광물시장에서 시가에 영향을 미치는 다양한 요인이 존재한다.&lt;br /&gt;
*이미 밝혀진 다양한 요인들과 우리들이 생각한 요인들을 정리한다.&lt;br /&gt;
*이러한 요인들을 강화학습을 통해서 상관관계가 있는지 확인하고 실제로 수익을 낼 수 있는 모델과 학습을 진행한다.&lt;br /&gt;
*여러 가지 요인(차트 및 시장표준지수)들과 전략들을 가지고 하나의 광물을 대상으로 수익률이 높을 것으로 예상되는 매수, 매도 타이밍을 찾아낼 수 있는 것을 목표로 한다.&lt;br /&gt;
*다양한 강화학습 알고리즘 중 PPO(Proximal Policy Optimization), DQN(Deep Q Network)을 사용하여 구현해보고 어떤 방식이 더 잘 맞는지 분석해본다.&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*광물 시장은 매 시간마다 변동함&lt;br /&gt;
*광물 시장의 변동은 어떠한 요인들에 의해 값어치가 올라가기도 하고 내려가기도 함&lt;br /&gt;
*다양한 논문 Research 및 분석을 통해 값에 변화를 주는 요인들을 선별&lt;br /&gt;
*해당 요인들을 강화학습 모델의 환경에 넣어서 학습을 시킴&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
*강화학습을 이용하여 트레이딩을 자동으로 하는 봇을 만든다.&lt;br /&gt;
*광물 가격에 영향을 주는 요인들을 찾아보고 어느 정도 연관관계가 있는지 확인한다.&lt;br /&gt;
*연관관계가 있는 요인들을 모아서 강화학습모델에 적용시켜보고 실제로 효과가 있는지 확인해본다.&lt;br /&gt;
*효과가 컸던 요인들을 모아서 모의 투자 상황에서 수익률 분석을 해본다.&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
**자동 거래 시스템(ATS;Automated Trading System)은 1949년 Richard Donchian이 funds를 사고 파는 일련의 규칙을 사용하여 처음 소개되었다. 1980년대에는 John Henry와 같은 유명한 Trader들이 전략을 사용하기 시작하여, 규칙 기반 거래(Rule Based Trading)라는 개념이 대중화되었다. 현재는 미국 증권 거래소 주식 거래의 75% 이상이 자동 거래 시스템으로 이루어진다.&lt;br /&gt;
**최근에는 AI의 등장으로, 수많은 은행이나 투자자들이 AI를 활용하여 규칙 기반 거래나 직접 거래보다 훨씬 수익률이 높은 모델을 개발중이다. 딥러닝, 머신러닝 등의 기술을 활용하여 Trading Bot을 개발하고 있으며, 강화학습의 등장이후, 다양한 Trading Bot Project에서 강화학습을 도입하려는 움직임을 보이고 있다.&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
**거절 : 알고리즘 자동 매매 봇, [https://doi.org/10.8080/1020090067197]&lt;br /&gt;
***알고리즘 트레이딩 봇들을 모아서 관리할 수 있는 시스템&lt;br /&gt;
***통상적인 기술자가 충분히 만들 수 있는 것으로 판단하여 특허 거절&lt;br /&gt;
**등록 : 소셜트레이딩 방법, [http://kpat.kipris.or.kr/kpat/biblioa.do?method=biblioFrame]&lt;br /&gt;
***리더를 설정하여 해당 리더의 매매를 확인하고 추종하는 알고리즘&lt;br /&gt;
*기술 로드맵&lt;br /&gt;
**자동으로 거래를 할 수 있는 봇의 형태를 만들어야 하고, 모의투자를 통해 테스트할 수 있는 환경을 만들어야하기 때문에 투자, 증권사 API 및 모의투자 서버가 필요하다. 따라서, 키움증권, 대신증권, 이베스트투자증권 등의 회사의 API를 활용하고, 이 회사들의 모의투자 서버를 통해 수익률을 분석할 수 있다.&lt;br /&gt;
**강화학습은 환경이 주어지고, 해당 환경에 액션을 취하면 그에 따른 보상을 주면서 학습을 시킨다. 일반적인 딥 러닝은 어떤 요인들의 상호관계를 표현하지 못한다. 하지만 강화학습은 환경을 통해 어떤 요인들의 상호관계를 표현할 수 있다. 주식들은 서로 상호관계를 가지고 있으므로 강화학습을 이용하는 것이 유리한 방법이라 할 수 있다.&lt;br /&gt;
**현재에는 차트분석만으로 주식이나 광물시장에서의 매도, 매수타이밍을 잡아서 수익을 낼 수 있는 다양한 방법이 연구되고 있다. 이를 기술적 매매라고 부른다. 이러한 방법을 이용하여 알고리즘으로 구현하면 보다 안정적이고 수익률이 검증된 매매방법을 사용할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
**이러한 제품들은 시장에 공개적으로 나와있는 것을 쉽게 찾을 수 없다. 이러한 트레이딩봇 자체가 실제 주식시장에서 수익을 낼 수 있기 때문이다. 이윤을 창출하는 기업의 입장에서는 이 트레이딩 봇을 직접적으로 사용하지 않을 이유가 없다.&lt;br /&gt;
**또한 많은 사용자가 트레이딩 봇을 사용한다고 가정했을 때 모두가 이익을 볼 수 있는 것은 아니다. 같은 알고리즘을 사용하는 트레이딩 봇이 많으면 수익률이 줄어 들기 때문에 이러한 트레이딩 봇을 상용화하지 않은 것으로 보인다.&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! 알고리즘 !! 증권사 API !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 브레인듀드의 듀드303, 듀드프로&lt;br /&gt;
| 사용자의 조건검색식 사용 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 키움증권의 로보마켓&lt;br /&gt;
| 다양한 알고리즘 전략 제시 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 주식몰 오토핫키&lt;br /&gt;
| 해당하는 설명이 없음 || 해당하는 설명이 없음 || 마켓팅 위주의 사업 진행&lt;br /&gt;
|}&lt;br /&gt;
**위와 같이 알고리즘 트레이딩 봇을 만드는 회사 이외에도 증권사나 펀드회사 같은 경우에도 가치투자를 위한 분석자료를 제공하는 서비스를 제공할 수 있다.&lt;br /&gt;
**한국거래소에서는 종목마다 투자가치를 판단할 수 있는 자료를 제공한다. 이에 따라서 우리의 트레이딩봇과 경쟁해야 하는 부분을 가지고 있다.&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**위와 같이 여러가지 요인을 연구, 분석함에 따라서 트레이딩 봇을 만들 수 있다. 이 요인들의 적당한 조합으로 여러가지 특성을 띠는 트레이딩 봇을 개발할 수 있다.&lt;br /&gt;
**사용자들에게 원하는 이익구조를 선택할 수 있게 한다. 예를 들어 수익률이 크게 높지 않더라도 안정적인 투자를 원하는 사용자가 있고, 위험을 감수하더라도 높은 수익률을 원하는 사용자가 있다. 요인분석에 따라서 얻을 수 있는 특징들을 찾아내고 이러한 요인들로 주식트레이딩의 위험, 최고 수익률등이 결정될 것이다. &lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
*기존의 주식 트레이딩봇들은 우리가 직접 알고리즘을 구현하고 설계함에 따라서 작동했다. 사람의 직관을 이용해서 장기투자를 하는 것이 아니라 짧은 시간의 시장변동을 감지해서 조금씩 수익을 올리는 등의 알고리즘이 만들어져 왔다. 하지만 강화학습과 딥러닝을 사용해서 좀 더 효과적인 방향을 찾을 수 있다.&lt;br /&gt;
*딥러닝에서 사용하는 뉴럴 네트워크는 학습이 완료되었을 때 예측속도가 매우 빠르다는 특징을 갖고 있다. 해당 요인을 성공적으로 학습한 네트워크를 얻은 후에 봇을 사용할 때는 컴퓨팅의 성능을 크게 사용하지 않고 빠른 속도의 트레이딩이 가능하다.&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
*위에서 서술한 대로 만일 강화학습을 이용해서 주식 트레이딩봇이 성공적으로 수익을 낼 수 있는 구조라면, 이와 유사한 트레이딩봇이 많이 등장할 것이다. 더불어서 강화학습에 딥러닝을 적용시키면서 구성할 수 있는 선택의 여지가 많아졌다. 각기 학습하는 방법에 따라서 각기 다른 여러가지 전략이 등장할 수 있는 것이다. 따라서 기존에 알고리즘을 이용해서 매매를 진행하던 투자자들이 새롭게 등장하는 트레이딩봇의 투자전략에 영향을 받을 것이며, 시장의 특성은 더 다양하고 복잡해질 것이다.&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  단계별 세부개발 내용 !! 담당자 !! 개발기간 !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 강화학습 환경 설계&lt;br /&gt;
| 이홍석 || 3~4 || &lt;br /&gt;
|-&lt;br /&gt;
! 모의투자 환경구성 및 트레이딩 봇 구현&lt;br /&gt;
| 이정한 || 4~5 ||&lt;br /&gt;
|-&lt;br /&gt;
! 학습진행 및 정확도 개선&lt;br /&gt;
| 이홍석 || 4~6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 기존의 트레이딩 봇과의 성능 비교&lt;br /&gt;
| 이정한 || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 요인 연구 및 분석&lt;br /&gt;
| 이홍석, 이정한 || 3~6 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
*컴퓨터과학부 2014920044 이홍석 : 작품설계 및 개발&lt;br /&gt;
*컴퓨터과학부 2014920037 이정한 : 작품설계 및 개발&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  번호 !! 요 구 사 항 !! D or W !! 중요도&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 기존 시계열 분석 논문에 있는 전략(요소, Factor)들을 모듈로 개발 || D || 대 &lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 시계열 데이터 분석 모듈을 적용할 수 있는 강화학습 모델을 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| 모델을 학습시킬 수 있는 환경(Env, DB) 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| PPO와 DQN 강화학습 알고리즘을 구현하고 분석 || W || 중&lt;br /&gt;
|}&lt;br /&gt;
====설계 사양====&lt;br /&gt;
*목적계통도&lt;br /&gt;
[[그림:Hoho7.png]]&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
*기존에 연구되어진 시계열 분석 알고리즘을 이용한 결과물들은 제각기 집중하는 부분이 다르기 때문에, 그 정확도가 서로 배타적 일 것이다. 즉 어느 한 알고리즘이 우위의 정확도를 가질 경우 다른 알고리즘은 상대적으로 낮은 정확도를 가질 것이다.&lt;br /&gt;
**서로 정확성에 있어 배타적일 정도로 다른 시계열 분석 알고리즘을 찾아야한다.&lt;br /&gt;
**배타적인 TA 알고리즘 a0~an을 찾고, 구현한다.&lt;br /&gt;
*강화학습 예측 모델&lt;br /&gt;
[[그림:Hoho8.png]]&lt;br /&gt;
**강화학습을 이용한 시계열 데이터의 학습을 통해 예측 모델을 생성한다.&lt;br /&gt;
**예측 모델은 다음과 같이 크게 두가지 단계로 구성된다.&lt;br /&gt;
***직접 시계열 데이터를 분석 / 예측하는 전략적 알고리즘&lt;br /&gt;
****네이밍: a0, a1, … , an&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {예측된 다음 시계열 데이터=o0, o1, …, on}&lt;br /&gt;
***인공신경망을 응용하는, 적절한 전략적 알고리즘에 가중치를 부여하는 알고리즘&lt;br /&gt;
****네이밍: M&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {w0, w1, …, wn}&lt;br /&gt;
****어느 하나의 전략적 알고리즘을 선택하는 방식(hard decision)이 아니라, 여러 전략적 알고리즘의 정확도를 연판정(soft decision)하여 그 비중을 출력한다. &lt;br /&gt;
**a의 결과인 O와 b의 결과인 W를 곱하여 최종 예측치를 계산한다. (가중평균)&lt;br /&gt;
***Predict = OW&lt;br /&gt;
**이 Agent의 결과에 따라서 전략을 어떤 비율로 선택하게 된다. 이를 조합한 값으로 특정 광물에 대한 매수 혹은 매도할 값을 선택하게 된다.&lt;br /&gt;
*강화학습 환경 구성 요소&lt;br /&gt;
**에이전트&lt;br /&gt;
***state값들을 DNN을 사용하여 전략을 선택할 수 있는 값으로 추출한다.&lt;br /&gt;
***전략개수 의존적&lt;br /&gt;
**환경&lt;br /&gt;
***한 거래소의 해당 광물의 일봉csv데이터를 시간에 따라서 사용&lt;br /&gt;
***USD, EUR (KRW 기준) 지수 데이터&lt;br /&gt;
**리워드 공식&lt;br /&gt;
***해당 광물의 가치와 잔금을 합산한 값을 리워드로 사용한다.&lt;br /&gt;
**액션 리스트&lt;br /&gt;
***양수는 매수, 음수는 매도의 의미로 하나의 출력값을 사용한다.&lt;br /&gt;
****광물 거래는 1주 단위의 이산적인 값을 사용한다.&lt;br /&gt;
****최대, 최소값을 설정한다.&lt;br /&gt;
*학습 시나리오&lt;br /&gt;
**매 학습에서 어떤 기간을 랜덤으로 설정한다.&lt;br /&gt;
**이 시간동안의 광물시장 데이터를 사용해서 하루 단위로 액션을 진행한다.&lt;br /&gt;
**시계열 분석 부분에서 각각의 전략이 매수/매도값을 도출한다.&lt;br /&gt;
**강화학습 부분에서 가중치를 도출한다.&lt;br /&gt;
**가중치값과 매수/매도값을 각각 곱하고 누적한다.&lt;br /&gt;
**해당 값을 통해 매수/매도/유지를 진행한다.매도가 될 때까지 진행하고 매도시 수익률을 구한다.&lt;br /&gt;
**수익률이 증가하는 방향으로 학습을 한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
*강화학습 오픈소스) DQN을 이용한 트레이딩 학습 테스트&lt;br /&gt;
**학습개요&lt;br /&gt;
***아래는 국내 3개 IT기업의 일봉데이터를 대상으로 학습을 진행한 결과이다.&lt;br /&gt;
***구현에서는 가능한 만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
***아래의 그래프에서는 초기 투자금을 가지고 시간에 따라서 자산 가치가 어떻게 변하는지 보여준다.&lt;br /&gt;
**트레이닝 데이터로 학습 진행 중 자산가치변화&lt;br /&gt;
[[파일:Hoho1.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***초반에는 매우 가치가 크지만 불안정한 트레이딩을 하다가 후에 안정적인 수익률을 보여주는 것을 알 수 있다.&lt;br /&gt;
**테스트 데이터에서 거래중 자산가치 변화&lt;br /&gt;
[[파일:Hoho2.png]]&lt;br /&gt;
***빨간 선은 초기 투자 금액이다.&lt;br /&gt;
***테스트 데이터로 트레이딩 했을 때 투자금액 보다 평균 12%의 수익을 올릴 수 있었다.&lt;br /&gt;
***단순 시가만으로 학습을 하는 경우, 위와 같이 매우 불안정하므로 다양한 전략을 통해 개선이 필요하다.&lt;br /&gt;
*전략 오픈소스) 10일, 30일 이동평균선 교차점 검출을 이용한 매수 매도 알고리즘 트레이딩&lt;br /&gt;
**방법&lt;br /&gt;
***현재까지 크롤링한 일봉데이터에서 단기 이동평균선과 장기 이동평균선의 교차점은 중요한 매도, 매수타이밍의 후보가 될 수 있다. 장기적인 추세를 따라가는 것이 미래에 대체로 좋은 방향이 되므로 장기평균선이 상승할 떄 매수, 하락 할 때 매도를 하는 것이 좋다.&lt;br /&gt;
***구현에서는 가능한만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
**Ta-lib&lt;br /&gt;
***Technical Analysis LIbrary&lt;br /&gt;
***시장분석과 같은 시계열 데이터 알고리즘을 분석하는데 사용하는 라이브러리&lt;br /&gt;
***내부에서는 기본 시장지표를 받으면 이에 따라서 새로운 보조지표를 만들어주거나 패턴을 검출하는 함수 제공&lt;br /&gt;
***구현에서 이동평균선 지표를 얻을 때 사용.&lt;br /&gt;
**가상트레이딩에 따른 자산가치 변화&lt;br /&gt;
[[파일:Hoho3.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***위와 같이 장기간 트레이딩을 진행하는데 있어서 이동평균선 교차점을 이용한 트레이딩이 좋은 효과를 보이는 것을 알 수 있다.&lt;br /&gt;
*광물시장 시가데이터 크롤링&lt;br /&gt;
**한국거래소([http://www.krx.co.kr])&lt;br /&gt;
**거래소홈페이지에서 1년단위의 데이터를 csv로 내려받을 수 있다.&lt;br /&gt;
**아래는 2014년 - 2019년의 종가를 그래프로 나타낸 것이다.&lt;br /&gt;
[[파일:Hoho4.png]]&lt;br /&gt;
*DQN 소스코드를 사용한 광물시장 가상 트레이딩&lt;br /&gt;
**위에서 사용한 DQN방법을 금시장을 대상으로 트레이딩을 진행했다.&lt;br /&gt;
**구현방식은 위의 DQN을 이용한 트레이딩 테스트와 같다.&lt;br /&gt;
**2000회 트레이닝을 진행하여서 매회 트레이닝마다 다음과 같은 결과를 얻을 수 있었다.&lt;br /&gt;
[[파일:Hoho5.png]]&lt;br /&gt;
**초기투자금액 10,000,000원으로 학습을 진행했다.&lt;br /&gt;
**위에서 트레이닝한 결과를 바탕으로 테스트를 진행했다.&lt;br /&gt;
[[파일:Hoho6.png]]&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
&lt;br /&gt;
* 모듈 구성&lt;br /&gt;
** 호호&lt;br /&gt;
** 호호호&lt;br /&gt;
&lt;br /&gt;
* UI구성&lt;br /&gt;
** 호호호&lt;br /&gt;
** 호호호&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1442</id>
		<title>호호조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1442"/>
				<updated>2019-06-20T04:23:42Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 구성원 및 추진체계 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : 광물시장에서 강화학습을 이용한 트레이딩 봇&lt;br /&gt;
&lt;br /&gt;
''' 영문 :  Trading-bot using Reinforcement Learning in a mineral market&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
호호&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
이동희 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920044 이홍석(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920037 이정한&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
*이전부터 사용자들이 많이 사용하던 시계열 분석 알고리즘과 다양한 지표들을 활용하여 강화학습을 이용하여 광물 가격을 예측한다.&lt;br /&gt;
*광물시장에서 시가에 영향을 미치는 다양한 요인이 존재한다.&lt;br /&gt;
*이미 밝혀진 다양한 요인들과 우리들이 생각한 요인들을 정리한다.&lt;br /&gt;
*이러한 요인들을 강화학습을 통해서 상관관계가 있는지 확인하고 실제로 수익을 낼 수 있는 모델과 학습을 진행한다.&lt;br /&gt;
*여러 가지 요인(차트 및 시장표준지수)들과 전략들을 가지고 하나의 광물을 대상으로 수익률이 높을 것으로 예상되는 매수, 매도 타이밍을 찾아낼 수 있는 것을 목표로 한다.&lt;br /&gt;
*다양한 강화학습 알고리즘 중 PPO(Proximal Policy Optimization), DQN(Deep Q Network)을 사용하여 구현해보고 어떤 방식이 더 잘 맞는지 분석해본다.&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*광물 시장은 매 시간마다 변동함&lt;br /&gt;
*광물 시장의 변동은 어떠한 요인들에 의해 값어치가 올라가기도 하고 내려가기도 함&lt;br /&gt;
*다양한 논문 Research 및 분석을 통해 값에 변화를 주는 요인들을 선별&lt;br /&gt;
*해당 요인들을 강화학습 모델의 환경에 넣어서 학습을 시킴&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
*강화학습을 이용하여 트레이딩을 자동으로 하는 봇을 만든다.&lt;br /&gt;
*광물 가격에 영향을 주는 요인들을 찾아보고 어느 정도 연관관계가 있는지 확인한다.&lt;br /&gt;
*연관관계가 있는 요인들을 모아서 강화학습모델에 적용시켜보고 실제로 효과가 있는지 확인해본다.&lt;br /&gt;
*효과가 컸던 요인들을 모아서 모의 투자 상황에서 수익률 분석을 해본다.&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
**자동 거래 시스템(ATS;Automated Trading System)은 1949년 Richard Donchian이 funds를 사고 파는 일련의 규칙을 사용하여 처음 소개되었다. 1980년대에는 John Henry와 같은 유명한 Trader들이 전략을 사용하기 시작하여, 규칙 기반 거래(Rule Based Trading)라는 개념이 대중화되었다. 현재는 미국 증권 거래소 주식 거래의 75% 이상이 자동 거래 시스템으로 이루어진다.&lt;br /&gt;
**최근에는 AI의 등장으로, 수많은 은행이나 투자자들이 AI를 활용하여 규칙 기반 거래나 직접 거래보다 훨씬 수익률이 높은 모델을 개발중이다. 딥러닝, 머신러닝 등의 기술을 활용하여 Trading Bot을 개발하고 있으며, 강화학습의 등장이후, 다양한 Trading Bot Project에서 강화학습을 도입하려는 움직임을 보이고 있다.&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
**거절 : 알고리즘 자동 매매 봇, [https://doi.org/10.8080/1020090067197]&lt;br /&gt;
***알고리즘 트레이딩 봇들을 모아서 관리할 수 있는 시스템&lt;br /&gt;
***통상적인 기술자가 충분히 만들 수 있는 것으로 판단하여 특허 거절&lt;br /&gt;
**등록 : 소셜트레이딩 방법, [http://kpat.kipris.or.kr/kpat/biblioa.do?method=biblioFrame]&lt;br /&gt;
***리더를 설정하여 해당 리더의 매매를 확인하고 추종하는 알고리즘&lt;br /&gt;
*기술 로드맵&lt;br /&gt;
**자동으로 거래를 할 수 있는 봇의 형태를 만들어야 하고, 모의투자를 통해 테스트할 수 있는 환경을 만들어야하기 때문에 투자, 증권사 API 및 모의투자 서버가 필요하다. 따라서, 키움증권, 대신증권, 이베스트투자증권 등의 회사의 API를 활용하고, 이 회사들의 모의투자 서버를 통해 수익률을 분석할 수 있다.&lt;br /&gt;
**강화학습은 환경이 주어지고, 해당 환경에 액션을 취하면 그에 따른 보상을 주면서 학습을 시킨다. 일반적인 딥 러닝은 어떤 요인들의 상호관계를 표현하지 못한다. 하지만 강화학습은 환경을 통해 어떤 요인들의 상호관계를 표현할 수 있다. 주식들은 서로 상호관계를 가지고 있으므로 강화학습을 이용하는 것이 유리한 방법이라 할 수 있다.&lt;br /&gt;
**현재에는 차트분석만으로 주식이나 광물시장에서의 매도, 매수타이밍을 잡아서 수익을 낼 수 있는 다양한 방법이 연구되고 있다. 이를 기술적 매매라고 부른다. 이러한 방법을 이용하여 알고리즘으로 구현하면 보다 안정적이고 수익률이 검증된 매매방법을 사용할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
**이러한 제품들은 시장에 공개적으로 나와있는 것을 쉽게 찾을 수 없다. 이러한 트레이딩봇 자체가 실제 주식시장에서 수익을 낼 수 있기 때문이다. 이윤을 창출하는 기업의 입장에서는 이 트레이딩 봇을 직접적으로 사용하지 않을 이유가 없다.&lt;br /&gt;
**또한 많은 사용자가 트레이딩 봇을 사용한다고 가정했을 때 모두가 이익을 볼 수 있는 것은 아니다. 같은 알고리즘을 사용하는 트레이딩 봇이 많으면 수익률이 줄어 들기 때문에 이러한 트레이딩 봇을 상용화하지 않은 것으로 보인다.&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! 알고리즘 !! 증권사 API !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 브레인듀드의 듀드303, 듀드프로&lt;br /&gt;
| 사용자의 조건검색식 사용 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 키움증권의 로보마켓&lt;br /&gt;
| 다양한 알고리즘 전략 제시 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 주식몰 오토핫키&lt;br /&gt;
| 해당하는 설명이 없음 || 해당하는 설명이 없음 || 마켓팅 위주의 사업 진행&lt;br /&gt;
|}&lt;br /&gt;
**위와 같이 알고리즘 트레이딩 봇을 만드는 회사 이외에도 증권사나 펀드회사 같은 경우에도 가치투자를 위한 분석자료를 제공하는 서비스를 제공할 수 있다.&lt;br /&gt;
**한국거래소에서는 종목마다 투자가치를 판단할 수 있는 자료를 제공한다. 이에 따라서 우리의 트레이딩봇과 경쟁해야 하는 부분을 가지고 있다.&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**위와 같이 여러가지 요인을 연구, 분석함에 따라서 트레이딩 봇을 만들 수 있다. 이 요인들의 적당한 조합으로 여러가지 특성을 띠는 트레이딩 봇을 개발할 수 있다.&lt;br /&gt;
**사용자들에게 원하는 이익구조를 선택할 수 있게 한다. 예를 들어 수익률이 크게 높지 않더라도 안정적인 투자를 원하는 사용자가 있고, 위험을 감수하더라도 높은 수익률을 원하는 사용자가 있다. 요인분석에 따라서 얻을 수 있는 특징들을 찾아내고 이러한 요인들로 주식트레이딩의 위험, 최고 수익률등이 결정될 것이다. &lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
*기존의 주식 트레이딩봇들은 우리가 직접 알고리즘을 구현하고 설계함에 따라서 작동했다. 사람의 직관을 이용해서 장기투자를 하는 것이 아니라 짧은 시간의 시장변동을 감지해서 조금씩 수익을 올리는 등의 알고리즘이 만들어져 왔다. 하지만 강화학습과 딥러닝을 사용해서 좀 더 효과적인 방향을 찾을 수 있다.&lt;br /&gt;
*딥러닝에서 사용하는 뉴럴 네트워크는 학습이 완료되었을 때 예측속도가 매우 빠르다는 특징을 갖고 있다. 해당 요인을 성공적으로 학습한 네트워크를 얻은 후에 봇을 사용할 때는 컴퓨팅의 성능을 크게 사용하지 않고 빠른 속도의 트레이딩이 가능하다.&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
*위에서 서술한 대로 만일 강화학습을 이용해서 주식 트레이딩봇이 성공적으로 수익을 낼 수 있는 구조라면, 이와 유사한 트레이딩봇이 많이 등장할 것이다. 더불어서 강화학습에 딥러닝을 적용시키면서 구성할 수 있는 선택의 여지가 많아졌다. 각기 학습하는 방법에 따라서 각기 다른 여러가지 전략이 등장할 수 있는 것이다. 따라서 기존에 알고리즘을 이용해서 매매를 진행하던 투자자들이 새롭게 등장하는 트레이딩봇의 투자전략에 영향을 받을 것이며, 시장의 특성은 더 다양하고 복잡해질 것이다.&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  단계별 세부개발 내용 !! 담당자 !! 개발기간 !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 강화학습 환경 설계&lt;br /&gt;
| 이홍석 || 3~4 || &lt;br /&gt;
|-&lt;br /&gt;
! 모의투자 환경구성 및 트레이딩 봇 구현&lt;br /&gt;
| 이정한 || 4~5 ||&lt;br /&gt;
|-&lt;br /&gt;
! 학습진행 및 정확도 개선&lt;br /&gt;
| 이홍석 || 4~6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 기존의 트레이딩 봇과의 성능 비교&lt;br /&gt;
| 이정한 || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 요인 연구 및 분석&lt;br /&gt;
| 이홍석, 이정한 || 3~6 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
*컴퓨터과학부 2014920044 이홍석 : 작품설계 및 개발&lt;br /&gt;
*컴퓨터과학부 2014920037 이정한 : 작품설계 및 개발&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  번호 !! 요 구 사 항 !! D or W !! 중요도&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 기존 시계열 분석 논문에 있는 전략(요소, Factor)들을 모듈로 개발 || D || 대 &lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 시계열 데이터 분석 모듈을 적용할 수 있는 강화학습 모델을 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| 모델을 학습시킬 수 있는 환경(Env, DB) 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| PPO와 DQN 강화학습 알고리즘을 구현하고 분석 || W || 중&lt;br /&gt;
|}&lt;br /&gt;
====설계 사양====&lt;br /&gt;
*목적계통도&lt;br /&gt;
[[그림:Hoho7.png]]&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
*기존에 연구되어진 시계열 분석 알고리즘을 이용한 결과물들은 제각기 집중하는 부분이 다르기 때문에, 그 정확도가 서로 배타적 일 것이다. 즉 어느 한 알고리즘이 우위의 정확도를 가질 경우 다른 알고리즘은 상대적으로 낮은 정확도를 가질 것이다.&lt;br /&gt;
**서로 정확성에 있어 배타적일 정도로 다른 시계열 분석 알고리즘을 찾아야한다.&lt;br /&gt;
**배타적인 TA 알고리즘 a0~an을 찾고, 구현한다.&lt;br /&gt;
*강화학습 예측 모델&lt;br /&gt;
[[그림:Hoho8.png]]&lt;br /&gt;
**강화학습을 이용한 시계열 데이터의 학습을 통해 예측 모델을 생성한다.&lt;br /&gt;
**예측 모델은 다음과 같이 크게 두가지 단계로 구성된다.&lt;br /&gt;
***직접 시계열 데이터를 분석 / 예측하는 전략적 알고리즘&lt;br /&gt;
****네이밍: a0, a1, … , an&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {예측된 다음 시계열 데이터=o0, o1, …, on}&lt;br /&gt;
***인공신경망을 응용하는, 적절한 전략적 알고리즘에 가중치를 부여하는 알고리즘&lt;br /&gt;
****네이밍: M&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {w0, w1, …, wn}&lt;br /&gt;
****어느 하나의 전략적 알고리즘을 선택하는 방식(hard decision)이 아니라, 여러 전략적 알고리즘의 정확도를 연판정(soft decision)하여 그 비중을 출력한다. &lt;br /&gt;
**a의 결과인 O와 b의 결과인 W를 곱하여 최종 예측치를 계산한다. (가중평균)&lt;br /&gt;
***Predict = OW&lt;br /&gt;
**이 Agent의 결과에 따라서 전략을 어떤 비율로 선택하게 된다. 이를 조합한 값으로 특정 광물에 대한 매수 혹은 매도할 값을 선택하게 된다.&lt;br /&gt;
*강화학습 환경 구성 요소&lt;br /&gt;
**에이전트&lt;br /&gt;
***state값들을 DNN을 사용하여 전략을 선택할 수 있는 값으로 추출한다.&lt;br /&gt;
***전략개수 의존적&lt;br /&gt;
**환경&lt;br /&gt;
***한 거래소의 해당 광물의 일봉csv데이터를 시간에 따라서 사용&lt;br /&gt;
***USD, EUR (KRW 기준) 지수 데이터&lt;br /&gt;
**리워드 공식&lt;br /&gt;
***해당 광물의 가치와 잔금을 합산한 값을 리워드로 사용한다.&lt;br /&gt;
**액션 리스트&lt;br /&gt;
***양수는 매수, 음수는 매도의 의미로 하나의 출력값을 사용한다.&lt;br /&gt;
****광물 거래는 1주 단위의 이산적인 값을 사용한다.&lt;br /&gt;
****최대, 최소값을 설정한다.&lt;br /&gt;
*학습 시나리오&lt;br /&gt;
**매 학습에서 어떤 기간을 랜덤으로 설정한다.&lt;br /&gt;
**이 시간동안의 광물시장 데이터를 사용해서 하루 단위로 액션을 진행한다.&lt;br /&gt;
**시계열 분석 부분에서 각각의 전략이 매수/매도값을 도출한다.&lt;br /&gt;
**강화학습 부분에서 가중치를 도출한다.&lt;br /&gt;
**가중치값과 매수/매도값을 각각 곱하고 누적한다.&lt;br /&gt;
**해당 값을 통해 매수/매도/유지를 진행한다.매도가 될 때까지 진행하고 매도시 수익률을 구한다.&lt;br /&gt;
**수익률이 증가하는 방향으로 학습을 한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
*강화학습 오픈소스) DQN을 이용한 트레이딩 학습 테스트&lt;br /&gt;
**학습개요&lt;br /&gt;
***아래는 국내 3개 IT기업의 일봉데이터를 대상으로 학습을 진행한 결과이다.&lt;br /&gt;
***구현에서는 가능한 만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
***아래의 그래프에서는 초기 투자금을 가지고 시간에 따라서 자산 가치가 어떻게 변하는지 보여준다.&lt;br /&gt;
**트레이닝 데이터로 학습 진행 중 자산가치변화&lt;br /&gt;
[[파일:Hoho1.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***초반에는 매우 가치가 크지만 불안정한 트레이딩을 하다가 후에 안정적인 수익률을 보여주는 것을 알 수 있다.&lt;br /&gt;
**테스트 데이터에서 거래중 자산가치 변화&lt;br /&gt;
[[파일:Hoho2.png]]&lt;br /&gt;
***빨간 선은 초기 투자 금액이다.&lt;br /&gt;
***테스트 데이터로 트레이딩 했을 때 투자금액 보다 평균 12%의 수익을 올릴 수 있었다.&lt;br /&gt;
***단순 시가만으로 학습을 하는 경우, 위와 같이 매우 불안정하므로 다양한 전략을 통해 개선이 필요하다.&lt;br /&gt;
*전략 오픈소스) 10일, 30일 이동평균선 교차점 검출을 이용한 매수 매도 알고리즘 트레이딩&lt;br /&gt;
**방법&lt;br /&gt;
***현재까지 크롤링한 일봉데이터에서 단기 이동평균선과 장기 이동평균선의 교차점은 중요한 매도, 매수타이밍의 후보가 될 수 있다. 장기적인 추세를 따라가는 것이 미래에 대체로 좋은 방향이 되므로 장기평균선이 상승할 떄 매수, 하락 할 때 매도를 하는 것이 좋다.&lt;br /&gt;
***구현에서는 가능한만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
**Ta-lib&lt;br /&gt;
***Technical Analysis LIbrary&lt;br /&gt;
***시장분석과 같은 시계열 데이터 알고리즘을 분석하는데 사용하는 라이브러리&lt;br /&gt;
***내부에서는 기본 시장지표를 받으면 이에 따라서 새로운 보조지표를 만들어주거나 패턴을 검출하는 함수 제공&lt;br /&gt;
***구현에서 이동평균선 지표를 얻을 때 사용.&lt;br /&gt;
**가상트레이딩에 따른 자산가치 변화&lt;br /&gt;
[[파일:Hoho3.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***위와 같이 장기간 트레이딩을 진행하는데 있어서 이동평균선 교차점을 이용한 트레이딩이 좋은 효과를 보이는 것을 알 수 있다.&lt;br /&gt;
*광물시장 시가데이터 크롤링&lt;br /&gt;
**한국거래소([http://www.krx.co.kr])&lt;br /&gt;
**거래소홈페이지에서 1년단위의 데이터를 csv로 내려받을 수 있다.&lt;br /&gt;
**아래는 2014년 - 2019년의 종가를 그래프로 나타낸 것이다.&lt;br /&gt;
[[파일:Hoho4.png]]&lt;br /&gt;
*DQN 소스코드를 사용한 광물시장 가상 트레이딩&lt;br /&gt;
**위에서 사용한 DQN방법을 금시장을 대상으로 트레이딩을 진행했다.&lt;br /&gt;
**구현방식은 위의 DQN을 이용한 트레이딩 테스트와 같다.&lt;br /&gt;
**2000회 트레이닝을 진행하여서 매회 트레이닝마다 다음과 같은 결과를 얻을 수 있었다.&lt;br /&gt;
[[파일:Hoho5.png]]&lt;br /&gt;
**초기투자금액 10,000,000원으로 학습을 진행했다.&lt;br /&gt;
**위에서 트레이닝한 결과를 바탕으로 테스트를 진행했다.&lt;br /&gt;
[[파일:Hoho6.png]]&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1441</id>
		<title>호호조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1441"/>
				<updated>2019-06-20T04:22:25Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: /* 개발 일정 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : 광물시장에서 강화학습을 이용한 트레이딩 봇&lt;br /&gt;
&lt;br /&gt;
''' 영문 :  Trading-bot using Reinforcement Learning in a mineral market&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
호호&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
이동희 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920044 이홍석(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920037 이정한&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
*이전부터 사용자들이 많이 사용하던 시계열 분석 알고리즘과 다양한 지표들을 활용하여 강화학습을 이용하여 광물 가격을 예측한다.&lt;br /&gt;
*광물시장에서 시가에 영향을 미치는 다양한 요인이 존재한다.&lt;br /&gt;
*이미 밝혀진 다양한 요인들과 우리들이 생각한 요인들을 정리한다.&lt;br /&gt;
*이러한 요인들을 강화학습을 통해서 상관관계가 있는지 확인하고 실제로 수익을 낼 수 있는 모델과 학습을 진행한다.&lt;br /&gt;
*여러 가지 요인(차트 및 시장표준지수)들과 전략들을 가지고 하나의 광물을 대상으로 수익률이 높을 것으로 예상되는 매수, 매도 타이밍을 찾아낼 수 있는 것을 목표로 한다.&lt;br /&gt;
*다양한 강화학습 알고리즘 중 PPO(Proximal Policy Optimization), DQN(Deep Q Network)을 사용하여 구현해보고 어떤 방식이 더 잘 맞는지 분석해본다.&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*광물 시장은 매 시간마다 변동함&lt;br /&gt;
*광물 시장의 변동은 어떠한 요인들에 의해 값어치가 올라가기도 하고 내려가기도 함&lt;br /&gt;
*다양한 논문 Research 및 분석을 통해 값에 변화를 주는 요인들을 선별&lt;br /&gt;
*해당 요인들을 강화학습 모델의 환경에 넣어서 학습을 시킴&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
*강화학습을 이용하여 트레이딩을 자동으로 하는 봇을 만든다.&lt;br /&gt;
*광물 가격에 영향을 주는 요인들을 찾아보고 어느 정도 연관관계가 있는지 확인한다.&lt;br /&gt;
*연관관계가 있는 요인들을 모아서 강화학습모델에 적용시켜보고 실제로 효과가 있는지 확인해본다.&lt;br /&gt;
*효과가 컸던 요인들을 모아서 모의 투자 상황에서 수익률 분석을 해본다.&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
**자동 거래 시스템(ATS;Automated Trading System)은 1949년 Richard Donchian이 funds를 사고 파는 일련의 규칙을 사용하여 처음 소개되었다. 1980년대에는 John Henry와 같은 유명한 Trader들이 전략을 사용하기 시작하여, 규칙 기반 거래(Rule Based Trading)라는 개념이 대중화되었다. 현재는 미국 증권 거래소 주식 거래의 75% 이상이 자동 거래 시스템으로 이루어진다.&lt;br /&gt;
**최근에는 AI의 등장으로, 수많은 은행이나 투자자들이 AI를 활용하여 규칙 기반 거래나 직접 거래보다 훨씬 수익률이 높은 모델을 개발중이다. 딥러닝, 머신러닝 등의 기술을 활용하여 Trading Bot을 개발하고 있으며, 강화학습의 등장이후, 다양한 Trading Bot Project에서 강화학습을 도입하려는 움직임을 보이고 있다.&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
**거절 : 알고리즘 자동 매매 봇, [https://doi.org/10.8080/1020090067197]&lt;br /&gt;
***알고리즘 트레이딩 봇들을 모아서 관리할 수 있는 시스템&lt;br /&gt;
***통상적인 기술자가 충분히 만들 수 있는 것으로 판단하여 특허 거절&lt;br /&gt;
**등록 : 소셜트레이딩 방법, [http://kpat.kipris.or.kr/kpat/biblioa.do?method=biblioFrame]&lt;br /&gt;
***리더를 설정하여 해당 리더의 매매를 확인하고 추종하는 알고리즘&lt;br /&gt;
*기술 로드맵&lt;br /&gt;
**자동으로 거래를 할 수 있는 봇의 형태를 만들어야 하고, 모의투자를 통해 테스트할 수 있는 환경을 만들어야하기 때문에 투자, 증권사 API 및 모의투자 서버가 필요하다. 따라서, 키움증권, 대신증권, 이베스트투자증권 등의 회사의 API를 활용하고, 이 회사들의 모의투자 서버를 통해 수익률을 분석할 수 있다.&lt;br /&gt;
**강화학습은 환경이 주어지고, 해당 환경에 액션을 취하면 그에 따른 보상을 주면서 학습을 시킨다. 일반적인 딥 러닝은 어떤 요인들의 상호관계를 표현하지 못한다. 하지만 강화학습은 환경을 통해 어떤 요인들의 상호관계를 표현할 수 있다. 주식들은 서로 상호관계를 가지고 있으므로 강화학습을 이용하는 것이 유리한 방법이라 할 수 있다.&lt;br /&gt;
**현재에는 차트분석만으로 주식이나 광물시장에서의 매도, 매수타이밍을 잡아서 수익을 낼 수 있는 다양한 방법이 연구되고 있다. 이를 기술적 매매라고 부른다. 이러한 방법을 이용하여 알고리즘으로 구현하면 보다 안정적이고 수익률이 검증된 매매방법을 사용할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
**이러한 제품들은 시장에 공개적으로 나와있는 것을 쉽게 찾을 수 없다. 이러한 트레이딩봇 자체가 실제 주식시장에서 수익을 낼 수 있기 때문이다. 이윤을 창출하는 기업의 입장에서는 이 트레이딩 봇을 직접적으로 사용하지 않을 이유가 없다.&lt;br /&gt;
**또한 많은 사용자가 트레이딩 봇을 사용한다고 가정했을 때 모두가 이익을 볼 수 있는 것은 아니다. 같은 알고리즘을 사용하는 트레이딩 봇이 많으면 수익률이 줄어 들기 때문에 이러한 트레이딩 봇을 상용화하지 않은 것으로 보인다.&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! 알고리즘 !! 증권사 API !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 브레인듀드의 듀드303, 듀드프로&lt;br /&gt;
| 사용자의 조건검색식 사용 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 키움증권의 로보마켓&lt;br /&gt;
| 다양한 알고리즘 전략 제시 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 주식몰 오토핫키&lt;br /&gt;
| 해당하는 설명이 없음 || 해당하는 설명이 없음 || 마켓팅 위주의 사업 진행&lt;br /&gt;
|}&lt;br /&gt;
**위와 같이 알고리즘 트레이딩 봇을 만드는 회사 이외에도 증권사나 펀드회사 같은 경우에도 가치투자를 위한 분석자료를 제공하는 서비스를 제공할 수 있다.&lt;br /&gt;
**한국거래소에서는 종목마다 투자가치를 판단할 수 있는 자료를 제공한다. 이에 따라서 우리의 트레이딩봇과 경쟁해야 하는 부분을 가지고 있다.&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**위와 같이 여러가지 요인을 연구, 분석함에 따라서 트레이딩 봇을 만들 수 있다. 이 요인들의 적당한 조합으로 여러가지 특성을 띠는 트레이딩 봇을 개발할 수 있다.&lt;br /&gt;
**사용자들에게 원하는 이익구조를 선택할 수 있게 한다. 예를 들어 수익률이 크게 높지 않더라도 안정적인 투자를 원하는 사용자가 있고, 위험을 감수하더라도 높은 수익률을 원하는 사용자가 있다. 요인분석에 따라서 얻을 수 있는 특징들을 찾아내고 이러한 요인들로 주식트레이딩의 위험, 최고 수익률등이 결정될 것이다. &lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
*기존의 주식 트레이딩봇들은 우리가 직접 알고리즘을 구현하고 설계함에 따라서 작동했다. 사람의 직관을 이용해서 장기투자를 하는 것이 아니라 짧은 시간의 시장변동을 감지해서 조금씩 수익을 올리는 등의 알고리즘이 만들어져 왔다. 하지만 강화학습과 딥러닝을 사용해서 좀 더 효과적인 방향을 찾을 수 있다.&lt;br /&gt;
*딥러닝에서 사용하는 뉴럴 네트워크는 학습이 완료되었을 때 예측속도가 매우 빠르다는 특징을 갖고 있다. 해당 요인을 성공적으로 학습한 네트워크를 얻은 후에 봇을 사용할 때는 컴퓨팅의 성능을 크게 사용하지 않고 빠른 속도의 트레이딩이 가능하다.&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
*위에서 서술한 대로 만일 강화학습을 이용해서 주식 트레이딩봇이 성공적으로 수익을 낼 수 있는 구조라면, 이와 유사한 트레이딩봇이 많이 등장할 것이다. 더불어서 강화학습에 딥러닝을 적용시키면서 구성할 수 있는 선택의 여지가 많아졌다. 각기 학습하는 방법에 따라서 각기 다른 여러가지 전략이 등장할 수 있는 것이다. 따라서 기존에 알고리즘을 이용해서 매매를 진행하던 투자자들이 새롭게 등장하는 트레이딩봇의 투자전략에 영향을 받을 것이며, 시장의 특성은 더 다양하고 복잡해질 것이다.&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  단계별 세부개발 내용 !! 담당자 !! 개발기간 !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 강화학습 환경 설계&lt;br /&gt;
| 이홍석 || 3~4 || &lt;br /&gt;
|-&lt;br /&gt;
! 모의투자 환경구성 및 트레이딩 봇 구현&lt;br /&gt;
| 이정한 || 4~5 ||&lt;br /&gt;
|-&lt;br /&gt;
! 학습진행 및 정확도 개선&lt;br /&gt;
| 이홍석 || 4~6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 기존의 트레이딩 봇과의 성능 비교&lt;br /&gt;
| 이정한 || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 요인 연구 및 분석&lt;br /&gt;
| 이홍석, 이정한 || 3~6 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  번호 !! 요 구 사 항 !! D or W !! 중요도&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 기존 시계열 분석 논문에 있는 전략(요소, Factor)들을 모듈로 개발 || D || 대 &lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 시계열 데이터 분석 모듈을 적용할 수 있는 강화학습 모델을 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| 모델을 학습시킬 수 있는 환경(Env, DB) 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| PPO와 DQN 강화학습 알고리즘을 구현하고 분석 || W || 중&lt;br /&gt;
|}&lt;br /&gt;
====설계 사양====&lt;br /&gt;
*목적계통도&lt;br /&gt;
[[그림:Hoho7.png]]&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
*기존에 연구되어진 시계열 분석 알고리즘을 이용한 결과물들은 제각기 집중하는 부분이 다르기 때문에, 그 정확도가 서로 배타적 일 것이다. 즉 어느 한 알고리즘이 우위의 정확도를 가질 경우 다른 알고리즘은 상대적으로 낮은 정확도를 가질 것이다.&lt;br /&gt;
**서로 정확성에 있어 배타적일 정도로 다른 시계열 분석 알고리즘을 찾아야한다.&lt;br /&gt;
**배타적인 TA 알고리즘 a0~an을 찾고, 구현한다.&lt;br /&gt;
*강화학습 예측 모델&lt;br /&gt;
[[그림:Hoho8.png]]&lt;br /&gt;
**강화학습을 이용한 시계열 데이터의 학습을 통해 예측 모델을 생성한다.&lt;br /&gt;
**예측 모델은 다음과 같이 크게 두가지 단계로 구성된다.&lt;br /&gt;
***직접 시계열 데이터를 분석 / 예측하는 전략적 알고리즘&lt;br /&gt;
****네이밍: a0, a1, … , an&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {예측된 다음 시계열 데이터=o0, o1, …, on}&lt;br /&gt;
***인공신경망을 응용하는, 적절한 전략적 알고리즘에 가중치를 부여하는 알고리즘&lt;br /&gt;
****네이밍: M&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {w0, w1, …, wn}&lt;br /&gt;
****어느 하나의 전략적 알고리즘을 선택하는 방식(hard decision)이 아니라, 여러 전략적 알고리즘의 정확도를 연판정(soft decision)하여 그 비중을 출력한다. &lt;br /&gt;
**a의 결과인 O와 b의 결과인 W를 곱하여 최종 예측치를 계산한다. (가중평균)&lt;br /&gt;
***Predict = OW&lt;br /&gt;
**이 Agent의 결과에 따라서 전략을 어떤 비율로 선택하게 된다. 이를 조합한 값으로 특정 광물에 대한 매수 혹은 매도할 값을 선택하게 된다.&lt;br /&gt;
*강화학습 환경 구성 요소&lt;br /&gt;
**에이전트&lt;br /&gt;
***state값들을 DNN을 사용하여 전략을 선택할 수 있는 값으로 추출한다.&lt;br /&gt;
***전략개수 의존적&lt;br /&gt;
**환경&lt;br /&gt;
***한 거래소의 해당 광물의 일봉csv데이터를 시간에 따라서 사용&lt;br /&gt;
***USD, EUR (KRW 기준) 지수 데이터&lt;br /&gt;
**리워드 공식&lt;br /&gt;
***해당 광물의 가치와 잔금을 합산한 값을 리워드로 사용한다.&lt;br /&gt;
**액션 리스트&lt;br /&gt;
***양수는 매수, 음수는 매도의 의미로 하나의 출력값을 사용한다.&lt;br /&gt;
****광물 거래는 1주 단위의 이산적인 값을 사용한다.&lt;br /&gt;
****최대, 최소값을 설정한다.&lt;br /&gt;
*학습 시나리오&lt;br /&gt;
**매 학습에서 어떤 기간을 랜덤으로 설정한다.&lt;br /&gt;
**이 시간동안의 광물시장 데이터를 사용해서 하루 단위로 액션을 진행한다.&lt;br /&gt;
**시계열 분석 부분에서 각각의 전략이 매수/매도값을 도출한다.&lt;br /&gt;
**강화학습 부분에서 가중치를 도출한다.&lt;br /&gt;
**가중치값과 매수/매도값을 각각 곱하고 누적한다.&lt;br /&gt;
**해당 값을 통해 매수/매도/유지를 진행한다.매도가 될 때까지 진행하고 매도시 수익률을 구한다.&lt;br /&gt;
**수익률이 증가하는 방향으로 학습을 한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
*강화학습 오픈소스) DQN을 이용한 트레이딩 학습 테스트&lt;br /&gt;
**학습개요&lt;br /&gt;
***아래는 국내 3개 IT기업의 일봉데이터를 대상으로 학습을 진행한 결과이다.&lt;br /&gt;
***구현에서는 가능한 만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
***아래의 그래프에서는 초기 투자금을 가지고 시간에 따라서 자산 가치가 어떻게 변하는지 보여준다.&lt;br /&gt;
**트레이닝 데이터로 학습 진행 중 자산가치변화&lt;br /&gt;
[[파일:Hoho1.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***초반에는 매우 가치가 크지만 불안정한 트레이딩을 하다가 후에 안정적인 수익률을 보여주는 것을 알 수 있다.&lt;br /&gt;
**테스트 데이터에서 거래중 자산가치 변화&lt;br /&gt;
[[파일:Hoho2.png]]&lt;br /&gt;
***빨간 선은 초기 투자 금액이다.&lt;br /&gt;
***테스트 데이터로 트레이딩 했을 때 투자금액 보다 평균 12%의 수익을 올릴 수 있었다.&lt;br /&gt;
***단순 시가만으로 학습을 하는 경우, 위와 같이 매우 불안정하므로 다양한 전략을 통해 개선이 필요하다.&lt;br /&gt;
*전략 오픈소스) 10일, 30일 이동평균선 교차점 검출을 이용한 매수 매도 알고리즘 트레이딩&lt;br /&gt;
**방법&lt;br /&gt;
***현재까지 크롤링한 일봉데이터에서 단기 이동평균선과 장기 이동평균선의 교차점은 중요한 매도, 매수타이밍의 후보가 될 수 있다. 장기적인 추세를 따라가는 것이 미래에 대체로 좋은 방향이 되므로 장기평균선이 상승할 떄 매수, 하락 할 때 매도를 하는 것이 좋다.&lt;br /&gt;
***구현에서는 가능한만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
**Ta-lib&lt;br /&gt;
***Technical Analysis LIbrary&lt;br /&gt;
***시장분석과 같은 시계열 데이터 알고리즘을 분석하는데 사용하는 라이브러리&lt;br /&gt;
***내부에서는 기본 시장지표를 받으면 이에 따라서 새로운 보조지표를 만들어주거나 패턴을 검출하는 함수 제공&lt;br /&gt;
***구현에서 이동평균선 지표를 얻을 때 사용.&lt;br /&gt;
**가상트레이딩에 따른 자산가치 변화&lt;br /&gt;
[[파일:Hoho3.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***위와 같이 장기간 트레이딩을 진행하는데 있어서 이동평균선 교차점을 이용한 트레이딩이 좋은 효과를 보이는 것을 알 수 있다.&lt;br /&gt;
*광물시장 시가데이터 크롤링&lt;br /&gt;
**한국거래소([http://www.krx.co.kr])&lt;br /&gt;
**거래소홈페이지에서 1년단위의 데이터를 csv로 내려받을 수 있다.&lt;br /&gt;
**아래는 2014년 - 2019년의 종가를 그래프로 나타낸 것이다.&lt;br /&gt;
[[파일:Hoho4.png]]&lt;br /&gt;
*DQN 소스코드를 사용한 광물시장 가상 트레이딩&lt;br /&gt;
**위에서 사용한 DQN방법을 금시장을 대상으로 트레이딩을 진행했다.&lt;br /&gt;
**구현방식은 위의 DQN을 이용한 트레이딩 테스트와 같다.&lt;br /&gt;
**2000회 트레이닝을 진행하여서 매회 트레이닝마다 다음과 같은 결과를 얻을 수 있었다.&lt;br /&gt;
[[파일:Hoho5.png]]&lt;br /&gt;
**초기투자금액 10,000,000원으로 학습을 진행했다.&lt;br /&gt;
**위에서 트레이닝한 결과를 바탕으로 테스트를 진행했다.&lt;br /&gt;
[[파일:Hoho6.png]]&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1440</id>
		<title>호호조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1440"/>
				<updated>2019-06-20T04:22:01Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : 광물시장에서 강화학습을 이용한 트레이딩 봇&lt;br /&gt;
&lt;br /&gt;
''' 영문 :  Trading-bot using Reinforcement Learning in a mineral market&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
호호&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
이동희 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920044 이홍석(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920037 이정한&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
*이전부터 사용자들이 많이 사용하던 시계열 분석 알고리즘과 다양한 지표들을 활용하여 강화학습을 이용하여 광물 가격을 예측한다.&lt;br /&gt;
*광물시장에서 시가에 영향을 미치는 다양한 요인이 존재한다.&lt;br /&gt;
*이미 밝혀진 다양한 요인들과 우리들이 생각한 요인들을 정리한다.&lt;br /&gt;
*이러한 요인들을 강화학습을 통해서 상관관계가 있는지 확인하고 실제로 수익을 낼 수 있는 모델과 학습을 진행한다.&lt;br /&gt;
*여러 가지 요인(차트 및 시장표준지수)들과 전략들을 가지고 하나의 광물을 대상으로 수익률이 높을 것으로 예상되는 매수, 매도 타이밍을 찾아낼 수 있는 것을 목표로 한다.&lt;br /&gt;
*다양한 강화학습 알고리즘 중 PPO(Proximal Policy Optimization), DQN(Deep Q Network)을 사용하여 구현해보고 어떤 방식이 더 잘 맞는지 분석해본다.&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*광물 시장은 매 시간마다 변동함&lt;br /&gt;
*광물 시장의 변동은 어떠한 요인들에 의해 값어치가 올라가기도 하고 내려가기도 함&lt;br /&gt;
*다양한 논문 Research 및 분석을 통해 값에 변화를 주는 요인들을 선별&lt;br /&gt;
*해당 요인들을 강화학습 모델의 환경에 넣어서 학습을 시킴&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
*강화학습을 이용하여 트레이딩을 자동으로 하는 봇을 만든다.&lt;br /&gt;
*광물 가격에 영향을 주는 요인들을 찾아보고 어느 정도 연관관계가 있는지 확인한다.&lt;br /&gt;
*연관관계가 있는 요인들을 모아서 강화학습모델에 적용시켜보고 실제로 효과가 있는지 확인해본다.&lt;br /&gt;
*효과가 컸던 요인들을 모아서 모의 투자 상황에서 수익률 분석을 해본다.&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
**자동 거래 시스템(ATS;Automated Trading System)은 1949년 Richard Donchian이 funds를 사고 파는 일련의 규칙을 사용하여 처음 소개되었다. 1980년대에는 John Henry와 같은 유명한 Trader들이 전략을 사용하기 시작하여, 규칙 기반 거래(Rule Based Trading)라는 개념이 대중화되었다. 현재는 미국 증권 거래소 주식 거래의 75% 이상이 자동 거래 시스템으로 이루어진다.&lt;br /&gt;
**최근에는 AI의 등장으로, 수많은 은행이나 투자자들이 AI를 활용하여 규칙 기반 거래나 직접 거래보다 훨씬 수익률이 높은 모델을 개발중이다. 딥러닝, 머신러닝 등의 기술을 활용하여 Trading Bot을 개발하고 있으며, 강화학습의 등장이후, 다양한 Trading Bot Project에서 강화학습을 도입하려는 움직임을 보이고 있다.&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
**거절 : 알고리즘 자동 매매 봇, [https://doi.org/10.8080/1020090067197]&lt;br /&gt;
***알고리즘 트레이딩 봇들을 모아서 관리할 수 있는 시스템&lt;br /&gt;
***통상적인 기술자가 충분히 만들 수 있는 것으로 판단하여 특허 거절&lt;br /&gt;
**등록 : 소셜트레이딩 방법, [http://kpat.kipris.or.kr/kpat/biblioa.do?method=biblioFrame]&lt;br /&gt;
***리더를 설정하여 해당 리더의 매매를 확인하고 추종하는 알고리즘&lt;br /&gt;
*기술 로드맵&lt;br /&gt;
**자동으로 거래를 할 수 있는 봇의 형태를 만들어야 하고, 모의투자를 통해 테스트할 수 있는 환경을 만들어야하기 때문에 투자, 증권사 API 및 모의투자 서버가 필요하다. 따라서, 키움증권, 대신증권, 이베스트투자증권 등의 회사의 API를 활용하고, 이 회사들의 모의투자 서버를 통해 수익률을 분석할 수 있다.&lt;br /&gt;
**강화학습은 환경이 주어지고, 해당 환경에 액션을 취하면 그에 따른 보상을 주면서 학습을 시킨다. 일반적인 딥 러닝은 어떤 요인들의 상호관계를 표현하지 못한다. 하지만 강화학습은 환경을 통해 어떤 요인들의 상호관계를 표현할 수 있다. 주식들은 서로 상호관계를 가지고 있으므로 강화학습을 이용하는 것이 유리한 방법이라 할 수 있다.&lt;br /&gt;
**현재에는 차트분석만으로 주식이나 광물시장에서의 매도, 매수타이밍을 잡아서 수익을 낼 수 있는 다양한 방법이 연구되고 있다. 이를 기술적 매매라고 부른다. 이러한 방법을 이용하여 알고리즘으로 구현하면 보다 안정적이고 수익률이 검증된 매매방법을 사용할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
**이러한 제품들은 시장에 공개적으로 나와있는 것을 쉽게 찾을 수 없다. 이러한 트레이딩봇 자체가 실제 주식시장에서 수익을 낼 수 있기 때문이다. 이윤을 창출하는 기업의 입장에서는 이 트레이딩 봇을 직접적으로 사용하지 않을 이유가 없다.&lt;br /&gt;
**또한 많은 사용자가 트레이딩 봇을 사용한다고 가정했을 때 모두가 이익을 볼 수 있는 것은 아니다. 같은 알고리즘을 사용하는 트레이딩 봇이 많으면 수익률이 줄어 들기 때문에 이러한 트레이딩 봇을 상용화하지 않은 것으로 보인다.&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! 알고리즘 !! 증권사 API !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 브레인듀드의 듀드303, 듀드프로&lt;br /&gt;
| 사용자의 조건검색식 사용 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 키움증권의 로보마켓&lt;br /&gt;
| 다양한 알고리즘 전략 제시 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 주식몰 오토핫키&lt;br /&gt;
| 해당하는 설명이 없음 || 해당하는 설명이 없음 || 마켓팅 위주의 사업 진행&lt;br /&gt;
|}&lt;br /&gt;
**위와 같이 알고리즘 트레이딩 봇을 만드는 회사 이외에도 증권사나 펀드회사 같은 경우에도 가치투자를 위한 분석자료를 제공하는 서비스를 제공할 수 있다.&lt;br /&gt;
**한국거래소에서는 종목마다 투자가치를 판단할 수 있는 자료를 제공한다. 이에 따라서 우리의 트레이딩봇과 경쟁해야 하는 부분을 가지고 있다.&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**위와 같이 여러가지 요인을 연구, 분석함에 따라서 트레이딩 봇을 만들 수 있다. 이 요인들의 적당한 조합으로 여러가지 특성을 띠는 트레이딩 봇을 개발할 수 있다.&lt;br /&gt;
**사용자들에게 원하는 이익구조를 선택할 수 있게 한다. 예를 들어 수익률이 크게 높지 않더라도 안정적인 투자를 원하는 사용자가 있고, 위험을 감수하더라도 높은 수익률을 원하는 사용자가 있다. 요인분석에 따라서 얻을 수 있는 특징들을 찾아내고 이러한 요인들로 주식트레이딩의 위험, 최고 수익률등이 결정될 것이다. &lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
*기존의 주식 트레이딩봇들은 우리가 직접 알고리즘을 구현하고 설계함에 따라서 작동했다. 사람의 직관을 이용해서 장기투자를 하는 것이 아니라 짧은 시간의 시장변동을 감지해서 조금씩 수익을 올리는 등의 알고리즘이 만들어져 왔다. 하지만 강화학습과 딥러닝을 사용해서 좀 더 효과적인 방향을 찾을 수 있다.&lt;br /&gt;
*딥러닝에서 사용하는 뉴럴 네트워크는 학습이 완료되었을 때 예측속도가 매우 빠르다는 특징을 갖고 있다. 해당 요인을 성공적으로 학습한 네트워크를 얻은 후에 봇을 사용할 때는 컴퓨팅의 성능을 크게 사용하지 않고 빠른 속도의 트레이딩이 가능하다.&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
*위에서 서술한 대로 만일 강화학습을 이용해서 주식 트레이딩봇이 성공적으로 수익을 낼 수 있는 구조라면, 이와 유사한 트레이딩봇이 많이 등장할 것이다. 더불어서 강화학습에 딥러닝을 적용시키면서 구성할 수 있는 선택의 여지가 많아졌다. 각기 학습하는 방법에 따라서 각기 다른 여러가지 전략이 등장할 수 있는 것이다. 따라서 기존에 알고리즘을 이용해서 매매를 진행하던 투자자들이 새롭게 등장하는 트레이딩봇의 투자전략에 영향을 받을 것이며, 시장의 특성은 더 다양하고 복잡해질 것이다.&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  단계별 세부개발 내용 !! 담당자 !! 개발기간 !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 강화학습 환경 설계&lt;br /&gt;
| 이홍석 || 3~4 || &lt;br /&gt;
|-&lt;br /&gt;
! 모의투자 환경구성 및 트레이딩 봇 구현&lt;br /&gt;
| 이정한 || 4~5 ||&lt;br /&gt;
|-&lt;br /&gt;
! 학습진행 및 정확도 개선&lt;br /&gt;
| 이홍석 || 4~6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 기존의 트레이딩 봇과의 성능 비교&lt;br /&gt;
| 이정한 || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
! 요인 연구 및 분석&lt;br /&gt;
| 이홍석, 이정한 || 3~6 ||&lt;br /&gt;
|}&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  번호 !! 요 구 사 항 !! D or W !! 중요도&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 기존 시계열 분석 논문에 있는 전략(요소, Factor)들을 모듈로 개발 || D || 대 &lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 시계열 데이터 분석 모듈을 적용할 수 있는 강화학습 모델을 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| 모델을 학습시킬 수 있는 환경(Env, DB) 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| PPO와 DQN 강화학습 알고리즘을 구현하고 분석 || W || 중&lt;br /&gt;
|}&lt;br /&gt;
====설계 사양====&lt;br /&gt;
*목적계통도&lt;br /&gt;
[[그림:Hoho7.png]]&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
*기존에 연구되어진 시계열 분석 알고리즘을 이용한 결과물들은 제각기 집중하는 부분이 다르기 때문에, 그 정확도가 서로 배타적 일 것이다. 즉 어느 한 알고리즘이 우위의 정확도를 가질 경우 다른 알고리즘은 상대적으로 낮은 정확도를 가질 것이다.&lt;br /&gt;
**서로 정확성에 있어 배타적일 정도로 다른 시계열 분석 알고리즘을 찾아야한다.&lt;br /&gt;
**배타적인 TA 알고리즘 a0~an을 찾고, 구현한다.&lt;br /&gt;
*강화학습 예측 모델&lt;br /&gt;
[[그림:Hoho8.png]]&lt;br /&gt;
**강화학습을 이용한 시계열 데이터의 학습을 통해 예측 모델을 생성한다.&lt;br /&gt;
**예측 모델은 다음과 같이 크게 두가지 단계로 구성된다.&lt;br /&gt;
***직접 시계열 데이터를 분석 / 예측하는 전략적 알고리즘&lt;br /&gt;
****네이밍: a0, a1, … , an&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {예측된 다음 시계열 데이터=o0, o1, …, on}&lt;br /&gt;
***인공신경망을 응용하는, 적절한 전략적 알고리즘에 가중치를 부여하는 알고리즘&lt;br /&gt;
****네이밍: M&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {w0, w1, …, wn}&lt;br /&gt;
****어느 하나의 전략적 알고리즘을 선택하는 방식(hard decision)이 아니라, 여러 전략적 알고리즘의 정확도를 연판정(soft decision)하여 그 비중을 출력한다. &lt;br /&gt;
**a의 결과인 O와 b의 결과인 W를 곱하여 최종 예측치를 계산한다. (가중평균)&lt;br /&gt;
***Predict = OW&lt;br /&gt;
**이 Agent의 결과에 따라서 전략을 어떤 비율로 선택하게 된다. 이를 조합한 값으로 특정 광물에 대한 매수 혹은 매도할 값을 선택하게 된다.&lt;br /&gt;
*강화학습 환경 구성 요소&lt;br /&gt;
**에이전트&lt;br /&gt;
***state값들을 DNN을 사용하여 전략을 선택할 수 있는 값으로 추출한다.&lt;br /&gt;
***전략개수 의존적&lt;br /&gt;
**환경&lt;br /&gt;
***한 거래소의 해당 광물의 일봉csv데이터를 시간에 따라서 사용&lt;br /&gt;
***USD, EUR (KRW 기준) 지수 데이터&lt;br /&gt;
**리워드 공식&lt;br /&gt;
***해당 광물의 가치와 잔금을 합산한 값을 리워드로 사용한다.&lt;br /&gt;
**액션 리스트&lt;br /&gt;
***양수는 매수, 음수는 매도의 의미로 하나의 출력값을 사용한다.&lt;br /&gt;
****광물 거래는 1주 단위의 이산적인 값을 사용한다.&lt;br /&gt;
****최대, 최소값을 설정한다.&lt;br /&gt;
*학습 시나리오&lt;br /&gt;
**매 학습에서 어떤 기간을 랜덤으로 설정한다.&lt;br /&gt;
**이 시간동안의 광물시장 데이터를 사용해서 하루 단위로 액션을 진행한다.&lt;br /&gt;
**시계열 분석 부분에서 각각의 전략이 매수/매도값을 도출한다.&lt;br /&gt;
**강화학습 부분에서 가중치를 도출한다.&lt;br /&gt;
**가중치값과 매수/매도값을 각각 곱하고 누적한다.&lt;br /&gt;
**해당 값을 통해 매수/매도/유지를 진행한다.매도가 될 때까지 진행하고 매도시 수익률을 구한다.&lt;br /&gt;
**수익률이 증가하는 방향으로 학습을 한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
*강화학습 오픈소스) DQN을 이용한 트레이딩 학습 테스트&lt;br /&gt;
**학습개요&lt;br /&gt;
***아래는 국내 3개 IT기업의 일봉데이터를 대상으로 학습을 진행한 결과이다.&lt;br /&gt;
***구현에서는 가능한 만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
***아래의 그래프에서는 초기 투자금을 가지고 시간에 따라서 자산 가치가 어떻게 변하는지 보여준다.&lt;br /&gt;
**트레이닝 데이터로 학습 진행 중 자산가치변화&lt;br /&gt;
[[파일:Hoho1.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***초반에는 매우 가치가 크지만 불안정한 트레이딩을 하다가 후에 안정적인 수익률을 보여주는 것을 알 수 있다.&lt;br /&gt;
**테스트 데이터에서 거래중 자산가치 변화&lt;br /&gt;
[[파일:Hoho2.png]]&lt;br /&gt;
***빨간 선은 초기 투자 금액이다.&lt;br /&gt;
***테스트 데이터로 트레이딩 했을 때 투자금액 보다 평균 12%의 수익을 올릴 수 있었다.&lt;br /&gt;
***단순 시가만으로 학습을 하는 경우, 위와 같이 매우 불안정하므로 다양한 전략을 통해 개선이 필요하다.&lt;br /&gt;
*전략 오픈소스) 10일, 30일 이동평균선 교차점 검출을 이용한 매수 매도 알고리즘 트레이딩&lt;br /&gt;
**방법&lt;br /&gt;
***현재까지 크롤링한 일봉데이터에서 단기 이동평균선과 장기 이동평균선의 교차점은 중요한 매도, 매수타이밍의 후보가 될 수 있다. 장기적인 추세를 따라가는 것이 미래에 대체로 좋은 방향이 되므로 장기평균선이 상승할 떄 매수, 하락 할 때 매도를 하는 것이 좋다.&lt;br /&gt;
***구현에서는 가능한만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
**Ta-lib&lt;br /&gt;
***Technical Analysis LIbrary&lt;br /&gt;
***시장분석과 같은 시계열 데이터 알고리즘을 분석하는데 사용하는 라이브러리&lt;br /&gt;
***내부에서는 기본 시장지표를 받으면 이에 따라서 새로운 보조지표를 만들어주거나 패턴을 검출하는 함수 제공&lt;br /&gt;
***구현에서 이동평균선 지표를 얻을 때 사용.&lt;br /&gt;
**가상트레이딩에 따른 자산가치 변화&lt;br /&gt;
[[파일:Hoho3.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***위와 같이 장기간 트레이딩을 진행하는데 있어서 이동평균선 교차점을 이용한 트레이딩이 좋은 효과를 보이는 것을 알 수 있다.&lt;br /&gt;
*광물시장 시가데이터 크롤링&lt;br /&gt;
**한국거래소([http://www.krx.co.kr])&lt;br /&gt;
**거래소홈페이지에서 1년단위의 데이터를 csv로 내려받을 수 있다.&lt;br /&gt;
**아래는 2014년 - 2019년의 종가를 그래프로 나타낸 것이다.&lt;br /&gt;
[[파일:Hoho4.png]]&lt;br /&gt;
*DQN 소스코드를 사용한 광물시장 가상 트레이딩&lt;br /&gt;
**위에서 사용한 DQN방법을 금시장을 대상으로 트레이딩을 진행했다.&lt;br /&gt;
**구현방식은 위의 DQN을 이용한 트레이딩 테스트와 같다.&lt;br /&gt;
**2000회 트레이닝을 진행하여서 매회 트레이닝마다 다음과 같은 결과를 얻을 수 있었다.&lt;br /&gt;
[[파일:Hoho5.png]]&lt;br /&gt;
**초기투자금액 10,000,000원으로 학습을 진행했다.&lt;br /&gt;
**위에서 트레이닝한 결과를 바탕으로 테스트를 진행했다.&lt;br /&gt;
[[파일:Hoho6.png]]&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1439</id>
		<title>호호조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1439"/>
				<updated>2019-06-20T04:15:54Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : 광물시장에서 강화학습을 이용한 트레이딩 봇&lt;br /&gt;
&lt;br /&gt;
''' 영문 :  Trading-bot using Reinforcement Learning in a mineral market&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
호호&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
이동희 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920044 이홍석(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920037 이정한&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
*이전부터 사용자들이 많이 사용하던 시계열 분석 알고리즘과 다양한 지표들을 활용하여 강화학습을 이용하여 광물 가격을 예측한다.&lt;br /&gt;
*광물시장에서 시가에 영향을 미치는 다양한 요인이 존재한다.&lt;br /&gt;
*이미 밝혀진 다양한 요인들과 우리들이 생각한 요인들을 정리한다.&lt;br /&gt;
*이러한 요인들을 강화학습을 통해서 상관관계가 있는지 확인하고 실제로 수익을 낼 수 있는 모델과 학습을 진행한다.&lt;br /&gt;
*여러 가지 요인(차트 및 시장표준지수)들과 전략들을 가지고 하나의 광물을 대상으로 수익률이 높을 것으로 예상되는 매수, 매도 타이밍을 찾아낼 수 있는 것을 목표로 한다.&lt;br /&gt;
*다양한 강화학습 알고리즘 중 PPO(Proximal Policy Optimization), DQN(Deep Q Network)을 사용하여 구현해보고 어떤 방식이 더 잘 맞는지 분석해본다.&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*광물 시장은 매 시간마다 변동함&lt;br /&gt;
*광물 시장의 변동은 어떠한 요인들에 의해 값어치가 올라가기도 하고 내려가기도 함&lt;br /&gt;
*다양한 논문 Research 및 분석을 통해 값에 변화를 주는 요인들을 선별&lt;br /&gt;
*해당 요인들을 강화학습 모델의 환경에 넣어서 학습을 시킴&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
*강화학습을 이용하여 트레이딩을 자동으로 하는 봇을 만든다.&lt;br /&gt;
*광물 가격에 영향을 주는 요인들을 찾아보고 어느 정도 연관관계가 있는지 확인한다.&lt;br /&gt;
*연관관계가 있는 요인들을 모아서 강화학습모델에 적용시켜보고 실제로 효과가 있는지 확인해본다.&lt;br /&gt;
*효과가 컸던 요인들을 모아서 모의 투자 상황에서 수익률 분석을 해본다.&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
**자동 거래 시스템(ATS;Automated Trading System)은 1949년 Richard Donchian이 funds를 사고 파는 일련의 규칙을 사용하여 처음 소개되었다. 1980년대에는 John Henry와 같은 유명한 Trader들이 전략을 사용하기 시작하여, 규칙 기반 거래(Rule Based Trading)라는 개념이 대중화되었다. 현재는 미국 증권 거래소 주식 거래의 75% 이상이 자동 거래 시스템으로 이루어진다.&lt;br /&gt;
**최근에는 AI의 등장으로, 수많은 은행이나 투자자들이 AI를 활용하여 규칙 기반 거래나 직접 거래보다 훨씬 수익률이 높은 모델을 개발중이다. 딥러닝, 머신러닝 등의 기술을 활용하여 Trading Bot을 개발하고 있으며, 강화학습의 등장이후, 다양한 Trading Bot Project에서 강화학습을 도입하려는 움직임을 보이고 있다.&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
**거절 : 알고리즘 자동 매매 봇, [https://doi.org/10.8080/1020090067197]&lt;br /&gt;
***알고리즘 트레이딩 봇들을 모아서 관리할 수 있는 시스템&lt;br /&gt;
***통상적인 기술자가 충분히 만들 수 있는 것으로 판단하여 특허 거절&lt;br /&gt;
**등록 : 소셜트레이딩 방법, [http://kpat.kipris.or.kr/kpat/biblioa.do?method=biblioFrame]&lt;br /&gt;
***리더를 설정하여 해당 리더의 매매를 확인하고 추종하는 알고리즘&lt;br /&gt;
*기술 로드맵&lt;br /&gt;
**자동으로 거래를 할 수 있는 봇의 형태를 만들어야 하고, 모의투자를 통해 테스트할 수 있는 환경을 만들어야하기 때문에 투자, 증권사 API 및 모의투자 서버가 필요하다. 따라서, 키움증권, 대신증권, 이베스트투자증권 등의 회사의 API를 활용하고, 이 회사들의 모의투자 서버를 통해 수익률을 분석할 수 있다.&lt;br /&gt;
**강화학습은 환경이 주어지고, 해당 환경에 액션을 취하면 그에 따른 보상을 주면서 학습을 시킨다. 일반적인 딥 러닝은 어떤 요인들의 상호관계를 표현하지 못한다. 하지만 강화학습은 환경을 통해 어떤 요인들의 상호관계를 표현할 수 있다. 주식들은 서로 상호관계를 가지고 있으므로 강화학습을 이용하는 것이 유리한 방법이라 할 수 있다.&lt;br /&gt;
**현재에는 차트분석만으로 주식이나 광물시장에서의 매도, 매수타이밍을 잡아서 수익을 낼 수 있는 다양한 방법이 연구되고 있다. 이를 기술적 매매라고 부른다. 이러한 방법을 이용하여 알고리즘으로 구현하면 보다 안정적이고 수익률이 검증된 매매방법을 사용할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
**이러한 제품들은 시장에 공개적으로 나와있는 것을 쉽게 찾을 수 없다. 이러한 트레이딩봇 자체가 실제 주식시장에서 수익을 낼 수 있기 때문이다. 이윤을 창출하는 기업의 입장에서는 이 트레이딩 봇을 직접적으로 사용하지 않을 이유가 없다.&lt;br /&gt;
**또한 많은 사용자가 트레이딩 봇을 사용한다고 가정했을 때 모두가 이익을 볼 수 있는 것은 아니다. 같은 알고리즘을 사용하는 트레이딩 봇이 많으면 수익률이 줄어 들기 때문에 이러한 트레이딩 봇을 상용화하지 않은 것으로 보인다.&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! 알고리즘 !! 증권사 API !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 브레인듀드의 듀드303, 듀드프로&lt;br /&gt;
| 사용자의 조건검색식 사용 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 키움증권의 로보마켓&lt;br /&gt;
| 다양한 알고리즘 전략 제시 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 주식몰 오토핫키&lt;br /&gt;
| 해당하는 설명이 없음 || 해당하는 설명이 없음 || 마켓팅 위주의 사업 진행&lt;br /&gt;
|}&lt;br /&gt;
**위와 같이 알고리즘 트레이딩 봇을 만드는 회사 이외에도 증권사나 펀드회사 같은 경우에도 가치투자를 위한 분석자료를 제공하는 서비스를 제공할 수 있다.&lt;br /&gt;
**한국거래소에서는 종목마다 투자가치를 판단할 수 있는 자료를 제공한다. 이에 따라서 우리의 트레이딩봇과 경쟁해야 하는 부분을 가지고 있다.&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**위와 같이 여러가지 요인을 연구, 분석함에 따라서 트레이딩 봇을 만들 수 있다. 이 요인들의 적당한 조합으로 여러가지 특성을 띠는 트레이딩 봇을 개발할 수 있다.&lt;br /&gt;
**사용자들에게 원하는 이익구조를 선택할 수 있게 한다. 예를 들어 수익률이 크게 높지 않더라도 안정적인 투자를 원하는 사용자가 있고, 위험을 감수하더라도 높은 수익률을 원하는 사용자가 있다. 요인분석에 따라서 얻을 수 있는 특징들을 찾아내고 이러한 요인들로 주식트레이딩의 위험, 최고 수익률등이 결정될 것이다. &lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
*기존의 주식 트레이딩봇들은 우리가 직접 알고리즘을 구현하고 설계함에 따라서 작동했다. 사람의 직관을 이용해서 장기투자를 하는 것이 아니라 짧은 시간의 시장변동을 감지해서 조금씩 수익을 올리는 등의 알고리즘이 만들어져 왔다. 하지만 강화학습과 딥러닝을 사용해서 좀 더 효과적인 방향을 찾을 수 있다.&lt;br /&gt;
*딥러닝에서 사용하는 뉴럴 네트워크는 학습이 완료되었을 때 예측속도가 매우 빠르다는 특징을 갖고 있다. 해당 요인을 성공적으로 학습한 네트워크를 얻은 후에 봇을 사용할 때는 컴퓨팅의 성능을 크게 사용하지 않고 빠른 속도의 트레이딩이 가능하다.&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
*위에서 서술한 대로 만일 강화학습을 이용해서 주식 트레이딩봇이 성공적으로 수익을 낼 수 있는 구조라면, 이와 유사한 트레이딩봇이 많이 등장할 것이다. 더불어서 강화학습에 딥러닝을 적용시키면서 구성할 수 있는 선택의 여지가 많아졌다. 각기 학습하는 방법에 따라서 각기 다른 여러가지 전략이 등장할 수 있는 것이다. 따라서 기존에 알고리즘을 이용해서 매매를 진행하던 투자자들이 새롭게 등장하는 트레이딩봇의 투자전략에 영향을 받을 것이며, 시장의 특성은 더 다양하고 복잡해질 것이다.&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  번호 !! 요 구 사 항 !! D or W !! 중요도&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 기존 시계열 분석 논문에 있는 전략(요소, Factor)들을 모듈로 개발 || D || 대 &lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 시계열 데이터 분석 모듈을 적용할 수 있는 강화학습 모델을 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| 모델을 학습시킬 수 있는 환경(Env, DB) 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| PPO와 DQN 강화학습 알고리즘을 구현하고 분석 || W || 중&lt;br /&gt;
|}&lt;br /&gt;
====설계 사양====&lt;br /&gt;
*목적계통도&lt;br /&gt;
[[그림:Hoho7.png]]&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
*기존에 연구되어진 시계열 분석 알고리즘을 이용한 결과물들은 제각기 집중하는 부분이 다르기 때문에, 그 정확도가 서로 배타적 일 것이다. 즉 어느 한 알고리즘이 우위의 정확도를 가질 경우 다른 알고리즘은 상대적으로 낮은 정확도를 가질 것이다.&lt;br /&gt;
**서로 정확성에 있어 배타적일 정도로 다른 시계열 분석 알고리즘을 찾아야한다.&lt;br /&gt;
**배타적인 TA 알고리즘 a0~an을 찾고, 구현한다.&lt;br /&gt;
*강화학습 예측 모델&lt;br /&gt;
[[그림:Hoho8.png]]&lt;br /&gt;
**강화학습을 이용한 시계열 데이터의 학습을 통해 예측 모델을 생성한다.&lt;br /&gt;
**예측 모델은 다음과 같이 크게 두가지 단계로 구성된다.&lt;br /&gt;
***직접 시계열 데이터를 분석 / 예측하는 전략적 알고리즘&lt;br /&gt;
****네이밍: a0, a1, … , an&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {예측된 다음 시계열 데이터=o0, o1, …, on}&lt;br /&gt;
***인공신경망을 응용하는, 적절한 전략적 알고리즘에 가중치를 부여하는 알고리즘&lt;br /&gt;
****네이밍: M&lt;br /&gt;
****input: {시계열 데이터}&lt;br /&gt;
****output: {w0, w1, …, wn}&lt;br /&gt;
****어느 하나의 전략적 알고리즘을 선택하는 방식(hard decision)이 아니라, 여러 전략적 알고리즘의 정확도를 연판정(soft decision)하여 그 비중을 출력한다. &lt;br /&gt;
**a의 결과인 O와 b의 결과인 W를 곱하여 최종 예측치를 계산한다. (가중평균)&lt;br /&gt;
***Predict = OW&lt;br /&gt;
**이 Agent의 결과에 따라서 전략을 어떤 비율로 선택하게 된다. 이를 조합한 값으로 특정 광물에 대한 매수 혹은 매도할 값을 선택하게 된다.&lt;br /&gt;
*강화학습 환경 구성 요소&lt;br /&gt;
**에이전트&lt;br /&gt;
***state값들을 DNN을 사용하여 전략을 선택할 수 있는 값으로 추출한다.&lt;br /&gt;
***전략개수 의존적&lt;br /&gt;
**환경&lt;br /&gt;
***한 거래소의 해당 광물의 일봉csv데이터를 시간에 따라서 사용&lt;br /&gt;
***USD, EUR (KRW 기준) 지수 데이터&lt;br /&gt;
**리워드 공식&lt;br /&gt;
***해당 광물의 가치와 잔금을 합산한 값을 리워드로 사용한다.&lt;br /&gt;
**액션 리스트&lt;br /&gt;
***양수는 매수, 음수는 매도의 의미로 하나의 출력값을 사용한다.&lt;br /&gt;
****광물 거래는 1주 단위의 이산적인 값을 사용한다.&lt;br /&gt;
****최대, 최소값을 설정한다.&lt;br /&gt;
*학습 시나리오&lt;br /&gt;
**매 학습에서 어떤 기간을 랜덤으로 설정한다.&lt;br /&gt;
**이 시간동안의 광물시장 데이터를 사용해서 하루 단위로 액션을 진행한다.&lt;br /&gt;
**시계열 분석 부분에서 각각의 전략이 매수/매도값을 도출한다.&lt;br /&gt;
**강화학습 부분에서 가중치를 도출한다.&lt;br /&gt;
**가중치값과 매수/매도값을 각각 곱하고 누적한다.&lt;br /&gt;
**해당 값을 통해 매수/매도/유지를 진행한다.매도가 될 때까지 진행하고 매도시 수익률을 구한다.&lt;br /&gt;
**수익률이 증가하는 방향으로 학습을 한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
*강화학습 오픈소스) DQN을 이용한 트레이딩 학습 테스트&lt;br /&gt;
**학습개요&lt;br /&gt;
***아래는 국내 3개 IT기업의 일봉데이터를 대상으로 학습을 진행한 결과이다.&lt;br /&gt;
***구현에서는 가능한 만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
***아래의 그래프에서는 초기 투자금을 가지고 시간에 따라서 자산 가치가 어떻게 변하는지 보여준다.&lt;br /&gt;
**트레이닝 데이터로 학습 진행 중 자산가치변화&lt;br /&gt;
[[파일:Hoho1.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***초반에는 매우 가치가 크지만 불안정한 트레이딩을 하다가 후에 안정적인 수익률을 보여주는 것을 알 수 있다.&lt;br /&gt;
**테스트 데이터에서 거래중 자산가치 변화&lt;br /&gt;
[[파일:Hoho2.png]]&lt;br /&gt;
***빨간 선은 초기 투자 금액이다.&lt;br /&gt;
***테스트 데이터로 트레이딩 했을 때 투자금액 보다 평균 12%의 수익을 올릴 수 있었다.&lt;br /&gt;
***단순 시가만으로 학습을 하는 경우, 위와 같이 매우 불안정하므로 다양한 전략을 통해 개선이 필요하다.&lt;br /&gt;
*전략 오픈소스) 10일, 30일 이동평균선 교차점 검출을 이용한 매수 매도 알고리즘 트레이딩&lt;br /&gt;
**방법&lt;br /&gt;
***현재까지 크롤링한 일봉데이터에서 단기 이동평균선과 장기 이동평균선의 교차점은 중요한 매도, 매수타이밍의 후보가 될 수 있다. 장기적인 추세를 따라가는 것이 미래에 대체로 좋은 방향이 되므로 장기평균선이 상승할 떄 매수, 하락 할 때 매도를 하는 것이 좋다.&lt;br /&gt;
***구현에서는 가능한만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
**Ta-lib&lt;br /&gt;
***Technical Analysis LIbrary&lt;br /&gt;
***시장분석과 같은 시계열 데이터 알고리즘을 분석하는데 사용하는 라이브러리&lt;br /&gt;
***내부에서는 기본 시장지표를 받으면 이에 따라서 새로운 보조지표를 만들어주거나 패턴을 검출하는 함수 제공&lt;br /&gt;
***구현에서 이동평균선 지표를 얻을 때 사용.&lt;br /&gt;
**가상트레이딩에 따른 자산가치 변화&lt;br /&gt;
[[파일:Hoho3.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***위와 같이 장기간 트레이딩을 진행하는데 있어서 이동평균선 교차점을 이용한 트레이딩이 좋은 효과를 보이는 것을 알 수 있다.&lt;br /&gt;
*광물시장 시가데이터 크롤링&lt;br /&gt;
**한국거래소([http://www.krx.co.kr])&lt;br /&gt;
**거래소홈페이지에서 1년단위의 데이터를 csv로 내려받을 수 있다.&lt;br /&gt;
**아래는 2014년 - 2019년의 종가를 그래프로 나타낸 것이다.&lt;br /&gt;
[[파일:Hoho4.png]]&lt;br /&gt;
*DQN 소스코드를 사용한 광물시장 가상 트레이딩&lt;br /&gt;
**위에서 사용한 DQN방법을 금시장을 대상으로 트레이딩을 진행했다.&lt;br /&gt;
**구현방식은 위의 DQN을 이용한 트레이딩 테스트와 같다.&lt;br /&gt;
**2000회 트레이닝을 진행하여서 매회 트레이닝마다 다음과 같은 결과를 얻을 수 있었다.&lt;br /&gt;
[[파일:Hoho5.png]]&lt;br /&gt;
**초기투자금액 10,000,000원으로 학습을 진행했다.&lt;br /&gt;
**위에서 트레이닝한 결과를 바탕으로 테스트를 진행했다.&lt;br /&gt;
[[파일:Hoho6.png]]&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho8.png&amp;diff=1438</id>
		<title>파일:Hoho8.png</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho8.png&amp;diff=1438"/>
				<updated>2019-06-20T04:12:48Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho7.png&amp;diff=1437</id>
		<title>파일:Hoho7.png</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Hoho7.png&amp;diff=1437"/>
				<updated>2019-06-20T04:10:45Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1436</id>
		<title>호호조</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%98%B8%ED%98%B8%EC%A1%B0&amp;diff=1436"/>
				<updated>2019-06-20T04:07:17Z</updated>
		
		<summary type="html">&lt;p&gt;호호조: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : 광물시장에서 강화학습을 이용한 트레이딩 봇&lt;br /&gt;
&lt;br /&gt;
''' 영문 :  Trading-bot using Reinforcement Learning in a mineral market&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
호호&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
이동희 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2019년 3월 ~ 2019년 6월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920044 이홍석(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 2014920037 이정한&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
*이전부터 사용자들이 많이 사용하던 시계열 분석 알고리즘과 다양한 지표들을 활용하여 강화학습을 이용하여 광물 가격을 예측한다.&lt;br /&gt;
*광물시장에서 시가에 영향을 미치는 다양한 요인이 존재한다.&lt;br /&gt;
*이미 밝혀진 다양한 요인들과 우리들이 생각한 요인들을 정리한다.&lt;br /&gt;
*이러한 요인들을 강화학습을 통해서 상관관계가 있는지 확인하고 실제로 수익을 낼 수 있는 모델과 학습을 진행한다.&lt;br /&gt;
*여러 가지 요인(차트 및 시장표준지수)들과 전략들을 가지고 하나의 광물을 대상으로 수익률이 높을 것으로 예상되는 매수, 매도 타이밍을 찾아낼 수 있는 것을 목표로 한다.&lt;br /&gt;
*다양한 강화학습 알고리즘 중 PPO(Proximal Policy Optimization), DQN(Deep Q Network)을 사용하여 구현해보고 어떤 방식이 더 잘 맞는지 분석해본다.&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*광물 시장은 매 시간마다 변동함&lt;br /&gt;
*광물 시장의 변동은 어떠한 요인들에 의해 값어치가 올라가기도 하고 내려가기도 함&lt;br /&gt;
*다양한 논문 Research 및 분석을 통해 값에 변화를 주는 요인들을 선별&lt;br /&gt;
*해당 요인들을 강화학습 모델의 환경에 넣어서 학습을 시킴&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
*강화학습을 이용하여 트레이딩을 자동으로 하는 봇을 만든다.&lt;br /&gt;
*광물 가격에 영향을 주는 요인들을 찾아보고 어느 정도 연관관계가 있는지 확인한다.&lt;br /&gt;
*연관관계가 있는 요인들을 모아서 강화학습모델에 적용시켜보고 실제로 효과가 있는지 확인해본다.&lt;br /&gt;
*효과가 컸던 요인들을 모아서 모의 투자 상황에서 수익률 분석을 해본다.&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
*전 세계적인 기술현황&lt;br /&gt;
**자동 거래 시스템(ATS;Automated Trading System)은 1949년 Richard Donchian이 funds를 사고 파는 일련의 규칙을 사용하여 처음 소개되었다. 1980년대에는 John Henry와 같은 유명한 Trader들이 전략을 사용하기 시작하여, 규칙 기반 거래(Rule Based Trading)라는 개념이 대중화되었다. 현재는 미국 증권 거래소 주식 거래의 75% 이상이 자동 거래 시스템으로 이루어진다.&lt;br /&gt;
**최근에는 AI의 등장으로, 수많은 은행이나 투자자들이 AI를 활용하여 규칙 기반 거래나 직접 거래보다 훨씬 수익률이 높은 모델을 개발중이다. 딥러닝, 머신러닝 등의 기술을 활용하여 Trading Bot을 개발하고 있으며, 강화학습의 등장이후, 다양한 Trading Bot Project에서 강화학습을 도입하려는 움직임을 보이고 있다.&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
**거절 : 알고리즘 자동 매매 봇, [https://doi.org/10.8080/1020090067197]&lt;br /&gt;
***알고리즘 트레이딩 봇들을 모아서 관리할 수 있는 시스템&lt;br /&gt;
***통상적인 기술자가 충분히 만들 수 있는 것으로 판단하여 특허 거절&lt;br /&gt;
**등록 : 소셜트레이딩 방법, [http://kpat.kipris.or.kr/kpat/biblioa.do?method=biblioFrame]&lt;br /&gt;
***리더를 설정하여 해당 리더의 매매를 확인하고 추종하는 알고리즘&lt;br /&gt;
*기술 로드맵&lt;br /&gt;
**자동으로 거래를 할 수 있는 봇의 형태를 만들어야 하고, 모의투자를 통해 테스트할 수 있는 환경을 만들어야하기 때문에 투자, 증권사 API 및 모의투자 서버가 필요하다. 따라서, 키움증권, 대신증권, 이베스트투자증권 등의 회사의 API를 활용하고, 이 회사들의 모의투자 서버를 통해 수익률을 분석할 수 있다.&lt;br /&gt;
**강화학습은 환경이 주어지고, 해당 환경에 액션을 취하면 그에 따른 보상을 주면서 학습을 시킨다. 일반적인 딥 러닝은 어떤 요인들의 상호관계를 표현하지 못한다. 하지만 강화학습은 환경을 통해 어떤 요인들의 상호관계를 표현할 수 있다. 주식들은 서로 상호관계를 가지고 있으므로 강화학습을 이용하는 것이 유리한 방법이라 할 수 있다.&lt;br /&gt;
**현재에는 차트분석만으로 주식이나 광물시장에서의 매도, 매수타이밍을 잡아서 수익을 낼 수 있는 다양한 방법이 연구되고 있다. 이를 기술적 매매라고 부른다. 이러한 방법을 이용하여 알고리즘으로 구현하면 보다 안정적이고 수익률이 검증된 매매방법을 사용할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
**이러한 제품들은 시장에 공개적으로 나와있는 것을 쉽게 찾을 수 없다. 이러한 트레이딩봇 자체가 실제 주식시장에서 수익을 낼 수 있기 때문이다. 이윤을 창출하는 기업의 입장에서는 이 트레이딩 봇을 직접적으로 사용하지 않을 이유가 없다.&lt;br /&gt;
**또한 많은 사용자가 트레이딩 봇을 사용한다고 가정했을 때 모두가 이익을 볼 수 있는 것은 아니다. 같은 알고리즘을 사용하는 트레이딩 봇이 많으면 수익률이 줄어 들기 때문에 이러한 트레이딩 봇을 상용화하지 않은 것으로 보인다.&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! 알고리즘 !! 증권사 API !! 비고&lt;br /&gt;
|-&lt;br /&gt;
! 브레인듀드의 듀드303, 듀드프로&lt;br /&gt;
| 사용자의 조건검색식 사용 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 키움증권의 로보마켓&lt;br /&gt;
| 다양한 알고리즘 전략 제시 || 키움증권 API || &lt;br /&gt;
|-&lt;br /&gt;
! 주식몰 오토핫키&lt;br /&gt;
| 해당하는 설명이 없음 || 해당하는 설명이 없음 || 마켓팅 위주의 사업 진행&lt;br /&gt;
|}&lt;br /&gt;
**위와 같이 알고리즘 트레이딩 봇을 만드는 회사 이외에도 증권사나 펀드회사 같은 경우에도 가치투자를 위한 분석자료를 제공하는 서비스를 제공할 수 있다.&lt;br /&gt;
**한국거래소에서는 종목마다 투자가치를 판단할 수 있는 자료를 제공한다. 이에 따라서 우리의 트레이딩봇과 경쟁해야 하는 부분을 가지고 있다.&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**위와 같이 여러가지 요인을 연구, 분석함에 따라서 트레이딩 봇을 만들 수 있다. 이 요인들의 적당한 조합으로 여러가지 특성을 띠는 트레이딩 봇을 개발할 수 있다.&lt;br /&gt;
**사용자들에게 원하는 이익구조를 선택할 수 있게 한다. 예를 들어 수익률이 크게 높지 않더라도 안정적인 투자를 원하는 사용자가 있고, 위험을 감수하더라도 높은 수익률을 원하는 사용자가 있다. 요인분석에 따라서 얻을 수 있는 특징들을 찾아내고 이러한 요인들로 주식트레이딩의 위험, 최고 수익률등이 결정될 것이다. &lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
*기존의 주식 트레이딩봇들은 우리가 직접 알고리즘을 구현하고 설계함에 따라서 작동했다. 사람의 직관을 이용해서 장기투자를 하는 것이 아니라 짧은 시간의 시장변동을 감지해서 조금씩 수익을 올리는 등의 알고리즘이 만들어져 왔다. 하지만 강화학습과 딥러닝을 사용해서 좀 더 효과적인 방향을 찾을 수 있다.&lt;br /&gt;
*딥러닝에서 사용하는 뉴럴 네트워크는 학습이 완료되었을 때 예측속도가 매우 빠르다는 특징을 갖고 있다. 해당 요인을 성공적으로 학습한 네트워크를 얻은 후에 봇을 사용할 때는 컴퓨팅의 성능을 크게 사용하지 않고 빠른 속도의 트레이딩이 가능하다.&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
*위에서 서술한 대로 만일 강화학습을 이용해서 주식 트레이딩봇이 성공적으로 수익을 낼 수 있는 구조라면, 이와 유사한 트레이딩봇이 많이 등장할 것이다. 더불어서 강화학습에 딥러닝을 적용시키면서 구성할 수 있는 선택의 여지가 많아졌다. 각기 학습하는 방법에 따라서 각기 다른 여러가지 전략이 등장할 수 있는 것이다. 따라서 기존에 알고리즘을 이용해서 매매를 진행하던 투자자들이 새롭게 등장하는 트레이딩봇의 투자전략에 영향을 받을 것이며, 시장의 특성은 더 다양하고 복잡해질 것이다.&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;75%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  번호 !! 요 구 사 항 !! D or W !! 중요도&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 기존 시계열 분석 논문에 있는 전략(요소, Factor)들을 모듈로 개발 || D || 대 &lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 시계열 데이터 분석 모듈을 적용할 수 있는 강화학습 모델을 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| 모델을 학습시킬 수 있는 환경(Env, DB) 개발 || D || 대&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| PPO와 DQN 강화학습 알고리즘을 구현하고 분석 || W || 중&lt;br /&gt;
|}&lt;br /&gt;
====설계 사양====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
*강화학습 오픈소스) DQN을 이용한 트레이딩 학습 테스트&lt;br /&gt;
**학습개요&lt;br /&gt;
***아래는 국내 3개 IT기업의 일봉데이터를 대상으로 학습을 진행한 결과이다.&lt;br /&gt;
***구현에서는 가능한 만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
***아래의 그래프에서는 초기 투자금을 가지고 시간에 따라서 자산 가치가 어떻게 변하는지 보여준다.&lt;br /&gt;
**트레이닝 데이터로 학습 진행 중 자산가치변화&lt;br /&gt;
[[파일:Hoho1.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***초반에는 매우 가치가 크지만 불안정한 트레이딩을 하다가 후에 안정적인 수익률을 보여주는 것을 알 수 있다.&lt;br /&gt;
**테스트 데이터에서 거래중 자산가치 변화&lt;br /&gt;
[[파일:Hoho2.png]]&lt;br /&gt;
***빨간 선은 초기 투자 금액이다.&lt;br /&gt;
***테스트 데이터로 트레이딩 했을 때 투자금액 보다 평균 12%의 수익을 올릴 수 있었다.&lt;br /&gt;
***단순 시가만으로 학습을 하는 경우, 위와 같이 매우 불안정하므로 다양한 전략을 통해 개선이 필요하다.&lt;br /&gt;
*전략 오픈소스) 10일, 30일 이동평균선 교차점 검출을 이용한 매수 매도 알고리즘 트레이딩&lt;br /&gt;
**방법&lt;br /&gt;
***현재까지 크롤링한 일봉데이터에서 단기 이동평균선과 장기 이동평균선의 교차점은 중요한 매도, 매수타이밍의 후보가 될 수 있다. 장기적인 추세를 따라가는 것이 미래에 대체로 좋은 방향이 되므로 장기평균선이 상승할 떄 매수, 하락 할 때 매도를 하는 것이 좋다.&lt;br /&gt;
***구현에서는 가능한만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.&lt;br /&gt;
**Ta-lib&lt;br /&gt;
***Technical Analysis LIbrary&lt;br /&gt;
***시장분석과 같은 시계열 데이터 알고리즘을 분석하는데 사용하는 라이브러리&lt;br /&gt;
***내부에서는 기본 시장지표를 받으면 이에 따라서 새로운 보조지표를 만들어주거나 패턴을 검출하는 함수 제공&lt;br /&gt;
***구현에서 이동평균선 지표를 얻을 때 사용.&lt;br /&gt;
**가상트레이딩에 따른 자산가치 변화&lt;br /&gt;
[[파일:Hoho3.png]]&lt;br /&gt;
***빨간선은 초기 투자 금액이다.&lt;br /&gt;
***위와 같이 장기간 트레이딩을 진행하는데 있어서 이동평균선 교차점을 이용한 트레이딩이 좋은 효과를 보이는 것을 알 수 있다.&lt;br /&gt;
*광물시장 시가데이터 크롤링&lt;br /&gt;
**한국거래소([http://www.krx.co.kr])&lt;br /&gt;
**거래소홈페이지에서 1년단위의 데이터를 csv로 내려받을 수 있다.&lt;br /&gt;
**아래는 2014년 - 2019년의 종가를 그래프로 나타낸 것이다.&lt;br /&gt;
[[파일:Hoho4.png]]&lt;br /&gt;
*DQN 소스코드를 사용한 광물시장 가상 트레이딩&lt;br /&gt;
**위에서 사용한 DQN방법을 금시장을 대상으로 트레이딩을 진행했다.&lt;br /&gt;
**구현방식은 위의 DQN을 이용한 트레이딩 테스트와 같다.&lt;br /&gt;
**2000회 트레이닝을 진행하여서 매회 트레이닝마다 다음과 같은 결과를 얻을 수 있었다.&lt;br /&gt;
[[파일:Hoho5.png]]&lt;br /&gt;
**초기투자금액 10,000,000원으로 학습을 진행했다.&lt;br /&gt;
**위에서 트레이닝한 결과를 바탕으로 테스트를 진행했다.&lt;br /&gt;
[[파일:Hoho6.png]]&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>호호조</name></author>	</entry>

	</feed>