스터디글들에 대한 카테고리를 별도의 테이블로 분리해 둘것인가스터디 참여 신청 정보에 대한 테이블 관리 💭스터디 개설 시에 기간 정보는 어떤 걸 받는게 좋을까?책 정보에서 “ 설명" 정보에 대하여 → null ? empty string ?
스터디글들에 대한 카테고리를 별도의 테이블로 분리해 둘것인가
- 기존에는 가장 간단하게 구현하기 위해서 enum 을 사용하여 “카테고리" 를 구현하곤 했다.
- ex.당근마켓에서 판매게시글의 카테고리
- 카테고리 테이블을 분리하여 카테고리에 대한 레코드들만을 따로 전송하는것이 필요한지에 대해 고민이 되었다.
- 일단 1차 스프린트를 위해, 가장 간단한 enum 을 사용하기로 하였다
스터디 참여 신청 정보에 대한 테이블 관리 💭
- 신청상태 정보 자체를 “스터디_그룹"테이블에 record 로서 집어넣을 것인가에 대한 고민

- 만약 hard delete 로 구현할 경우, 5명 정원인 스터디에 20명이 지원한 경우 스터디_그룹에는 harddelete 할 15개의 레코드가 존재하는 것이 된다.
hard delete vs soft delete
- 1기거 구경 함 → 숙박업소 제거 (soft delete)
스터디 개설 시에 기간 정보는 어떤 걸 받는게 좋을까?
- 모집기간
- 끝나는 기간
- 진행기간
- 시작 시간
- 끝나는 시간
- 스터디 모집이 마감되면, 더이상 모집 신청을 할 수 없다
- 스터디 모집 되는 상황
- 스터디 모집기간이 만료된 경우
- 스터디장이 모집마감 신청을 한 경우
→ 스터디는 “대기중" 상태로 넘어간다.
- 스터디 상태 변경
- 스터디 장은 “스터디 마감" 으로 변경 할 수 있다
- 스터디 장은 “대기중" 으로 변경할 수 있다
- 모집중→모집마감→진행중→완료
- 클라이언트 버튼 이름은 “모집 마감"
- 상태가 : 모집 중 → 모집 마감으로 변경된다
모집중,모집완료,진행중
- 모집기간을 “날짜단위"로 받도록 한다
- 밤 12시에, 스케줄러를 돌려, 마감으로 상태를 변경한다
- 스터디 완료가 되면, read - only 상태로 변경한다
- 비로그인 → 인증 오류
- 로그인 , 참여하지 않는 유저 → 권한 오류
- 참여 인원 → readonly
- 변경 요청에 대해 , ReadOnlyException 같은것.
책 정보에서 “ 설명" 정보에 대하여 → null ? empty string ?
- 목차 는 “따로 DB 연산과정에서 사용하지 않을 컬럼" 이므로 사실 null 로 하더라도 오류를 발생시킬 부분은 아닐 것 같다. 하지만 안전함을 위해 empty string “” 을 선택 → default value 도 empty string