Skip to main content

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 incrementuuid
데이터타입INTVARCHAR(255)
예측 가능 (개발 시 디버깅 편함)YESNO
예측 불가능(보안에 강점)NOYES

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 쓴다고 하신다.