[x] [과외공간] 과외 정보 등록하기 -> 선택한 수업 시작일 기준으로 스케줄 생성 필요!!!
[x] [과외공간] 과외 정보 수정하기 (new)
[x] [과외공간] 과외 정보 삭제하기 (new)
[x] [과외공간] 선생님-학생 연결 코드 조회 (코드 생성)
[x] [과외공간] 선생님-학생 연결 -> 학생 화면 나온 후 검토
[x] [과외공간] 진행중인 수업 조회 (+ 연결 여부) -> 추후 학생 요청도 처리하도록 해야함
[x] [과외공간] 진행중인 수업 상세 조회 -> 추후 학생 요청도 처리하도록 해야함
[x] [과외공간] 선생님-학생 연결 끊기 (new)
📄 참고
과외공간의 '연결코드 필드'는 '연결코드(ConnectionCode) 엔티티'로 대체되었습니다.
과외공간이 생성된 시점에 연결 코드도 생성되며, 연결 전까지만 존재하고 학생 연결 시에는 코드가 삭제됩니다.
(숫자 6자리밖에 안되어 우리 서비스가 엄청 커질 것을 고려해 과외공간 테이블에 영구적으로 두지 않기로 결정하였습니다!)
학생 테이블의 FCM 토큰 컬럼 NOT NULL 조건 삭제 (연결 안된 학생은 NULL입니다)
color, description 필드 삭제
🌱 Etc
아마 컨트롤러에서 Authentication을 통해 role, memberId 가져올 것 같아서 그 부분은 아래처럼 임의로 넣어주고 진행하였습니다.
// 선생님 ID 필요
@PostMapping
public ResponseEntity<Long> createStudyRoom(@RequestBody StudyRoomReqDto studyRoomReqDto){
Long studyRoomId = studyRoomService.createStudyRoom(1L, studyRoomReqDto);
return ResponseEntity.ok(studyRoomId);
}
기존 StudyTime 삭제를 위해 벌크 연산을 활용해보았습니다!
insert도 벌크 연산이 가능한지 공부해보았으나, 기본키 생성 전략으로 IDENTITY를 사용하고 있다면 여기에서의 설정 파일 수정하는 방법을 사용할 수 없었습니다.
여기에서 JdbcTemplate을 활용할 수 있다는 것은 알게 되었으나 적용하진 않았습니다.
연관된 엔티티들과 양방향 매핑을 만들고, 과외 공간(수업) 삭제 시 CascadeType.REMOVE가 적용되도록 하였습니다.
그러면서 StudyRoom에서 ConnectionCode가 강제로 즉시로딩되는 문제가 발생했습니다만, 대상 테이블에 외래키를 둔 일대일 양방향 관계에서 프록시의 한계로 인해 필연적으로 발생하는 문제로, 일단 보류해두고 리팩토링하면서 해결해보도록 하겠습니다.
📄 Description
📌 구현 내용
📄 참고
과외공간의 '연결코드 필드'는 '연결코드(ConnectionCode) 엔티티'로 대체되었습니다. 과외공간이 생성된 시점에 연결 코드도 생성되며, 연결 전까지만 존재하고 학생 연결 시에는 코드가 삭제됩니다. (숫자 6자리밖에 안되어 우리 서비스가 엄청 커질 것을 고려해 과외공간 테이블에 영구적으로 두지 않기로 결정하였습니다!)
ERD에서 StudyDatetime -> StudyTime으로 변경했습니다! (Datetime은 오해의 소지가 있어보여서요)
학생 테이블의 FCM 토큰 컬럼 NOT NULL 조건 삭제 (연결 안된 학생은 NULL입니다)
color, description 필드 삭제
🌱 Etc
아마 컨트롤러에서 Authentication을 통해 role, memberId 가져올 것 같아서 그 부분은 아래처럼 임의로 넣어주고 진행하였습니다.
기존 StudyTime 삭제를 위해 벌크 연산을 활용해보았습니다! insert도 벌크 연산이 가능한지 공부해보았으나, 기본키 생성 전략으로 IDENTITY를 사용하고 있다면 여기에서의 설정 파일 수정하는 방법을 사용할 수 없었습니다. 여기에서 JdbcTemplate을 활용할 수 있다는 것은 알게 되었으나 적용하진 않았습니다.
연관된 엔티티들과 양방향 매핑을 만들고, 과외 공간(수업) 삭제 시 CascadeType.REMOVE가 적용되도록 하였습니다. 그러면서 StudyRoom에서 ConnectionCode가 강제로 즉시로딩되는 문제가 발생했습니다만, 대상 테이블에 외래키를 둔 일대일 양방향 관계에서 프록시의 한계로 인해 필연적으로 발생하는 문제로, 일단 보류해두고 리팩토링하면서 해결해보도록 하겠습니다.