[프로젝트] 멘토링 후 TIL

승 아·2023년 7월 5일

멘토링 후 얻은 피드백 및 생각해볼 점

ERD 및 테이블 명세서 int → Long으로 바꾸기

  • int, long이 아닌 Wrapper Class(Long)를 쓰는 이유는 null을 사용할 수 있기 때문
  • primitive type은 기본값이 0이 되는데, id가 없을 때를 나타낼 수 없음
  • Long과 Integer 중에서 Long을 쓰는 이유는 표현범위 때문

soft delete vs hard delete

  • soft delete
    • db에는 남겨두고 상태값만 false로 바꿈
    • DB에서 삭제를 할 때 실제 Row가 삭제 되지 않으며 flag를 통한 제어 방식
  • hard delete
    • hard delete는 db에서도 완전히 삭제
    • SQL의 명령어를 통해 DB에서 실제로 데이터가 삭제되는 방식

FK를 실무에서 잘 사용하지 않는 이유

  • 성능저하
    • 외래키를 사용하게 되면 데이터 생성 및 수정시 항상 무결성 검사를 하게 됨
  • 개발단계에서의 용이함
    • 자식 테이블에 데이터 생성시 부모 데이터에 row가 미리 생성되어 있어야 함
    • 데이터 수정 및 삭제 시 데이터의 정합성 유지를 위해 데이터 수정에 순서가 필요
    • 프로그램의 로직이 바뀌거나 서비스가 확장되었을 때 외래키의 제약조건때문에 에러 발생할 수 있음

그 외

  • 인텔리제이에서 warning 지우면서 올리기
profile
개발 공부를 기록하는 공간

0개의 댓글