Qtum Core Web
์ํฐํด ์ ๋ณด
- ๋ฅ์ง
- Tool & Service
- ๋ถ๋ฅ
- External
- ๋ฑ๋ก์ผ
- 2019-06-24 03:30:24
- date: 2018-03
- environment: Linux, MacOS
- stacks: node.js, nuxt
- GitHub: https://github.com/redgoose-dev/qtum-core-web
Starting mining
๋์ ๋ชจ์ ์๊ฐ์ผ๋ก ์ํธํํ๋ฅผ ์กฐ๊ธ ์ฌ๋ณด๊ฒ ๋์๋ค๊ฐ ํํ (QTUM)์ด๋ผ๋ ์ฝ์ธ์ ์๊ฒ๋์ด ๊ตฌ์ ํ ์ ์๋ ๋์ผ๋ก ์ ๋ถ ๊ตฌ์ ํ๋ค.
ํํ
์๋ค ํฌ์ํ๊ณ ์๋ ๊ฐ์ฅ ํฐ ์ด์ ๋ ์ง๋ถ ์ฆ๋ช
๋ฐฉ์์ผ๋ก ๋
ธ๋๋ฅผ ์ ์ง์์ผ ์ฑ๊ตดํ ์ ์๋ POS ๋ฐฉ์์ ๋๊ธธ์ ๋์๋ค.
๋นํธ์ฝ์ธ๊ฐ์ ์ฑ๊ตด๋ฐฉ์์ ๊ทธ๋ํฝ์นด๋๋ CPU๋ฅผ ๋ง์ ์ ๊ธฐ๋ฅผ ์จ๊ฐ๋ฉด์ ๋
ธ๋๋ฅผ ์ ์ง์ํค๋ ๋ฐฉ์(POW)์ด ๋ง์์ ์๋ค์๋ค. ๊ณผ๋ํ ์ ๋ ฅ์ ์๋นํ๋ ์ธ๋ฅ์ ๋์๋์ง๋ ์๋ ๋ฐฉ์์ด๋ผ๊ณ ์๊ฐํ๋ค.
๋ฐ๋ฉด์ ํํ
์ ํ๋ก๊ทธ๋จ๋ง ํ์ผ ์ ์ผ๋๊ธฐ๋ง ํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๋ถ๋ด์๊ณ , ๋ณด์์ด ์ข์๋ณด์ฌ์ ์๋์ ๋๋ ค๊ฐ๋ฉด์ ์ฑ๊ตด์ ๋ฐ์ด๋ค๊ฒ ๋์๋ค.
NAS๋ก ๊ฐ์ธ ํํ์ด์ง ์ด์๊ณผ ํ์ผ ๊ณต์ ๋ฅผ ํด์๋๋ฐ ์ด๋ฒ ๊ธฐํ์ ์๋ฒ์ฉ ์ปดํจํฐ๋ฅผ ๋ฐ๋ก ๊ตฌ์ ํด์ ๋ฆฌ๋ ์ค๋ก ์๋ฒ๋ฅผ ๊ตฌ์ฑํ๊ณ ํํ ์ฑ๊ตด์ ๋๋ฆฌ๊ฒ ๋์๋ค.
NAS๋ ๊ธฐ๋ฅ์ฌ์ฉ์ ๋ง์ด ๋ต๋ตํด์ ๋ฆฌ๋ ์ค๋ก ๋์ด์์ ๋ง์ ๊ณต๋ถ๊ฐ ํ์ํ์ง๋ง ํ์ํ ๊ธฐ๋ฅ์ ๋ค ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ์ค๋ ์ฌ์ฉํ ์ ์์๊ฑฐ ๊ฐ์์ ์น์๋ฒ ์ค์ ์ ํ๊ฒ ๋์๋ค.
Qtum Core Wallet
Qtum Core Wallet์ PC์์ ์ฑ๊ตดํ๊ฑฐ๋ ์ง๊ฐ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํ ์ฉ๋๋ก ์ฐ๋ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ ์ ์๋ค.
POS๋ฅผ ๋๋ฆฌ๋ฉด์ ์ฝ์ธ์ ๋ด์ญ์ ํ์ธํ ์ ์๊ฑฐ๋ ์ ์กํ๊ฑฐ๋ ๋ฐ์ ์ ์๋ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์๋ค. GUI ๋ฒ์ ์ด๋ CLI๋ฒ์ ๋ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
์๋ฒ์์ ์ฌ์ฉํ ์๊ฐ์ด์ด์ ์ปค๋งจ๋๋ผ์ธ(CLI) ๋ฒ์ ์ ์ฌ์ฉํ๋ฉด์ ๊ธฐ๋ฅ๋ค์ ์์๋ณด์๋ค.
๋ช
๋ น์ด๋ก ์ฝ์ด์ ์ํ๋ ์ฝ์ธ์ ๋ฐ์ ์ ์๋ ์ฃผ์๋ฅผ ๋ง๋ค๊ฑฐ๋ ์ฝ์ธ์ ์ ์กํ ์ ์์๋ค.
์ฒ์์๋ ์ปค๋งจ๋ ๋ฒ์ ์ ์ฌ์ฉํ๋ฉด์ ์ธ๋ถ์์ ๋ช
๋ น์ด๋ฅผ ์ณ๊ฐ๋ฉด์ ์ฑ๊ตด ์ํฉ์ ๋ณด๊ณ ์์์ง๋ง ์ ๋ง ๊ท์ฐฎ์ ๋ฐฉ๋ฒ์ด๊ธฐ๋ ํ๊ณ ํ๋์ ์ํฉ์ด ํ์
์ด ๋์ง ์์์ ๋ญ๊ฐ ์ข์ ๋ฐฉ๋ฒ์ด ์์๊น ๊ณ ๋ฏผํ๋ค๊ฐ ์น ๋ธ๋ผ์ฐ์ ์์ ์ ์์ ํ๋ฉด ์ฝ์ด์ ์ํ๋ฅผ ๋ณผ ์ ์์ผ๋ฉด ์ข๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
๊ณ์ ์ฑ๊ตด์ํฉ์ ๋ด๊ฐ๋ฉด์ ์๋ด์ค์ผํ๋ค๋ณด๋ ํธ๋ฆฌํ๊ฒ ์ํฉ์ ๋ณผ ์ ์์ด์ผ ์ฅ๊ธฐ์ ์ผ๋ก ์ข์๊ฑฐ ๊ฐ์ ๋ณด์ฌ์ ๋ญ๊ฐ ์ข์ ๋ฐฉ๋ฒ์ด ์์๊น ํ๋ ๊ณ ๋ฏผ์ด ์์๋์๋ค.
์ปค๋งจ๋๋ฅผ ์คํํ๋ฉด ๊ฒฐ๊ณผ๊ฐ JSON ํ์์ผ๋ก ์ถ๋ ฅ๋๋๊ฒ์ ํ์ธํ๋ค๋ณด๋ ๋ฐ์ดํฐ๋ก ์ฌ์ฉํ ์ ์๊ฒ ๋ค๋ ๊ฐ๋ฅ์ฑ์ด ๋ณด์๋ค.
Planing
๊ทธ๋์ ํ๋์ ์์ด๋์ด๊ฐ ์๊ฐ๋ฌ๋ค.
์น ์๋ฒํ๋ก๊ทธ๋จ์์ ์ปค๋ฉ๋๋ฅผ ์คํํ๊ณ ๊ฒฐ๊ณผ๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์๋ค๋ฉด ๊ทธ๊ฑธ๋ก API๋ฅผ ๋ง๋ค์ด์ ํด๋ผ์ด์ธํธ์ ํต์ ์ ํ ์ ์์ด ๋ณด์๋ค.
์น ์๋ฒ ํ๋ก๊ทธ๋จ์์ ์ปค๋ฉ๋๋ฅผ ์คํ์ํฌ ์ ์์๋ค. ์์ฃผ ์ฌ์ฉํ๋ PHP์์๋ ์ฌ์ฉํ๊ธฐ๊ฐ ์กฐ๊ธ ๊น๋ค๋ก์ node.js์์ ์์ ์ฝ๋๋ฅผ ์์๋ณด๋ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์์ด ๋ณด์๋ค.
๊ทธ๋์ ๋๋งํ ๊ฑฐ ์์ด node.js๋ก API๋ฅผ ๋ด๋นํ๋์ชฝ์ผ๋ก ๊ฒฐ์ ํ๋ค.
ํด๋ผ์ด์ธํธ๋ ํญ์ ์ฌ์ฉํ๋ react๋ฅผ ์ฌ์ฉํ๊ฒ ์ง๋ง vue.js๊ฐ ์ด๋ค์ง ์์๋ณด๋ ์
์น๊ณ vue.js์์ ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง์ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋ nuxt๋ฅผ ๋ฒ ์ด์ค๋ก ๋ง๋ค๊ธฐ๊น์ง ๊ธฐ์ ์คํ๊น์ง ๊ตฌ์ํ๋ค.
๋์์ธ์ ํํ
๊ณต์ ์ฌ์ดํธ์ ์ปฌ๋ฌ ๋ฃฉ์ด ๋ง์์ ๋ค์ดํ๋ํฐ๋ผ ํํ
์ ์์ ๊ธฐ์ด๋ก ๋ง๋ค ์๊ฐ์ด์๋ค. ๊ธ๊ผด๋ ๋ณ๋๋ก ์ฌ์ฉํ๊ณ ์์ด์ ๊ฐ์๊ฑธ๋ก ์ฌ์ฉํ๋๊ฑธ๋ก ๋ฐฉํฅ์ ์ก์๋ค.
๋ ์ด์์์ ํํ
์ฝ์ด gui ํ๋ก๊ทธ๋จ์ ๋ชจ์ต๊ณผ ๋ค๋ฅธ ์ฝ์ธ ์ง๊ฐ๋ค์ ํ๋ฉด์ ์ฐธ๊ณ ํด์ ํ์ํ ์์๋ค๊ณผ ๋ฐฐ์น๋ฅผ ๊ธฐ๋กํด ๋๊ฐ๋ค.
What I want
์ด๋ค ๊ธฐ๋ฅ์ ๋ฃ์์ง ์ ํ๋๊ฑด ์ค์ํ ๊ณ ๋ฏผ๊ฑฐ๋ฆฌ๋ค.
์ผ๋จ ์ฃผ์ํ ๋ชฉ์ ์ธ ์ฑ๊ตด์ด ๋์๊ณ ๊ทธ ์ํฉ์ด ์ด๋ป๋์ง์ ๋ํ ํ๋ฆฌ๋ทฐ๋ฅผ ํ๋๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ฃผ์ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ด ์ ๋ฆฌํด ๋ณด์๋ค.
์ฝ์ด์ ์ํ
์ฝ์ด์ ๋ฒ์ ์ด๋ ์ผ์ก๋์ง ๊บผ์ก๋์ง์ ๋ํ ์ํ, ํ์ฌ์ ์ฝ์ธ๊ฐฏ์๋ ๋ค๋ฅธ ์ํ์ ์ฝ์ธ๊ฐฏ์, ์คํ ์ดํน์ ์ํ, ๊ฐ๋จํ ์ ์ก๋ด์ญ๋ฑ.. ํ ํ๋ฉด์ ๋๋ต์ ์ผ๋ก ์ํ๋ฅผ ํ์ ํ ์ ์์ด์ผ ํ๋ค.
์ ์ก๋ด์ญ
์ฝ์ธ์ ์ฃผ๊ณ ๋ฐ์ ๋ด์ญ
์ง๊ฐ๋ชฉ๋ก
ํ์ฌ ์ฌ์ฉํ๊ณ ์๋ ์ง๊ฐ์ ์ฃผ์๋ชฉ๋ก
๋ก๊ทธ์ธ
๋๋จํ ๊ฐ์ธ์ ์ธ ๊ณต๊ฐ์ด๊ธฐ ๋๋ฌธ์ ์ ๊ทผํ๊ธฐ ์ํด์๋ ๋ณ๋์ ์ธ์ฆ์ ์ฐจ๊ฐ ํ์ํ๋ค.
ํ๊ฒฝ์ค์
ํ๋ฉด์ด ํ์๋๋ ์ธ์ด๋ ํ ๋ง ์, ์ฝ์ด๋ฅผ ๊ด๋ฆฌํ๋ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์๋ค.
Design
ํ์ํ ์์๋ค์ ์ ํ๊ณ ๊ธฐ๋กํ๊ณ ๋ ๋ค์ ๋์์ธ ์์ ์ ๋์ด๊ฐ๋ค.
๋จผ์ ์ง์ ๋ง๋ค๊ณ ์ํ๋ ํฐ ์ด์ ๋ ํํ ํํ์ด์ง์ ์๋ ๋์์ธ์ด ์ ๋ฒ ๋๋ ธ๊ธฐ ๋๋ฌธ์ด๋ค. ์ด๋ฐ ์ปฌ๋ฌํค์ผ๋ก ๋์ ์ฝ์ธ์ ๊ด๋ฆฌํ๋ ํ๋ฉด์ ๋ณด๊ณ ์ถ์๋ ๊ฒ์ด๋ค.
๊ตฌ์์ ํ ๋ ์บก์ณํด๋๋ ํํ
์ฝ์ด GUIํ๋ก๊ทธ๋จ ๋ชจ์ต์ด๋ ๋ค๋ฅธ ์ง๊ฐ์ด๋ ๋ค๋ฅธ์ฝ์ธ์ ์ง๊ฐ ์คํฌ๋ฆฐ์ท์ ์ฐธ๊ณ ํ๋ฉด์ ๊ตฌ์ฒดํ๋ฅผ ์์ผฐ๋ค. ๋๋ถ๋ถ์ ํํ
์ฝ์ด์ ํ๋ฉด์ผ๋ก ๋ฐ๋ผ๊ฐ๋ค.
๊ฐ์ฑ์๊ฒ ๋ง๋ค ํ์๊ฐ ์์์ง๋ง ๋ถํธํ์ง ์๊ฒ ๋ง๋๋ ๋ฐฉํฅ์ผ๋ก ์ก๊ณ ํ๋ฉด์ ๊ตฌ์ฑํ๋ค.
์ฐ์ ์ปฌ๋ฌ๋ ๋ฐ์ ํ
๋ง๋ถํฐ ์์ํ๋ค.
ํํ
์ ๋ฉ์ธ์ปฌ๋ฌ๋ ์ด๋ก๊ฑฐ๋ ๋ฐ์๋ ์ ์ด์ธ๋ฆฌ๋ ์์ด๋ผ ๋ฐ์์์ ๋ฐฐ๊ฒฝ์ผ๋ก ๊น์๋ ๋ถ๋ด์ด ์์๋ค. ๋ค์๊ณผ ๊ฐ์ด ๋ฐ์ ๋ฐฐ๊ฒฝ๊ณผ ์ด๋์ด ๋ฐฐ๊ฒฝ์ ์ก์๋๊ณ ์ปฌ๋ฌ๋ฅผ ๋ง์ท๋ค.
ํ์ํ ๋์์ธ ์์๋ค์ ์ต๋ํ ๋ง๋ค์ด๋๊ณ ๊ฐ๋ฐ์ ์์ํ๋ค.
Development setting
ํญ์ ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋๊ณ ์ฒ์ ์ฌ์ฉํด๋ณด๋ vue.js๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ๋ง์๋จน๋ค๋ณด๋ ๊ฐ๋ฐ ๋ถํฐ๋ ์๋ก ์ ํ๋ ๊ฒ๋ค ๋ฟ์ด๋ค. ๊ทธ๋์ ๊ฐ๋ฐ์๋๊ฐ ๊ต์ฅํ ๋๋๊ฒ์ด๋ผ๊ณ ์์ํ๊ณ ์์๋ค.
ssr(Server Side Rendering)์ ๋ํ ํธ๊ธฐ์ฌ์ผ๋ก ๊ฐ๋จํ๊ฒ ๊ตฌ์ฑ์ ํด์ค ์ ์๋ NUXT๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ๋ค. ์ข๋ ์ฐพ์๋ณด๋ NUXT์์ ๋ผ์ฐํ
์ ์์ฒด์ ์ผ๋ก ๊ตฌํํ๊ณ ์๊ณ , ๋ณ๋์ ์ฃผ์๋ก ๋ผ์ฐํ
์ ํ์ฅํ ์ ์๋ค๋๊ฒ์ ์๊ฒ ๋์๋ค. ๋ค์ ๋งํ๋ฉด API ์ฃผ์๋ฅผ ๋ผ์ฐํธ๋ ํ์ฅ์์ผ node.js ๊ธฐ๋ฅ๋ง ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ด๋ค.
ํ๋ก์ ํธ์์ ๊ฐ์ฅ ํต์ฌ์ ์ธ ๋ถ๋ถ์ด node.js๋ฅผ ์ฌ์ฉํ๋ API์ ํด๋ผ์ด์ธํธ๋ฅผ ํต์ ํ๋๊ฒ์ธ๋ฐ ํ ํ๋ก์ ํธ์์ ํ๋ฒ์ ํด๊ฒฐํ ์ ์์ด ๋ณด์๋ค. ๊ธฐ์ ์คํ์ด ๋น์ทํ์ฌ ์๋ก์ ์ ๊ทผ์ฑ์ด ์ข์๊ฒ์ด๋ผ๋ ๊ธฐ๋๊ฐ ๋์์ก๋ค.
๊ฐ๋ฐ ์ธํ
์ ํ๋ฉด์ ์ฃผ๋ก ๋ฉ๋ถ์ด ์ค๋๊ฒ์ ์ฒ์ ์ ํ๋ฉด ํญ์ ์ผ์ด๋๋ค. ๊ทธ๊ฒ์ด ๊ฒฝํ์ด ๋๋ฉด์ ๋ค์๋ฒ์๋ ๋ฅ์ํ๊ฒ ํด๋ผ ์ ์์ง๋ง ์ญ์ ์ฒ์์๋ ํ๋ ๊ณผ์ ์ด๋ผ๋ ๊ฒ์ ์ด์ฉ ์ ์๋๋ณด๋ค.NUXT๋ ์๋นํ ์ค๋น๊ฐ ์ ๋์ด์๋ค๋ ์ธ์์ ๋ง์ด ๋ฐ๋๋ค. ํ์ํ ๊ธฐ๋ฅ๋ค์ด ์ถฉ์คํ ๋ง๋ค์ด์ ธ ์๊ณ ์ํ๋ ๋ถ๋ถ๋ค์ ๋ค ๊ฐ์ถ๊ณ ์์๋ค. SSR ๋ถ๋ถ์ด ์๋นํ ๊น๋ค๋ก์ด ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋๋ฐ ์ต๋ํ ๊ด์ฐฎ์ ํํ๋ก ํ์ด๋๊ฐ ์ธ์์ด๋ค.
๊ทธ๋ญ์ ๋ญ ๊ธฐ์ด์ ์ธ ํํ๋ฅผ ๊ตฌ์ฑํด๋๋ฉด์ git ์ค์ ๋ ์๋ฃํด๊ฐ๋ฉด์ ๋ณธ๊ฒฉ์ ์ผ๋ก ๊ฐ๋ฐ์์ ์ ๋ค์ด๊ฐ๋ค.
Publishing
ํ๋์ฉ vue ํ์ผ์ ๋ง๋ค์ด๋๊ฐ๋ฉด์ html์ ๋งํฌ์ ํด๋๊ฐ๋ค. React์ ๋ค๋ฅด๊ฒ vue๋ html ํ๊ทธ์ ๋๋จํ ์นํ์ ์ผ๋ก ๋ณด์ธ๋ค. html ์์ญ๊ณผ ์คํฌ๋ฆฝํธ ์์ญ, ์คํ์ผ ์์ญ์ด ์์ ํ ๋ถ๋ฆฌ๋์ด ์์ด ๊ฐ ์ญํ ์ ๋ํ ์ง์ค๋ ฅ์ด ๋๋ค.
css๋ฅผ ๊ฐ ์ปดํฌ๋ํธ์ ๋ฃ๋ ๋ฐฉ์์ด ์ ์์ด ์๋์ด์ ๊ณตํต ์์ญ์ css๋ฅผ ์์ฑํ๊ณ ํ์ํ ๋ถ๋ถ์ ์ปดํฌ๋ํธ ์์ scoped ํ์์ผ๋ก ํ์ํ ๋ถ๋ถ๋ง ์์ฑํด ๋ฃ์๋ค.
๋๋จํ ํจ์จ์ ์ผ๋ก ๋๊ปด์ก๋ค. ๋ฆฌ์ํธ์๋ ์ด๋ฐ ๋ฐฉ์์ด ์กด์ฌํ์ผ๋ฉด ํ ์ ๋๋ค. css ๋น๋ํ๋ฉด ํ ํ์ผ๋ก ํฉ์ณ์ ธ์ ์ปดํฌ๋ํธ๋ณ๋ก ์ ๋ํฌํ ์ด๋ฆ์ผ๋ก ์ ํ๋์ด ์์ผ๋ ์
๋ ํธ๊ฐ ๊ฒน์น์ง ์๊ณ , ๋
๋ฆฝ์ ์ธ ์ปดํฌ๋ํธ ์คํ์ผ์ ๋ง๋ค ์ ์๋ค๋๊ฒ์ด ๋๋จํ ๋งค๋ ฅ์ ์ผ๋ก ๋๊ปด์ก๋ค.
ํ์ด์ง๋ค์ ๋จ์ํ๊ฒ vue ํ์ผ์ ๋ง๋ค์ด ๋ฃ๊ธฐ๋ง ํ๋ฉด ํ์ผ ์ด๋ฆ์ผ๋ก ์์์ ๋ผ์ฐํ ์ค์ ์ด ๋์ด์ ํ์ด์ง ๋ง๋ค๊ธฐ๊ฐ ๋๋จํ ํธ๋ฆฌํ๋ค. ๊ทธ๋์ ์ฝ๊ฒ ํ๋ก์ ํธ๋ฅผ ๋ง๋๋ ค๋ฉด vue ๋ผ๊ณ ํ๋๊ฒ์ ๋๋ผ๊ฒ ๋๋ค.
Dashboard, Transactions, login, Receives ํ์ด์ง๋ค๋ง ๋จผ์ ์์ ์ ๋๋ด๊ณ ๋๋จธ์ง๋ ํ์ํ๋ฉด ์ปจํธ๋กค ์์ ์ ํ๋ฉด์ ์ถ๊ฐํ๊ธฐ๋ก ํ๋ค.
์ฒ์์๋ ๋ฐ์ ํ ๋ง๋ก ์์ ์ ํ๋๋ฐ ์ด๋์ด ์์๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ์์ ํ ๋ง๋ฅผ ์ถ๊ฐํ ์ ์๊ฒ ๋ค๋ ์๊ฐ์ ๊ฐ์ง๊ณ ์์ด์ css๋ก๋ง ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ์์์ ๋ถ์๊ธฐ๋ฅผ ํํํ ์ ์๋๋ก ์คํ์ผ์ํธ๋ฅผ ๊ตฌ์ฑํ๋ค.
์ด๋์ด ํ ๋ง๋ ๋ด๊ฑด์๊ณ ์ผ๋จ ๊ธฐ๋ฅ์ ์ ๋ถ ๋ง๋ค๊ณ ์คํ์ผ์ํธ์์ ์์ ๋ฎ์ด์์ฐ๋ ๋ฐฉ์์ผ๋ก ์์ ํ๋ค.
Controller
ํผ๋ธ๋ฆฌ์ฑ์ ์ผ๋ถ ๋ง๋ฌด๋ฆฌ ์ง๊ณ ํ๋ก์ ํธ์์ ํต์ฌ์ ์ธ ๋ถ๋ถ์ ๋ด๋นํ๋ ์์ ์ ์์ํ๊ฒ ๋์๋ค.
vueํ์ผ ์์์ script ํ๊ทธ ์์์ ์ฃผ๋ก ์์ฑ์ ํ๋๊ฑธ๋ก ์ฝ๋๋ฅผ ํต์ผ์ํจ๋ค.
์ปจํธ๋กค ์์
์ ํ๋ฉด์ ํ์ํ API๋ฅผ ํ๋์ฉ ๋ง๋ค๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ , ํ์ด์ง๋ฅผ ์ด๊ฑฐ๋ ๋ฒํผ์ ๋๋ฅผ๋์ ์ธํฐ๋์
์ ํ๋์ฉ ๊ตฌ์ฑํ๋ค.
์ด๋ vue์ ์ ์์ด ์๋ ์ํ์ฌ์ ์ด ๋จ๊ณ์์ ๋ง์ด ํด๋งค๊ฒ ๋์๋ค. ์๋ฌด๋๋ ํญ์ ์ฌ์ฉํ๋ ๋ฆฌ์ํธ์์ ๋น๊ต์ ์ํด์ ์๊ฐ์ด ๋ง์์ง๋๊ฒ ๊ฐ์ ๋ณด์ธ๋ค.
์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๋ ๋ต๋ตํจ์ ์์ํ์ฌ ๊ทธ๊ฑธ ํ์ฉํ ์ ์๋ ๊ธธ์ด ๋งํ๋ฒ๋ฆฌ๋ ์๋ฌด๋๋ ์งํ์ด ๋๋ ์ ๋ฐ์ ์์๋ค.
์๊ฐ์ ๊ตฌ์ ๋ฐ์ผ๋ฉฐ ์์ ์ ํ๋๊ฒ์ด ์๋๋ผ์ ํ๋์ฉ ์์๊ฐ๋ฉด์ ์งํํด ๋๊ฐ๋๊ฒ์ด ๊ฝค ์ฌ๋ฐ์๋ค.
ํนํ ํผ ๋ถ๋ถ์ ๋ง๋ค๋ฉด์ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค์ด๋ณผ๋ ์ข ํด๋งค๊ธด ํ์ง๋ง ๊ทธ๋ญ์ ๋ญ ํด๋ด๊ธด ํ๋ค.
๋ณ์๋ค์ด vuex์ ๊ฐ๋ค์ด ์ต์ ๋ฒ๋ธ๋ก ๋์ด์์ด์ ์ค๊ณ์ ๊ณ ๋ฏผ์ด ๋ง์์ง๋ง ์ฌ์ฉํ๊ธฐ์๋ ๋๋จํ ํธํ๋ค. ์ต์ํ์ง ์์ ๋ฐ์ดํฐ ๊ด๋ฆฌํ๋ ๋ฐฉ์์ด๋ผ ์กฐ๊ธ ๋ถ์ํ๊ธด ํ์ง๋ง ๋ณด์กฐํด์ฃผ๋ ํด๋ค์ด ์๋์ด ์์ด์ ๋ง์ ๋์์ด ๋์๋ค.
๋ฌด์๋ณด๋ค vue๋ฅผ ์์๊ฐ๋ ๋จ๊ณ์ฌ์ ํ๋ก์ ํธ๋ฅผ ๋ง๋๋๋ฐ ์ง์คํ๋๊ฒ๋ณด๋ค ํน์ง๋ค์ ์์๊ฐ๋ฉด์ ์ด๋ป๊ฒ ํ์ฉํ๊ณ ์ค๊ณ๋ฅผ ํ๋์ง์ ๋ํ ๊ณ ๋ฏผ์ ๋ง์ดํ๋ค.
vue์ ํน์ง์ด ํ์ด์ง ๋จ์๋ก ์ ์ํ๋๋ฐ ๋ ์ ํฉํ๋ค๊ณ ํ๋๋ฐ ๋ง์ ์ฌ์ฉํด๋ณด๋ ๊ฑฐ๊ธฐ์ ๋์๋ฅผ ํ๊ฒ๋๋ค.
ํ๋ก์ ํธ ํฌ๊ธฐ๊ฐ ์๊ณ ์ข ์์ฑ๋ ๋์ฌ์ ๋ง๋ค์ด๋ณด์๋ ์๊ฐ์ผ๋ก ์์ ๋ถ๋ถ๋ค(๋ฒํผ์ ๋๋ ์๋์ ์ธํฐ๋์ , ํผ์ ์์๋ค์ ๋ฐ์ ๋ฑ)์ ๊ผผ๊ผผํ๊ฒ ์์ ํ๋ค. ์๋ฌด๋๋ ์ง์ ๋์์ธํ๊ฒ๋ค์ด๋ผ์ ์ข๋ ์๋ช ์ ๋ถ์ด๋ฃ๊ณ ์ถ์ ์๊ตฌ๊ฐ ๊ฐํด์ง๋ค.
API
์ผ๋ถ ์ปจํธ๋กค ์์
์ ํ๋ฉด์ ํ์ํ ๋ฐ์ดํฐ ์๊ธฐ๋ฉด /api/foo ํ์์ผ๋ก ์ ๊ทผํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ํ์์ผ๋ก ๋ผ์ฐํธ ์ค์ ์ ํ๋ค.
๋ฌด์๋ณด๋ค ๊ฐ์ฅ ๋จผ์ ํด์ผํ ์ผ์ ํํ
์ฝ์ด์ ์์ฒญํด์ ๊ฒฐ๊ณผ๊ฐ์ ์ป์ด์ค๋ ์ฅ์น๋ฅผ ๋ง๋๋๊ฒ์ด๋ค.
๊ฐ์ฅ ํต์ฌ์ ์ธ ๋ถ๋ถ์ด๊ณ ์ค์ํ ์ญํ ์ ํ๋ ๋ถ๋ถ์ด๋ผ์ qtum-cli ๋ช
๋ น์ ํ์
ํ๋ฉด์ ์ฌ๋ฐ๋ฅธ ๊ฒฐ๊ณผ๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์์ผ๋ฉด์ ์์ธ์ ์ํฉ๋ค์ ์ต๋ํ ์ฒ๋ฆฌํ๋ฉด์ ๋ฌธ์ ๊ฐ ์๋๋ก ๋ง๋๋๊ฒ์ผ๋ก ์์ํ๋ค.
๊ธฐ์ ๊ฒํ ๋ฅผ ํ ์ ์ ์๋ฒ ์คํฌ๋ฆฝํธ๋ค์ ์ปค๋งจ๋๋ฅผ ์คํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์์ฌ ์ ์๋ค๋๊ฒ์ ์๊ฒ ๋์๋ค.
์ฒ์์๋ php๋ก ์์๋ดค๋ค. ํ์ง๋ง php๋ php.ini๋ฅผ ์์ ํด์ค์ผํ๊ธฐ ๋๋ฌธ์ ์ฐ๋ ์ฌ๋๋ค์ด ์ผ์ผํ ์์ ํด์ค์ผํ๊ธฐ ๋๋ฌธ์ node.js์์ Child Processes์ผ๋ก ๊ฐ๋จํ๊ฒ ํด๊ฒฐํ ์ ์๋ค๋๊ฒ์ ์ฐพ๊ฒ๋์๋ค.
- API ์์ฒญ
- child_process๋ก
qtum-cli๋ช ๋ น ์คํ - ์ถ๋ ฅ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์ด์์ json ํ์์ผ๋ก ์ถ๋ ฅ
์์๊ฐ์ ๊ณผ์ ์ผ๋ก ์คํํ์ฌ ํํ
์ฝ์ด์๋ค ์์ฒญํ ๋ด์ฉ์ ์ป์ด์ฌ ์ ์๋๋ก ์ฝ๋๋ฅผ ์์ฑํ์๋ค.
๋ผ์ฐํฐ ํ์ฅ์ผ๋ก ํ ํ๋ก์ ํธ์์ ํด๋ผ์ด์ธํธ์ ์๋ฒ ํ๋ก๊ทธ๋จ์ ๊ฐ์ด ์ด์ฉํ ์ ์๋ค๋๊ฒ์ด ๋๋จํ ๋งค๋ ฅ์ ์ด๋ค.
node.js๋ก ํ๋ก๊ทธ๋จ์ ์์ฑํด๋ณธ์ ์ด ์ฒ์์ด๋ผ์ ์ด์ฉํ๋ ๋ฌธํ๊ฐ ๋๋จํ ์์ํ๋ค. ์ฃผ๋ก ์ฝ๋ฐฑํจ์๋ก ์ด์ฉ๋๋ค๋ณด๋ ํญ์ ์ฌ์ฉํ๋ php์ ๊ฝค ๋ค๋ฅธ ์ธ์์ ๋ฐ๋๋ค.
์ผ๋จ์ ์ปจํธ๋กค ์์ ํ๋ฉด์ ์์ฒญ์ด ํ์ํ๋ฉด API ํ๋์ฉ ์ถ๊ฐํด๊ฐ๋ฉด์ ๋๋ ค๊ฐ๋ค.
Authentication
ํํ ์ฝ์ด๋ ๊ฐ์ธ์ ์์ฐ์ ๋ค๋ฃจ๋ ํ๋ก๊ทธ๋จ์ด๊ธฐ ๋๋ฌธ์ ๋ณด์์ ๋ง์ ์ ๊ฒฝ์ ์จ์ผํ๋ค.
์ธ์ฆ๋ถ๋ถ์ ๋ํด์ ๊ณ ๋ฏผ์ด ๋ง์์ง๊ณ ์ด๋ฐ์ ๋ฐ ์๋๋ฅผ ํด๋ณด๋๋ผ ๊ตฌ์กฐ์ ์ฝ๋๋ฅผ ๋ง์ด ๋ณ๊ฒฝํ๋ค.
์ด ํ๋ก๊ทธ๋จ์ ์ด์งํผ ๋ค๋ฅธ์ฌ๋์๊ฒ ๋ณด์ฌ์ฃผ๋ ์ฉ๋๋ ์๋๊ณ ์ฑ๊ตด์ ๋๋ฆฌ๋ ๋ณธ์ธ ํผ์์๋ง ๋ค์ด๊ฐ์ ํ์ธํ๊ธฐ ์ํ ํ๋ก๊ทธ๋จ์ด๋ค๋ณด๋ ๊ทธ๋ค์ง ๊ตฌ์กฐ ์์ฒด๋ ๋ณต์กํด์ผํ ํ์์ฑ์ด ์์๋ค.
์ฒ์ ์ค์นํ ์ ์ ํํ
์ฝ์ด์ ๋ค๋ฅธ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ํด๋๊ณ ๋ก๊ทธ์ธ ํ๋ฉด์ ๋ง๋ค์ด ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํด์ ๋ค์ด๊ฐ๋ ๋ฐฉ์์ผ๋ก ์ก์๋ค.
API ์์ฒญ์๋ง๋ค ๋ก๊ทธ์ธํ ๋ ๋ง๋ค์ด์ง ๊ฐ์ ๊ฒ์ฌํด์ ์ธ์ฆ ์ฌ๋ถ๋ฅผ ํ๋จํ๊ณ ๋ณด์ฌ์ฃผ๋ฉด์ ์ต๋ํ ๋
ธ์ถ์ด ๊น๋ค๋กญ๋๋ก ๋
ธ๋ ฅํ๋ค.
์ธ์ฆ ๋ถ๋ถ์ ์์ฃผ ์์ ํ๋ ํํธ๋ ์๋๋ค๋ณด๋(์ฃผ๋ก ์คํ์ผ์ํธ๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์..) ์ด๋ฒ ์์ ์ผ๋ก ๋ง์ ๊ณ ๋ฏผ๋ ์์๊ณ , ๋ถ์ํ๊ฒ ๋๊ปด์ง์ง๋ง ์ฌ์ฐจ์ฌ์ฐจ ๋ก๊ทธ์ธ๊ณผ ์ธ์ฆ๋ค์ ๊ตฌํ์ ํด ๋์๋ค.
์ด๋ฒ ๊ธฐํ๋ก node.js์ ๋ํด์ ๋ง์ ๊ฒ๋ค์ ์๊ฒ ๋์๋ค.
End
์ฒ์ ๋ง๋ค๋์๋ 5ํ์ด์ง๋ ์๋๋ ๋ถ๋์ ๊ธ๋ฐฉ ๋ง๋ค๊ฒ ์ง ์ถ์์ง๋ง ๋ง์ ์์ ๋ค์ด๊ฐ์ ์๋ก์ด ๊ฒ๋ค์ ์์๊ฐ๊ณ , ๊ณ ๋ฏผํ๊ณ ๋ค์ ์์ฑํ๋ค๋ณด๋ ์๊ฐ์ด ๊ฝค ๊ฑธ๋ ธ๋ค. ๋์ ์์ฑ๋ ๋์ ํํ๋ก ๋ง๋ค ์ ์๊ฒ ๋์ด์ ๋ง์กฑ์ค๋ฝ๊ฒ ๊ฒฐ๊ณผ๋ฌผ์ด ๋์จ๊ฑฐ ๊ฐ๋ค.
๊ฐ๋ฐํ๋ฉด์ ์์ฃผ ์ฌ์ฉํ๋๋ฐ ์๋ง๋ค์๋ค๊ณ ์๊ฐํ๋ค.
๋ค๋ง ์ ์ก๊ธฐ๋ฅ๋ ์ถ๊ฐํด๋ณผ๊น ํ๋ ์๊ฐ๋ ๋ค์์ง๋ง qtum-cli์ ๊ธฐ๋ฅ์ด ์์ง ์ ๋๋ก ๊ฐ์ถ์ด์ ธ ์์ง ์์์ ๊ด๋์๋ค.
์์ง ๋ฌด์จ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์๋์ง ์ด๋ป๊ฒ ์ฌ์ฉํ ์ ์๋์ง ์ ๋๋ก ํ์
์ด ์๋ ๊ธฐ๋ฅ๋ค์ ์ฌ์ฉํ๊ธฐ๊ฐ ์ํํด ๋ณด์ด๋๊ฒ๋ค์ด ์ข ๋ณด์ธ๋ค.
์คํ ์ดํน์ด ๋์๋์ง ํ์ธํ ์ ์๋ค๋๊ฒ๋งํด๋ ๋ง์กฑ์ค๋ฌ์์ ๊ฐ๋ฐ์ ์ด์ ๋๋ก ๋ง๋ฌด๋ฆฌ ์ง์๋ค.
ํ์ํ ๊ธฐ๋ฅ์ด ์๊ฒจ๋๋ฉด ํ๋์ฉ ์ถ๊ฐํ๋๊ฒ์ ๊ธฐ์ฝํ๋ฉฐ..