본문 바로가기
TIL

20210302 TIL

by reo.l 2021. 3. 2.

배운 것들

  • 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

댓글