2022-12-03
[통신사 프로젝트] [BE] 12/03 멘토링
1. ERD 첨삭
- relation 이 잘 이해가 되지 않는데?
- list 와 board 는 일대일 관계가 아닐텐테?
1) uuid
- user_key 라 이름 붙이지 말고 user_id 로 이름 붙이는게 convention
- user_id 를 uuid 로 쓰는 것 추천
2) auto increment 와 uuid의 장단점
- | auto increment | uuid |
---|---|---|
데이터타입 | INT | VARCHAR(255) |
예측 가능 (개발 시 디버깅 편함) | YES | NO |
예측 불가능(보안에 강점) | NO | YES |
3) relation 에 대하여
- 굳이 어려운 relation 걸지 마라.
- relation이 걸려있으면 데이터를 지울 때마다 프로그램이 relation 검사를 한다.
- 나중에 데이터 없애고 싶을 때 relation 걸려 있어서 지워지지 않을 수 있다.
- ex) 사용자 탈퇴하려는데 안없어져요...!
4) soft delete / hard delete
- 관리하면서 데이터를 완전 삭제해버리면 복구를 못하니깐 soft delete를 해서 어떻게든 남겨두는 것이 좋다.
- is_delete column 을 만들어서 default value 를 false 로 주고, 지우고 싶을 때 is_delete 값을 true 로 바꾸어라.
- API 에서 데이더 GET 할 때 is_delete 한번 검사해서 false 인 애들만 주어라.
5) timestamp는 무조건 넣어라.
- 생성된 시간, 접수한 시간 등의 시간은 항상 적어놓아라.
6) relation table
- M:N 인 상황에는 중간에 relation table 을 넣는다.
7) 수정한 결과물
2. 그다음 과제?
1) 인증 만들어보세요.
인증이 되어야 그다음에 뭘할지 결정합니다.
- 인증과 인가는 다르다.
- Django 회원가입 구현 검색하면 겁나 많이 나온다.
2) Q. Backend 는 어떻게 개발하는가?
- 서버를 localhost 에서 연다.
- postman으로 api 를 localhost 에 날려본다.
- 실제로 응답이 잘 오는지, DB 가 잘 업데이트 되는지 확인한다.
3) Q. DBMS 는 어떤거 쓰나요?
- sqllite?
4) Jetbrain 라인 프로그램 사용 추천
- 학생들에겐 premium 라인이 모두 무료로 열린다.
- 1년에 한번씩 갱신만 해주면 됨.
- 기업에서 많이 씀.
- DB 열어볼 때도 Jetbrain DataGrip 쓴다고 하신다.