[에러 X, 고민 사항]
1. this.name = name; / 클래스.getName();
발단 : 특정 테이블의 컬럼값들을 사용할 때
전개 : entity의 생성자 구현할 경우나 테이블의 컬럼들을 일부 불러오는 부분을 구현하고자 하였습니다.
위기 : parameter로 받을 때 (1)객체로 받아서 getter 메서드를 사용할 지 아니면 (2)각 컬럼들을 파라미터로 불러올지 고민이었습니다.
절정 : 컬럼 일부를 가져올 경우 그냥 각 컬럼들을 파라미터로 하고, 대부분의 컬럼을 사용할 경우 객체로 받도록 구현했습니다.
결말 : 아직 어떤 상황에서 뭘 쓰는 게 적절할 지 잘 모르겠어서 이 부분을 좀 더 공부해야 할 것 같습니다.
2. UserService의 login 메서드에서 findByEmailAndPassword() 요청
발단 : Repository에서 구현한 이메일,비밀번호 확인 메서드(findByEmailAndPassword())를 Service에서 사용
전개 : 실습에서는 User를 하드코딩해서 리스트에서 가져오는 방식이었는데, 과제에서는 User에서 직접 데이터를 받아서 하도록 하고 싶었습니다.
위기 : 근데 User 객체를 stream() 으로 직접 처리하는 게 불가능해서 오류가 발생했습니다.
절정 : 해당 메서드를 UserRepository 인터페이스에 Optional<User> 타입으로 추가하고 LoginRepository에서 Optional로 받아와서 해당 기능을 수행하도록 하였습니다.
결말 : 에러는 해결되었습니다.
3. Users와 Schedules의 연관 관계 구현
발단 : Schedules에서 Users의 작성자 정보를 사용해야 함.
전개 : ScheduleResponseDto에서 일정 컬럼들 외에 작성자 이름 컬럼도 포함해야 했습니다.
위기 : 연관 관계를 구현하기 위해 Schedules에서 users에 접근 가능하도록 구현이 필요했습니다
절정 : Schedule 엔티티에서 다대일로 user 객체를 구현했습니다. 그리고 user 객체를 사용하기 위해 setUser 메서드를 생성하였습니다.
결말 : ScheduleResponseDto에서 Schedule 객체를 받아서 username은 schedule.getUser().getUsername() 과 같은 방식으로 접근이 가능하게 되었습니다.
4. validation 패키지 인식 오류
발단 : validation 패키지 인식 오류 발생
전개 : validation 의존성 추가가 build.gradle에 되지 않았음.
위기, 절정 : 추가했으나 오류 발생 -> build 돌려보고 run 몇 번 해보다 보니 되었습니다.
결말 : validation 패키지를 원활히 사용할 수 있었습니다.
5. 메서드 오류 (ScheduleResponseDto cannot be converted to Schedule Schedule schedule = findScheduleById(scheduleId) )
public ScheduleResponseDto findScheduleById(Long scheduleId) {
//DB 조회
Schedule schedule = findScheduleById(scheduleId);
return new ScheduleResponseDto(schedule);
}
발단 : findScheduleById 메서드 내부에 동일 메서드 생성
전개 : findById 함수를 사용하고자 했는데, 메서드 이름과 반환 타입이 혼동되게 작성이 되었었습니다.
위기 : 동일한 이름으로 메서드를 재귀적으로 호출하고 있어서 타입 오류가 났습니다.
절정 : findSchedule 메서드를 호출하여 충돌을 해소했습니다.
결말 : 에러가 나지 않았습니다.
'과제리뷰' 카테고리의 다른 글
[CH4개인과제] 일정 관리 앱 서버 (1) | 2024.11.08 |
---|---|
[숫자야구] 피드백 이후 개선 (0) | 2024.10.29 |
[계산기] 피드백 이후 개선 (0) | 2024.10.29 |
[CH3개인과제] 숫자 야구 (0) | 2024.10.23 |
[CH2개인과제] 계산기 (0) | 2024.10.16 |