본문 바로가기

web59

[SpringBoot] JPA Hibernate Assertion Failure 트러블슈팅 지금 있는 회사에서 기존 레거시 서비스를 운영중이다. 근데 보다보니 자꾸 특정시간만 되면 main 페이지가 느려지는게 아닌가? 확인해보니 매시간 정각에 back단에서 배치서비스가 실행이 되는데, 문제는 그 서비스가 실행되는 동안 다른 호출이 DB에 접근을 못한다는거다. 그 이유를 확인해보다 정리하는 글 일단 에러는 이렇다. 2024-07-10 00:01:00.995 WARN 7618 --- [scheduling-1] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 0, SQLState: S10092024-07-10 00:01:00.996 ERROR 7618 --- [scheduling-1] o.h.engine.jdbc.spi.SqlExceptionHelp.. 2024. 7. 12.
[JAVA] Collection forEach vs Stream forEach Java8 에서 Stream이 도입된지는 꽤 오래전 일이다. 개발하면서 문득 궁금해서 검색하다가 정리해보는 글.Collection.forEach 메서드로 반복할 때와 Stream.forEach 메서드로 반복할 때는 무슨 차이가 있을까?  ✔️ 동시성 문제Collection.forEach의 경우엔 수정을 감지한 즉시 ConcurrentModificationException을 던지며 프로그램을 멈춘다. ConcurrentModificationException이란 한 오브젝트에 대해 허가되지 않은 변경이 동시적으로 이루어질 때 발생한다. 대표적으로 Collection이 반복되는 동안 Collection을 수정할 때 발생한다.아래의 코드는 List의 element가 짝수이면 remove 하는 Consumer를 .. 2024. 6. 11.
[JAVA] Stream for each vs for-loop Java8 부터는 Stream과 Lambda를 제공한다.자바에서 Stream은 컬렉션 등의 요소를 하나씩 참조해 함수형 인터페이스(람다식)를 통해 반복적인 작업의 처리를 가능하게 해준다. Stream이 반복적인 일의 처리가 가능하므로, 반복문(for-loop 등)을 대신해 Stream을 사용하는 경우가 많다. 요즘 함수형 프로그래밍이 대세니 무조건 반복문 대신 Stream을 써야지! 라고 생각했다는 사람있다면 바로 나야나!!! 하지만 이거슨 크나큰 오산이었다. ✔️ 헿 Stream 좋은데? 😀😀아니, 함수형 프로그래밍 하는 게 어때서 왜 막는 거지! Stream을 쓰면 가독성도 올라가고 좋은 것 아닌가?? Stream을 쓰면 중첩된 for문/if문 여러 개를 보는 것보다 훨씬 읽기 쉽고 이해하기도 편.. 2024. 6. 11.
MapStruct NullpointerException 빌드 실패 프로젝트 세팅하다가 MapStruct 라이브러리를 이용하여 Mapper Entity 변환하다가 자꾸 NullPointer Exception 때문에 미추어 버리는줄알았다. ERROR: Internal error in the mapping processor: java.lang.NullPointerException .... 중략 프로젝트가 메이븐으로 되어있어서클린도 해보고.. 재인스톨도 해보고,  IntellJ 캐시까지 비웠으나 응 그래도 여전히 안되~ 결국 구글링으로 검색하다가 찾아낸 방법 1. Mapstruct 버전업 (기존 서비스상태에 영향도가 있을수도 있기에 하지 않았다.) 2. 옵션세팅  마지막 VmOption에 -Djps.track.ap.dependencies=false 추가 잘된다 ㅠㅠ 웃긴게,.. 2024. 5. 2.