spring

[상황] UserController를 Unit test 하던 도중에 기대한 값이 호출되는 것이 아닌 oauth URL로 리다이렉트 되는 상황 [원인] 여러 방법을 시도하던 도중 가상의 user를 mock 하고 돌려보니 성공했다. 원인을 확인하니까 Security 단에서 아무 역할을 가지지 않은 유저 (GUEST) 가 API를 호출하게 되면 자동적으로 리다이렉트를 시킨 것이 원인이 되었다. (그런데 왜 굳이 OAuth로 리다이렉트를 하는 것인가는 아직 확인이 안됐다...) [해결] 테스트 클래스에 @WithMockUser(roles = "USER") 어노테이션을 붙여서 가상의 User를 Mock 해주고 테스트를 진행하니 성공했다.
[상황] Repository 테스트를 진행하는 과정에서 두 객체가 같음을 기대했으나 다르다는 결과가 떴다. [해결] 각 자식 엔티티에 @EqualsAndHashCode 달아주어 재정의 해줘서 해결 [참고] https://velog.io/@mooh2jj/equals%EC%99%80-hashCode%EB%8A%94-%EC%96%B8%EC%A0%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%EA%B0%80
[상황] 프로젝트 진행 중 메인페이지에 접속해서 로그인 한 뒤에, JWT를 수차례 parsing하는 상황이 생겼다. 이전에도 겪은 경험이기도 하고 해결해봐야지 했다가 못했던 기억이 있는데, 팀원과 얘기하다가 해결방법을 들어 글을 적는다. [원인] JWT를 파싱할 때마다 로그가 뜨게끔 로직을 구성했는데 결국 원인은 로그인 필터에서 JWT를 파싱할 때 메인페이지의 api 개수당 한번씩 파싱해서 파싱했다는 문구가 계속 나온 것이었다. 진작에 해결했어야 하는 문제였고 알고 나니 정말 단순한 문제였는데 허탄하다.. 이전 프로젝트에서는 로그인 한 유저의 정보를 기반으로 메인페이지에서 보여줄 것이 많았던터라 그랬던 것 같다. 이제라도 알았다는거에 감사하다!
[상황] @Query("SELECT rb.roadmap.title, rb.roadmap.user.username, COUNT(rb) AS bookmarkCount " + "FROM RoadmapBookmark rb " + "GROUP BY rb.roadmap.title, rb.roadmap.user.username " + "ORDER BY bookmarkCount DESC LIMIT 5") List findTop5ByRoadmapsWithBookmarkCount(); 북마크에 저장된 로드맵을 기반으로 로드맵의 제목, 작성자를 등록된 북마크의 개수 기반으로 검색한 뒤, 이를 리스트 형식으로 반환하기 위해서 @Query 어노테이션으로 JPQL을 작성하여 조회하는 메소드를 만들고 이를 사용했는데 아래와 같은 ..
[상황] nginx를 이용하여 무중단 배포를 구현하던 도중에 서버가 정상적으로 실행됐으나 폰트가 깨져서 나오는 문제가 발생했다. 원인을 찾아보려고 docker logs 을 통해 로그를 확인하니까 CORS 관련하여 문제가 생겼음을 알았다. 에러 문구를 확인해봤을 때, allowCredentials 가 true 일때, allowedOrigins 에 특수한 값인 " * " 을 쓸 수 없다는 것인거 같아서 에러 메세지에 작성된 것처럼 allowedOrigins 대신 allowedOriginPatterns 를 사용했다. [해결] 더 찾아보니까 실무에서는 전부 허용하되, 정해진 규칙이나 상황에 따라 Header, Method, Pattern 등을 정해야 한다고 한다. 보안 관련 문제가 제일 골치 아프다..
제로버드
'spring' 태그의 글 목록