TIL221230

5w31892p·2022년 12월 31일
0

Dev.TIL

목록 보기
46/66

🙊 Today I Learned

  1. 팀 프로젝트
  2. 후발대 정리

:: 문시해알

문제점

팀 프로젝트 하는데 숙련차 로그인 기능을 각자 해보고 코드 공유를 하기로 했다.
공유 후 주말에 개인적으로 심화 과정 적용해보기로 했는데, security 적용 중
JpasystemException, BeabInstanticationException,Empty encoded password, in memory database shutdown errer가 발생했다.

시도한 것

처음엔 error에 당황해서 errorMessage를 구글링했다.
나와 같은 사람들이 있어 그 사람들이 해결한 방법과 어떤 것들 때문에 그러한 Exception이 발생하는지 보고 해결 방법을 따라했다.
하지만 그래도 되지 않았고, 그 사람들과 다른 문제 때문에 발생했다는 걸 알고, errorMessage를 번역기 돌려서 왜 그런건지 확인 후 해결했다.

해결

JpasystemException
JpasystemException은 postman으로 확인해보면 자꾸 회원가입시 중복체크가 되지 않고, 로그인 시이 도지 않았다.
그래서 번역기를 돌려보니 생성자가 없다며, 생성자를 만들라는 메시지였다.
그래서 UserEntity에 @NoArgsConstructor 어노테이션을 생성했고, 그랬더니 정상 작동하였다.


BeabInstanticationException
번역기에 돌려본 결과 security 적용 과정에서 WebSecurityConfigurerAdapter 와 SecurityFilterChain 두개를 적용하려고 해서 발생했던 에러였다.
둘 중 하나만 선택하라고 하였고, WebSecurityConfigurerAdapter을 지우고 SecurityFilterChain을 선택하니 에러는 사라졌다.


Empty encoded password
말그대로 인코딩된 암호가 비었다는 뜻이였다.
이유를 찾지 못해 UserEntity부터 Controller, Service, Repository 하나하나 뜯어봤다.
그렇게 보니 Controller단에서 회원가입시 password를 repository에 save하지 안해서 발생했다.
그래서 encoding된 password를 save 적용했다.


in memory database shutdown
이건 찾아도 나오지가 원하는 답이 나오질 않아 강의에서 H2가 in memory 방식이라고 했던 것이 기억났다.
그래서 application.properties를 확인해보니 spring.h2.console.path=/h2-console 요 부분이 빠져 있길래 적용 후 ide를 껐다가 켰다.
그랬더니 잘 돌아가는 것을 확인할 수 있었다.

알게 된 것

맨날 NullPointerException, IllegalArgumentException 등만 보다가 위와 같은 에러들은 처음 접하게 되었다.
세상엔 참 많은 에러가 있고 골치 아프게 하는구나 싶었다.
그리고 에러메시지를 그대로 구글링을 해도 내가 원하는 답이 나오지 않은걸 보니, 무조건 구글링이 답은 아니구나 라는 것을 알게 되었다.
우선 내가 에러메시지를 번역기에 돌려서 어떤 문제인지 확인하고, 메시지가 내가 이해 가능한 선이고, 어떤 것이 문제인지 알면 그것을 토대로 수정 하면된다.

하지만 에러메시지를 구글링해도 도저히 어떤 것이 문제인지 모르겠을 때에는 번역 돌린 것을 토대로 요약해서 검색을 하는 것이 좋겠다 라는 깨달음이 있었다.

앞으로 이보다 더 많은 Exception들을 보게 될텐데 지금이라도 무조건 메시지 긁어서 구글링하면 안된다는 것을 깨달아서 다행이다.

먼저 번역해서 확인하고, 그 후에도 모르겠으면 요약해서 검색하자.


Exception 잘 해결하는 개발자가 되자.


📜 hbd 05

0개의 댓글