1. BoardController
2. board/saveForm
bootstrap/inputs : https://www.w3schools.com/bootstrap4/bootstrap_forms_inputs.asp
inputs/summernote : https://summernote.org/getting-started/#without-bootstrap
3. 글목록 보기
Page type으로 받는것과 List type으로 받는것의 차이점은?
List type은 content정보만 가지고 오고, Page type은 content정보와 페이징 정보까지 가지고 온다.
- content[{ }] : 가지고 오려고 하는 내용이 뭔지 (List type이 가지고 오는 것)
- pageable {} : 페이지 정보 (totalPages, last(마지막페이지인지), first(첫페이지인지), size(몇개씩보여주는지) 등등)
- sort {} : 정렬이 됐는지
4. 페이징하기
5. 글 상세보기
6. 글 삭제하기
7. 글 수정하기
오늘의 에러 local class incompatible
The serializable class PrincipalDetail does not declare a static final serialVersionUID field of type long
local class incompatible: stream classdesc serialVersionUID = -1576902693999459383, local class serialVersionUID = -4570294104202477037
"글쓰기" 기능을 만들면서 코드를 수정하였더니 "PrincipalDetail" class에서 다음과 같은 에러가 나왔다.
찾아보니까 Principal Detail이 implements한 UserDetails class가 Serializable을 가지고 있는데,
이 Serializable은 객체의 직렬화-역직렬화를 해주는데 이때 키 값이 필요하다.
키 값은 serialVersionUID 변수의 값을 지정하여 주거나 값이 없다면 JVM이 클래스 구조 정보를 토대로 해싱값을 만든다고 한다.
나같은 경우에 serialVersionUID값이 없었고, 그 와중에 글쓰기 기능을 구현하면서 class 파일들을 수정하여 클래스 구조들이 바뀌면서 JVM이 만든 해싱값이 변경되어서 serialVersionUID 가 달라서 error가 생겼던것 같다.
일단 에러를 무시하여 주는 @SuppressWarnings("serial") 어노테이션을 사용하여 실행을 하였고,
몇분 뒤에 어노테이션을 지우고 다시 실행하니까 정상적으로 작동하였다. JVM이 변경된 클래스 구조를 안정적으로(?) 잡은것 같았다.
참고 : https://hevton.tistory.com/164
'공부 > SpringBoot' 카테고리의 다른 글
[블로그] 댓글 (0) | 2022.03.08 |
---|---|
[블로그] 회원수정 및 카카오로그인 (0) | 2022.03.06 |
[블로그] 스프링시큐리티 (0) | 2022.02.27 |
[블로그] 서비스와 트랜잭션 (0) | 2022.02.26 |
[블로그] 오늘의 에러 (0) | 2022.02.21 |
댓글