https://dbdiagram.io/d/TEAM88-663c44019e85a46d555f7e55
트러블 슈팅
구조 변경한 것
Student 객체에서 Map으로 관리하려고 하였으나 Student 객체에 의존적인 코드 작성이 이루어져서 Score를 따로 관리하는 scoreList를 생성
상태별 수강생을 조회하는 메소드 구현할 때 studentList에 stream을 활용해서 구현함
→ filter에 조건을 걸고 forEach로 출력을 하면해당 상태의 수강생이 없는 경우를 찾아내지 못함. filter 조건 이후에 findFirst() 메소드를 사용해서 list가 비었는지 객체가 있는지 확인 하려고 함 그랬더니 forEach를 적용하지 못함
⇒ 결국 stream을 사용해서 studentStatusList(조회하려는 상태와 같은 학생들)를 List로 추출하고.isEmpty() 메소드를 활용해 List가 비어있는지 확인하고, 비어있지 않으면 수강생들을 출력함
특정 과목에 대한 grade를 조회할 때 학생 ID와 과목만 입력 받아 선택한 과목의 모든 회차의 성적을 출력하도록 구현함
→ 1회차부터 차례대로 성적을 입력하지 않으면 성적 조회가 되지 않는 문제가 발생
⇒ 학생 ID와 과목은 물론 회차까지 선택을 하여 그에 대한 Grade를 출력하도록 수정함
점수를 수정할 때 GradeCalculator의 calculateGrade 메소드를 호출하지 않고 구현함.
→ 점수를 수정할 때 등급(Grade)이 자동으로 업데이트되지 않아, 점수와 등급이 다른 경우가 발생
⇒ 점수를 수정할 때, 새로운 점수에 대해 자동으로 등급을 계산하도록 GradeCalculator의 calculateGrade 메소드를 호출하여 새로운 점수를 입력 받은 후 점수를 Score에 설정하고, 동시에 계산된 등급도 Score에 설정되게 함.
⇒ setScoreAndGrade라는 하나의 메소드로 점수와 등급 계산 및 업데이트를 한번에 처리하도록 수정함.
Git 사용
기획 의도 (콘텐츠가 어떤 내용을 보여주는지)
기술적 의사 선택
해당 기술 사용한 이유
우리 팀이 개인적으로 추가한 기술 등
App class 분리
⇒ 코드 동작에는 문제가 없었지만 가독성 및 관리의 용이성 등을 생각해 메서드를 용도에 맞게 manager 패키지 내에 3개의 클래스로 분리하고, type 패키지 내에 학점, 상태, 과목 타입을 3개의 enum으로 분리함.
GitHub 활용 방법
아쉬운 점 (시간이 남는다면 추가)
| --- | --- |