๊ธ€

๋ผ๋ฒจ์ด ๋น„์ฅฌ์–ผ์ŠคํŠœ๋””์˜ค์ฝ”๋“œ์ธ ๊ฒŒ์‹œ๋ฌผ ํ‘œ์‹œ

Python ์‹œ์Šคํ…œ ํŠธ๋ ˆ์ด๋”ฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฒ€์ฆ - DB์„ค๊ณ„

Python ์‹œ์Šคํ…œ ํŠธ๋ ˆ์ด๋”ฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฒ€์ฆ - DB์„ค๊ณ„ 1) ์‹œ์Šคํ…œ ํŠธ๋ ˆ์ด๋”ฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฒ€์ฆ  - KODEX ์ฝ”์Šค๋‹ฅ 150 ๋ ˆ๋ฒ„๋ฆฌ์ง€ ์ข…๋ชฉ์˜ ์ด์ „ 100์ผ์น˜ ๋ถ„,์ผ๋ด‰ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ ํŠน์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜   >> CREATE DATABASE `SYSTEMTRADING`์œผ๋กœ ์ˆ˜์ต์ด ๋ฐœ์ƒ ํ•˜๋Š”์ง€ ํŒ๋‹จ ํ•˜๊ธฐ ์œ„ํ•จ 2) MariaDB  - MariaDB๋ฅผ ์„ค์น˜ ํ›„ ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ ํ•˜์—ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ฒ€์ฆํ•œ๋‹ค. 2-1) DATABSE ์ƒ์„ฑ  - ์ข…๋ชฉ์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ 3) ํ…Œ์ด๋ธ” ์ƒ์„ฑ  - KODEX ์ฝ”์Šค๋‹ฅ 150 ๋ ˆ๋ฒ„๋ฆฌ์ง€ ์ข…๋ชฉ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ 3-1) kosdaq_leve ํ…Œ์ด๋ธ”  - ๋ถ„๋ด‰ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ -------------------------------------------------------------------------------------------------  CREATE TABLE `kosdaq_leve` (  `DATE` VARCHAR(14) NOT NULL COMMENT '๊ฑฐ๋ž˜์ผ์‹œ',  `END` INT(11) NOT NULL COMMENT '์ข…๊ฐ€',  `LOW` INT(11) NOT NULL COMMENT '์ €๊ฐ€',  PRIMARY KEY (`DATE`) ) COMMENT='KODEX ์ฝ”๋“œ๋‹ฅ 150 ๋ ˆ๋ฒ„๋ฆฌ์ง€ ๋ถ„๋ด‰ ๋ฐ์ดํ„ฐ' COLLATE='utf8_general_ci' ENGINE=InnoDB ; ------------------------------------------------------------------------------------------------- 3-2) kosdaq_leve_day ํ…Œ์ด๋ธ”  - ์ผ๋ด‰ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ ----------------------------------------------...

Python ์›น ํฌ๋กค๋ง - Scrapy ํ™œ์šฉ ํŒŒ์›Œ๋ณผ ๋ฒˆํ˜ธ ์ˆ˜์ง‘(ํŒŒ์ผ)

