회원, 회원 건강기록 관리 앱 만들기
데이터모델링

- 유저 삭제는 진짜 데이터를 지우지 않고 비활성화 상태로 두는거라서 is_active컬럼을 추가해서 삭제시 비활성화상태로 바뀌도록 했다.
- 회원 측정 데이터는 같이 삭제되면 안되는데, 유저 삭제가 진짜 삭제가 아니기 때문에 외래키제약은 그냥 on delete cascade로 줬다. 당장은 그냥 비활성화 상태지만 나중에 보관기간이 지나고 회원정보를 진짜로 삭제한다면 기록도 같이 삭제되어야 할것같기 때문..
- mysql은 boolean타입이 없다고 한다. 우리가 boolean으로 지정해서 true false란 값을 넣을순 있는데 내부적으로 tinyint로 바꿔서 true면 1 false면 0을 저장한다고함. 어쩐지 프로젝트때 boolean타입넣어서 true false로 저장한게 1, 0으로 들어가더라~암튼 그래서 협업할때는 아예 tinyint로 지정하는것이 좋다. boolean이라고 해놓고 0, 1로 들어가있으면 헷갈릴수 잇으니까!
- records에 항목별 record_data가 따라오는거라서 각 측정항목에 대한 측정시간기록은 하지 않고 전체 측정시간만 기록하도록 했다.
- 내가 맡은 기능이 데이터 수정/조회라서 테스트 데이터 넣다보니 height데이터타입을 int로 한걸 발견했다. 몸무게처럼 실수형으로 바꿔야함.
레이어드패턴
초기세팅부터 controllers/services/models 나뉘어있어서 레이어드패턴을 먼저 공부했다.

레이어드패턴: 파일을 구조화해서 파일마다 역할을 명확하게 해서 각 레이어의 코드가 서로 독립적이고 서로에게 미치는 영향 최소화해서 가독성 높이고 재사용성을 높이는게 목적
path parameter
내가 맡은 기능은 특정회원 정보수정, 특정 측정기록+측정데이터 불러오기 두가지인데
여러 유저중 특정유저, 측정기록중 특정 기록에 대한 요청이라서 둘다 path parameter를 이용해서
users/유저아이디, records/측정기록 아이디 url로 요청을 받는걸로하면 될거같은데
익스프레스에서 path parameter 받는법은
'/:id' 이렇게 하고 id값은 req.params.id로 빼내면 된다.
// server.js
app.get("/records/:recordId", (req, res) => {
console.log(req.params.recordId);
res.json({message:"테스트"});
});

mysql에러해결
어쩌고저쩌고
code: 'ER_NOT_SUPPORTED_AUTH_MODE',
errno: 1251,
sqlMessage: 'Client does not support authentication protocol requested by server; consider upgrading MySQL client',
sqlState: '08004',
fatal: true
이런 에러가 나서 검색해봤는데 클라이언트에서 mysql 패스워드 플러그인 "caching_sha2_password"을 못알아먹으니까
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
이렇게 해서 플러그인을 "mysql_native_password"로 바꾸라는 내용
그런데 그전에는 잘 됐는데 왜바꿔야돼?해서 더 검색해봤는데
mysql2가 이럴때 쓰는거라고 나왔다.
그래서 더 검색하는데 mysql대신 강제로 mysql2로 mysql클라이언트 설정하는법 이런게 나왔다 -> 이거 해결할려면 mysql이 아니라 mysql2를 써야한다는거? -> package.json을 확인하니까 mysql, mysql2가 둘다 있었다.
그래서 mysql을 삭제하니까 바로 해결됐다.(이제보니까 에러메세지도 클라이언트를 업그레이드 하라고 나와있다. mysql->mysql2로 바꾸라는거였나보다)

자야지....
'wecode' 카테고리의 다른 글
| 프리온보딩 | 1차과제 - 3 (1) | 2022.10.06 |
|---|---|
| 프리온보딩 | 1차과제 - 2 (0) | 2022.10.06 |
| 구방문방구 | 리팩토링: 상품리스트 모듈화 (0) | 2022.10.01 |
| Code Kata | Week3 - Day2 (0) | 2022.09.14 |
| 마이허니트립 | 프로젝트 회고 (0) | 2022.08.29 |