projects 3

인덱스를 활용한 알림 테이블 조회 성능 개선

본 게시물은 트래블록스 프로젝트를 진행하며 발생한 문제 및 개선 사항을 정리한 글입니다. 배경초기 알림 테이블(notifications)에는 별도의 인덱스가 없이 설계되었지만, 대용량 환경을 대비해 안정적인 성능을 유지할 수 있도록 최적화가 필요하다고 판단했다.따라서 1차적으로는 복합 인덱스를 통해, 2차적으로는 Covering Index 전략을 이용해 조회 성능을 최적화하려 했다.커서 기반 페이징을 이용했기에 사용한 SQL문은 아래와 같았다.SELECT notification_id, created_at, actor_id, actor_nickname_snapshot, receiver_id, template_id, typeFROM notificationsWHERE receiver_id = 1 AND cr..

projects/travlocks 2026.02.24

[트러블슈팅] Redis 캐시 조회 시 Invalid UTF-32 character 발생 문제 해결

본 게시물은 트래블록스 프로젝트를 진행하며 발생한 트러블슈팅을 정리한 글입니다. 이번 프로젝트를 진행하면서 Redis를 처음 직접 사용해보게 되었다.Redis를 사용하게 되는 구간은 템플릿을 개인별로 추천하게 되면그 추천 내역을 redis에 15분 간 저장하여 15분 동안은 같은 추천 내용을 불러오는 부분이다.문제 상황어느정도 코드를 다 구현하고 swagger로 테스트를 하는데,처음(캐싱않고 DB를 통해 추천 결과 조회)에는 조회가 되는데 그 다음(캐싱O)에는 아래와 같은 에러가 발생했다. 예외를 요약하면 아래와 같다.org.springframework.data.redis.serializer.SerializationException:Could not read JSON: Invalid UTF-32 cha..

projects/travlocks 2026.01.29

[개발자랑] ERD

2024년 8월 28일 쯤, 프로젝트를 시작했다. 8월 29일 주제를 선정했고8월 30일부터 9월 3일까지는 MIRO를 통한 이벤트 스토밍,9월 5일부터 9월 8일은 요구사항 명세서,9월 10일부터 9월 12일은 ERD를 작성했다.(수업 이외에 시간에 부담없이 조금씩 하다 보니 오래 걸린 것 같다.) 우리 팀이 정한 주제는 개발자를 위한 커뮤니티로, "개발자랑" 이라는 프로젝트명을 붙여주었다.개발 + 자랑,개발자 + 랑 두 가지 의미가 중의적으로 있는게 참 마음에 든다! 이 서비스의 가장 귀여운 점은회원가입 시 성향테스트를 해서 나온 수식어와 희망 직무를 합쳐 별명(?)을 붙여준다는 점이다 ㅎㅎ  아래는 우리 팀에서 작성한 ERD이다. 연관관계를 쪼개고, 게시판도 여러개 있다보니 테이블이 내 기준 정말 ..