- ํ๋ฃจ๋ฅผ ๊ธฐ๋กํ ์ ์๋ ์น ์ผ๊ธฐ์ฅ์ ๋๋ค.
- ์ผ๊ธฐ์ฅ์ ๋ด๊ธด ๊ฐ์ ์ ๊ตฌ๊ธ ์์ฐ์ด API๋ก ๋ถ์ํ๊ณ , ๊ฐ์ ์ ์๊ฐํ ํ ์ ์์ต๋๋ค.
- ํ๋ฃจ์ ์ผ๊ธฐ์ฅ์ ๋ฐ๋ ๋ง๋ก ๋ฐ๊พธ์ด, ํ์์ ์ผ๊ธฐ์ฅ๊ณผ ํ์ค์ผ๊ธฐ์ฅ์ ์ ๊ณตํฉ๋๋ค.
-
Frontend Repoistory https://github.com/manymanyhappy/fantasiaDiary-Frontend
-
Backend Repository https://github.com/manymanyhappy/fantasiaDiary-Backend
-
Local ํ๊ฒฝ์์ ์คํ ํ๊ธฐ ์ํด์ , ๋ค์ ์ฌํญ์ด ํ์ํฉ๋๋ค.
1-1. Firebase API Key
1-2. MongoDB Atlas
1-3. Google GNL API -
1์ด ์ค๋น๋์๋ค๋ฉด, ์๋์ ๊ฐ์ด ์ค์ ํด์ฃผ์ธ์.
* Frontend
1. git clone
git clone https://github.com/manymanyhappy/fantasiaDiary-Frontend.git
2. 1-1 Firebase API Key ๋งํฌ๋ก ์ ์ํ์ฌ Key๋ฅผ ์์ฑํด์ฃผ์ธ์.
3. Root ๋๋ ํ ๋ฆฌ์ .envํ์ผ์ ๋ง๋ค๊ณ , ๋ค์๊ณผ ๊ฐ์ด Firebase API Key๋ฅผ ์
๋ ฅํด์ฃผ์ธ์.
REACT_APP_API_KEY=<Your Firebase API Key>
REACT_APP_AUTH_DOMAIN=<Your Firebase Auth Domain>
REACT_APP_PROJECT_ID=<Your Firebase Project Id>
REACT_APP_STORAGE_BUCKET=<Your Firebase Storage Bucket>
REACT_APP_MESSAGING_SENDER_ID=<Your Firebase Messaging Sender Id>
REACT_APP_APP_ID=<Your Firebase App Id>
4. cd fantasiaDiary-Frontend
5. npm install
6. npm start
* Backend
1. git clone
git clone https://github.com/manymanyhappy/fantasiaDiary-Backend.git
2. 1-2 MongoDB Atlas์ ์ ์ํ์ฌ URI๋ฅผ ์์ฑํ์ธ์.
3. Secret Key๋ฅผ ์ค์ ํ์ธ์.
4. Root ๋๋ ํ ๋ฆฌ์ .envํ์ผ์ ๋ง๋ค๊ณ , ๋ค์๊ณผ ๊ฐ์ด 2,3๋ฒ์ ์ฐจ๋ก๋๋ก ์
๋ ฅํ์ธ์.
MONGODB_ATLAS_URI=<Your MongoDB Atlas URI>
SECRET_KEY=<Your Secret Key>
5. 1-3 Google GNL๋งํฌ๋ก ๋ค์ด๊ฐ JSONํ์ผ์ ๋ง๋ค์ด์ฃผ์ธ์.
6. Root ๋๋ ํ ๋ฆฌ์ credentials ํด๋๋ฅผ ๋ง๋ค๊ณ , 5.์์ ๋ง๋ค์ด์ง JSON ํ์ผ์ ๋ฃ์ด์ฃผ์ธ์.
7. .env ํ์ผ์ ๋ค์ ์ฌํญ์ ์ถ๊ฐํด์ฃผ์ธ์.
GOOGLE_APPLICATION_CREDENTIALS='credentials/<Your JSON Filename>'
3. cd fantasiaDiary-Backend
4. npm install
5. npm run dev
์ผ๊ธฐ์๋ ์ข์ ์ผ๋, ๋์ ์ผ๋ ๋ชจ๋ ๋ด๊น๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ์์ ๊ตฌ์ ๋ฐ์ง ์๊ณ , ๋ด๊ฐ ์ฐ๊ณ ์ถ์ ๋๋ก ์ธ ์ ์์ฃ . ๊ทธ๋ ๋ค๋ณด๋ฉด ์์ ์ ์ง์ง '๊ฐ์ ' ์ด ๋๋ฌ๋ฉ๋๋ค.
๊ทธ ๊ฐ์ ๋ค์ ํ ์ฅ ํ ์ฅ์ ๋ด๊ฒจ ํ ๊ถ์ด ๋๊ณ ํ ๊ถ, ํ ๊ถ์ด ์์ด์ง๋ง,
๊ฒฐ๊ตญ์ ๋จผ์ง๊ฐ ์์ด๊ณ ๋ค ์ดํด๋ณผ ์๋ ์๊ฒ๋ฉ๋๋ค.
์ ๋์์ด ์ด๋ฑํ๊ต ์ผ๊ธฐ์ฅ์ 27์ด์ด ๋ ๋์ ๊ฐ์ง๊ณ ์์์ง๋ง,
์ฑ์ธ์ด ๋๊ณ ํ ๋ฒ๋ ํผ์ณ๋ณด์ง ์์ ๊ฒ์ฒ๋ผ์.
๊ทธ๋์ ๊ทธ ์ผ๊ธฐ๋ฅผ ์ง์ฒ๋ผ ์์๋๊ณ ์์ ํ์๊ฐ ์๋ ์จ๋ผ์ธ ์ผ๊ธฐ์ฅ ์ ๋ง๋ค๊ณ ์ถ์์ต๋๋ค.
๊ฑฐ๊ธฐ์ ํ ์ฅ ํ ์ฅ ์ดํด ๋ณด์ง ์์๋, ๊ทธ ์ ์ ๋ด๊ธด ๊ฐ์ ๋ค์ ์๊ฐํ ํด์ ๋ณด์ฌ์ฃผ๋ฉด ์ฌ๋ฐ๊ฒ ๋ค๊ณ ์๊ฐํ์ต๋๋ค.
๊ทธ๋ฌ๋ ์ค ๋ฉํ ๋์ด
'์ผ๊ธฐ์ ๋ด์ฉ์ ๋ฐ๋๋ก ๋ฐ๊ฟ์ ๋ณด์ฌ์ฃผ๋ ๊ฑด ์ด๋จ๊น์?'
๋ผ๋ ์์ด๋์ด๋ฅผ ๋์ ธ์ฃผ์ จ์ต๋๋ค.
์ค?
์ด๋ ๊ฒ ์ ์ ๋ ๋ฒ์งธ ํ๋ก์ ํธ,
ํ์์ ์ผ๊ธฐ์ฅ์ด ์์๋์์ต๋๋ค.
Frontend | Bakcend |
---|---|
React | Node.js |
Redux | Express |
Styled Component | MongoDB |
Axios | Mongoose |
Firebase | JWT |
Date-Fns | Puppeteer |
ES2015+ |
๋ฐฉํ ๋, ์ผ๊ธฐ ์ฐ๊ธฐ๋ฅผ ๋ฏธ๋ฃจ์๋ค๊ฐ ๊ฐํ ์ ๋ ํ ๊บผ๋ฒ์ ์ด ๊ฒฝํ ์์ผ์์ฃ ?
ํ์์ ์ผ๊ธฐ๋ ๋งค์ผ ๋ฑ ํ ๋ฒ ๊ธฐ๋กํ ์ ์์ต๋๋ค. ์ผ๊ธฐ๋ ๊ทธ ๋ ์ ๊ฐ์ ์ ์ถฉ์คํด์ผํ๋๊น์!
๋ด๊ฐ ์ด ์ผ๊ธฐ๋ฅผ ๊ตฌ๊ธ ์์ฐ์ด API๊ฐ ๋ถ์ํ๊ณ , ๊ทธ ์์น์ ๋ฐ๋ผ ๋ฌ๋ ฅ์ ์์ผ๋ก ํ๊ธฐ๋ฉ๋๋ค.
๊ทธ ๋ฌ์ ๋ด๊ฐ ์ด๋ค ๊ฐ์ ์ ๋๊ผ๋์ง ๋ฌ๋ ฅ์์ ํ ๋์ ํ์ธ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ํ๋ก๋ ํ์ธํ ์ ์์ต๋๋ค.
๊ธฐ๋ถ์ด ๋์ ๋ ์ด ์ผ๊ธฐ๋ ๋ค์์ ๋ด๋ ๊ทธ ๊ธฐ๋ถ์ด ์ด์๋์์์?
๊ทธ๋ด ๋, ๋ฐ๋๋ง๋ก ์ฐ์ฌ์ง ํ์์ ์ผ๊ธฐ๋ฅผ ๋ณด๊ณ , ์ด์ฒ๊ตฌ๋์์ด์ ์์ด๋ณด์๋๊ฑฐ ์ด๋จ๊น์?
์์ด๋์ด ๋ธ๋ ์ธ ์คํ ๋ฐ
11์ 30์ผ ~ 12์ 2์ผ(3์ผ)
๊ธฐ์ ์คํ ์์น
12์ 3์ผ ~ 12์ 5์ผ (3์ผ)
- ์ด๊ธฐ
- ์ผ๊ธฐ์ฅ์ ๋ง๋ค๊ณ ์ถ๋ค.
- ์ผ๊ธฐ์ฅ์ ์ฐ์ฌ์ง ๊ฐ์ ์ ๋น๊ต/๋ถ์ํด์ ๋ณด์ฌ์ค์๋ ์์๊น?
- ๊ทธ ๋ ์ ์ผ๊ธฐ ์ ๊ฐ์ ์ ์์ผ๋ก ํ๊ธฐํด์ฃผ์!
- ์ค๊ธฐ
- ๊ฐ์ ๋ง ํ๊ธฐํ๋ ค๋๊น ๋๋ฌด ๋จ์ํด ์ง๋๊ฑฐ ๊ฐ์๋ฐ?
- ๋ฉํ ๋ ์ ' ์ผ๊ธฐ๋ฅผ ๋ฐ๋๋ก ๋ฐ๊พธ๋๊ฑด ์ด๋์?'
- ์ผ๊ธฐ ์ ๋จ์ด๋ฅผ ๊ธ์ โ ๋ถ์ , ๋ถ์ โ ๊ธ์ ์ผ๋ก ๋ฐ๊ฟ๋ณด๋๊ฑฐ์ผ!
- ๊ฒฐ๋ง
ํ๋ก์ ํธ๋ฅผ ๋ง์น ์๊ฐ์์ ํ์ธํ์ธ์!
ํ์์ ์ผ๊ธฐ์ฅ. . .
ํ์ฅ์ด ๋ ๋ป ํ๋ค.
๐ฅ ์๋ก
ํ๋ก์ ํธ๊ฐ ๋๋๊ณ ์ ๋ ํ์์ ์ผ๊ธฐ์ฅ ๋ถ์ ๋ฅผ ์ง์์ต๋๋ค. ๋ถ์ ๋ ๋ฐ๋ก ํ์ฅ์ ์ผ๊ธฐ์ฅ..์ ๋๋ค.
์๋ํ๋ฉด ๊ธฐ์กด์ ๊ณํํ ๊ฒ์ ๊ตฌํํ ๋๋ง๋ค ์๊ธฐ์น ๋ชปํ ๋ฌธ์ ์ ๋ด์ฐฉํด,
์๋ก์ด ๊ธฐ์ ๊ณผ ์์ด๋์ด๋ฅผ ์ ๋ชฉ์์ผ์ผํ๊ธฐ ๋๋ฌธ์ด์ฃ .
์ ํ๋ก์ ํธ์์ ๊ฐ์ฅ ํฐ ํฌ์ธํธ๋ ๋จ์ด๋ฅผ ์ด๋ค์์ผ๋ก ์นํํ ๊ฒ์ธ๊ฐ? ์ ๋ํ ๋ถ๋ถ์
๋๋ค.
์ค์ ๋ก ํ๋ก์ ํธ ๊ธฐ๊ฐ์ ์ ๋ฐ์ ๊ทธ ๋ถ๋ถ์ ํ ์ ํ๊ธฐ๋ ํ๊ตฌ์.
์ฒ์์๋
- ์ผ๊ธฐ์ ๋ฌธ์ฅ์ ๋จ์ด๋ก ์ชผ๊ฐ๊ณ ,
- ๋จ์ด๋ฅผ ๊ตญ์ด์ฌ์ ์ ๊ฒ์ํ์ฌ, ๋ฐ์์ด ํญ๋ชฉ์ ์๋ ๋จ์ด๋ก ์นํ
์ด๋ ๊ฒ ํ๋ฉด ๋ก์ง์ด ์์ฑ๋๊ฒ ๋ค! ๋นจ๋ฆฌ ๋๋๋ฉด ๋ค๋ฅธ ๊ธฐ๋ฅ๋ค๋ ์ถ๊ฐํด์ผ๊ฒ ๋ค๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
ํ์ง๋ง, ์ด ์๊ฐ์ด ์ ๋ง ๋จ์ํ๊ณ , ๋จ์ํ ์๊ฐ์ด์์์ ์์ฃผ ๋นจ๋ฆฌ ๊นจ๋ซ๊ฒ๋์์ต๋๋ค.
***
๐ช ๋ณธ๋ก - Challenges 1
๐ก ํ
์คํธ๋ฅผ ๋ฐ์ดํฐ๋ก ๋ค๋ฃจ๋ ๊ฒ์ ์ ๊ฐ ์๊ฐํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ํฐ ๋ถ์ผ์์ต๋๋ค.
ํ
์คํธ๋ฅผ ๋ฐ์ดํฐ๋ก ๋ค๋ฃจ๋ ๊ฒ์ ํ
์คํธ ๋ง์ด๋(Text Mining) ์ด๋ผ๊ณ ํฉ๋๋ค.
๊ทธ ํ
์คํธ๋ "์ธ๊ฐ์ ๋ง"์์ ๋น๋กฏ๋ฉ๋๋ค.
ํ์ง๋ง "์ธ๊ฐ์ ๋ง"์ ํํ๊ฐ ๋งค์ฐ ๋ค์ํ๊ณ ๋ณต์กํด์ ์ผ๊ด๋ ๊ท์น์ ์ ์ฉํ๋ ๊ฒ์ด ์ด๋ ต์ต๋๋ค.
๋ํ ํ๊ตญ์ด๋ ๊ต์ฐฉ์ด๋ผ๊ณ ํ๋๋ฐ์.
๋ฐ์ ์์๋ฅผ ๋ณด์๋ฉด ์ฝ๊ฒ ์ดํดํ์ค ์ ์์ต๋๋ค.
๋๋ ์ง์ ๊ฐ๋ค.
I go to my home.
๋๋ ํผ์๋ฅผ ๋จน์๋ค
I eat pizza.
์์ด์ ๋ค๋ฅด๊ฒ ์กฐ์ฌ๊ฐ ๋จ์ด์ ๋ถ์ด์์ฃ .
์ฆ, ๋จ์ํ ๋ฌธ์ฅ.split(' ')ํ๋ค๊ณ ํด์ ํด๊ฒฐ๋ ๋ฌธ์ ๊ฐ ์๋์๋ค. ์ด๊ฒ์
๋๋ค.....!
โ
๊ทธ๋์ ์ ๋ ์ด ์นํ๋ก์ง์์ *์ ํ๊ณผ ์ง์ค*์ ํ์ฌ
๋ชจ๋ ๋จ์ด๋ฅผ ๋ฐ๋๋ง๋ก ๋ฐ๊พธ๊ธฐ ๋ณด๋ค๋, ํ์ฉ์ฌ์ ๋์ฌ๋ฅผ ๋ฐ๋๋ก ๋ฐ๊พธ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
ํ์ง๋ง ๋ฌธ์ฅ์์ ํ์ฉ์ฌ์ ๋์ฌ๋ฅผ ๋ฝ์๋ด๋ ๊ฒ ๋ํ ์ฌ์ด์ผ์ ์๋์์ต๋๋ค.
๋ฌธ์ฅ์ ์๋ฏธ๊ฐ ์์ด์ง ๋๊น์ง ์ชผ๊ฐ๋ "ํํ์ ๋ถ๋ฆฌ"๋ผ๋ ๊ฒ์ ํด์ผํ๊ณ ,
ํํ์ ๋ถ๋ฆฌ๋ฅผ ํตํด ๋์ด์ค๋ ๋ฐ์ดํฐ๋ฅผ ์ผ์ด์ค๋ณ๋ก ๋๋์ด, ๋จ์ด๋ฅผ ๋ฝ์๋ด์์ต๋๋ค.
๐ช ๋ณธ๋ก - Challenges 2
๐ก ๋จ์ด๋ฅผ ๋ฝ์๋ด๋ ๊ณผ์ ์ ๋๋ด๊ณ , ์ฌ์ ์ ๊ฒ์์ ํด์ผํ ์ฐจ๋ก๊ฐ ๋์์ต๋๋ค.
๊ทธ๋ฐ๋ฐ, ๋ค์ด๋ฒ๋ ๋ค์ ์ฌ์ ๋ค์ด API๋ฅผ ์ค๋จํ๋ค๋ค์!?
๊ทธ๋ง๋ API๋ฅผ ์ ๊ณตํ๋ ๊ตญ๋ฆฝ๊ตญ์ด์์ ๋ฐ์์ด๋ฅผ ์ ๊ณตํ์ง ์๋๋ค๋ค์?!
โ
๊ทธ๋์ ์ ๋ ํด๊ฒฐ์ฑ
์ผ๋ก ์ธ๊ฑฐ๋ผ๊ณ ์์ํ์ง๋ ์์๋ *ํฌ๋กค๋ง*์ ํ๊ฒ๋์์ต๋๋ค.
ํ์ง๋ง ํฌ๋กค๋ง์ ํตํด ๋ชจ๋ ๋จ์ด์ ๋ํ ๋ฐ์์ด๋ฅผ ๋ฝ์๋ผ ์๋ ์์์ต๋๋ค.
์๋ํ๋ฉด ๊ตญ์ด์ฌ์ ์ ๊ฒ์ํ ๋๋ ๊ฒ์ํ๊ณ ์ํ๋ ๋จ์ด์ ์ํ์ ๊ฒ์ํด์ผํ๊ธฐ ๋๋ฌธ์ด์ฃ .
๊ฐ๋ค์ ๋ฐ์์ด๋ฅผ ๊ฒ์ํ๋ ค๋ฉด ๊ฐ๋ค์ ์ํ์ธ '๊ฐ๋ค'๋ฅผ ์ ๋ ฅํด์ผํฉ๋๋ค.
โ
๊ทธ๋์ ํฌ๋กค๋ง์ ํตํด *๋ฐ์์ด๊ฐ ๋์จ ๊ฒ๋ค์ ๊ทธ๋๋ก ์ด์ฉ*ํ๊ณ ,
ํฌ๋กค๋ง์ ํตํด ๋ฐ์์ด๊ฐ *๋์ค์ง ์์ ๊ฒ๋ค์ ํ๊ตญ์ด์ ๋ถ์ ๋ถ์ฌ '์ / ๋ชป'์ ๋ถ์ด๊ธฐ๋ก* ํ์ต๋๋ค.
๐ฅ ๊ฒฐ๋ก - ๋์๊ฒ ํ์์ผ๊ธฐ์ฅ์ด๋?
์ด๋ ๊ฒ ์ ์ ํ์์ ์ผ๊ธฐ์ฅ ๋ก์ง์ด ์์ฑ(?)๋์์ต๋๋ค.
์ด ๋ก์ง์ ์ง๋ ๊ณผ์ ์์ ๋์์์ด ์๊ฒจ๋๋ ์๊ธฐ์น๋ชปํ ์ผ์ด์ค๋ค์ ๋ค๋ฃจ๊ณ ,
์ผ์ ๊ท์น์ผ๋ก ํธ์
์ํค๋ ๊ณผ์ ์ด 1์ฃผ์ผ์ ๋ ๋๋ค๋ณด๋ ์ค์ค๋ก ๋ถ์ํจ์ ๋ง์ด๋๊ผ์ต๋๋ค.
๋ค๋ฅธ ์น๊ตฌ๋ค์ ์ด๋ฐ๊ธฐ๋ฅ ์ ๋ฐ๊ธฐ๋ฅ ์์ฑํด๋๊ฐ๊ณ ์๋๋ฐ,
์ ๋ ์ด ๋ก์งํ๋์๋ง 1์ฃผ์ผ์ ๋งค๋ฌ๋ ค์์๊ธฐ๋๋ฌธ์ด์ฃ .
ํ๋ก์ ํธ๋ฅผ ๋๋ด๊ณ ๋ ์๊ฐ์ ์ด๊ฒ์ ๊ตฌํํด ๋๊ฐ๋ ๊ณผ์ ์์
์ค์ค๋ก ๋ฌด์์ ์๊ฐํ๊ณ , ๋ฌด์์ ๊นจ๋ฌ์๋์ง๊ฐ ๊ฐ์ฅ ์ค์ํ๋ค ๊ฒ์ด์์ต๋๋ค.
์ค์ ๋ก ์ ํ์์ผ๊ธฐ์ฅ ์นํ์ ์๋ฒฝํ์ง ์์ต๋๋ค.
๋ง์ด ์๋๊ฒ ์นํ์ด ๋ ๋๋ ์๊ณ , ์ด๋จ ๋๋ ์ ์ ์๋ ๋จ์ด๋ค์ด ๋์ค๊ธฐ๋ ํฉ๋๋ค.
ํ์ง๋ง ๋ด๊ฐ ๋ฌด์์ ์ ํ๊ณผ ์ง์ค์ ํ๋์ง,
์ด๋ค ๋ฌธ์ ์ ๋ถ๋ชํ์ ๋ ์ด๋ ๊ฒ ํด๊ฒฐํ๋ค๊ณ ๋น๋นํ๊ฒ ๋งํ ์ ์๊ณ ,
์ ์๋ ์ฌ์ฉํด ๋ณด์ง ๋ชปํ๋ ๊ฒ ๊ธฐ์ ๋ค์ ์ฌ์ฉํด๋ณธ ๊ฒฝํ์ผ๋ก ์ธํด
์์ ์๋ "์๋ก์ด ๊ธฐ์ ์ ์ฌ์ฉํด ๋ณด์ธ์"๋ผ๋ ๋ง์ "์๋ ๋๋ ๋ชปํด"๋ผ๋ ๋ง์ด ๋จผ์ ๋์์ง๋ง,
์ด์ ๋ "ํด ๋ณผ๊ฒ์. ํ ์ ์์ ๊ฒ ๊ฐ์์" ๋ผ๋ ๋ง์ด ๋จผ์ ๋์ฌ ์ ์๋ ์์ ๊ฐ์ ์ป์์ต๋๋ค.
ํ์์ ์ผ๊ธฐ์ฅ์ด ํ์ฅ์ ์ผ๊ธฐ์ฅ์ด๋ผ๋ ๋ถ์ ๋ฅผ ์ป์์ง๋ง,
ํ์์ ์ผ๊ธฐ์ฅ์ ์ ์๊ฒ "ํ์์ ๊ธฐํ"์๋ค๊ณ ์ ์ ๋ด๋ฆฌ๋ฉฐ ํ์ด์ง๋ฅผ ๋ง์นฉ๋๋ค.