๊ฐ์ ํ์ง๋ ์ผ๋ง ๋์ง ์์์ง๋ง, ์ง๊ธ ์คํ์์ ๊ด๋ จํ์ฌ ์ค๋นํด๋ณด๊ณ ์๋ ํ๋ก์ ํธ๊ฐ ํ๋ ์์ต๋๋ค. ์น์ฑ ๊ธฐ๋ฐ์ธ์ง๋ผ, ์คํ์์ ์ต๊ทผ๊ธ, ์ธ๊ธฐ๊ธ๋ฑ์ ์ค์๊ฐ์ผ๋ก ๋ฝ์๋ด์ผํ๋ ๋ฌธ์ ์ ๋ํด ์ฌ๋ฌ๊ฐ์ง ์์คํ ๋์์ธ์ ์ ์ฉํด๋ณด๊ณ ์๋ ์ค์ ๋๋ค.
๊ฐ์ฅ ์ฐ์ ์ ๊ทผํ๋๊ฒ์ Javascript library๋ก ๊ณต๊ฐ๋์ด ์๋ steem.js์
๋๋ค.
steem-js GIT
Steemit API Reference
์ผ๋จ ์ด์ ํ documentation์ด ๋์ ๋์์ง๋ง, ๊ด์ฐฎ์ต๋๋ค, ์คํ์์ ์์ง ๋ฒ ํ์๋น์ค์ด๊ณ , API๋ผ๋ ์ด์ด์ค๊ฒ ์ผ๋ง๋ ๊ฐ์ฌํ ์ผ์ ๋๊น. parameter๊ฐ ์ฑ ์ ์๋์ง ์์ method๋ค์ ์คํํด๋ณด๋ฉฐ ์ค์๊ฐ์ผ๋ก ์คํ์ ์น๊ณผ ๋์ผํ ๋ฐฑ๋ฐ์ดํฐ๊ฐ ๋์ด์ ๊ฐํ์ ํ์ต๋๋ค.
"SteemJS ์ฅ์ : ๋ค์ํ ์ค์๊ฐ๋ฐ์ดํฐ, ํต๊ณ๋ฐ์ดํฐ๋ฅผ ์คํฐ๋ฐ๊ณผ ๋์ผํ๊ฒ ๋ฐ์์ฌ ์ ์์ต๋๋ค."
์ด๋ฅผ ๋ฐ๋ก ์น์ฑ์ ๋ฐ๋ก ์ ์ฉ ํด๋ณด๊ณ ์ ๋ช๊ฐ์ง RestfulAPI method๋ค์ ๊ตฌํํ์ฌ ํ ์คํธ๋ฅผ ํด๋ดค์์ต๋๋ค. ๋ฆฌ์คํฐ์ค๋น 10์ด ์ด์๋๋ ๊ฒฝ์ฐ๊ฐ ๋น์ผ๋น์ฌํฉ๋๋ค. ๊ฒ๋ค๊ฐ ๋ฆฌํด๋๋ ๋ฐ์ดํฐ๋ ์ด๋ง๋ฌด์ํฉ๋๋ค.
"SteemJS ๋จ์ : ๋ฆฌ์คํฐ์ค ๋ฐ์ดํฐ๊ฐ ๋๋ฌด ํฌ๊ณ , ๊ทธ๋ก์ธํด ์๋๊ฐ ๋๋ฌด ๋๋ฆฝ๋๋ค"
ํ๋์ ์๋ก, ์ง๊ธ life์นดํ ๊ณ ๋ฆฌ์์ trending ์ ์ฌ๋ผ์์๋ 30๊ฐ์ post๋ฅผ ๋ก๋ํด๋ด ๋๋ค. 10.9์ด ์ ๋์ ์๊ฐ์ด ๊ฑธ๋ ธ๊ณ , ๋ฐ์ดํฐ ์ฌ์ด์ฆ๋ 1.7MB์ ๋ ๋ฉ๋๋ค. ๋์ผ ์นดํ ๊ณ ๋ฆฌ์์ new์ ์ฌ๋ผ์์๋ 30๊ฐ์ post๋ฅผ ๋ก๋ํด๋ด ๋๋ค. ๊ทธ๋๋ง ๋น ๋ฅด๊ฒ 2.4์ด๋ง์ ์๋ตํ๊ณ , 111KBํฌ๊ธฐ์ ์๊น์ 1/10๋ ์๋๋ ํฌ๊ธฐ์ ๋๋ค.
๋ฐ์ดํฐ๋ฅผ ์ดํด๋ณด๋, API์์ ๋ฆฌํดํ๋ ๋ฐ์ดํฐ๋ ๊ทธ์ผ๋ง๋ก "๋ชฝ๋ "์ ๋๋ค. post์ ๊ด๋ จ๋ ์ ๋ณด๋ฟ๋ง์๋๋ผ ๊ธ ํ๋๋ง๋ค votingํ ๋ชจ๋ voter์ id, weight, percentage, reputation, rshare, time์ ํจ๊ป ์ ๋ฌํด์ฃผ๊ณ ์์ต๋๋ค. ๋ฌผ๋ก ์ข์ ๋ฐ์ดํฐ์ด๊ธด ํ์ง๋ง, voting์ด ์๋ฐฑ๊ฐ ๋๋ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ ๊ทธ๋งํผ ํฌ๊ธฐ๊ฐ ์ปค์ง์๋ฐ์ ์์ง์.
์์ฝ๊ฒ๋ api์์ฒญ์์ ์ํ๋ ์ ๋ณด๋ง์ ๋ฆฌํดํด์ฃผ๋๋ก parameter๋ฅผ ์ค์ ํ๋ ๋ฒ์ ์ฐพ์ง ๋ชปํ์ต๋๋ค. ์ด ๋๋ฌธ์ ์ค์๊ฐ ๋ณต์ก ๋ค์ํ ์ฐ์ฐ์ ํ๊ธฐ ์ํด api๋ฅผ ์๋ฒ ํธ์ถํ๋ ค๋ ๋ฐฉ์์ ํ์ค์ ์ผ๋ก ์ด๋ ต๋ค๋ ํ๋จ์ ์ด๋ฅด๋ ์ต๋๋ค.
์ฌ๋ฌ๊ฐ์ง ๋ฆฌ์์น ๋์ steemsql๋ผ๋ mssql๊ธฐ๋ฐ์ DB์๋น์ค๋ฅผ ์ฐพ๊ฒ ๋์์ต๋๋ค.
SteemSQL
MSSQL๋ก steem blockchaing data๋ฅผ ์บ์ฑํ๋ ์๋น์ค์ธ๊ฒ์ผ๋ก ๋ณด์๋๋ฐ, ์๊ฐ๋ณด๋ค ๊ฐ์ฉํ ์ ๋ณด๊ฐ ๋ง์๋ณด์์ต๋๋ค. sync gap๋ ํ์ฌ๋ 2300์ด ์ ๋๋ก 30๋ถ~40๋ถ์ ๋๋ก, ์๊ฐํ๋ ํ๋ก์ ํธ์ ๋ชฉ์ ์๋ ํฐ ๋ฌธ์ ๋ ์์ด๋ณด์์ต๋๋ค.
"SteemSQL ์ฅ์ : ๋ฌด์๋ณด๋ค๋ ์๋์, ๋ณตํฉ ์ฟผ๋ฆฌ ์ฐ์ฐ์ด ๊ฐ๋ฅํ ์ ์ด ์ฅ์ ์ ๋๋ค"
"SELECT * FROM TABLE" ํํ์ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ ๋๋ steem.js ๋๋น ์ฅ์ ์ด ์์ต๋๋ค. "SELECT author, permlink
FROM TABLE"๊ณผ ๊ฐ์ด ์ํ๋ ์ปฌ๋ผ๋ง์ ์ทจํด์ ์ฟผ๋ฆฌ๋ฅผ ํ๋ฉด ์๋ฐฐ ์ด์ ๋นจ๋ผ์ง๋ฉฐ, ๊ฐ๋ฒผ์์ง๋๋ค.
๋ฌด์๋ณด๋ค๋ RDB์ ๋ฐฑ๋ฏธ๋ Join, nested query, aggregate function์ด ๊ฒ ์ง์. ๋ณตํฉ์ฐ์ฐ์ ์ฟผ๋ฆฌํ๋๋ง์ผ๋ก ํ ์ ์๋ ์ฅ์ ์ด ์์ต๋๋ค. ๊ทธ๋งํผ ์์ฒญ์ ์๋ ์ค์ด๋ค๊ณ , ์ํ์๊ฐ๋ ์ต์ ํ๊ฐ ๊ฐ๋ฅํฉ๋๋ค. ์๋ฅผ ๋ค์ด "ํ์ฌ๋์ ๊ธ์ ๋ณดํ ์ ๊ฐ์ฅ ๊ธฐ์ฌ๋ฅผ ๋ง์ด ํ ์ฌ๋", "๋ด๊ฐ ํ๋ก์ฐํ๋ ์ฌ๋์ค์ ๋์๊ฒ ๋ณดํ ์ ํ๋ฒ๋ ํ์ง ์์ ์ฌ๋"๋ฑ์ sql๋ง์ผ๋ก๋ ํด๊ฒฐ์ด ๊ฐ๋ฅํ๋ค๋ ์ฅ์ ์ด ์์ง์
๋๋ฌด ๋ง์ ๋ค์ด ๋ฐค์ ์ด๋ฐ์ ๋ฐ SQL์ ์ง๋ณด๊ณ ์๋ ์ค์ ๋๋ค.
"SteemSQL ๋จ์ : ์์ฝ๊ฒ๋, ์ ๋ฃ์ ๋๋ค (์ผ์ผ:1SBD, ์๊ฐ:10SBD)"
์ ๋ ํ์ฌ ์ง๊ฐ์ 1SBD๋ ์๋ ์ํฉ์ด๋ผ, SBD๋ฅผ ๋ณด์ ํ ์ง์ธ์๊ฒ ์์ธ๋๋ก ๊ฐ์ ์น๋ฅด๊ณ , ๊ตฌ๋ ์ ํ๊ฒ๋์์ต๋๋ค. (๊ฒฐ์ ๋ฐฉ๋ฒ์ ์ฌ์ดํธ์ ๋์์๊ณ , 30๋ถ์์ ๊ณ์ ์ด ์์ฑ๋์์ต๋๋ค) ์ ๋ฃ์ธ์ง๋ผ, ๋ง์ค์ฌ์ง๊ธดํ์์ง๋ง, ์๋น์ค ํ๋ฆฌํฐ๋ฅผ ๋ณด๊ณ ๋์๊น์ง ์๋ค๊ณ ๋๊ผ๊ณ , ๋๋ ค ์ ๋ฃ๋ก ์ด์์ด ๋์ผ ์์ ์ ์ด๊ณ ์ฅ๊ธฐ์ ์ผ๋ก ์ด์์ด ๊ฐ๋ฅํ ๊ฒ์ด๋ผ๋ ์๊ฐ์ด ๋ญ๋๋ค.
ํน์ฌ๋ ์คํ์ ๋ฐฑ๋ฐ์ดํฐ์ ๊ณ ๋ฏผํ๊ณ ์๋ ๋ถ๋ค์ SteemSQL๋ ํ๋ฒ ๊ณ ๋ คํด๋ณด์๋ฉด ์ข๊ฒ ์ต๋๋ค.