본문 바로가기

Java & Spring Boot17

[Java] WebClient queryParam uri 인코딩 문제 WebClient를 사용하여 Get Method를 요청할때 사용하는 QueryParam에 인코딩 문제 다음과 같은 데이터 포맷이 있을때 private static final DateTimeFormatter OUTPUT_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); public static RequsetDto of(String start) { // start = 2024-10-15 RequsetDto dto = new RequsetDto(); // Parse start and end dates LocalDate startDate = LocalDate.parse(s.. 2024. 10. 17.
Repository 테스트 @AutoConfigureJsonTesters Unsatisfied dependency expressed through field 'objectMapper': No qualifying bean of type 'com.fasterxml.jackson.databind.ObjectMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} @WebMvcTest를 사용하는 ControllerTest에서는 @Autowired ObjectMapper를 사용했었는데, @DataJpaTest에서 같은 방법으.. 2023. 12. 5.
서블릿 필터 & 스프링 인터셉터 필터는 서블릿 기능, 인터셉터는 스프링 기능이다. 애플리케이션에서 공통으로 관심이 있는 관심사를 공통 관심사(cross-cutting concern)이라고 한다. 공통관심사는 AOP나 서블릿 필터, 스프링 인터셉터 등 다양한 방법으로 해결할 수 있다. ex) 모든 메서드의 동작 시간, 가장 많이 호출되는 메서드 저장 그 중 웹과 관련된 공통 관심사는 필터나 인터셉터로 해결하는것이 좋다. (ex 로그인 여부 체크) 필터 흐름 [HTTP 요청 -> 웹서버 -> 필터 -> 서블릿 -> 컨트롤러] 필터를 적용하면 필터가 호출 된 다음에 서블릿(디스패처 서블릿) 호출 필터 체인 [HTTP 요청 -> 웹서버 -> 필터1 -> 필터2 ... -> 서블릿 -> 컨트롤러] 필터를 여러개로 구성 가능 필터 인터페이스 기본.. 2022. 10. 4.
Java 객체, 클래스, 인스턴스의 차이 객체(Object)란? - 현실를 모방하여 소프트웨어로 꾸며낼 대상, 결과물 - 클래스의 인스턴스를 객체라고도 한다. 클래스(Class)란? - 객체를 만들기 위한 코드다. 인스턴스(Instance) - 클래스가 메모리에 적재되면 인스턴스가 된다. - 메모리에 할당된 객체 포커카드를 소프트웨어로 만든다고 가정해보자. (현실을 소프트웨어로 만들 대상 = 객체 = 포커카드) 포커카드는 기본적인 정보(카드의 크기, 색갈, 숫자, 문양)가 존재한다. 카드의 기본적인 정보를 받을 수 있는 코드 = 클래스 (카드라는 객체를 만들기 위한 설계도) 카드의 기본적인 정보를 입력받아 완성된 카드 = 클래스의 인스턴스 (입력받아 완성되다 = 메모리 할당) 카드라는 객체를 만들기 위한 클래스에 메모리가 할당되면 인스턴스가 된.. 2022. 7. 18.
자바에서 효율적으로 Exception 커스텀하기 원하는 기능을 찾다가 발견해서 올립니다. 다만 해당 글에 대한 정보들이 다 조금은 지난글이라 최근에도 이런식으로 사용하는지 모르겠네요. 혹시라도 최신 방법을 아시면 댓글 남겨주세요. :( 에러케이스 1. 어디서 발생하는지 알고, 무엇이 문제인지도 알지만 Exception으로 관리해야 하는 경우 ex) 토큰만료, 권한검증 (실제 토큰 처리를 하는 더 좋은 방법이 존재할 수 있음) Authentication은 내가 생성한것도 아니고 라이브러리를 가져다 쓰거나 애초에 Exception으로 막는방법밖에 제공되지 않는다고 가정하겠다. 그렇다면 해당 메서드의 문제는 에러를 Exception으로 쳐낼수밖에 없는 부분에 있다. 나는 해당 에러의 원인도 알고 위치도 알지만 Exception으로 떨궈내는 순간 stack .. 2022. 2. 8.
H2 In-memory 사용시 delete log 확인 in-memory db를 사용하여 repository delete를 테스트 하는 법 테스트 폴더에 application.yml을 생성하여 in-memory database를 사용중이다. application.yml 안 내용은 다음과 같다. 아무것도 없어도 되지만 로그를 보기 위해서 show-sql를 추가했다. format이 잡힌 형식으로 뽑아낼수도 있지만 여러개의 데이터를 insert하고 delete 하기 위해서 하지 않았다. 내가 짠 코드는 다음과 같다. 해당 코드를 작성한 이유는 N+1 및 jpa delete에 대해 공부하고 블로그 글을 작성하려고 했다. 문제는 내가 예상한 insert 100개의 로그는 정상적으로 나타나지만 delete 로그가 나타나지 않는것이다. 이걸 위해서 application... 2021. 11. 25.