[목표한 것]
sequelize sprint 완료.
: controller 부분을 완성하지 못해서 완성하려고 함.
[실제한것]
7시 - 3시까지 약 7시간.
sequelize가 전반적으로 이해되지 않아서 공식문서 번역 시작.
https://daydevlog.tistory.com/28?category=941046
Model Basics 부분 번역 완료.
약간 이해 되었으나, 그래도 모델과 데이터베이스가 어떻게 상호작용하는지 전반적인 구조가 이해가 되지 않음.
migration 공부 시작.
공식문서 영어가 어렵지 않아, 별도 번역은 안하고 꼼꼼히 읽음.
과제 코드 분석. 너무 꼬아놓은거 아니냐고..
bin부분에서 환경설정 고민. port번호를 확인하고자 하다가, 그냥 node + 파일명을 쳤더니 콘솔창을 볼 수 있다는걸 알게됨.
(node 는 app.js처럼 익스프레스 파일에서만 해야한다고 생각하고 있었다..!)
포트번호는 확인했지만 에러가 나옴.
중요한 포인트는 아닌것 같아서, 따로 실습을 위해 만들어 두었던 파일에서 다시 검토.
그 결과, 굳이 index.js에서
db.Person = require('./person')(sequelize,Sequelize);
코드를 통해서 익스프레스와 연결해주지 않아도, 마이그레이션을 제대로 하면 테이블생성이 되는 것을 확인함.
테이블에 값을 넣어줄때, post요청을 통해서 들어온 데이터를 넣어주면 되므로, 굳이 데이터 조작 위치를 고민할 필요 없음.
즉 MVC패턴으로 DB의 데이터를 주고받을 때는
app.js ( express server , post 요청 router)
router.js ( route -> controller)
controller.js ( req -> model , 이때 .findOrCreate 같은 sequelize 메소드를 사용한다.)
model ( 모델은 테이블 정의해서 생성)
의문점. 모델은 테이블만 생성해두면 controller에서 가공된 데이터를 받으면 바로 테이블에 데이터가 들어간다.
그럼 마이그레이션은 데이터 상태 전체를 저장하는게 아니라, 테이블 정보만 저장하는 건가?
그리고 데이터 조작 메소드는 controller에서 사용하고 있고 모델은 딱히 재정의 하는게 없는데, 이걸 컨트롤러에서 모델로 데이터를 받아서 모델에서 db랑 통신하는게 맞나?
공식문서를 꼼꼼히 보고 레퍼런스를 다시 보니 이제야 조금 이해가 가는것 같다. 지난주에 파이썬 볼 시간에 차라리 공식문서를 읽었으면 페어프로그래밍 시간때 그렇게 헤매지 않고, 모델생성까지는 했을 것 같다. 그치만.. 공식문서가 너무 뭐랄까 단계가 섞여있어서 레퍼런스를 보지않고 메소드 사용방식과 전체적인 코드의 구조를 파악할 수 있었을지 의문이다.
그리고 테스트 케이스 구성때문인지 모르겠는데, 과제 코드가 너무 어렵게 주어진 감이 있다.. 너무 꼬아놔서 흐름잡기가 힘들었다. 예를 들어 클라이언트가 없으니 utils에서 req를 만들어서 던진다던지..
어쨌든 오늘은 낮잠 잔 만큼 밤에 공부한듯.. ㅋㅋ... ㅠㅠ
[내일 공부할것]
controller 구현, sprint완성하기. 일단 테스트 통과 후 처음부터 재작성 하기.
오피스 아워.
toy-30 번 풀기.
음 목요일부터 다시 휴직이 많으니깐. 밸런스 잡고 파자. 일단 9/12일까지는 개발에만 집중하고, 그 이후부터는 과장시험도 준비해야겠다!
'TIL' 카테고리의 다른 글
2020.09.09 (0) | 2020.09.10 |
---|---|
2020.09.06 (0) | 2020.09.07 |
2020.09.05 Session 과 Cookie (0) | 2020.09.05 |
2020.09.04 (0) | 2020.09.05 |
2020.09.03 sequelize mvc 스프린트 처음부터 구현하기 (0) | 2020.09.03 |
댓글