반응형 IT/Java394 [Error] An Errors/BindingResult argument is expected to be declared immediately after the model attribute, the @RequestBody or the @RequestPart arguments 아래와 같은 에러를 만났다.An Errors/BindingResult argument is expected to be declared immediately after the model attribute, the @RequestBody or the @RequestPart arguments 원인은 Valid 를 사용할 경우 Error 나 BindingResult 를 잡을수가 있는데,Valid 바로 다음에 Errors 나 BindingResult 가 나와야한다.Valid 관련해서는 아래 참고 포스팅 참고 바란다. 두 코드를 보면 올바른 코드와 잘못된 코드를 확인 가능하다.(스택오버플로우 사이트 참고)올바른 코드@RequestMapping(value = "/catowners", method = RequestMe.. 2024. 8. 17. ConcurrentHashMap 을 활용한 동시성 제어 이전 포스팅에서 ConcurrentHashMap 에 대해서 다룬 글이 있다.자세한 내용은 아래 참고 포스팅 참고 바란다. ConcurrentHashMap 은 일단 Collections 중 하나인 map 과 비슷한데 Key Value 로 나뉜다.그러면서 key마다 value에 각각 thread 별로 데이터를 넣어주면 동시성 제어가 된다는 의미이다. 예제로 확인해보면 아래와 같다.참고로 코드에서 사용중인 Thread에 대한 정보는 아래 참고 포스팅을 확인해보면 Thread 정보를 가져오는 법을 알수 있다. ..이상 생략private final Map> entities = new ConcurrentHashMap(); public void setEntities(String key, ListCustEntity>.. 2024. 8. 16. ThreadPool Default 이전 포스팅에서 잠깐 ThreadPool에 대해서 적은 글이 있다.간단히 설명하면 Thread는 자바에서 실행의 주체인데 pool을 설정함으로써 Thread 를 제어할수 있는 그런 내용이다.관련 내용은 아래 참고 포스팅에서도 한번 더 다뤘으니 참고 바란다. ThreadPool은 자바에서 실행되는 주체인데 겹치게 되거나 할 경우 동시성 이슈로 직관되게 연결되어 매우 중요한 부분이다. 과연 이 pool은 몇개로 되어있을까 라는 의문이 들었다. 이 ThreadPool은 Springboot에서 tomcat이 제어를 하고 있으며 설명하기로는 아래와 같다. 그리고 만약 이를 조정하려면 아래와 같이 yml파일을 수정 해야한다. server: tomcat: threads: max: 200(여기를 변경 .. 2024. 8. 15. 자바에서 Thread 확인 자바에서 실행의 주체가 되는것은 Thread 라고 설명을 이전 포스팅에서 몇 했었다.자세한 내용은 아래 참고 포스팅 참고 바란다. 이번 포스팅에서는 현재 실행되고 있는 Thread가 어떤 Thread 인지 확인하는 코드를 추가하여 코드를 정리할 것이다. 본론으로 들어와서 아래 예제를 보면 이해가 갈 것이다.Thread mainThread = Thread.currentThread(); // 현재 쓰레드 얻기System.out.println(mainThread); // 쓰레드 이름 확인mainThread.setName("main-thread"); // 쓰레드 이름 설정Thread thread1 = new Thread() { @Override public void run() { .. 2024. 8. 14. MockMvc Get, Post, Put, Delete 테스트 우선 MockMVC에 대해서 알아보면.어플리케이션을 서버에 배포없이도 스프링 MVC의 테스트를 진행할 수 있게 도와주는 클래스이다. 스프링 공홈에서는 아래와 같이 소개한다.https://docs.spring.io/spring-framework/reference/testing/spring-mvc-test-framework.html MockMvc :: Spring FrameworkThe Spring MVC Test framework, also known as MockMvc, provides support for testing Spring MVC applications. It performs full Spring MVC request handling but via mock request and response.. 2024. 8. 13. JPA 에서 containing(Contains, IsContaining) 이전 포스팅에서 findby 에 대해서 다룬 글이 있고,그 메서드 들 중에서는 like문으로 조회하는 메서드 까지 같이 소개했었다.자세한 내용은 아래 참고 포스팅 참고 바란다. 쿼리 메서드 들 중 추가인 포스팅일수 있지만 containing 를 추가하면 like에서 %가 앞뒤로 붙여서 쿼리를 만들수가 있다. 예제는 아래와같다. 쿼리메서드만들어지는 쿼리findByIdselect ... where id = ?;findByIdLikeselect ... where id like '?%';findByIdContainingselect ... where id like '%?%'; 참고로 findByIdContaining 와 동일하게 findbyIdContains, findByIdIsContaining 도 동일한 메서.. 2024. 8. 12. RequestParam 에서 @Valid 사용 이전 포스팅에서 @Valid annotation 을 사용하여 데이터 검증을 하는 법을 알아보았다.(참고 포스팅 참고) 하지만 해당 방법은 RequestBody 일 경우 사용이 가능하고RequestParam 으로 사용하는 방법을 정리하려고 한다. controller 에서 사용할 경우 아래 예제와 같이 사용하면 간단히 해결 가능하다...이상 생략public ResponseEntity testMethod( @RequestParam @Pattern (regexp = "010[-]?\\d{3,4}[-]?\\d{4}$") String phoneNumber, @RequestParam @Email String email ) {..이하 생략 Pattern을 적용해도 가능하고 기타 어노테이션 사용도 가능하.. 2024. 8. 11. DatasSource Exclude 설정 관련(DataSourceAutoConfiguration) SpringBoot프로젝트 run을 하기 위해서는 main 메서드가 존재하는데 해당 메서드에서는 @SpringBootApplication 이라는 어노테이션이 달려있다. 여기 어노테이션에 이렇게 설정을 해주면 해당 프로젝트에서 데이터베이스를 사용 안한다는 의미이니 참고 바란다.@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})public class Application { public static void main(String args[]) { SpringApplication.run(Application.class, args); }} 정확히 말하면 데이터 소스를 구성하지 않을때 사용하는 설정이다. 참고로.. 2024. 8. 10. Hash 충돌의 해결 아래 참고 포스팅에서 다양하게 자바에서 Hash 사용되는것들에 대해서 볼수 있다. 이 많은 해시들은 결국 Hash Function 에 의해서 가능한 서로 다른 키들에 대해 다른 해시 값을 생성하는데 만약 이때 해시값이 충돌하여 동일한 값을 가지게 되면 어떻게 될까? 정답은Hash Collision이다.해시 충돌은 서로 다른 데이터가 동일한 해시 값을 가지는 상황(key는 다른데, hash가 같을 때)이다.해시 테이블의 크기는 제한되어 있기 때문에 현실적으로는 피할 수 없는 현상이다. 정리해서 다시 말하면 hash 충돌은 피할 수 없지만, 해시 함수의 결과 값이 골고루 분포되도록, 해시 충돌이 균등하게 발생하도록 해시 함수를 정하는 것이 좋다. 방법은 아래와 같다.seperate chaining (체이닝).. 2024. 8. 6. 이전 1 2 3 4 5 6 7 ··· 44 다음 반응형