본문 바로가기

Java Spring28

Spring Data JPA 더미데이터 생성 후 생각지 못했던 문제와 해결방법! 지난번 포스팅에서 data.sql을 이용해 더미데이터를 만드는 방법을 알아보았습니다. https://ittingz.tistory.com/168 Spring Data JPA 더미 데이터 만들기-data.sql 사용 프론트에서 회원 더미 데이터를 요청하셔서 더미 데이터를 생성해보았습니다. 어떻게 하는 건가 궁금했었는데, 이 참에 방법을 공부했습니다. 1. 먼저 resource 폴더에 data.sql 파일을 만들어 줍니 ittingz.tistory.com 더미데이터는 잘 생성이 되는데, 한 가지 간과한 문제가 있었습니다 🥹 더미데이터가 있는 상태에서 postman으로 새로운 데이터를 생성하려고 하면 id가 unique하지 않다는 오류가 발생한다는 것을 알게되었습니다. 데이터가 새로 생성되면 자동으로 id가 할.. 2022. 10. 1.
RestController 테스트 시 JWT 생성하기 Spring Security dependency가 적용된 상태에서는 unit test를 할 때도 security 관련 처리를 해주어야 합니다. 즉, 회원 인증 절차를 포함해주어야 합니다. (인증된 유저가 서비스를 이용한다는 가정) 만약에 인증 과정을 거치지 않으면 아래처럼 Unauthorized 에러가 발생합니다. 어떠한 방법으로 해결하면 되는지 찾아보니 @WithMockUser를 사용하면 된다는 것을 알게 되었습니다. 문서에 상세하게 사용법이 나와있는데, 기본적으로는 test하고자 하는 메서드 테스트 코드에 @WithMockUser만 붙여주면 된다고 합니다. 사용해보니 테스트 통과가 되더라구요. 하지만 특정한 username이나 password를 사용해서 인증을 하고 싶은 경우 혹은 권한을 달리하여 인.. 2022. 9. 20.
@RequestParam 애노테이션 @RequestParam은 핸들러 method의 parameter 종류 중의 하나로, client 쪽에서 전송하는 요청 데이터를 Query Parameter 또는 Query String form-data x-www-form-urlencoded 형식으로 전송할 수 있게 해주는 annotation 입니다. 2022. 9. 12.
@Import 애노테이션의 쓰임 예전에 문득 'XXXConfig.class 파일들이 굉장히 많아지면 관리가 힘들겠다' 라는 생각을 한 적이 있었습니다. 그런데 오늘 Spring 공식 문서를 살펴보다가 @Import 애노테이션이라는 것을 보았고, 이전에 의문을 가졌던 부분을 해당 애노테이션으로 어느 정도 보완이 된다는 것을 알게 되었습니다. 아래 예시는 공식 문서에 나온 예시입니다. @Configuration public class ConfigA { @Bean public A a() { return new A(); } } @Configuration @Import(ConfigA.class) //이 부분! public class ConfigB { @Bean public B b() { return new B(); } } 보면 ConfigB에.. 2022. 9. 11.
@Nullable 사용 시 warning 발생 없애기 문제 프로젝트를 run 할 때 어느 순간부터 아래와 같은 warning이 발생해서 원인이 무엇인지 알아보았습니다. Warning:java: unknown enum constant javax.annotation.meta.When.MAYBE reason: class file for javax.annotation.meta.When not found 원인 @Nullable 애노테이션을 사용하면서 생기는 경고였는데, javax.annotation.meta.When 이라는 enum이 내 프로젝트 runtime에서 발견되지 않아서 나오는 경고였습니다. org.springframework.lang.Nullable이 해당 enum을 참조하는데 자동으로 그 enum이 생기지 않아서라고 하더라구요. 해결 build.grad.. 2022. 9. 9.
Model interface 안녕하세요 이번에는 Spring framework에서 제공하는 Model이라는 interface에 대해서 알아보려고 합니다.☺️ Model Interface의 역할 Spring MVC에서 MVC는 Model, View, Controller의 약자입니다. 이 중에 Model은 애플리케이션에서 사용되는 데이터를 담고 있는 역할을 합니다. Model interface는 그런 model의 역할과 맞게 data를 다룰 수 있는 interface입니다. 조금 더 정확히 이야기 하자면 model에 "attributes"를 추가하기 위해 고안된 interface입니다. Model에 담길 수 있는 데이터는 String, Object 등 여러 type의 데이터가 있습니다. 그리고 view와 controller 사이에서 데.. 2022. 8. 20.
반응형