Immersive sprint : Database

박동건·2020년 2월 11일
0

Code states

목록 보기
2/5

이번 스프린트 흐름

다중 테이블 스키마를 시각적으로 디자인하기 : https://dbdiagram.io/home/

SQL을 이용해서 스키마 구조를 먼저 짜놓는다. MVC 패턴에 대해 공부도 해야한다.

폴더를 controllers, models 나눈 이유가 이와 관련이 있다. client 부분이 view 가 될 것이다.

  1. db 폴더에서 mysql을 연동시키기 위한 connection 을 만든다.

  2. mysql에서 schema.sql 파일을 mysql 서버에 로드시킨다.

  3. controllers 폴더는 client(view)에서 요청을 했을 때 어떻게 작동을 해야하는 지를 만드는 곳이다.

  4. models 폴더는 controller 에서 받은 요청을 db에 쿼리문을 통해 데이터를 불러오는 곳이다.

구조적으로 간단하게 보면,

클라이언트에서 요청 => 컨트롤러에서 요청에 대해 어떻게 실행되어야 할 지를 정의하고, 모델에 보내줌 => 모델에서 이에 대하여 실행하고 결과를 다시 컨트롤에 보내줌 => 컨트롤러에서 클라이언트에게 상태를 보여줌

리뷰

  1. Postman으로 요청을 했을 때, request.body 부분에 원하는 데이터가 담기지 않았다. Header 부분에 Content-type을 json으로 해주지 않아서 빈 객체로 들어왔던 것이다.

  2. mysql에 쿼리문을 핸들링하는 방법이 여러가지가 있었다. 예를 들어, INSERT INTO 구문의 VALUES 부분에 ?로 넣어주고 이 부분을 배열로 넘겨주는 등 .. 이 방식을 이용했지만 템플릿 리터럴도 다시 해봐야겠다.

  3. ORM은 간단하게 테이블을 클래스형식으로 매핑하는 느낌인데 생각보다 편리했고 재미있었다.

  4. 몽고DB도 한 번 써보고 싶다!

배운점

  1. 서버부분은 구조적으로 체계적으로 잘 만들어야 된다. 그러기 위해서 MVC패턴이 중요한 것 같다. 유지보수가 용이해짐!

  2. 데이터를 CRUD하기 위해서는 서버에 대한 이해가 많이 필요하다. 데이터의 형식이나 비동기적 처리 등..

  3. 시퀄라이즈

    https://velog.io/@cadenzah/sequelize-document-1
    https://helloinyong.tistory.com/105

  4. 관계형데이터베이스와 논-관계형데이터베이스의 차이

profile
박레고의 개발 블로그

0개의 댓글