IM14 ์ ๊ฑดํ ๐๐ปโโ๏ธย
ํ๋ก ํธ์ ์
์ฅ์์
๋ฐฑ์๋๋ฅผ ๊ตฌ์ฑํ๋ค
HOLLYSHIP ๋ฐฑ์๋ ๊ธฐ์ ๋ฐํ
[ ์ฒซ ๋ฐฑ์๋ ๋ด๋น์ ๊ฑฑ์ ๊ฑฐ๋ฆฌ ]
2. ์ผ๋ง๋ ๋นจ๋ฆฌ ๊ธฐ๋ณธ ์๋ฒ๋ฅผ ๋ง๋ค์ด์ ๋ฐฐํฌํด์ผํ ๊น?
3. ํด๋น API์ ์๋ต์ ์ด๋ค๊ฑธ๋ก ์ค์ผ ํ๋ก ํธ๊ฐ ์ ์ฌ์ฉํ ๊น?
// TODO: GET '/holly'
app.get(
'/holly',
(req: Request, res: Response, next: NextFunction): Response =>
res.send('HOLLYSHIP')
);
4. 'req.body'๋ก ์ํ๋๊ฑธ ์๊ตฌํ๋ฉด ํ๋ก ํธ์์ ์ค ์ ์๋๊ฑธ๊น?
5. ์์ธ ์๋ต์ ๋ฌด์์ผ๋ก, ์ด๋ป๊ฒ, ์ผ๋ง๋ ์ฒ๋ฆฌํด์ค์ผํ ๊น?
1. ์ด๊ธฐ ์คํค๋ง ๋์์ธํ๊ฒ ์ ๋ง๋ค์ด์ง๊ฑธ๊น?
์ด๊ธฐ ์คํค๋ง ์ค๊ณ ๐คย
๊ฐ ๊ธ์ด ๋ชจ๋ Emotion์ ๊ฐ์ง๋๊นย Emotion๋ณ ID๋ฅผ ์ฃผ๋ฉด ๋๊ฒ ๋ค!
๋ฐฑ์๋๋ฅผ ๊ตฌํํ๋ฉฐ ์์ ํ ์คํค๋ง ๐๐ป
ENUM์ ์ด์ฉํด ์ด๊ฑฐํ์ผ๋ก ์ฒ๋ฆฌ!
3์ฃผ๋์์ ๋ฐฑ์๋์ ์๊ฐ ๐บ
"API ๋ฌธ์๋ฅผ ์์ฑํด๋๋ฉด ๋ค ๋ณด๊ณ ์์์ ํ ์ ์๊ฒ ์ง!"
"์ผ๋จ Response๋ก ๋ค ๋ณด๋ด๊ณ ๋๋ฉด ํ๋ก ํธ์์ ์ ์กฐํฉํด ์ฐ๊ฒ ์ง!"
"ํฌ์คํธ๋งจ์์ ๋๋ฉด ์๋ฒ์์ ๋ฌธ์ ์๋จ ๊ฑฐ๋๊น ํ๋ก ํธ๊ฐ ๋ฌธ์ ์ผ๊ฑฐ์ผ"
๐ถ๐ปโโ๏ธ๐ถ๐ปโโ๏ธ๐ถ๐ปโโ๏ธ๊ทธ๋ ๊ฒ 3์ฃผ์ฐจ ๋ง๋ฐ์ง์ ํ๋ก ํธ ์์ ์ ํฉ๋ฅํ๊ฒ ๋๋๋ฐ...
HAPPEN. #1
AWS EC2 ์๋ฒ์ ๊ฐ์์ค๋ฐ ์๋ฌ! โ ๏ธ
HAPPEN. #2
ex. ์ ์ ์ ๋ณด์ ์ด๋ฆ, ์ฌ์ง๋ง ๋์์ค๊ฑด๋ฐ
์์ด๋ ๊ฒ ๋ง์ด ๋ค์ด์์? ๐คฎ
{
"id": 1,
"email": "code@code.com",
"password": "$2b$12$y4axtBdzuU5z9WqjFhgT..jSbOCDIq.j7hvtmwsiLSXh4TY2WT/0m",
"username": "code",
"userImage": null,
"intro": null,
"createdAt": "2019-09-29T03:24:23.000Z",
"updatedAt": "2019-09-29T03:24:23.000Z",
"likeMusics": [],
"likePosts": []
}
{
"id": 1,
"username": "code",
"userImage": null,
"createdAt": "2019-09-29T03:24:23.000Z",
}
sequelize example code
/******************************************************************************
* ? Get ALL Posts Info - "GET /post/"
******************************************************************************/
postRouter.get('/', async (req, res) => {
try {
// TODO: Find all Post with User & Comment data
const posts = await Post.findAll({
include: [
{
model: User,
attributes: ['email', 'username', 'userImage'],
},
{ model: Comment, attributes: ['comment', 'commentUsername'] },
{
model: UserPostLike,
attributes: ['id', 'userId'],
include: [{ model: User, attributes: ['email', 'username'] }],
},
],
});
return res.json(posts);
} catch (err) {
console.error(err);
res.status(500).json({ message: 'SERVER ERROR' });
}
});
HAPPEN. #3
USER ID๋ฅผ ์ด๋ป๊ฒ ํ๋ผ๋ฏธํฐ๋ก ์ค์? ๐คท๐ปโโ๏ธ
API ๋ฌธ์ ์์
์ ์ ๊ฐ ๋ฆฌ์คํธ๋ฅผ ์ถ๊ฐํ๋ค.
ย [POST] /user/:id/list
body : listname
API ๋ฌธ์ ์์
์ ์ ๊ฐ ๋ฆฌ์คํธ๋ฅผ ์ถ๊ฐํ๋ค.
ย [POST] /list
body : listname
userId : session.passport
HAPPEN. #4
๊ณ์ ์๋ฒ ์๋ต์ด ๊ฐ์ ์๋ฌ๋ง ๋ณด๋ด์.ย ๐จ๐ปโ๐ป
" KEY : ์ด๋ป๊ฒ ํ๋ฉด ์๋ฌ๋ฅผ ๋ฐ์์ํฌ ์ ์์๊น?! ๐ ๐ ๐ "
SUMMERY ๐
" ๋ฐฐํฌ๋ ๊ฐ๋ฅํ ๋นจ๋ฆฌ! "
" ์๋ต์ ๊ฐ๋ฅํ ํ์ํ๊ฒ๋ง ๊น๋ํ๊ฒ "
" ์์ฒญ ์ ์ค ์ ์๋ ๊ฐ์ ์๊ฐํ๋ค. "
" ์ฑ๊ณต์ด ์๋ ์คํจ์ ๊ฒฝ์ฐ๋ก ์๊ฐํ๋ค. "
๐๐ปโโ๏ธ ๊ฐ์ฌํฉ๋๋ค ๐๐ปโโ๏ธ
" ๊ฐ์ฅ ์ฐ์ ์ ํด์ผํ ๊ฒ์ ์ํต์ ๋๋ค. "
deck
By geonhwi
deck
- 556