Assemble Tech Tree
Why I pick this tech tree
Server:floppy_disk:
< MySQL or MongoDB >
MongoDB๋ NoSQL(Not Only Sql)์ค ๊ฐ์ฅ ๋ํ์ ์ธ ํ๊ฐ์ง์ด๋ค.
๊ธฐ์กด RDB(Relational Data Base)์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์๋๋ก๋ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฌด๋ฆฌ๊ฐ ์๊ธฐ์ NoSQL์ ์ฅ์ ์ด ๋์ฑ ํฌ๊ฒ ๋ถ๊ฐ์ด ๋์๋ค.
MongoDB๋ ๊ด๊ณ๋ฅผ ์ค์ ํ์ง ์๊ณ Key-value ํํ์ json์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๊ธฐ์กด RDB์์ ์ฌ์ฉํ๋ Join์ ์ฌ์ฉํ ์ ์๋ค.
๋ ๋ฉ๋ชจ๋ฆฌ์์์ ์์กด์ ์ด๊ธฐ ๋๋ฌธ์ ๊ณ ์ฑ๋ฅ์ ํ๋์จ์ด ์ฑ๋ฅ์ ์๊ตฌํ๋ค.
ํ์ง๋ง ๊ฐ์ฅ ํฐ ๋จ์ ์ผ๋ก ์คํค๋ง๋ฅผ ์ค์ ํ์ง ์์๋ ๋๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ์์ค, ์ค๋ณต๋ค์ ์ํ์ด ์๋ค. ๊ณ์ , ๊ณ์ฐ๋ฑ์ DB ์๋ฒ ๊ตฌ์ถ์ผ๋ก๋ ์ ํฉํ์ง ์๋ค.
MySQL์ open source์ด๊ธฐ ๋๋ฌธ์ ๋๊ตฌ๋ ๋ฌด๋ฃ๋ก ์ด์ฉ์ด ๊ฐ๋ฅํ๋ค. ๋ํ RDB์ ๋ํ์ค ํ๊ฐ์ง ์ด๊ธฐ ๋๋ฌธ์ ๊ท๋ชจ๊ฐ ์๋์ ์ผ๋ก ์๊ฑฐ๋ ํฐ app์ ๋งค์ฐ ์ ํฉํ๋ค.
๊ทธ๋ ๊ธฐ์ DB๋ Mysql๋ก ๊ฒฐ์
< REST API vs GraphQL >
๊ณผ๊ฑฐ ์ค๋งํธํฐ์ ์ถํ์ผ๋ก RESTful๋ผ๋ ๊ฐ๋ ์ด ์๋ก ๋์ ๋์๋ค. client์์ uri๋ก ์ฟผ๋ฆฌ๋ฅผ ์์ฒญํ๋ฉด server API์์ ์์ฒญํ ์ ๋ณด๋ฅผ ์ฃผ๋ ํ์์ ๋ฐฉ๋ฒ๋ก ์ด๋ค.
๊ณผ๊ฑฐ์๋ ํ๋ช ์ ๋ฐฑ์๋ ๊ฐ๋ฐ์๊ฐ Server, DB๋ฑ์ ๋ชจ๋ ์กฐ์์ ํ์ง๋ง, ํ์ฌ๋ ํ๋ช ์ ๊ฐ๋ฐ์๊ฐ ๊ฐ๋นํ๊ธฐ์๋ ์๋น์ค ๊ท๋ชจ๊ฐ ์ปค์ก๋ค. ๊ทธ๋ ๊ธฐ์ RESTful์ด๋ผ๋ ๋ฐฉ๋ฒ๋ก ์ด ํ์ํ์ง๋ง, ๋๋ ์ด ์๋ก ์๊ธฐ๋ ์ ๋ง์ ๊ธฐ๊ธฐ์ ๋ง๋ ์ ๋ณด๋ฅผ ์ฒ๋ฆฌํ์๋ ํธํ์ด ์๋์ง ์์ ์ ๋ณด๋ฅผ ๊ณผํ๊ฒ ๋๊ฒจ ์์์ ๋ญ๋นํ๊ฒ ๋๊ณ ํ์์๋ ์ ๋ณด๋ฅผ ๋๊ฒจ์ฃผ๊ฒ ๋ผ์ ์๋๋ ๋๋ ค์ง๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
GraphQL์ ์ ๋ณด๋ฅผ ์ํ๋ ๋งํผ๋ง ์์ฒญํ ์ ์๋ค๋ RESTful์ ๋จ์ ์ ๋ณด์ํ์ฌ ๋ง๋ค์ด์ง Query Language์ด๋ค. ์ฆ server์ ์ ๋ณด๋ฅผ ์์ฒญํ๋ ํ์๋ฅผ ์ค์ด๊ธฐ ๋๋ฌธ์ ์๋๋ฅผ ํฅ์์ํค๊ณ , ์์์ ๋ณด๋ค ํจ์จ์ ์ด๊ฒ ์ฌ์ฉํ ์ ์๊ฒ ๋์๋ค.
๊ทธ๋ ๊ธฐ์ Data์์ฒญ์ GraphQL๋ก ๊ฒฐ์
Express
Express๋ Node.js๋ฅผ ์ํ ๋น ๋ฅด๊ณ ๊ฐ๊ฒฐํ ์๋ฒ์ฌ์ด๋ ์นํ๋ ์์ํฌ์ด๋ค.
๊ธฐ์กด Node.js์ ์ฝ๋๋ฅผ ๋์ฑ ๊ฐ๋จํ๊ณ ๋น ๋ฅด๊ฒ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ฉฐ, request, response๋ฅผ ๊ฐ๋จํ ์ค๊ณ ํ ์ ์๋ค.
์ต๊ทผ ์ ์ธ๊ณ ๊ฐ๋ฐ์๋ค๋ก ๋ถํฐ ์ฌ๋๋ฐ๊ณ ์๋ ์ค์ด๋ผ ์ปค๋ฎค๋ํฐ ํ๋์ด ํ๋ฐํ๊ณ , ๋ง์ npmํจํค์ง๋ฅผ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ์๋ฒ๋ฅผ ๋ง๋ค๋ ํ์ํ ๊ธฐ๋ณธ ๊ธฐ๋ฅ๋ค์ ๋ถ๋ฌ์์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค
์ถ์ฒ
MongoDB
-
https://elky84.github.io/2018/09/26/mongodb/
-
https://blckchainetc.tistory.com/350