์ด๋ฏธ์ง€
Python ์›น ํฌ๋กค๋ง - Scrapy ํ™œ์šฉ ํŒŒ์›Œ๋ณผ ๋ฒˆํ˜ธ ์ˆ˜์ง‘ 1) scrapy ํ”„๋กœ์ ํŠธ ํด๋” ์ƒ์„ฑ ๋ฐ gitHub ๋“ฑ๋ก 1-1) vscode๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ scrapy ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฐ git-hub์— ์†Œ์Šค ์—…๋กœ๋“œ ํ•˜์—ฌ ๊ด€๋ฆฌํ•œ๋‹ค.  - ์œ„๋‚ด์šฉ์€ Windows Git ์„ค์น˜ ๋ฐ GitHub ํ™œ์šฉ๋ฐฉ๋ฒ• ์„  ํ†ตํ•ด ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค. 1-2) PowerBall ํ”„๋กœ์ ํŠธ ํด๋” ์ƒ์„ฑ ๋ฐ git bashshell ์—์„œ git init ๋ช…๋ น์œผ๋กœ ๋กœ์ปฌ Repository ์ƒ์„ฑ 1-3) gitHub์— ์›๊ฒฉ Repository ์ƒ์„ฑ  1-4) git remote add ๋ช…๋ น์„ ํ†ตํ•ด gitHub์˜ ์›๊ฒฉ Repository ๋“ฑ๋ก 1-5) git pull ๋ช…๋ น์„ ํ†ตํ•ด git hub์—์„œ ์›๊ฒฉ Repository๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑ ํ• ๋•Œ ๋งŒ๋“ค์–ด์ง€ .gitignore ํŒŒ์ผ ๋ฐ README.md ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ ํ›„ ๋กœ์ปฌ๊ณผ ๋™๊ธฐํ™”. 2) Scrapy ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ 2-1) scrapy startproject PowerBall(ํ”„๋กœ์ ํŠธ๋ช…) ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. 2-2) git add ๋ฐ git commit ๋ช…๋ น์„ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ ํŒŒ์ผ ์ปค๋ฐ‹, git push๋ฅผ ํ†ตํ•ด ์›๊ฒฉ์ €์žฅ์†Œ๋กœ ๋“ฑ๋ก  -add, status  - commit, push 3) ํฌ๋กค๋ง ๋ชฉ์  ๋ฐ ๋Œ€์ƒํ™•์ธ 3-1) ํฌ๋กค๋ง ๋ชฉ์  : ํฌ๋กค๋ง ๊ณต๋ถ€       ํฌ๋กค๋ง ๋Œ€์ƒ : PowerBall ๋‹น์ฒจ๋ฒˆํ˜ธ         -  http://m.nlotto.co.kr/gameInfo.do?method=powerWinNoList&nowPage=1&searchDate=20180525&calendar=2018-05-25&sortType=num     ...

Python ์›น ํฌ๋กค๋ง - Scrapy ์„ค์น˜

