다중 테이블 스키마를 시각적으로 디자인하기 : https://dbdiagram.io/home/
SQL을 이용해서 스키마 구조를 먼저 짜놓는다. MVC 패턴에 대해 공부도 해야한다.
폴더를 controllers, models 나눈 이유가 이와 관련이 있다. client 부분이 view 가 될 것이다.
db 폴더에서 mysql을 연동시키기 위한 connection 을 만든다.
mysql에서 schema.sql 파일을 mysql 서버에 로드시킨다.
controllers 폴더는 client(view)에서 요청을 했을 때 어떻게 작동을 해야하는 지를 만드는 곳이다.
models 폴더는 controller 에서 받은 요청을 db에 쿼리문을 통해 데이터를 불러오는 곳이다.
구조적으로 간단하게 보면,
클라이언트에서 요청 => 컨트롤러에서 요청에 대해 어떻게 실행되어야 할 지를 정의하고, 모델에 보내줌 => 모델에서 이에 대하여 실행하고 결과를 다시 컨트롤에 보내줌 => 컨트롤러에서 클라이언트에게 상태를 보여줌
Postman으로 요청을 했을 때, request.body 부분에 원하는 데이터가 담기지 않았다. Header 부분에 Content-type을 json으로 해주지 않아서 빈 객체로 들어왔던 것이다.
mysql에 쿼리문을 핸들링하는 방법이 여러가지가 있었다. 예를 들어, INSERT INTO 구문의 VALUES 부분에 ?로 넣어주고 이 부분을 배열로 넘겨주는 등 .. 이 방식을 이용했지만 템플릿 리터럴도 다시 해봐야겠다.
ORM은 간단하게 테이블을 클래스형식으로 매핑하는 느낌인데 생각보다 편리했고 재미있었다.
몽고DB도 한 번 써보고 싶다!
서버부분은 구조적으로 체계적으로 잘 만들어야 된다. 그러기 위해서 MVC패턴이 중요한 것 같다. 유지보수가 용이해짐!
데이터를 CRUD하기 위해서는 서버에 대한 이해가 많이 필요하다. 데이터의 형식이나 비동기적 처리 등..
시퀄라이즈
https://velog.io/@cadenzah/sequelize-document-1
https://helloinyong.tistory.com/105
관계형데이터베이스와 논-관계형데이터베이스의 차이