728x90 TroubleShooting5 자바 Stream peek()이 skip된다? 개요운영 업무를 처리하는 도중, 특정 api 호출 시 성공 응답을 받지만 실제 데이터를 확인해 보면 관련 데이터의 변화가 없다는 문의가 들어왔다. 실제로 로그를 확인해 보니 성공 응답이 리턴되었고, 서비스 로그 상 예외 로그도 발견되지 않았다. 이번 포스트에서는 해당 이슈를 트래킹 하는 과정과 그 과정에서 알게 된 자바 stream의 peek()에 대해 정리해 본다. 원인 파악로그 확인우선 api를 호출한 프로세스의 로그와 응답한 프로세스의 로그를 함께 확인해 보았다. 해당 기능은 기능이 정상 수행되면 변경된 데이터의 수를 리턴해주는데, api 호출 프로세스에서는 해당 데이터를 정상적으로 수신했다. 또한 응답 프로세스에서도 요청 인입 시에 기록되는 로그를 확인할 수 있었고, 예외 로그 또한 찍히지 않았다.. 2025. 7. 15. [Tomcat] FileCountLimitExceededException 이슈 수정 개요회사 업무 중 자바 레거시 버전을 사용하는 서비스의 버전을 업그레이드하는 작업이 있었다. 자바 버전을 올리며 스프링 부트, 톰캣, 아파치 등의 버전도 함께 업그레이드하게 되었는데 그중 톰캣에서 발생한 이슈에 대해 정리한다. 로컬에서 어플리케이션을 구동하여 임베디드 톰캣으로 테스트했을 때는 이상이 없던 multipart 업로드 기능이 개발서버의 톰캣을 통해 구동해서 테스트 하기만 하면 아래와 같은 예외를 던졌다.동일한 버전의 코드로 어플리케이션을 빌드했기 때문에 원인은 임베디드 톰캣 - 설치된 톰캣간의 버전 차이로 추측했고, 그 부분을 중심으로 원인 파악을 해보았다. 원인 파악기능 점검우선 이슈가 어느 기능에 한정되는지를 먼저 정확히 해야 할 필요가 있었다. 이슈가 발생한 기능은 여러 텍스트 입력 값과.. 2025. 6. 28. 왜 ParallelStream을 써도 느릴까? - 자료구조의 중요성 개요담당하고 있는 회사 서비스에는 요청 처리가 지연될 시 알람을 받도록 되어 있는데 아래와 같은 지연 알림을 받게 되어 원인을 파악해 보고, 개선한 과정을 정리하려 한다. 1차 원인 파악지연 관련 정보우선 지연이 발생한 기능이 무엇인지, 어느 정도로 지연이 발생했는지를 정리하면 아래와 같다.기능: 문자 발송 시, 내가 수신자에 번호를 포함하여 발송하더라도 자동으로 필터링할 수신 거부 번호를 저장하는 기능기능 제약 사항: 한 번에 총 5만건 까지 저장이 가능하며, 저장 내용은 휴대폰 번호 - 메모 쌍으로 구성되어 있음지연 정보: 1시간동안 동일 경로 지연 약 10건 이상 발생지연 기능 로직 분석위 내용을 토대로 해당 시간대 발송을 요청했던 사용자의 로그를 파악해보았고, 해당 사용자가 호출한 기능의 구성을 .. 2025. 5. 11. 오라클 like 슬로우 쿼리 개선 개요운영하는 서비스에서 간혹 슬로우 쿼리가 발생하여 DBA로부터 연락이 오는 경우가 있었는데, 운영팀과 협의하여 아파치 유입값 중 10초 이상의 지연이 발생하는 건에 대해 메신저를 통해 알람을 받도록 설정을 해 둔게 있었다.서비스 운영 중 위와 같은 알림을 받게 되었고 해당 로그를 추적해본 결과, 발송 결과를 조회하는 특정 케이스에 슬로우 쿼리가 발생함을 인지할 수 있었다. 원인 파악현재 운영중인 서비스에는 핀포인트라는 모니터링 툴이 연동되어 있는데 해당 툴을 통해 체크해본 결과, 슬로우 쿼리가 발생한 쿼리를 특정할 수 있었다.슬로우 쿼리가 발생했던 쿼리는 대략 아래와 같다 (실제 쿼리를 바탕으로 임의로 작성한 쿼리임).# 수행시간 대략 20초SELECT *FROM message_batch mbLEFT .. 2025. 5. 6. 이전 1 2 다음