2021-03-19-TIL
2021-03-19-TIL
Custrom Exception을 만들고 @ControllerAdvice 사용하기
- https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc
[CODE REVIEW]
[August]
- 배포 서버 기능
- 비밀번호 변경 안 하는 방법이 없다. 둘 다 입력하는 방법 밖에 없음
- 다른 사람 정보 수정 -> redirect:/
- 로그인 실패 -> redirect:/
- qna/list에서 이름 클릭 안됨, qna/show 에서 이름 클릭 안됨
- 답변 수정 안됨
- 소스코드
- DateTimeUtils에 메서드가 없는데, 이 부분에서 포맷팅을 담당해도 될 것 같습니다.
- HttpSessionUtils::isLoginUser 에서 한줄로 작성 가능할 것 같습니다.
- AnswerService에서 두 개를 주입받는데, 보통 두 개 이상 주입받아도 상관 없는가요? 주입방향이 꼬이지만 않는다면?
- User::updateUserInfo 에서 String newPassword를 받지말고 그냥 이전 단계에서 패스워드를 setter로 변경하고 넘겨주는 방법도 있습니다.
- checkPassword에 String만 받기때문에 getter를 사용하면서 비교하는 코드가 많은데, 그냥 객체로 받아서 패스워드를 내부에서 비교하도록 checkPassword를 오버로딩해도 될 것 같습니다.
세션은 컨트롤러에서 검증하고, 서비스로 넘기지 않는 것이 안전하다?
Answer가 Question을 갖고있고, Question이 Answer를 갖고 있어서 무한루프라 돌아서 Nested loop 에러가 발생할 수 있다. 이때 DTO를 정의해서 questionId를 반환하는 식으로 해결 가능
- 같은 계층 간의 주입이 바람직한가? 한단계 낮은 계층을 주입받는게 바람직한가?
- 아예 그런 상황이 안 나오도록 Answer는 독자적으로 존재할 수 없다. QuestionService에서 Answer를 처리하는게 바람직하다. 의존성이 있기 때문.
- 하지만 반드시 필요한 상황이라면?
This post is licensed under CC BY 4.0 by the author.