์ด๋ฏธ์ง€
Python ์›น ํฌ๋กค๋ง - Scrapy ์„ค์น˜ 1) ์›น ํด๋กค๋ง(web crawling) 1-1) ํŠน์ •๋ชฉ์ ์„ ์œ„ํ•ด ์›นํŽ˜์ด์ง€ ์ƒ์˜ ์ •๋ณด๋ฅผ ์ฃผ๊ธฐ์  ๋˜๋Š” ํ•œ์‹œ์ ์œผ๋กœ ์ˆ˜์ง‘ ํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—… 2) Scrapy์˜ ์‚ฌ์šฉ 2-1) ํŒŒ์ด์ฌ์—๋Š” ํฌ๋กค๋ง์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•œ ๋Œ€ํ‘œ์ ์ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ Beautifulsoup๊ณผ Scrapy๊ฐ€ ์žˆ์Œ ๋‘ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํŠน์ง•์€ ๋Œ€๋žต ๋‹ค์Œ๊ณผ ๊ฐ™์Œ  - scrapy : ์Šคํฌ๋žฉ ๊ณผ์ •(ํฌ๋กค๋ง -> ๋ฐ์ดํ„ฐ์ฒ˜๋ฆฌ)์ด ๋‹จ์ˆœ ํ•จ  - Beautifulsoup : ๋งˆํฌ์—… ์–ธ์–ด ์ฒ˜๋ฆฌ ๊ฐ•์ , UTF8 ์ž๋™ ์ธ์ฝ”๋”ฉ ์ž๋™์ฒ˜๋ฆฌ, ํŒŒ์„œ์˜ ์—ญํ™œ์ด ํผ 3) Scrapy ์„ค์น˜ 3-1) ์•„๋‚˜์ฝ˜๋‹ค๋ฅผ ์„ค์น˜ ํ•˜์—ฌ Python์„ ์„ค์น˜ ํ•˜์˜€๋‹ค๋ฉด conda ๋ช…๋ น์„ ์‚ฌ์šฉ conda-forge ์ฑ„๋„์„ ํ†ตํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค์น˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฉฐ ๋ฐ˜๋ฉด์— ์ด๋ฏธ Python ํŒจํ‚ค์ง€ ์„ค์น˜์— ์ต์ˆ™ ํ•˜๋‹ค๋ฉด PypI๋ฅผ ํ†ตํ•œ ์„ค์น˜๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜ ์‚ฌ์ดํŠธ์—์„œ ํ™•์ธ๊ฐ€๋Šฅํ•˜๋‹ค. scrapy์˜ ๊ฒฝ์šฐ python 3.x๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ 2.x์˜ ์ƒˆ๋กœ์šด ๊ฐ€์ƒํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ์ด์œ ๋Š” 3.x dictionary์— ํŠน์ •๋ฉ”์†Œ๋“œ(iteritems()) ๋Œ€์‹  items()๋ฅผ ์ƒ์šฉํ•˜๊ฒŒ ๋˜์–ด์„œ ์ด๋‹ค. https://doc.scrapy.org/en/latest/intro/install.html 3-2) conda ๋ช…๋ น์–ด๋กœ์˜ ์„ค์น˜  >> conda install -c conda-forge scrapy ํ•ด๋‹น ๋ช…๋ น์–ด ์‹คํ–‰์‹œ conda์˜ ์ตœ์‹ ๋ฒˆ์ „์„ update ํ•  ๊ฒƒ์ด๋ƒ๊ณ  ๋ฌผ์–ด ๋ณด๋Š” ๊ฒฝ์šฐ y๋ฅผ ์„ ํƒ ํ›„ ๊ณ„์† ์ง„ํ–‰ ํ•œ๋‹ค.  - ๊ฐ€์ƒํ™˜๊ฒฝ์— ์„ค์น˜ ํ•˜๋ ค๋ฉด ํ•ด๋‹น ๋ช…๋ น์„ ํ†ตํ•ด ๊ฐ€์„ฑ ํ™˜๊ฒฝ์œผ๋กœ ์ ‘์† ํ›„ ์„ค์น˜ํ•œ๋‹ค.   >> conda env list : ํ™˜๊ฒฝ์„ค์ • list   >> activate ํ™˜๊ฒฝ๋ช… : ๊ฐ€์ƒํ™˜๊ฒฝ ํ™œ์„ฑํ™”

Windows Git ์„ค์น˜ ๋ฐ GitHub ํ™œ์šฉ ๋ฐฉ๋ฒ•

