[MEMO APP] Back-end/ DB์ฐ๊ฒฐ (1)
๐จ๐ป DB ์ฐ๊ฒฐ (with MongoDB)
๐ ์ง๋ Routing์์ ์์ฝ
์ง๋ ํฌ์คํ ์์ ์ฐ๋ฆฌ๋ ๋ผ์ฐํ ์์ ์ ์ํํ๊ฒ ํ๊ธฐ์ํด์ /api ๋ผ๋ ๊ฒฝ๋ก๋ฅผ ๋ค์ด์ค๋ ๋ชจ๋ ์ํฉ์ ๋ํ ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๋ api ํด๋๋ฅผ ๋ง๋ค์์ต๋๋ค.
๋ง์น ๊ณ์ธต์ ์ผ๋ก ๋ชจ๋ ๊ฒฝ๋ก๋ค์ ๋ถ๋ฆฌํ์ฌ ๊ฐ ํด๋นํ๋ ๊ณ์ธต๋ค๋ผ๋ฆฌ ํด๋ ๋ฐ ํ์ผ๋ค๋ก ๋ฌถ์ด์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ธ๋ฐ์, ์ด๋ ๊ฒ ๊ฐ๋ฐ์ํด์ผ ๋์ค์ ํน์ ๊ฒฝ๋ก์๋ํ ์์ ์ด๋ ์ฝ๋์ฝ์ ์ด ํ์ํ ๋ ์ฝ๊ฒ ๊ทธ ์์น๋ฅผ ์ฐพ์๊ฐ ์ ์์ต๋๋ค.
๋ฟ๋ง์๋๋ผ ์ด๋ ๊ฒ ๊ธฐ๋ฅ๋ณ๋ก ๋๋์ด ํ์ผ์ ์์ฑํ๋๊ฒ์ ํ๊ณณ์ ๋ชฝ๋ ๋๋ ค๋ฐ์ ์์ฑํ๋ ๋ฐฉ์๋ณด๋ค ๊ฐ ๊ธฐ๋ฅ๋ค๊ฐ์ ์์กด๋ ๊ฐ๋ฅ์ฑ ๋ํ ์ ์ด์ง๋๋ค.
(์ด ๋ถ๋ถ์ ์ฌ์ค ๊ฐ๋ฐ์๊ฐ ์ ์ํด์ ์์ฑํ๋ค๋ฉด ํ๊ณณ์ ์์ฑํ ์ฝ๋๋ ์์กด์ฑ์ ์์ ์ ์์ด์.)
๊ฒฐ๋ก ,
- ์ฐ๋ฆฌ๋ api๊ด๋ จ ๊ฒฝ๋ก๋ฅผ ๊ด๋ฆฌํด์ฃผ๋ ํด๋๋ฅผ ๋ง๋ค์๋ค.
- api๋ ๋ฒ์ ๋ณ๋ก ๊ด๋ฆฌ๊ฐ ์ด๋ฃจ์ด์ ธ์ผ ํ๊ธฐ๋๋ฌธ์ ๋ฒ์ ผ๋ฒ๊ด๋ฆฌ๋ฅผ ์ํ ํด๋๋ ์์ฑํ๋ค.
- ์์ผ๋ก ๊ฐ ๊ธฐ๋ฅ๋ณ ํด๋๋ฅผ v1.0 ํด๋(๋ฒ์ 1ํด๋)์์ ์ถ๊ฐ๋ฅผ ํ ์์ ์ด๋ค.
๐ DB ์ฐ๊ฒฐํ๊ธฐ
์ด ํฌ์คํ ์ ํ๋ก์ ํธ ์ฐ์ต์ ์ํ ํฌ์คํ ์ด๊ธฐ ๋๋ฌธ์ DB๊ฐ ๋ฌด์์ธ์ง MongoDB๊ฐ ๋ฌด์์ธ์ง ์์ธํ๊ฒ๋ ๋ค๋ฃจ์ง ์๊ฒ ์ต๋๋ค.
์ผ๋จ ์ ํฌ๊ฐ ์ฌ์ฉํ DBMS(DataBaseManagementSystem)์ MongoDB์ ๋๋ค.
MongoDB๋ NoSQL์ ์ฌ์ฉํ๋ DB์ ์๋ก ์ ๋ช ํ์ฃ .
์ฌ์ค, ์ด๋ฒ ํ๋ก์ ํธ์ ๋ํ ๊ณต๋ถ๋ฅผ ์งํํ๋ฉด์ NoSQL์ ์์ฌ์ฉํ๋์ง ์ด๋ค ์ฅ์ ์ด ์๋์ง ์ ๋ชฐ๋์๋๋ฐ ์ฌ์ฉํ๋ฉด์ ๊ฐํ์ฌ๋ฅผ ๋ช๋ฒ ๋ด๋ฑ์์ ์ด ์์์ต๋๋ค. ๋์ค์ ์๊ฐ์ด ๋๋ค๋ฉด, MongoDB์ ๊ด๋ จ๋ ํฌ์คํ ๋ ์ด์ผ๊ธฐ๋ฅผ ์งํํ๋๋ก ํ๊ฒ ์ต๋๋ค.
์๋ฒ๋ฅผ ๊ฐ๋ฐํ๋ฉด์ DB๋ ๋นผ๋์๋์ผ ๋นผ๋์์๊ฐ ์์ฃ !
์๋ํ๋ฉด, ๋ค์ํ ์ ๋ณด๋ฅผ ์ ์ฅํด์ผํ๊ธฐ ๋๋ฌธ์ธ๋ฐ์. ์ฐ๋ฆฌ๊ฐ ๋ง๋ ์๋ฒ์ฑ๊ณผ ๋ณ๋์ ํ๋ก๊ทธ๋จ์ธ DB๋ฅผ ์ด๋ป๊ฒ ์ฐ๊ฒฐํ ์ ์์๊น์?
๋ฐ๋ก Interface๋ฅผ ์ด์ฉํ ์ฐ๊ฒฐ์ ํฉ๋๋ค.
DB๊ฐ ํน์ ์ฝ์๋ interface๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๋๊ฒ๋๋ค. ์ฌ์ค ์ ํํ๋ DB๊ฐ ์ฒ๋ฆฌํด์ฃผ์ง๋ ์๊ณ ๊ทธ์ฌ์ด์์ ์ฐ๋ฆฌ๊ฐ ๋ง๋ ์๋ฒ์ DB๊ฐ ์์ฌ์ํต(๋ฐ์ดํฐ ์ฃผ๊ณ ๋ฐ๊ธฐ)๋ฅผ ์ ํ ์ ์๋๋ก ๋ฒ์ญ๊ฐ๊ฐ ์กด์ฌํด์. ๊ทธ ์น๊ตฌ๊ฐ ๋ฐ๋ก DBMS์ ๋๋ค.
๊ทธ๋์ ์ง๊ธ๋ถํฐ DBMS์ ์ฐ๋ฆฌ์ ์๋ฒ์ฑ๊ณผ ์ฐ๊ฒฐ์ ํ ๊บผ์์. ์ด๊ฒ์ DB connection์ด๋ผ๊ณ ํฉ๋๋ค.
์ด ์ปค๋ฅ์ ์ ๋ง๋ค๊ธฐ์ํด์๋ ์ปค๋ฅ์ ์ ๋ง๋ค์ด์ฃผ๋ ํน์ ๋ชจ๋์ ๋ฐ์์ผํฉ๋๋ค. ๊ทธ ๋ชจ๋์ ์ด๋ฆ์ ๋ฐ๋ก mongoose์ ๋๋ค. ๋ค์์ ๋ช ๋ น์ด๋ฅผ ์ฝ์์ ์ณ์ฃผ์ธ์.
yarn add mongoose
๋ฐฉ๊ธ ์ฐ๋ฆฌ๊ฐ ์ค์นํ๊ฒ์ mongoDB์ ์ฐ๋ฆฌ์ ์ฑ์ด ์ฐ๊ฒฐ๋ ์ ์๋๋ก ๋์์ฃผ๋ ๋ชจ๋์ ์ค์นํ๊ฒ์ ๋๋ค. ์ฆ ์์ง MongoDB๋ฅผ ์ค์นํ์ง ์์๋ค๋ ์ด์ผ๊ธฐ์ฃ . ๊ทธ๋ ๋ค๋ฉด ์ด์ mongoDB๋ฅผ ์ค์นํด์ผ๊ฒ ์ฃ ?
์ค์น๋ฅผ์ํด์ mongoDB install center๋ก ์ด๋ํฉ๋๋ค.
(https://www.mongodb.com/download-center?)
๊ทธ๋ฆฌ๊ณ ๋ค์์ ์ฌ์ง์ ๋ฐ๋ผ ์ค์น๋ฅผ ์งํํด ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค.
์ดํ๋ถํฐ ๋ค์ด๋ก๋๋ ์คํํ์ผ์ ์คํ์์ผ์ค๋๋ค.
๊ฐ๋จํ๊ฒ ๊ณ์ next๋ฅผ ๋๋ฌ์ฃผ๋ค๊ฐ. ์๋์ ํ๋ฉด์ด ๋์ค๊ฒ ๋๋ฉด ๋ค์์ ์ ์ฐจ๋ฅผ ๋ฐ๋ผ์ค๋๋ค.
1. ์ฒ์ ์ฌ์ฉํ๋ ์ ์ ๋ผ๋ฉด Complete๋ฅผ ๋๋ฌ ์๋์ค์ ์ ๋ฐ๋ฆ ๋๋ค.
2. ์ํ๋ ๊ธฐ๋ฅ๋ง ์ฌ์ฉํ๊ณ ํ ์ ์ ๋ผ๋ฉด Customํ์ฌ ์ํ๋ ํ์ผ๋ง ์ค์นํฉ๋๋ค.
์ดํ ๊ณ์ Next๋ฅผ ๋๋ฌ์ค๋๋ค.
๊ทธ๋ฌ๋ค๋ณด๋ฉด ๋ค์์ ์ฌ์ง์ ๋ง๋๊ฒ๋๋๋ฐ, ์ด๋ ์ํํ ๊ฐ๋ฐํ ์คํธ๋ฅผ ์ํด์ Compass๋ฅผ ์ค์นํด๋๋๊ฒ์ด ์ข์์ผ๋ก ์ข์ธก ์๋์ install mongodb compass ๋ถ๋ถ์ ์ฒดํฌํด์ค๋๋ค.
์ฌ๊ธฐ๊น์ง๊ฐ ๋ชฝ๊ณ DB์ค์น์ ๋์ ๋๋ค.
๋ง์ฝ ์ค๋ฅ๊ฐ ๋๋ค๋ฉด ๋ค์์ ์กฐ๊ฑด์ ํด๋นํ๋์ง ํ์ธํ ์กฐ์น๋ฅผ ์ทจํ์๊ธธ ๋ฐ๋๋๋ค.
MongoDB ์ค์น์ค๋ฅ
๋ฌธ์ 1. CMD ์ฐฝ์์ mongod๋ฅผ ์ณค์๋ ์ธ์์ด ์๋ฉ๋๋ค.
* ํด๊ฒฐ1
- C๋๋ผ์ด๋ธ ์์ Program Files ํด๋์์ MongoDBํด๋๊ฐ ์๋์ง ํ์ธํ๊ณ ์๋ค๋ฉด ์์ฑํด์ค๋๋ค.
* ํด๊ฒฐ2
- ํ๊ฒฝ๋ณ์๊ฐ ์ถ๊ฐ๋์ด์๋์ง ํ์ธํ๋ค.
- ํ๊ฒฝ๋ณ์ ์ถ๊ฐ๋ [๋ด์ปดํจํฐ]์ฐํด๋ฆญโก[๊ณ ๊ธ์์คํ ์ค์ ]โก[ํ๊ฒฝ๋ณ์(N)]์ผ๋ก ๋ค์ด๊ฐ๋ฉด ๋ฉ๋๋ค.
- ๊ทธ ํ ํ๋จ ์์คํ ๋ณ์ ๋ฆฌ์คํธ ์ค์์ PATH ๋ฅผ ํธ์ง ์ ํํ๋ค์ ์๋์ ๊ฐ์ด MognoDB์ค์น๊ฒฝ๋ก\bin ๋ฅผ ์ถ๊ฐํ๋ฉด ๋ฉ๋๋ค.
'Gorilla-Kim > Project' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[MEMO APP] Back-end/ DB์ฐ๊ฒฐ (3) (0) | 2020.03.18 |
---|---|
[MEMO APP] Back-end/ DB์ฐ๊ฒฐ (2) (0) | 2020.03.17 |
[MEMO APP] Back-end/ ๋ผ์ฐํ (2) (0) | 2020.03.15 |
[MEMO APP] Back-end/์๋ฒ๊ตฌ์ถ (2), ๋ผ์ฐํ (1) (0) | 2020.03.13 |
[MEMO APP] Back-end/์๋ฒ๊ตฌ์ถ (1) (0) | 2020.03.13 |