해당 쿼리에서 one-to-many 관계의 one쪽인 post를 기준으로 join을 하게되는데 이 때 반환되는 테이블이 페이징하고자 하는 대상의 레코드보다 많아지기 때문에 전부 메모리에 올린 후에 선택하는 방식으로 작동하므로 경고 메세지가 나올 것으로 예상했었다. 하지
현재 Post 엔티티와 PostHashtag 엔티티는 1:N 양방향 매핑이 되어있고Hashtag 엔티티도 PostHashtag와 1:N 양방향 매핑이 되어있다. Post Posthashtag@JoinColum을 외래키의 이름을 지정하는 단순한 역할로 알고 있었어

MultipartFile은 스프링 프레임워크에서 제공하는 인터페이스로 HTTP 요청으로 전송된 파일 데이터를 다루기 위한 객체이다. 보통 HTML form을 통해 전송되는 파일 데이터를 처리할 때 사용되는데 postman을 사용해서 테스트 해보았다.포스트 작성 요청을
포스트 아이디를 통해 관련 해시태그를 지우는 코드를 작성했는데 deleteAll()을 사용하지 말라는 피드백을 받아서 해당 부분을 알아보고 고쳐보았다. 아래의 메서드들은 SimpleJpaRepository에 정의되어 있다.deleteAll()의 내부 구현을 보면 for
@AutoConfigureMockMvc 는 테스트시 사용되는 어노테이션으로 @SpringBootTest 를 사용하는 테스트에서 MockMvc를 사용할 경우에 쓰인다고 한다.ex)@WebMvcTest 같은 슬라이스 테스트가 아닌 @SpringBootTest 는 전체 빈을

만들고 있는 기능 중 포스트에 좋아요를 누르는 기능이 있는데 여러 사용자가 동시에 한 게시글에 좋아요 요청을 보낼 시 어떻게 데이터가 삽입되는지 알아보고자 포스트맨과 curl 로 테스트를 해보았다.간단하게 테스트를 해보기 위해서 stub 데이터를 생성해 실행 시에 데

스프링 부트를 처음 실행하면 @SpringBootTest 어노테이션이 적용된 테스트가 하나 자동으로 생성된다.슬라이스 테스트인 @WebMvcTest는 제대로 동작하는데 contextLoads()만 계속 실패해서 그 이유를 알아보고자 한다. 에러 전문을 보면 상당히 길지

사용자가 포스트에 좋아요를 누르는 기능이 있는데 여러 사용자가 동시에 한 포스트에 좋아요 요청 시 동시성 문제가 발생되는지 보기 위해 테스트를 작성해 보았다. 테스트에서도 생성자를 사용한 의존성 주입이 가능하다.@BeforeEach와 @AfterEach를 사용해서 유저
공부를 위해 일부러 동시성 문제가 발생하는 로직을 구성해보았다.포스트 테이블에 전체 좋아요 수 컬럼을 추가하여 사용자가 포스트에 좋아요를 누르면 좋아요 테이블에 insert 쿼리와 포스트 테이블의 전체 좋아요 수를 +1 하는 update 쿼리를 발생시키는 로직이다.낙관