백엔드 개발 스터디 - 1

bin1225·2022년 1월 4일
0

Diary

목록 보기
8/11

첫 스터디 진행
내용은 주어진 요구사항에 대한 ERD를 짜가고 그에 대한 피드백을 해주시는 구조로 진행됐다.

진행 프로젝트

: 인사시스템 중 직원의 자유로운 출퇴근 기능을 하는 서비스를 만든다.

도메인 정보
부서

  • 루트는 회사다.
  • 부서는 4 depth 까지 추가할 수 있다.
  • C-Level 은 2depth 팀에서만 직급을 가질 수 있다.
  • 한 부서에 2명 이상의 팀장은 존재 할 수 없다.

직원

  • 최초 직원 등록 시 루트 노드에 추가된다.
  • 직원이 가질 수 있는 직급은 C-Level, 팀장, 팀원 세가지이다.

근태

  • 직원은 출근 시 On을 누른다.
  • 직원은 퇴근 시 Off를 누른다.
  • 직원이 필수 적으로 근무해야하는 코어타임은 11-16시이다.

비즈니스 캘린더

  • 휴일과 업무 날짜를 알려주는 테이블이다.

다음주 원격 코드리뷰 회의 전까지 해당 프로젝트에 맞는 ERD를 짜오시면 됩니다.

기본 지식이 많이 부족한 상태라 간단한 과제였음에도 정신이 없었다.

내가 작성한 ERD

전체적인 피드백

  • 직원의 겸직 가능성을 고려해서 직원- 부서 간 매핑테이블을 추가한다. -> 더 유연하게 관리할 수 있음

  • 점선과 실선의 차이에 대해서 공부한다. - 나는 OPTIONAL 차이인 줄 알았는데 그게 아닌가보다.

  • 실무에서는 외래키,DELETE쿼리를 사용하지 않는다 - 이유에 대해 검색해볼 것

  • 테이블마다 인덱스를 설정한다 -> 인덱스 공부하기

  • 컬럼명을 짜는 게 생각 이상으로 중요하다. 네이밍을 명확하게 하고 CASE를 통일한다 ( SNAKE CASE) -> 변수명 컬럼명 작성 팁 공부하기

  • 이력 테이블? 컬럼? 추가 -> 실무에서는 요구된다.

  • 캘린더는 간략하게. 기본적으로 프로젝트 진행할 때 너무 많은 확장성은 고려하지 말고, 주어진 요구사항만 구현한다. -> 사이드 이펙트를 최소화 해야한다.

수정본

0개의 댓글