seok26 [만료된 액세스 토큰 정보 가져오기]JWT expired at 2024-11-18T08:40:20Z. Current time: 2024-11-18T08:41:18Z, a difference of 58493 milliseconds. Allowed clock skew: 0 milliseconds. 에러 메세지io.jsonwebtoken.ExpiredJwtException: JWT expired at 2024-11-18T08:40:20Z. Current time: 2024-11-18T08:41:18Z, a difference of 58493 milliseconds. Allowed clock skew: 0 milliseconds. at io.jsonwebtoken.impl.DefaultJwtParser.parse(DefaultJwtParser.java:427) ~[jjwt-impl-0.11.5.jar:0.11.5] at io.jsonwebtoken.impl.DefaultJwtParser.parse(DefaultJwtParser.java:529) ~[jjwt-impl-0.11.5.jar:0.11.5].. 2024. 11. 18. N+1문제 문제 특정 보드 ID에 관한 연결된 컬럼들이랑 그 각 컬럼들에 연결된 카드들 가져올때 N+1 문제 발생 먼저 코드를 보면 중간 테이블을 이용해서 특정 ID 보드를 가져오고 그 보드에서 연결된 컬럼들을(columnList) 가져온다. 그후 columnList에 들은 각 컬럼들에서 또 연결된 카드들을(columns.getCards() )가져오는데 N+1문제가 생긴다. 결국 이렇게 쿼리문이 5개 나간다.(해당 보드에 연결된 컬럼이 총5개) 원인 컬럼에 카드랑 연결관계인 cards필드를 지연로딩으로 설정해서 각 컬럼의 cards에 접근할때 쿼리문을 따로따로 날려서 컬럼 총 갯수만큼 쿼리문이 나간다. 해결 Fetch Join을 이용해서 총 컬럼의 정보를 가져올때 동시에 각 컬럼에 들은 카드정보도 가져온다. 특정 .. 2024. 1. 2. 중간 테이블 데이터 삭제 문제 문제+원인 보드에 참여중인 유저들의 정보는 2번째 캡처 보면 7번 보드에 1,3번 유저들이 참여중인데 만약 3번 유저가 이제 보드에서 나가고 싶어 해서 사용자보드에서 보드가 7번,유저가3번인 해당 pk번호 16번만 삭제 하는데 사용자 보드에 보드 번호가 7번인 데이터들 다 사라지고 보드 테이블에서도 보드가 7번인게 삭제 되었다. 알고보니 사용자보드 엔티티에 보드 필드에 영속성 전이 ALL이 걸려 있어서 그런거였다. 그래서 영속성 전이 설정 상태에서 사용자 보드의 로우만 지우는 방법이 없나 고민이였다 해결 영속성 전이 걸려있는 상태에서 사용자보드에 해당 로우만 지우는 방법은 없는거였다. 그러니 최종적으로는 사용자보드에서 영속성 전이 하면 안된다. 그러면 영속성 전이 ALL 지우고 했을땐 정상적으로 해결 됬.. 2023. 12. 29. 연관 관계 단방향 영속성 전이 Remove 오류 일단 테이블이 유저-게시글-댓글 이있고 관계는 게시글(N)-유저(1): 단방향 댓글(N)-게시글(1): 양방향 문제 게시글 엔티티에서 댓글이랑 연관관계 설정한 필드에 영속성 전이 Remove를 걸고 게시글 삭제시 해당 게시글이랑 연결된 댓글도 자동으로 삭제 할 줄 알았으나 게시글에 연결된 유저도 삭제를 시도 한다해서 오류가 난다. 원인 게시글이랑 유저는 단방향이라 누가 부모인지 몰라서 그렇다. 해결 1.방법은 게시글에 연결된 데이터를 따로 먼저 다 삭제 해주고 그다음 게시글을 삭제 해준다. 2.유저랑 게시글도 그냥 양방향으로 한다.(외래키 설정 했을시) 하지만 실제 일할땐 많이들 외래키 설정 안하고 참조 id만 설정하고 해서 일단 양방향으로 하고 1번의 해결 방법으로 한다 그랬다.. 2023. 12. 26. 직렬화,역직렬화의 기본 생성자 필요 댓글 생성 컨트롤러 테스트 하던중 이런 오류가 뜨고 오류 내용들 알아보니 직렬화- 역직렬화랑 관련이 있는 문제였다. 해석해보니 "HTTP 요청으로부터 전달된 JSON 데이터를 스프링이 해당하는 Java 객체로 변환하려고 시도할 때 발생" "Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot construct instance of `cohttp://m.todoapp.todoapp.dto.comment.CommentRequestDto` (although at least one Creator exists): cannot deserialize from Object value (no.. 2023. 12. 2. Mokito any() 서비스의 카드 생성 테스트 해보려 했는데 처음엔 밑에 테스트 코드쪽 보면 가짜 레포지토리 save에서 card로 넣었더니 이런 오류가 떴다. 정확히 어떤 뜻인지는 잘 모르나 주소인지 어떤값이 불일치 하다 나오는데 테스트 코드의 new Card() 주소나 해시값이 있는데 실제 메소드에서도 new Card()해서 당연 서로 다르니 오류인듯한? 그래서 가짜 jpa레포지토리 메소드 매개변수에 실제 메소드쪽 값은 물론이고 메모리 주소도 동일해야 하는듯한? 그러므로 귀찮게 일치하나 따지지 않고 일치하지 않아도 상관없는 any()를 사용하는것같다. 생각 해보면 일단 글 생성 메소드 테스트 할땐 강의에 나온대로 레포지토리에 저장하는건 중요하지 않고 밑에 main코드 보면 SelectCardResponseDto에 잘 넣.. 2023. 12. 2. 이전 1 다음