트러블슈팅

문제 상황 프로젝트 개발 과정에서 예약 구매 기능을 구현하던 중, 예약 구매 상품이 예약 가능 시간 외에도 구매될 수 있는 문제가 발생했습니다. 이는 사용자가 설정된 예약 시간을 무시하고 어떤 시간에든 예약 구매 상품을 구매할 수 있게 함으로써, 예약 시스템의 본래 목적을 훼손하는 심각한 오류였습니다. 문제 진단 시스템을 면밀히 검토한 결과, 예약 상품을 구매하는 과정에서 해당 상품의 예약 가능 시간을 검증하는 로직이 누락되었음을 확인했습니다. 따라서, 사용자가 예약 상품을 예약 가능 시간 외에도 주문할 수 있게 되어, 예약 시스템의 기능성이 크게 저하되었습니다. 해결 과정 이 문제를 해결하기 위해, OrderService의 addOrderItemsToOrder 메소드 내에 예약 상품의 예약 가능 시간을..
배경 이번 과제는 NewsFeed 기능 개발이었는데, 사용자가 팔로잉하는 다른 유저들의 활동 알림과 게시물을 출력하는 로직을 구현하는 것이 목표였다. 구현 과정에서 Post 모듈과 NewsFeed 모듈 간의 데이터 교환에 있어서 응답 데이터가 null로 반환되는 문제에 부딪혔다. 문제 상황 NewsFeed 서비스는 사용자가 팔로잉하는 유저 목록을 Post 모듈에 전달하고, 해당 유저들의 게시글 목록을 받아 출력하는 구조로 설계했다. 아래는 NewsFeed 서비스의 핵심 로직이다. NewsFeedService WebClient를 사용하여 Post 모듈에 followingIds(팔로잉 유저 목록)를 전달하고, 게시물 목록을 받아온다. @Transactional(readOnly = true) public Li..
배경 및 문제 발생 프로젝트의 보안 강화를 위해 JWT 토큰 기반 인증 시스템에 Redis를 도입하여 토큰의 만료 시간 관리를 계획했습니다. 목표는 JWT 토큰의 만료와 동시에 Redis 내에 저장된 토큰 정보도 자동으로 삭제되도록 하는 것이었습니다. 그러나 초기 구현 후, 예상치 못하게 토큰이 만료된 이후에도 Redis 내 토큰 정보가 지속적으로 남아 있는 문제에 직면했습니다. 문제 진단 "아, 왜 Redis에서 토큰 정보가 계속 남아있지?"라는 의문으로부터 시작된 트러블슈팅 과정은, 처음에는 Redis의 설정 누락을 간과하고 있음을 발견하는 것이었습니다. Redis에 JWT 토큰과 동일한 만료 시간을 설정하는 중요한 단계가 빠져 있었기 때문에, 토큰은 만료되었으나 Redis 내에는 그 정보가 계속 남..
hihyuk
'트러블슈팅' 태그의 글 목록