spring

    PageNotFound, No mapping for ... 로그 해결하기

    PageNotFound, No mapping for ... 로그 해결하기

    서비스를 운영하다보면 뭔지 모를 요청을 마구잡이로 요청하는 놈들이 매일 매일 수천건씩 생긴다. 서비스가 AWS 위에서 올라가다보니 로그가 CloudWatch에 적재가 되는데 이 모든것은 비용이 발생한다. 해당 에러메시지를 없애보기로 하였다. 로깅 레벨 변경resources/application.ymllogging.level.org.springframework.web.servlet.PageNotFound: ERROR 위 코드를 properties에 위 처럼 추가하면 WARN 단계인 사진의 에러메시지는 앞으로 찍히지 않게 된다. 그리고관련된 방법을 찾다가 이러한 요청을 하는 Client의 IP 주소를 출력했으면 좋겠다는 질의가 StackOverflow에 올라온 적이 있다. 이 글을 참고하면 관련한 솔루션을 ..

    java.lang.IllegalArgumentException: Malformed escape pair at index 해결

    java.lang.IllegalArgumentException: Malformed escape pair at index 해결

    Error creating bean with name 'postConstructInitializeBean': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Malformed escape pair at index redis 서버와 연동을 테스트 하려던 중 발생한 오류이다. lettuce 에서 뿜어낸 에러 같은데, RedisClient 를 create 할 때 입력해주는 비밀번호에 있는 특정 문자를 제대로 입력 받지 못하는 것 같다. 로 되어 있는 코드를 URLEncoder.encode() 를 이용하여 주었고, UTF-8 로 인코딩 하도록 했다. 이후 에러가 해결되었다. 필자의 경우에는 sprin..

    [Kotlin] Unexpected error occurred in scheduled task (how to solve or fix)

    [Kotlin] Unexpected error occurred in scheduled task (how to solve or fix)

    해당 에러가 발생했을 때 검색을 해보니, Serializable 를 implements 하라고 합니다. 하지만 인텔리제이는 이 인터페이스를 불러올 줄을 모르고 있습니다. 위 에러 메세지에 힌트가 있습니다. java.io.Serializable 에러가 해결되었습니다 :)

    Initialized JPA EntityManagerFactory for persistence unit 'default' Stuct 문제 해결

    2021-09-28 09:44:56.028 INFO 24956 --- [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 위의 메세지는 에러가 아닙니다. 하지만 Spring Application 를 Run 또는 Debug 할 경우 저 부분에서 계속 멈춰있게 됩니다. 해결 빌드 결과물에 문제가 생겼던 것 같습니다. gradle clean -> build 이후에 해결 되었습니다.

    [Querydsl] 하나의 응답을 원할 때, exist 사용을 자제하자.

    우선, 제가 아는 지식내에서는 exist 메소드를 사용함으로 얻는 이점이 없으므로 작성한 내용입니다. 1 2 3 4 5 6 7 8 public Boolean memberExists(Long memberId) { Integer findMember = queryFactory .selectOne() .from(member) .where(member.memberId.eq(memberId)) .fetchFirst(); return findMember != null; } Colored by Color Scripter cs 위처럼 fetchFirst() 를 이용하자. limit(1) 과 동일한 개념이며 사용시 원하는 결과를 찾을경우 쿼리가 종료되기 때문에 성능에 도움이 된다. exist()를 사용할경우 select에..

    [Querydsl] 동적 쿼리를 BooleanExpression 으로 작성하기

    우선 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 @Override public List findDynamicQuery(String name, String age, String phoneNumber) { BooleanBuilder builder = new BooleanBuilder(); if (!StringUtils.isEmpty(name)) builder.and(member.name.eq(name)); if (!StringUtils.isEmpty(age)) builder.and(member.age.eq(age)); if (!StringUtils.isEmpty(phoneNumber)) builder.and(member.phoneNumber.eq(phoneNumbeR)); retu..