최근 Spring 학습을 진행하면서 위의 사진과 같은 Warning Message가 발생했고, 어떤 것 때문에 발생했고, 해결 방법은 무엇인지 찾아보고 학습한 내용을 글로 기록하고자 합니다.
먼저 가장 강렬하고(?) 직관적으로 보이는 단어가 Serializable 입니다.
이는 직렬화로 해석할 수 있고, 이를 간단하게 설명하면 아래와 같습니다.
그렇다면, 직렬화에 대해 알았는데, 해당 Warning Message는 왜 발생하는 것인가?
Java에서는 이런 직렬화 대상이 되는 객체에 serialVersion UID를 선언해서 이후에 객체를 제대로 불러오고, 사용할 수 있도록 하는 것을 권장하기에 해당 메시지를 띄워준 것이다!
(참고로, serialVersion UID는 직접 선언하지 않아도 컴파일러가 할당해주는데, 이를 그대로 사용하면 외부의 다른 컴파일러에서 이용할 경우 제대로된 객체를 불러올 수 없다고 한다...)
위의 사진에서도 알 수 있는 것처럼 해당 문제에 대한 권장 해결책은 총 3가지가 존재합니다.
저는 해당 연습 코딩을 하면서 외부 컴파일러를 사용할 경우도 없을 것 같고, 비교적 간단하게(?) 해당 경고를 무시하고자 3번째 추천 해결책을 사용하였습니다.
@SuppressWarnigs 는 불필요한 경고를 억제해주는 경우 사용하는데, 해당 내용은 회사 업무를 하면서도 많이 접하고, 간단하게 스르륵 넘어갈 내용이 아니라고 생각해 더 깊게 학습하고, 추후 자세한 포스트로 다루어보겠습니다.
비교적 간단하게 Warning Message를 처리하였습니다.
그러나, 그 과정에서 Java 직렬화에 대해 어느정도 개념을 잡고, 정리해볼 수 있는 시간이었던 것 같습니다.
잘 봤습니다. 좋은 글 감사합니다.