์ด๋ฏธ์ง€
Windows Git ์„ค์น˜ ๋ฐ Git ํ™œ์šฉ ๋ฐฉ๋ฒ• 1) Git ๋‹ค์šด๋กœ๋“œ ๋ฐ ์„ค์น˜ 1-1) Git์€ ๋ถ„์‚ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ๊ธฐ๋ฐ˜์˜ ๋ฒ„์ „ ๊ด€๋ฆฌ ๋„๊ตฌ ์ด๋‹ค. Git์€ Git Hub๋‚˜ GitLab ๊ฐ™์€ ์ค‘์•™ ์„œ๋ฒ„๋ฅผ ๋‘˜ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋กœ์ปฌ์—์„œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ Git์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” pc์— ์„ค์น˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค. 2) ์œˆ๋„์šฐ์—์„œ ์„ค์น˜ 2-1) ๋‹ค์Œ์˜ ์‚ฌ์ดํŠธ์— ์ ‘์† ํ›„ ๊ฒ€์ƒ‰์—”์ง„์— 'git' ์œผ๋กœ ๊ฒ€์ƒ‰ํ•ด๋„ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ค.  https://git-scm.com/download/win 2-2) ๋ณธ์ธ ํ™˜๊ฒฝ์— ๋งž์ถฐ ๋‹ค์šด๋กœ๋“œ ํ›„ ์„ค์น˜๋ฅผ ์ง„ํ–‰ ํ•œ๋‹ค. 2-3) ๋‹ค์šด๋กœ๋“œ ๋ฐ›์€ ์„ค์น˜ํŒŒ์ผ์„ ์‹คํ–‰ ํ•œ๋‹ค. Next> 2-4) ์„ค์น˜ํ•  ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•œ๋‹ค. Next> 2-5) ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ฉด ๊ธฐ๋ณธ ์ฒดํฌ ์ƒํƒœ ํ›„ Next> 2-6) Next> 2-7) Git์—์„œ ์‚ฌ์šฉํ•  ๊ธฐ๋ณธ ์—๋””ํ„ฐ๋ฅผ ์„ ํƒ ํ•œ ํ›„ Next> 2-8) ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๊ด€๋ จ ์„ค์ • ๊ทธ๋ž˜๋กœ ๋‘๊ณ  Next> 2-9) Next> 2-10) ์ค„๋„˜๊น€(CR, LF) ๋ฌธ์ž ๊ด€๋ จ ์„ค์ • Next> 2-11) Next> 2-12) Install 2-13) ์„ค์น˜์ง„ํ–‰ 2-14) ์„ค์น˜์™„๋ฃŒ Finish 2-15) ์‹œ์ž‘ ๋ฉ”๋‰ด์—์„œ Git bash๋ฅผ ์‹คํ–‰ 2-16) ์•„๋ž˜์™€ ๊ฐ™์ด ๋ณด์ด๋ฉด ์„ค์น˜ ์„ฑ๊ณต 3) ๋ฆฌ๋ˆ…์Šค์—์„œ ์„ค์น˜ 3-1) ๋ฆฌ๋ˆ…์Šค๋Š” ๊ฐ„๋‹จํ•œ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์„ค์น˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. yum์ด ์ง€์›๋˜๋Š” ๋ฆฌ๋ˆ…์Šค ๋ฐฐํฌํŒ(Fedora, CentOS ๋“ฑ)์˜ ๊ฒฝ์šฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. $ sudo yum install git$ sudo yum install git--all  all Ubuntu ๋“ฑ์˜ ๋ฐ๋น„์•ˆ ๊ณ„์—ด์—์„œ๋Š” apt-get์„ ํ†ตํ•ด ์„ค์น˜ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. $ sudo apt-get install gi...

Visual Studio Code ์ธ์ฝ”๋”ฉ ํ˜•์‹ ์ž๋™ ์ธ์‹์‹œํ‚ค๊ธฐ

์ด๋ฏธ์ง€
Visual Studio Code์—์„œ ์ธ์ฝ”๋”ฉ ํ˜•์‹ ์ž๋™ ์ธ์‹์‹œํ‚ค๊ธฐ 1) [ํŒŒ์ผ] >> [๊ธฐ๋ณธ ์„ค์ •] >> [์„ค์ •] 1-1) ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์ • ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•œ๋‹ค. 1-2) ์‚ฌ์šฉ์ž ์„ค์ • ํŽ˜์ด์ง€์—์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž…๋ ฅํ•œ๋‹ค. "files.autoGuessEncoding": true 1-3) ์•„๋ž˜์™€ ๊ฐ™์ด ํŒŒ์ผ์„ ์ฝ์–ด์˜ค๋ฉด ์ž๋™์œผ๋กœ ๋ณ€ํ™˜๋œ ๋‚ด์šฉ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

Anaconda-Python ํ™˜๊ฒฝ VSCode์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ

