1. 어려웠던 부분 : 오늘 기술멘토링이 있는 날이었다. 우리가 궁금했던 부분을 여쭤봤는데, 사실 시원한 해답을 얻진 못했다. 그냥 더 열심히 구글링하고 깨지면서 해결을 해봐야 한다. 그래도 이제 https 문제느 해결이 됐는데, 다른 팀원분이 CrudRepository를 적용한 파일을 테스트용으로 빌드하고 배포하는 과정에서 아래와 같은 에러가 발생했다. 

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'signalHandler': Unsatisfied dependency expressed through field 'gameRoomSessionRepository'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gameRoomSessionRepository' defined in com.example.namoldak.repository.GameRoomSessionRepository defined in @EnableRedisRepositories declared on RedisRepositoriesRegistrar.EnableRedisRepositoriesConfiguration: Invocation of init method failed; nested exception is java.lang.reflect.InaccessibleObjectException: Unable to make field private final transient 
java.net
.InetSocketAddress$InetSocketAddressHolder 
java.net
.InetSocketAddress.holder accessible: module java.base does not "opens 
java.net
" to unnamed module @e580929

 

거의 반나절을 구글링을 해봤다.

뭔가 @Autowired 어노테이션이 잘못된 것 같아서 구글링에서 나온대로 여기 저기 @Repository 어노테이션도 붙여보고 @Quilifer 어노테이션으로 이름도 붙여줘보고, @Primary 어노테이션으로 우선순위도 줘보려고 해지만 계속해서 같은 오류메시지가 떴다. 근데 결국 새벽 1시가 될때까지 해결하지 못했다. ㅜㅜ 산넘어 산이다 정말.

 

 

2. 느낀 점 : 어떻게 해야 효율적으로 정보를 찾을 수 있을까? 이번주 내내 에러의 늪에 빠져보며서 좋은 해답을 얻기 위해선 어떻게 구글링을하고 좋은 자료를 찾을 수 있을까에대한 고민이 깊어졌다. 기본기가 탄탄하다면 더 좋았을 텐데, 너무 많은 양을 단기간에 배웠다보니 이런 부분에서 부족함이 느껴지는 것 같다.

 

3. 새로 알게 된 내용 : 멘토님이 Refresh 토큰을 도입하고 저장하는 부분에대해 고려해봤냐고 질문을 주셨다. 사실 아무 생각없이 코드만 구혀해 놓았기 때문에 오늘 피드백이 끝나고 그 부분을 공부해봤다. 아직 프론트와 맞춰보지 않았기때문에 상황이 달라질 수 있지만, 프론트에 전달할 땐 로컬 스토리지에 저장하고 서버에 저장할 땐 Redis 스토리지에 저장하는 방법을 사용하게 될 것 같다. 어렵다 어려워. 공부가 더 필요하다 ! !

 

4. 셀프칭찬 (오늘 잘한 일) : 존버하는 하루 하루

 

5. 내일 할 일 : WIL 작성하기


[오늘 공부한 부분] 

 

[10] Spring Security Refresh Token (2)

 

[10] Spring Security Refresh Token (2)

Refresh Token 저장 위치 크게는 두 경우로 저장할 수 있는데 Backend DB, Redis 등의 Storage에 저장하거나 Client측에 저장할 수 있다. Backend에 저장할 경우 JWT의 원래 도입 배경인 서버를 Stateless하게 유지

leejincha.tistory.com

 

+ Recent posts