본문 바로가기
트러블 슈팅 및 도입기

My Record - OAuth2 카카오 도전기 중 트러블 슈팅

by ernest45 2025. 4. 21.

블로그 - OAuth2 카카오 도전기! 리팩토링 1편

블로그 - OAuth2 카카오 도전기! 리팩토링2

1.map.get.kakaoProfile NPE가 찍히는 거 같다.

 

 

 

 

 

내가 동의한 것 중에 필수 동의 항목 중 Profile_nickname을 받아와야 하는데

 

 

 

당연히 내가 정해놓은 kakaoUserInfo 부분을 확인해보니 prfile..

 

 

 

단순한 오타였다.

 

 

 

 

2.UnsupportedOperationException

 

에러 로그는 

 

어디선가 잡혀서 예외가 던져있고 있다..

 

UnsupportedOperationException를 찾아보니

 

지원하지 않는 작업을 요청 했을 때 나타난다고 한다..

 

이것만 봐서는 어디서 난 지 알기 힘들었지만,

구글링한 결과 list나 map 등의 컬렉션에서 수정할 없는 요소에 접근할 경우에 흔히 나타난다고 한다..

 

 

 

내가 현재 컬렉션을 수정하고 있는 곳은 kakao에서 받은 사용자 정보들인 attributes다.

 

 

에러의 원인!

 

 

수정의 이유는 카카오의 경우 너무 겹겹이 쌓여 있어서 데이터를 다루기 쉽게 하기 위해서 추가했더니..

 

 

oAuth2User.getAttributes()`가 반환하는 Map이

 `Collections.unmodifiableMap()`으로 생성된 수정 불가능한 맵일 가능성이 높다고 한다

 

 

 

 

하긴 카카오 사용자에게 정보를 받았는데 원본 자체를 가공해버리면 문제가 생길만도 하다..

 

해결 방법으로는 새로운 map을 생성해서 넣어주면 되는데 

 

 

원본을 안전하게 복사 후 저장해주면 ok

 

 

 

 

성공!