db3 트러블 슈팅 - Project의 bookmarkCount 컬럼이 null로 초기화됨 🚨문제프로젝트 북마크등록 관련 기능에서 다음과 같은 오류가 발생하였습니다."런타임 오류 발생: Cannot invoke "java.lang.Integer.intValue()" because "this.bookmarkCount" is null" Project의 컬럼값인 bookmarkCount가 null이라는 것입니다. 하지만 DB에 저장할때 다음과 같이 0으로 초기화 되도록 구현되어있었습니다.@Column(columnDefinition = "INT DEFAULT 0")private Integer bookmarkCount; 그럼에도 불구하고 Project가 생성될때 bookmarkCount는 null로 저장되었습니다. 그러다보니 북마크를 등록할때도 처음 bookmarkCount에1을 증가시킬때 오류가 다.. 2025. 5. 29. [ MOIM ] 파티셔닝을 통한 알림함 조회 성능 개선 - 1 서론MOIM의 알림함 기능은 동아리 관리시스템인 만큼 사용자가 모임의 이벤트(알림)을 놓치지 않도록 하는 중요한 기능 중 하나입니다.하지만 서비스 특성상 다수의 사용자들에게 알림을 보내야하기 때문에 알림 데이터의 양은 가파르게 증가하였고, 읽기 및 필터링 성능 저하 문제가 나타났습니다. 기존에는 모든 알림 데이터를 하나의 테이블에서 모두 관리하고 있습니다.이로 인해 알림 테이터가 수백만 건 이상 쌓이면서 조회 성능이 저하되었습니다. 또한 정리가 늦어질수록 계속해서 데이터가 많아지면 구조 개선이 어려워지기 때문에 우선순위를 높여서 진행하게 되었습니다. 알림서비스의 특징은 다음과 같습니다.1. 모든 종류의 알림을 조회할 수 있다.2. 읽은 알림, 읽지 않은 알림을 구분해서 조회할 수 있다. 3. 최근 2주.. 2025. 5. 9. 1000TPS를 견디는 모임 서비스 모임 서비스는 이번 서비스의 핵심 서비스로 해당 서비스가 망가지면 정상적으로 서비스를 운영할 수 없음. 그렇기 때문에 가용성이 높아야 함. 1000TPS를 견디는 것을 목표로 성능 개선을 할 예정 모임 서비스 유저 권한 체크 api 테스트 쓰레드들의 수 : 1000Ramp-up : 1초지속시간 : 60초상수처리량 타이머 :60000각 스레드당 1초에 한번씩 요청 (1000TPS 테스트) 결과TPS가 평균 903 나왔음.이에 따라 응답 지연시간은 평균 496ms연결 휙득 시간이 0.8초가 소요됨. 현재는 기본값으로 10개의 커넥션 풀을 사용하고 있음. 이를 늘려보고 테스트해보자.spring.datasource.hikari.maximum-pool-size=30spring.datasource.hikari.mi.. 2025. 4. 28. 이전 1 다음