[Spring Redis] incompatible types for field 해결

문제 Redis 를 스프링 세션 저장소로 사용하며 사용자의 로그인 정보를 저장 하고 있었습니다. 그런데 저장되는 DTO 객체를 조금 수정했더니 SerializationException: Cannot deserialize 라며 에러가 발생하기 시작했습니다. 정확히 방금 변경한 필드가 에러메시지에 정확히 표기되었기 때문에 에러의 원인은 명확 했습니다. 원인 원인은 기존에 Redis에 저장되어 있던 세션 데이터와의 충돌 때문이었습니다. 세션에 이미 저장되어 있는 데이터를 어플리케이션에 불러 오며 다시 역직렬화를 시키는 과정에서, 클래스의 구조가 일치하지 않았기 때문에 에러가 발생 한 것 입니다. 해결 해결 과정이 생각보다 간단하지가 않았는데요. 아래에서 언급될 몇가지 이유가 있었습니다. 차근차근 해결을 해 보..

Development/Daily Error 2022.08.17
[Java] Unsupported class file major version 61 해결하기

문제 Unsupported class file major version 61 ArchUnit을 통한 아키텍처 테스트를 해 보려는데 Unsupported class file major version 61 에러가 발생했습니다. 원인 class file major version 61은 로드 하려고 시도하고 있는 클래스 파일이 자바 17 혹은 그 이상의 버전에서 컴파일이 되었으며, 자바 17 이상에서만 사용 될 수 있을 때 발생한다고 합니다. 사실 스프링부트 3.0 부터는 요구되는 자바 버전이 17이 될거라는 소식을 듣고, 미리 JDK 17을 사용하며 불편한 상황이 어떤게 있을 지 알아보고, 트러블슈팅이 가능하다면 해보려고 Temurin JDK 17 (AdoptOpenJDK 에서 이전됨) 을 사용하고 있었거든요..

Development/Daily Error 2022.08.14
[JPA] No Dialect mapping for JDBC type: 1111

Intro JPA 사용 중 native 쿼리를 사용해야 할 일이 있어 nativeQuery = true 옵션을 걸고 쿼리를 작성 했습니다. 그런데 생소한 에러메시지가 나오며 UUID의 맵핑이 제대로 이루어지지 않았습니다. org.hibernate.MappingException: No Dialect mapping for JDBC type: 1111 원인 https://github.com/spring-projects/spring-data-jpa/issues/1796 이미 오래전부터 알려져있었지만 고치지 않기로 결정 된 Hibernate 이슈 라고 합니다. Hibernate 구현체에서는 addScalar를 활용 하길 추천하지만 특정 구현체에 의존하지 않고 Spring Data JPA 를 이용할 경우에는 cas..

Development/Daily Error 2022.06.28
[Maven 에러] java.lang.IllegalStateException: Unable to load cache item

[Maven 에러] java.lang.IllegalStateException: Unable to load cache item 문제 Linux 운영체제에 maven 을 설치 하고, mvn 명령어를 실행 하던 중 아래와 같이 오류가 발생 했습니다. [ERROR] Error executing Maven. [ERROR] java.lang.IllegalStateException: Unable to load cache item [ERROR] Caused by: Unable to load cache item [ERROR] Caused by: Could not initialize class com.google.inject.internal.cglib.core.$MethodWrapper원인 사용중인 메이븐 버전이 설치되어..

Development/Daily Error 2022.06.24
SCP 사용중 Permission denied 대처법

Intro 모두 알고 계시는 것 처럼 리눅스에서 scp 명령어를 사용하면 손쉽게 remote 저장소에 있는 파일을 로컬에 copy 해 올 수 있습니다. 그런데 대부분의 상황에서 문제 없이 작동하는 이 기능에서도 어쩔 수 없이 Permission denied 에러를 뿜으며 안될 때가 있습니다. scp: Documents/root_file: Permission denied 이때의 대처법을 나누어 보려고 합니다. 원인 원인은 방금의 SCP 접근이 해당 파일에 대한 접근 권한을 가지고 있지 않기 때문입니다. sudo 권한을 가지고 있는 유저라고 하더라도 ssh 로 접속해서 sudo 명령어로 해당 파일에 접근하는건 가능 하지만, scp로 한번에 빼오는건 불가능 합니다. 해결 상황은 매우 당황스럽지만 어렵지 않은 ..

Development/Daily Error 2022.06.21