sprint-cmarket-database
dotenv모듈 이용해서, .env에 생성한 비번으로, mysql에 접근가능하게 연결해주고,
create database cmarket;
맞는 이름의 mysql 서버를 접속해서, 데이터베이스 생성
스키마, 시드파일 넣어주기 (일일히 CLI에서 치면😭)
mysql -u root -p < server/schema.sql -Dcmarket
해당 파일의 상대경로 (주의 맞는 폴더 안에서 입력)
해당 폴더가 아니라면 절대경로를 적어줘도 됨,
-Dcmarket 은 use cmarket을 대신함
해당경로에 있는 seed.sql 역시 같은 커맨드로 넣어줌
++shema.sql에는 테이블 생성, 관계 생성등, 말그대로 스키마를 구성해주는 명령어 들이 들어있고, seed에는 스키마에 기본 값들(레코드) 넣는 명령어가 mysql 문법으로 적혀있음
/server/app.js Express 모듈 사용해서 라우팅, cors, 포트 설정 등 기본 서버 형태 이미 구현되어 있음
parser는 현버젼 Express에서는 express.json()안에 포함이기 때문에 굳이 안써도 될듯,
xxmorgan
이라는 express middleware로 보이는 처음보는 애가 있는데, 스프린트 하기 바뻐서 아직 못찾아봄.
server 폴더 안에, 클라이언트에서 get과 post 요청을 어떻게 응답할지는 controller 이미 구현이 되어있음
app - router - controller - model - db (mysql모듈)
로 연결됨, model 부분에서 sql문을 각각의 요청에 맞는 형태의 데이터를 넘겨 주는 부분이 해결해야 할 스프린트 과제,
비동기로 넘겨주는, 각각의 인자값, 콜백함수를 이해하는데 한참을 헤맴
"2 Tier 구조에서 서버가 데이터를 json 형태로 다 가지고 있는 것만 보다가,
3 Tier로 DB 와 서버를 분리하는 것이구나" 라는 건 바로 이해가 되고 얼추 파일 구조 파악이 되는데, sql 쿼리문을 변수에 담고서 콜백함수를 어찌 처리해야 할지 몰라서 1시간 날림... (+ 처음엔 그 분리하는 부분이 왜 또 잘게 쪼개서 컨트롤러, 모델, db 파트로 다 나뉘어 있는지 모름 - 더 혼란; - 리뷰 시간에 mvc 라는 개념을 알게됨, 한파일에서 다한다고 생각해보면 단박에 분리의 필요성이 납득)