스프링 레벨 5 과제 clear !
5레벨의 핵심은 스프링 시큐리티
와 예외처리
라고 생각한다. 여전히 100% 이해한 것은 아니었고 강의 코드를 그대로 가져와서 내 프로젝트에 맞게 수정하며 사용했다.
이게 3레벨 부터 JWT 토큰을 사용해서 사용자 인증을 해서 스프링 시큐리티를 적용한다고 했지만 잘 된 것인지 의문이 사그라들지 않는다. 기술 매니저님 오시면 여쭤봐야겠다.
그리고 예외처리.
Exception 패키지를 따로 구분해서 그 안에 에러코드나 발생할 exception 을 만들어두긴 했다. 그리고 Global Exception 구성을 위해 이것 저것 참조하며 코드를 구현하긴 했는데 완전히 이해하지 못하겠다. 그리고 일단 예외처리 방법이 정말 다양하다는 것도 알게 되었다.
→ 다양한 처리방법
그리고, 상태코드도 제대로 반환을 해주어야 하는데 내 코드에서는 그냥 200과 400으로 하드코딩되어 있어서 이 부분도 조금 고민을 해보았다. 그래봤자 바꾼 내용은 HttpStatus.Ok() 추가이지만.. !
https://thalals.tistory.com/268
과제 구현하면서 좀 어려웠던 것
1. @ColumnDefault("0")
이 어노테이션을 붙이면 바로 기본값은 0으로 초기화 되는 건줄 알았는데 자꾸 null 이 들어가는거임
https://eocoding.tistory.com/71
해결 : @DynamicInsert 를 써라
2. HttpMessageConversionException
컬럼 fetchType 을 EAGER 는 잘 안쓴다고 해서.. ( 그러니까 지연 로딩을 사용해서 해당 엔티티들을 한 번에 조회하는게 더 효율적이라고 해서.. 물론 상황에 따라 다르겠지만 !! ) fetchType 을 LAZY로 변경하니 이 오류가 나타났다.
https://jhkang-tech.tistory.com/92
해결 : 그래서 일단 EAGER 로 다시 원복하여 두었는데 이 부분은 조금 더 공부해봐야 알 것 같다.
3. org.springframework.core.convert.ConverterNotFoundException
org.springframework.beans.factory.UnsatisfiedDependencyException
이 에러들은 뜬금없이 자꾸 나와서 나를 왜 화나게 해...
해결 : 어떻게 삽질하다보니 자연스럽게 해결되었다. 이게 왜 자꾸 나왔는지는 잘 모르겠다. 내가 뭔가를 잘못 설정해놨겠거니..
++ 이건 깃 커밋 컨벤션과 깃 플로우에 대해 찾아보고 추천받은 자료
https://techblog.woowahan.com/2553/
https://kdjun97.github.io/git-github/commit-convention/
+++ 어노테이션 정리 자료 찾아본거
https://brush-up.github.io/java/java-annotation-01/
'T.I.L. :: Today I Learned > 항해99 14기 본과정' 카테고리의 다른 글
Day 26. RefreshToken.. 아 토큰도 리프레쉬를 하는데!!! (0) | 2023.04.28 |
---|---|
Day 25. 아 3점 감점.... 😑 (0) | 2023.04.27 |
Day 23. 스프링 시큐리티, 너 도대체 뭐야 (0) | 2023.04.25 |
Day 22. 자도 자도 또 자고 싶어요 (0) | 2023.04.24 |
Day 21. 봄이 오고 Spring도 왔ㄷㅏ... : ) (0) | 2023.04.23 |