์ด๋ฏธ์ง€
VSCode์—์„œ Anaconda-Python ํ™˜๊ฒฝ ๊ตฌ์ถ•ํ•˜๊ธฐ 1) Anaconda ๋ฐ Visual Studio Code๋Š” ์ด๋ฏธ ์„ค์น˜๋˜์—ˆ๋‹ค ๊ฐ€์ •  2) Command Palette (Ctrl+Shift+P) ์—์„œ "Python:Select Interpreter"๋ฅด ์„ ํƒ 3) Python:Select Interpreter ์„ ํƒ ํ›„ ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉ ํ™˜๊ฒฝ์„ ์„ ํƒํ•œ๋‹ค. 3-1) ์„ค์น˜ํ•œ Anaconda ๋ฒ„์ „ (ํ•„์ž๋Š” 5.1์„ค์น˜)์€ ๊ธฐ๋ณธ์œผ๋กœ ์„ ํƒ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ Anaconda Prompt(Terminal)์—์„œ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋‘” ์ปค์Šคํ…€ํ™˜๊ฒฝ(Python 3.6.1)์„ ์„ ํƒ ํ•  ์ˆ˜ ์žˆ๋‹ค. 3-2) ์•„๋‚˜์ฝ˜๋‹ค ์ปค์Šคํ…€ํ™˜๊ฒฝ์„ค์ • ์•„๋‚˜์ฝ˜๋‹ค ํ™˜๊ฒฝ ๊ตฌ์ถ•์„ ์œ„ํ•œ ๋ช…๋ น์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์ƒˆ๋กœ์šด ํ™˜๊ฒฝ์ƒ์„ฑ : >conda create --name ํ™˜๊ฒฝ๋ช… python=3.6.1 ํ™˜๊ฒฝ ํ™œ์„ฑํ™”ํ•˜๊ธฐ: >activate ํ™˜๊ฒฝ๋ช… ํ™˜๊ฒฝ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ธฐ : >deactive ํ™˜๊ฒฝ๋ช… * Activation ์‹œ permission denied๊ฐ€ ๋œฌ๋‹ค๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด ์ž…๋ ฅํ•œ๋‹ค. > source Anaconda์„ค์น˜๊ฒฝ๋กœ/bin/activate ํ™˜๊ฒฝ๋ช… ํ˜„์žฌ ๊ตฌ์ถ•๋œ ํ™˜๊ฒฝ ํ™•์ธ : >conda info --envs ํ™˜๊ฒฝ ๊ตฌ์ถ• ํ›„ Anaconda์„ค์น˜๊ฒฝ๋กœ/envs ๊ฒฝ๋กœ์—์„œ ์ƒ์„ฑ๋œ ํ™˜๊ฒฝ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค. 4)Python ์œˆ๋„์šฐ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๊ตฌ์„ฑ 4-1)์ปค์Šคํ…€ ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ Anaconda ๊ธฐ๋ณธํ™˜๊ฒฝ์„ ์‚ฌ์šฉ์‹œ ์„ค์น˜๋œ python๊ฒฝ๋กœ๋ฅผ ํ™˜๊ฒฝ๋ณ€์ˆ˜์— ์„ค์ •ํ•œ๋‹ค.  - ๋ฒ„์ „์ด ๋ณ€๊ฒฝ๋œ Python ํ™˜๊ฒฝ์‚ฌ์šฉ์ด ๊ฒฝ๋กœ๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด PYTHON_HOME ๋ณ€์ˆ˜ ์ถ”๊ฐ€  - %PYTHON_HOME%๊ฒฝ๋กœ Path์— ์ถ”๊ฐ€ 5) VSCode ํ„ฐ๋ฏธ๋„์—์„œ Anaconda prompt ์‚ฌ์šฉ์„ค์ • 5-1) Anaconda Prompt ์„ค์ • ํŽ˜์ด์ง€์˜ ๋ฐ”๋กœ๊ฐ€๊ธฐ ํ•ญ๋ชฉ ์ค‘ ๋Œ€์ƒ์— ๋“ฑ๋ก...