project/etc4 setInterval로 DB 갱신 여부, WebSocket으로 개선하기 안녕하세요! JSP를 활용한 웹 기반 키오스크 개발 과정에서 겪은 개선사항을 공유하려고 합니다. 많은 관심 부탁드립니다. 🙏 서론고속도로 휴게소 식당에서 식사해 보신 적이 있나요? 손님이 키오스크로 주문하면, 주방에서 주문 목록을 확인하고 조리한 후, 손님은 조리 완료된 음식의 번호를 확인하고 직접 가져갑니다. 아래 이미지를 통해 프로세스를 확인해볼까요? 손님이 번호표를 받고 음식을 픽업하는 과정에서, 주문한 정보가 실시간으로 주방에 전달되어야 합니다.이 과정에서 발생한 문제를 해결한 경험을 공유해보려 합니다. 문제 발생 기존에는 손님이 주문하면 해당 내용이 DB에 저장되고, 주방 페이지에서 이를 실시간으로 갱신하기 위해 setInterval을 사용하여 주기적으로 새로고침하는 방식으.. 2025. 2. 25. AWS 비용, 미니 PC로 해결하기 안녕하세요! 이번에는 AWS 비용에서 벗어나는 방법을 소개해드리려고 합니다. 그리고, Docker를 활용하여 웹 서비스를 배포하는 방법도 소개하려 합니다.서론최근 진행한 프로젝트를 배포하기 위해 AWS 서비스를 활용했습니다. 해당 프로젝트에서 Elastic Search, Mysql, Next 등 서버 성능이 꽤 필요한 기술들을 활용하였습니다. 그러다 보니 무료 EC2 인스턴스보다는 성능이 보장되는 Medium 이상의 인스턴스를 사용하는 것이 필요했습니다. 결국 비용을 지불하고 Medium 인스턴스로 프로젝트를 배포하였는데요. 하지만 환율 문제로 요금 부담이 점점 커져 갔습니다. 이 비용을 아끼기 위해 개인 서버용으로 미니 PC를 구매하게 되었고, 다행히 팀원이 미니 PC 비용을 부담해 주었습니다. 매달.. 2025. 2. 21. 페이징 쿼리 성능 개선 안녕하세요! React와 Node를 학습하기 위해 개인 토이 프로젝트로 블로그 서비스를 개발하면서 겪었던 페이징 쿼리 성능 문제와 그 문제를 어떻게 해결했는지에 대해 공유하려고 합니다. 페이징 쿼리 성능 이슈주로 게시물을 조회할 때, 페이징 쿼리를 사용하는데요, 여기서 직면한 문제를 소개하겠습니다. 페이지 후반으로 갈수록 속도 저하 문제 1, 2페이지와 같은 초반 페이지는 큰 문제가 없었지만, 페이지가 뒤로 갈수록 조회 응답 시간이 점차 느려지는 문제가 발생했습니다. 10만 개의 더미 데이터에서도 느렸고, 100만 개 이상으로 늘어날수록 이 문제는 더욱 심각해질 것이라고 생각했습니다. 문제 분석페이징 처리 과정에서 Limit과 Offset 쿼리를 사용했을 때, Offset 값이 작을 때.. 2025. 2. 19. 최단 경로 성능 개선 서론안녕하세요! TripMate는 국내 여행지를 손쉽게 확인하고 일정까지 수립할 수 있는 여행 추천 서비스입니다. 또한, 다른 사용자들과 여행 정보를 공유하며 소통할 수 있는 커뮤니티 기능도 제공합니다. 여행지 계획을 수립하는 서비스의 특성상, 사용자들이 선택한 여행지 경로를 최단 거리로 계산하여 제공하는 기능이 필요하다고 판단했습니다. 많은 사용자들이 수십 개의 여행지를 선택하며, 이때 최단 경로 기능을 활용할 수 있습니다. 그러나 특정 개수 이상의 여행지를 선택하면 경로 계산 속도가 느려지는 문제가 발생하였습니다.이에 대해 저는 알고리즘을 최적화하여 성능을 개선하였습니다. 지금부터 그 과정에 대해 설명하겠습니다. 최단 경로 성능 이슈 여행지를 10개 이하로 선택할 경우 최단 경로 기능의 사용에.. 2025. 2. 19. 이전 1 다음