본문 바로가기

전체 글

(9)
[최종 프로젝트] [백엔드] 랜덤 10명을 뽑을때 어떻게 해야 빠르게 가져올까 백엔드 개발을 처음 시작하면 텅 빈 데이터베이스를 마주하게 됩니다. 기능이 "작동"하는 것만 확인하려면 데이터 몇 개면 충분하지만, 실무에 가까운 환경을 경험해보고 싶어서 더미 데이터를 열심히 채워 넣고 있었습니다. 목표는 유저 100만 명. 그런데 이 데이터를 가지고 **"비회원 10명을 랜덤으로 추첨해 쿠폰을 지급하는 기능"**을 구현하려다 보니, 예상치 못한 성능 이슈와 마주하게 되었습니다. 오늘은 그 삽질의 기록과 해결 과정을 정리해 보려 합니다.1. 상황: 100명일 땐 몰랐던 것들초기 개발 단계에서 유저가 100명일 때는 아주 단순하게 접근했습니다.Java // User 100명을 전부 가져와서 애플리케이션에서 랜덤 선택List users = userRepository.findAll(); Co..
[최종프로젝트] MySQL에서 ORDER BY RAND() 사용 시 성능 문제 및 해결 전략 번역 및 요약 https://jan.kneschke.de/projects/mysql/order-by-rand/ 요약 및 정리 MySQL에서 ORDER BY RAND()를 사용할 때 발생하는 성능 저하 문제를 근본적으로 해결하는 실용적인 데이터베이스 튜닝 가이드입니다. 이 콘텐츠는 대량의 데이터에서 무작위 행을 추출할 때 ORDER BY RAND() 대신 MAX(id)와 RAND()를 조합하여 쿼리 속도를 획기적으로 개선하는 구체적인 SQL 기법과, 데이터 삭제 시 발생하는 ID 공백(Holes) 문제를 관리하는 트리거 설정 방법까지 상세히 다룹니다. 데이터베이스 성능 최적화에 관심 있는 개발자라면, 이 글을 통해 실제 적용 가능한 고성능 랜덤 추출 전략을 즉시 습득할 수 있습니다. 1. MySQL에서 ORDER B..
[명동] 칼국수 맛집 - 명동교자 0.특징 수요미식회 2회 미쉐린 가이드 SEOUL 2020 만두 포장가능 0. 위치 명동 교자 서울 중구 명동10길 29 1. 메뉴 및 운영시간 평일 10:30 ~20:30 주말 10:30 ~21:30 공휴일 10:30 ~21:30 메뉴 가격 칼국수 9000 만두 10000 ※ 밥은 달라고하면 주십니다. 국수 인원에 맞게 주문시 면 무한리필 2. 후기 여자친구랑 만두1개 칼국수 1개를 주문했습니다. 밥까지 말아서 먹었습니다. 밥은 원하는데로 주시니까 걱정하지 마세요! 둘이서 배부르게 먹었고 맛은 처음에 먹을때는 뭐야 이게 이렇게 생각했습니다. 만두는 맛있구요 알이 꽉찬게 좋습니다. 칼국수는 김치 + 면 + 국물 3가지 조합을 한번에 먹으니까 정말 담백하니 맛있습니다 .재방문 의사 있습니다. 집 근처면 1..