- ์ฌ๊ท
- ์นด์นด์ค2021
- ์ฌ๋ผ์ด๋ฉ ์๋์ฐ
- DP
- ๋นํธ๋ง์คํน
- ๋ฐฑ์ค
- ๊ฐ์ฅ๊ฐ๊น์ด๊ณตํต์กฐ์
- go
- ๋ฐฑ์๋ ํ๋ฆฌ์จ๋ณด๋ฉ
- ๋นํธ๋งต
- ํ๋ก๊ทธ๋๋จธ์ค
- nestjs
- ํ๋ฆฌ์จ๋ณด๋ฉ
- ์ด๋ถํ์
- BFS
- ๋์ ํ๋ก๊ทธ๋๋ฐ
- golang
- C++
- Union-Find
- ์นด์นด์ค ์ฝํ
- ์น๋ฆฐ์ด
- ๋ค์ต์คํธ๋ผ
- ์ํฐ๋
- ํธ๋ฆฌ
- js
- ์์ฝ๋
- ์๊ณ ๋ฆฌ์ฆ
- DFS
- LCs
- Python
- Today
- Total
Hello Ocean! ๐ผ
[TIL] ํ๋ฆฌ์จ๋ณด๋ฉ ์ฒซ ๋ฒ์งธ ๊ณผ์ ํ๊ณ ๋ก ๋ณธ๋ฌธ
11์ 1์ผ, ํ๋ฆฌ์จ๋ณด๋ฉ OT๊ฐ ๋๋ ์งํ ์ฒซ ๋ฒ์งธ ๊ณผ์ ๊ฐ ์์๋์๋ค.
๊ณผ์ ๋ด์ฉ ๐
์ฒซ ๋ฒ์งธ ๊ณผ์ ๋ด์ฉ์, ์ฌ์ ๊ณผ์ ๋ก ์ ์ถํ๋ ๊ฒ์ํ CRUD์ ๋ช ๊ฐ์ง ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๊ฒ์ด์๋ค.
๊ฒ์๊ธ ์นดํ ๊ณ ๋ฆฌ, ๊ฒ์๊ธ ๊ฒ์, ๋๊ธ๊ณผ ๋๋๊ธ, ์กฐํ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํด์ผํ๋ค.
์งํ ๊ณผ์ ๐
ํ ๊ตฌ์ฑ์ด ๋ฐํ๋๊ณ ํ์ฅ์ ๋ฝ์์ผ ํ๋๋ฐ, ์์ํด์ ํ์ฅ์ด ๋์๋ค.
ํ ํ์ด 6๋ช ์ด์๋๋ฐ, ๋๋ค์ ๋๋ก ๋๋์ด 3๋ช ์ฉ ๊ณผ์ ๋ฅผ ์ํํด์ผํ๋ค.
์ฌ์ ๊ณผ์ ๋ฅผ 4๋ช ์ express, 2๋ช ์ nestjs๋ก ์ ์ถํ๊ธฐ ๋๋ฌธ์
expressํ, nestjsํ์ผ๋ก ๋๋๊ณ ํ ๋ช ์ด nestjsํ์ผ๋ก ๊ฐ๋ ๊ฒ์ผ๋ก ์ ํ๋ค.
์ฒ์ ๋ณด๋ ์ฌ๋๋ค๋ก๋ง ๊ตฌ์ฑ๋ ํ์์ ํ์ ํ๋ ๊ฒฝํ์ ์ฒ์์ด์๋ค.
๋ด๊ฐ ์ฌ์ ๊ณผ์ ๋ก ์ ์ถํ๋ ๋ ํฌ๋ฅผ ๋ฐํ์ผ๋ก ๊ณผ์ ๋ฅผ ์งํํ๋ค.
์ฐ๋ฆฌํ ์ฌ๋๋ค์ด ๋ค๋ค ์น์ ํ๊ณ , ์ด์ฌํ ์ฐธ์ฌํ ๋๋ถ์ ํ์ ๊ณผ์ ์์ ํฐ ๊ฐ๋ฑ์ ์์๋ค.
๋ค๋ง, ๊ณผ์ ๋ฅผ ์ดํ๋ง์ ์์ฑํด์ผํ๋ ๊ฝค๋ ์ด๋ฐํ ์ํฉ์์, ๋๋ ๊ณผ์ ๋ช ์ธ์์ ๋ช ์ธ๋์ง ์์ ๋ถ๋ถ์ ๊ตฌํํ์ง ์๊ณ ๋์ด๊ฐ๋ ค๊ณ ํ๋ค. ๊ทธ๋ฐ๋ฐ ํ์ ํ ๋ถ์ด ์ฌ์ธํ๊ฒ ์ ๊ฒฝ์ฐ์ ์ ์ด๊ฒ์ ๊ฒ ์์ ํ ๊ฒ์ด ๋ง์๋ค.
์ฒ์์๋ ์ด์ง ๋ถ๋ง๋ ์์์ง๋ง, ๊ณผ์ ๋ฅผ ํด์น์ฐ๋ฏ ํ๋ ๊ฒ ๋ณด๋จ ๊ณผ์ ์์ ์ต๋ํ ๋ง์ด ๋ฐฐ์ฐ๊ณ ์ฑ์ฅํ๊ธฐ ์ํด์๋ ์ฌ์ํ ๊ฒ ๊น์ง ์ ๊ฒฝ์จ์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ค. ์ด ํ์๋ถ ๋๋ถ์ ์ฌ์ํ ์ค๊ณ๋ ๊ตฌ์กฐ ๊ฐ์ ๋ถ๋ถ์์ ์์ฑ๋๊ฐ ์ฌ๋ผ๊ฐ๋ ๊ฒ ๊ฐ๋ค.
์ฒซ ๋ฒ์งธ ๊ณผ์ ์๊ธฐ์ ์๊ฐ๋ถ๋ฐฐ๋ฅผ ์ ํ์ง ๋ชปํด์, ํ ์คํธ ์ฝ๋๋ฅผ ์๋ฒฝํ๊ฒ ์์ฑํ์ง ๋ชปํ๋ค.
๋ฐฐ์ด ์ / ์์ฌ์ด ์ ๐ก
mongoose update์ return ๊ฐ
๋๊ธ์ updateํ๋ API์ ์๋ต์ผ๋ก, update๊ฐ ์๋ฃ๋ ๋๊ธ ๋ด์ฉ์ ๋ณด๋ด์ฃผ๊ณ ์ ํ๋ค.
๊ทธ๋์ findOndAndUpdate ํจ์์ return๊ฐ์ ์๋ต์ผ๋ก ๋ณด๋ด์ฃผ์๋๋ฐ, ์์ ์ด ๋์ง ์์๋ค.
์๊ณ ๋ณด๋ DB์ ์์ ์ ๋๊ณ ์๋๋ฐ, findOndAndUpdate์ return๊ฐ์ด update๋๊ธฐ ์ originalํ ๋๊ธ ๋ด์ฉ์ด์๋ ๊ฒ์ด๋ค.
updateํจ์์ option ํ๋ผ๋ฏธํฐ๋ก { new: true } ๊ฐ์ ์ฃผ์๋๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์๋ค.
mongoose์ ๋ชจ๋ updateํจ์๊ฐ default๋ก origin ๊ฐ์ returnํ๊ธฐ ๋๋ฌธ์ ์์ผ๋ก๋ ์ด option์ ์ ์ฉํ๊ฒ ์จ๋จน์ ์ ์์ ๊ฒ ๊ฐ๋ค.
const commentInfo = await comment.findOneAndUpdate(
{ commentId },
{ $set: {contents, updatedDt: Date.now() }},
{ new: true }
);
mongoose AUTO-INCREMENT ์์ฑ ์ ์ฉ
๋๊ธ ์คํค๋ง์์ id๋ฅผ auto-increment ์์ฑ์ ์ ์ฉํด ์์ฑํ๊ณ ์ถ์๋ค.
mongodb์์ ์๋์ผ๋ก ์์ฑํด์ฃผ๋ _id๊ฐ์ด ๊ธธ๊ณ ๋ณต์กํ๋๊น ๊ฐ๋จํ๊ฒ ์ซ์๋ฅผ ์ด์ฉํ๊ณ ์ถ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ฐพ์๋ณด๋ ๊ณต์์ ์ผ๋ก auto-increment๋ฅผ ์ง์ํด์ฃผ๊ณ ์์ง ์์, ์ฌ๋๋ค์ด ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ๊ธฐ๋ฅ์ ๊ตฌํํด์ ์ฌ์ฉํ๊ณ ์์๋ค.
์ฐ๋ฆฌ ํ์ mongoose-auto-increment ํจํค์ง๋ฅผ ์ด์ฉํด์ ํธํ๊ฒ ๊ตฌํํ ์ ์์๋ค.
๋ค๋ง, ๋ค์๋ถํฐ๋ ๊ตณ์ด mongoDB๋ฅผ ์ด์ฉํ๋ฉด์ ์ด๋ฐ ์์ฑ์ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข์ ๊ฒ ๊ฐ๋ค.
mongoDB๋ฅผ ์ฐ๋ฉด์ ์ข ์ข ๋๋ผ๋ ๊ฒ์ธ๋ฐ, NoSql์ ์ฐ๋ฉด์ ์๊พธ SQL์ฒ๋ผ ์ฌ์ฉํ๋ ค๊ณ ํ๋ ๊ฒ ๊ฐ๋ค.
์ด๋ด๊ฑฐ๋ฉด SQL์ ์ ํํด ์ฌ์ฉํ๊ณ , NoSQL์ด ์ ํฉํ ๊ฒฝ์ฐ์๋ง NoSQL์ ์ฌ์ฉํด์ผ๊ฒ ๋ค.
AWS๋ฅผ ํตํ ๋ฐฐํฌ
์ด๋ฒ ๊ณผ์ ๋ฅผ ํตํด ์ฒ์์ผ๋ก AWS EC2๋ฅผ ํตํด ๋ฐฐํฌํด๋ณด์๋ค.
์ธ์คํด์ค๋ฅผ ์์ฑํ๊ณ , MobaXterm๋ฅผ ์ด์ฉํด SSH ์ ์์ ํ๋ค.
๋ฐฐํฌ๋ฅผ ์๋ฃํ๊ธฐ๊น์ง ๋ ๋ฒ์ ์ํ์ฐฉ์ค๊ฐ ์์๋ค.
1. ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์๋ฒ ์คํ
git clone์ ๋ฐ๊ณ , npm installํ๊ณ , npm start๋ก ์คํํ๋๋ ์๋ฒ๊ฐ ์ด๋ ธ๋ค!
๋๋ฌ๋ค๊ณ ์๊ฐํ๋๋ฐ ์ด๋ ๊ฒ ์ฐ๊ฒฐํ์ ๋, ๋ด๊ฐ sshํฐ๋ฏธ๋์ ๋ซ์ผ๋ฉด ์๋ฒ๋ ํจ๊ป ์ข ๋ฃ๋๋ค.
๊ทธ๋์ nohup ๋ช ๋ น์ด๋ฅผ ์ด์ฉํด ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํ์ํค๋๋ก ํ๋ค.
๊ทธ๋ฐ๋ฐ, ์ด ๋ช ๋ น์ด๋ก ์คํํด ๋๊ณ ํ๋์๊ฐ ๋ค์ ํ์ธํด๋ดค๋๋ ์๋ฒ๊ฐ ์ข ๋ฃ๋์ด ์์๋ค.
์ข ๋ ์์ ํ๊ฒ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํ์ ์ํค๊ณ ,
์ฑ๊ธ์ค๋ ๋์ธ Nodejs์์ ๋ฉํฐ์ฝ์ด๋ฅผ ๋ชจ๋ ์ฌ์ฉํ ์ ์๋๋ก
PM2 ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํด ํด๋ฌ์คํฐ ๋ชจ๋๋ก ์คํ์์ผฐ๋ค.
2. ๋ณด์๊ทธ๋ฃน ์ค์
์๋ฒ๊ฐ ์ด๋ฆฐ ๊ฒ์ ํ์ธํ๊ณ , ์์ฒญ์ ๋ณด๋๋๋ฐ ์๋ต์ด ์ ์์ ์ผ๋ก ์ค์ง ์์๋ค.
ํ์ธํด๋ณด๋, ๋ณด์ ๊ทธ๋ฃน ์ค์ ์ ๋ณ๊ฒฝํด์, ํด๋น ์๋ฒ ํฌํธ์ ๋ชจ๋ ์์ฒญ์ด ๊ฐ๋ฅํ๋๋ก ์์ ํด์ฃผ์ด์ผ ํ๋ค.
๊ณผ์ ๋ฅผ ์๋ฃํ ์๊ฐ ๐
์ฒซ ๋ฒ์งธ ๊ณผ์ ์๋ ๋งํผ, ์ฐ๋นํํ ๊ตด๋ฌ๊ฐ๋ ๋ถ๋ถ๋ค์ด ๋ง์๋ ๊ฒ ๊ฐ๋ค.
ํ์ง๋ง ๊ณผ์ ๋ฅผ ์ํํ๊ธฐ ์ ๋ณด๋ค ํ์คํ ์ฑ์ฅํ ๊ธฐ๋ถ์ด ๋ค์๋ค.
mongoose ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ์ดํด๋๋ ๋์์ก๊ณ , AWS๋ ์ฌ์ฉํด๋ณด์์ผ๋ฉฐ
jwt๋ฅผ ์ด์ฉํ ๋ก๊ทธ์ธ์ ํ๋ฒ ๋ ๊ตฌํํด ๋ณด๋ฉด์ ์ต์ํด์ง ์ ์์๊ธฐ ๋๋ฌธ์ด๋ค.
์์ผ๋ก๋ ๊ทธ๋ฅ ์ฝ๋ฉํ๋ ๊ฒ์ด ์๋๋ผ ์ ์ด๋ ๊ฒ ์ฝ๋ฉํ๋์ง, ๋ช ํํ ๊ทผ๊ฑฐ๋ฅผ ๊ฐ์ง๊ณ ์ฝ๋ฉํ ์ ์๋๋ก ๋ ธ๋ ฅํ ๊ฒ์ด๋ค.
๊ฒฐ๊ณผ๋ฌผ ๐พ
๋ด๊ฐ ์ฐธ์ฌํ ๋ ํฌ
https://github.com/preOnboarding-Team13/Assignment_1_AIMMO_express
GitHub - preOnboarding-Team13/Assignment_1_AIMMO_express
Contribute to preOnboarding-Team13/Assignment_1_AIMMO_express development by creating an account on GitHub.
github.com
์ฐ๋ฆฌํ์ ๋ค๋ฅธ ํ์๋ถ๋ค์ด ์ ์ํ ๋ ํฌ (nestjs)
https://github.com/preOnboarding-Team13/Assignment_1_AIMMO_nest
GitHub - preOnboarding-Team13/Assignment_1_AIMMO_nest: Pre Onboarding Assignment AIMMO (Nest js)
Pre Onboarding Assignment AIMMO (Nest js). Contribute to preOnboarding-Team13/Assignment_1_AIMMO_nest development by creating an account on GitHub.
github.com
'TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[AWS EC2] key-pair๋ฅผ ์ด์ฉํ ssh ์ฐ๊ฒฐ (0) | 2024.06.24 |
---|---|
[TIL] ํ๋ฆฌ์จ๋ณด๋ฉ ์ธ ๋ฒ์งธ ๊ณผ์ _RedBrick (1) | 2021.12.12 |
[TIL] ํ๋ฆฌ์จ๋ณด๋ฉ ๋ง์ง๋ง, ์ผ๊ณฑ ๋ฒ์งธ ๊ณผ์ _Cardoc (0) | 2021.12.02 |
[TIL] ํ๋ฆฌ์จ๋ณด๋ฉ ๋ ๋ฒ์งธ ๊ณผ์ _MAPIA (0) | 2021.11.25 |
[CS/DB] Transaction (0) | 2021.10.09 |