본문 바로가기
반응형

CS/스프링3

spring 프로젝트에서 더미 데이터 사용 & 테스트용 fixture 사용하기 spring 프레임워크를 이용하여 프로젝트를 진행하다 보면 만든 코드가 정상적으로 동작하는지 확인할 필요가 있습니다.이때 테스트 코드를 이용하여 비즈니스 로직이 잘 작동하는지, Controller 부분이 정상적으로 동작하는지 확인하는 것도 중요하고 실제로 요청을 보냈을 때도 테스트 결과와 같이 의도한 대로 잘 동작하는지 확인하는 것이 필요합니다.이번 포스트에서는 개발 환경에서 실제 api 요청을 보냈을 때 응답을 위한 데이터를 넣는 방식과 테스트 코드를 위한 데이터를 넣는 방식에 대해서 다루도록 하겠습니다.DB에 더미 데이터 넣기서버를 작동시킨 후 실제 요청에 맞는 데이터를 응답으로 보내주기 위해서는 DB에 실제로 데이터를 넣어야 합니다.이때 서버를 실행시킨 다음에 sql을 이용하여 DB에 데이터를 넣어.. 2024. 6. 16.
spring security 적용시 @WebMvcTest 코드에서 csrf() 없애기 이번 포스트에서는 프로젝트에 spring security 적용에 따른 Controller 단위 테스트에서 겪었던 문제 상황을 해결하는 과정에 대해서 다루도록 하겠습니다.spring security를 적용하면서 테스트 코드에서도 변경이 필요했습니다.테스트 코드는 spring security의 범위에서 제외를 하거나 각각의 controller 단위 테스트에서 authentication을 임의로 만들어주는 해결 방법이 존재했고 이 중에서 authentication을 만들어주는 방식을 선택하였습니다.위와 같이 선택한 이유는 controller에 대한 단위 테스트는 실제와 같은 요청이 들어오는 것을 확인하고 이에 대한 응답이 제대로 내려가는지 확인하는 것이 중요하다고 생각하여 spring security를 테스트.. 2024. 6. 6.
N + 1 문제와 해결 방법 N + 1 문제가 무엇인지와 그 해결 방법에 대해서 알아보도록 하겠습니다.우선 N + 1이 일어나는 상황을 만들기 위해서 ERD와 스프링 프로젝트를 생성해 보도록 하겠습니다.팀에 여러 명의 팀원이 속할 수 있고, 이 각각의 팀원이 여러 개의 게시글을 쓸 수 있는 상황을 가정하여 ERD를 설계하였습니다. 이제 이에 맞는 스프링 프로젝트를 생성해 보도록 하겠습니다.아래는 순서대로 팀, 유저, 게시글의 엔티티입니다.@Entity@Table(name = "team")@Getter@NoArgsConstructor(access = AccessLevel.PROTECTED)public class Team { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) .. 2024. 2. 14.
반응형