ํ์ด๋ธ๋ฆฌ๋ ์น์ฑ ํ๋ก์ ํธ๋ก ์ด ํ์ด์ง์์ ํ๋ก์ ํธ ๋ชฉํ๋ฅผ ์ ๋ฆฌ ๋ฐ ๊ด๋ฆฌํฉ๋๋ค.
- 3.1.1 ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด์์์ GPIO ํฌํธ๋ก ์ ๋ฌ๋๋ ๋ฐ์ดํฐ๋ RPI-GPIO ๋ชจ๋์ ํตํด์ ์ฝ์ด๋ค์ ๋๋ค. ( https://www.npmjs.com/package/rpi-gpio )
- 3.1.2 Database ๋ Level-Hyper ๋ชจ๋์ ํตํด์ ๊ฐ๋ ฅํ ์ฑ๋ฅ์ ๊ฐ์ง Indexed DB๋ฅผ Node.js์์ ์ฌ์ฉํฉ๋๋ค. ( https://github.com/Level/level-hyper )
- 3.1.3 Database Query ๋ Apollo-server๋ฅผ ์ด์ฉํด์ Level-Hyper ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ์ฟผ๋ฆฌ ์ฐ๊ฒฐ Resolver๋ฅผ ๋ถ๊ฐ์ ์ผ๋ก ๊ตฌํํฉ๋๋ค. ( https://github.com/apollographql/apollo-server )
- 3.1.4 ๋ฐ์ดํฐ ์บ์ฑ๊ตฌํ์ LRU ( https://github.com/isaacs/node-lru-cache ) ๋ชจ๋๊ณผ LFU ( https://github.com/calvinmetcalf/node-lfu-cache ) ๋ชจ๋์ ์ด์ฉํ์ฌ ๊ฐ๋ฐํฉ๋๋ค. ์ฟผ๋ฆฌํ ๋ฐ์ดํฐ๋ ํด๋ผ์ด์ธํธ์ ๋ฐฑ์๋์ ๊ฐ๊ฐ ์บ์ฑํฉ๋๋ค.
- 3.1.5 RSA ๋น๋์นญํค ํ ํฐ์ ์ด์ฉํ๊ธฐ ์ํด์ JSONWebToken ๋ชจ๋์ ๋น๋์นญํค ํ ํฐ์ ๊ตฌ์ฑํฉ๋๋ค. ( https://www.npmjs.com/package/jsonwebtoken )
- 2.2.1 Photoshop XD ๋ก ๊ณ ์ ํ ์ฑ๋์์ธ์ ๋ชจ๋ฐ์ผ ๋ฒ์ ๊ณผ PC ๋ฒ์ ์ผ๋ก ๋๊ฐ์ง ํํ๋ก ๋์์ธํ ํ ๊ฐ ๋์์ธ์ ํ๋กํ ํ์ ์ ๊ฒํ ๋ฐ์ต๋๋ค.
- 2.2.2 Zeplin์ ํตํด์ ํด๋น ๋์์ธ์ HTML๊ณผ CSS๋ก ์ถ๋ ฅํ ํ ์ด๋ฌํ ๊ณ ์ ํ ๋์์ธ์ Form์ ๋ค์ด๊ฐ ์ฝ๋์์๋ฅผ React JS ์ปดํฌ๋ํธ๋ฅผ ํตํด ๋ง๋ญ๋๋ค.
- 2.2.3 React JS ์ปดํฌ๋ํธ์์๋ ๊ฐ ์ปดํฌ๋ํธ์ ๊ตฌ์ฑ์ ์์ด ํ์ํ ๋ฐ์ดํฐ๋ฅผ Query ํ ์ ์๋๋ก Apollo Client ๊ธฐ๋ฐ์ Graph QL ์ฟผ๋ฆฌ๋ฌธ์ ์์ฑํฉ๋๋ค. ( https://github.com/apollographql/apollo-client )
- 2.2.4 ์ดํ ๋ง์ฝ ํด์๋ ๊ฐ๋ณ์ ์ธ ๋ฐ์ํ ๋์์ธ์ด ํ์ํ ๊ฒฝ์ฐ BlueprintJS๋ฅผ ํตํด์ ๋ถ๊ฐ์ ์ผ๋ก ๊ตฌํํ๋ฉฐ ๊ณ ์ ํ ๋์์ธ๊ณผ ๋ฐ์ํ ๋์์ธ์ ์ฐจํ Framer.js ์ฝ๋๋ก ๋ฐ์ํ ์ฑ ๋์์ธ ์์์ ๋ถ๊ฐ์ ์ผ๋ก ์ ์ํฉ๋๋ค.
- 2.2.5 ๋ง์ฝ ๋ถ๊ฐ์ ์ธ ์ด๋ ํ ์ ๋๋ฉ์ดํ ๋์์ธ์ด ํ์ํ ๊ฒฝ์ฐ framer.js ์ p5.js๋ฅผ ํตํด์ ์์ง์ด๋ ๋ฒกํฐ๋ ์ด์ด ๋์์ธ์ ์ ์ํฉ๋๋ค.
- 5.1 Unit Test = Jest + Travis CI - ๋ชจ๋ ์๊ณ ๋ฆฌ์ฆ ์ฝ๋๋ ๋จ๊ณ๋ณ๋ก ์ชผ๊ฐ์ด์ ์ ๋ ํ ์คํธ๋ฅผ ํตํด ์ ์ ์๋ ์ฌ๋ถ๋ฅผ ๊ฒ์ฆํฉ๋๋ค. ์ด๋ฅผ ์ํด์ Javascript ๊ณ์ด ๊ตฐ์์์ ์ ๋ ํ ์คํธ ํ๋ ์์ํฌ์ธ Jest๋ฅผ ์ฌ์ฉํ๋ฉฐ, ์ด๋ฌํ ์ ๋ํ ์คํธ ๊ฒฐ๊ณผ๋ฅผ ์ฝ๋์์ด ์๋ ์ง๊ด์ ์ผ๋ก ํ์ธํ ์ ์๋๋ก Travis CI๋ฅผ ํตํด์ Travis CI ์นํ์ด์ง๋ฅผ ํตํด์ ๋งค ๋ฒ์ ์ ๋น๋์ฑ๊ณต & ์คํจ ์ ๋ณด๋ฅผ ํ์ธํจ์ผ๋ก ์๋ชป๋ ๋ฒ์ ์ ๋ฐ์ดํธ๋ฅผ ๋ฐฉ์งํ๊ณ , ์ค๋ฅ๊ฐ ์๋ ๋ฒ์ ์ ๋ฐฐํฌ๋ฅผ ์งํฅํฉ๋๋ค.
- 5.2 Code Coverage = Jest + Codecov.io - ๋ชจ๋ ์์ฑ๋ ์ฝ๋๋ ๊ฐ ๋ถ๊ธฐ๋ณ๋ก ์ ๋ ํ ์คํธ๋ฅผ ๊ฑฐ์ณ์ผํฉ๋๋ค. ์์ฑ๋ ์ฝ๋์ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ์ ๋ ํ ์คํธ๋ก ์์ฑ ํ๋ ๊ฒ์ ์งํฅํ๊ธฐ ์ํด์ ํ ์คํ ๋๊ณ ์๋ ์ฝ๋๋ค์ด ํ์ค ๋จ์๋ก ์ผ๋ง๋งํผ ํ ์คํ ์ผ๋ก ๊ฒ์ฆ๋๊ณ ์๋์ง๋ฅผ ๋ฐฑ๋ถ์จ๋ก ๋ํ๋ด์ด ๊ฒ์ฌํด์ฃผ๋ Jest๋ฅผ ํตํด์ ์ฝ๋ ์ปค๋ฒ๋ฆฌ์ง๋ฅผ ํ์ธํ๋ฉฐ, ์ด๋ฌํ ์ฝ๋์ปค๋ฒ๋ฆฌ์ง ๋ฌ์ฑ๋ฅ ์ Codecov.io๋ฅผ ํตํด์ ์น์์์ ํ์ธํ ์ ์๋๋ก ๊ตฌ์ฑํฉ๋๋ค.
Copyrightโ2019 by Hanbat University All rights reserved.