배운 것들
- mvc 디자인 패턴
- orm
- sequelize
더 알아볼 것
- shortly mvc advanced
- migration
- express.Router()
mvc디자인 패턴에 대하여 배웠다. 전에 스프린트 중에 mvc패턴으로 디자인되어있었던 게 생각이 나서 전 스프린트를 비교하며 레퍼런스로 공부를 하였는데 생소한 개념이어서 그런지 이해가 잘 되지 않았다. 잘 이해가 되지 않을 때는 그냥 외우려고 노력하는 편이라 일단은 그냥 외웠다. 후에 orm에 대하여 배웠고 orm 중 sequelize에 대해서 공식문서로 학습을 하였는데 스프린트를 진행하면서 정말 많이 막혔다. 사실 공식문서에 다 나와있었지만 방대한 양의 공식문서 중 적절하게 필터링하지 못해 스프린트를 잘 진행하지 못했다. 그러나 오프스 아워에서 힌트를 얻어 sequelize에 대하여 조금 이해가 됐다.
module.exports = {
get: async (req, res) => {
if(!req.params.id){
const users = await url.findAll();
res.status(200).json(users)
} else {
const user = await url.findOne({where:{id:req.params.id}});
await url.increment({ visits:+1 }, {where: {id:req.params.id}});
res.redirect(302,user.url)
}
},
post: (req, res) => {
getUrlTitle(req.body.url, async (err, title) => {
if (err) throw err
const instance = await url.create({
url: req.body.url,
title: title,
visits: 1
})
res.status(201).json(instance)
})
}
}
sequelize를 사용하기 위해서는 위와 같이 비동기 적으로 실행을 해야 했다. 공식문서에 친절하게 나와있었지만 잘 활용하지 못한 점이 아쉬웠다. orm은 database를 프로그래밍 언어로 사용할 수 있게끔 변환해주는 역할을 하는데 이때 나오는 migration개념과 비동기로 실행해야 하는 crud 메서드들에 대해서 더 공부를 해야겠다.
'TIL' 카테고리의 다른 글
20210304 TIL (0) | 2021.03.04 |
---|---|
20210303 TIL (0) | 2021.03.03 |
20210301 TIL (0) | 2021.03.01 |
20210228 TIL (0) | 2021.02.28 |
20210226 TIL (0) | 2021.02.26 |
댓글