과제리뷰

[CH5.개인과제] 일정 관리 앱 (JPA)

hahahabbb 2024. 11. 15. 15:39

[에러 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