MVC, MVVM같은 키워드는 소프트웨어 설계와 관련된 디자인 패턴을 말한다.
소프트웨어 공학에서는 흔히 사용된다.
소프트웨어가 돌아가는 방식에 대한 하나의 패턴을 말한다.
사진을 보면 알수 있듯이 거창하게 뭔가 다른 것이 아니라
그냥 단순히 각자 역할을 나누어서 담당을 하는 것이다.
DB와 연결되어 있는 역할을 하고 있다.
유저가 보이는 화면을 보여주는 역할을 한다.
중간에 모든것을 조율하는 역할을 한다.
일종의 중계자 역할을 한다.
데이터 베이스에 대한 접근 방법을 프로그래밍 관점에서 다루게 해준다.
사진을 보면 알수 있듯이 join-table에 있는 값을 두개 뺴올떄
배열의 형태로 나오는 것을 알수가 있다.
가독성, DB에 익숙하지 않는 개발자는 ORM이 있으면 많이 편해진다.
Sequelize
라는 ORM을 사용 할 것이다(Node.js
기반)
모듈을 불러오고 new Sequelize(DB이름, username, password)
를 설정해 줌으로써 DB에 연결을 하게 된다.
DB.define
: 스키마를 작성하는 부분
좀더 심화 과정은 문서를 참고해 보자!!
https://sequelize.org/master/
스프린트를 통해서 개인이 실습을 하는 시간도 있었다.
코드를 열어보니 이거 뭐... 내가 도저히 할수가 없었다.
시간이 너무 많이 소요 될것 같아 나중에 시간이 날떄 해보도록 하자!
============= 2021/11/05=================
참고 링크 https://sequelize.org
공식 사이트를 통해서 차근차근 알아가보았다.
일단 기본적으로 우리는 프로젝트를 형성하기 위해서는
`npx sequelize-cli init
명령어를 입력해 주어야 한다.
{
"development": {
"username": "root",
"password": null,
"database": "database_development",
"host": "127.0.0.1",
"dialect": "mysql"
},
"test": {
"username": "root",
"password": null,
"database": "database_test",
"host": "127.0.0.1",
"dialect": "mysql"
},
"production": {
"username": "root",
"password": null,
"database": "database_production",
"host": "127.0.0.1",
"dialect": "mysql"
}
}
.env
를 통해 보통은 암호화?를 해 놓는다.어떻게 CLI가 DB에 접속을 하는지 명시하는 곳이다.
dialect
를 수정해 주어야 한다.
공식 문서에도 나와있는 형태를 따라서 만들었다.
직접적인 테이블 컬럼들은 url,title,visits같이 위쪽에 임력을 해주면 되고.
기본 값 및 테이블 명?(모델 명)은 아래쪽에 입력해준뒤 return 해주면 된다.
단순히 이 형태를 익혀 두자.
- 앞서 말한 것처럼 id와 createdAt, updatedAt은 자동 생성 된다.
이 부분에서 조금 혼동이 있었는데 왜냐면 파일명을 따르지 않았기 때문이다.
XXXXXXXXXXXXXX-create-user.js
우리는 파일명이 이런 형태를 따라야 한다.
앞서 적은 모델에 맞게 테이블을 만들어 보면
이와 같이 type들을 정해주는 곳이다.
그후 우리는 테이블을 DB에 형성해 주어야 한다.
npx sequelize-cli db:migrate
명령어를 입력해 줌으로써 migration폴더 안에 있는 테이블을 DB에 만들어 준다.
간단한 쿼리문을 알아 볼 것이다.
좀더 필요한 정보는 마찬가지로 공식 정보를 찾아보자.
일단 데이터를 어디에서 가져 올수 있는 지를 알아야 한다.
DB에 저장되는 데이터는 models/url
에 있다.
DB에서 값을 가져올떄에는 시간이 걸리기 떄문에 await
를 사용하였다.
경로가 /:id
를 통해서 들어올떄이다.
코드가 작동하는 것은 일단 pk의 값이 들어오는 파라메터에 맞는 값을 찾는다.
그후 값이 찾아오게 되면 해당 값의 visits의 값을 1 증가 시키고
그뒤 해당 값을 다시 DB에 저장하여 갱신 시켜주는 방법이다.
새로운 값을 만들어 내는 것이다.
url값을 받게 되면 해당 url과 title을 이용하여 새로운 값을 만들어 내는 것이다.
create
메서드를 활용하여 새로운 컬럼을 만들어 낸다.
그후 만들어진 값을 응답으로 보여주는 것이다.
DB생성 및 연결 그후 쿼리문까지 살짝 알아 보았다.
공식 문서를 보면 알수 있듯이 굉장히 많은 쿼리문이 존재하고 현재 내 사정에서 이걸 모두 암기?? 하는 데에는
큰 시간적 문제가 있다고 생각을한다.. ㅠㅠ
나중에 실무에서 사용을 하는 경우가 있다면 그떄 차근찬근 다시 해보도록 하자!!