제 프로젝트는 사용자가 특정 차트를 고르면, 전 종목의 과거(10년) 차트들을 모두 탐색하여 가장 유사한 차트들을 골라 사용자에게 보여줍니다.
비슷한 차트 검색기
전 종목의 최근 10년간 모든 차트를 탐색합니다. 내 종목의 차트는 과연 상승하는 차트일까요?
www.similarchart.com
부하 테스트
3명만 와도 서버 터지는 건 아니지?
저는 전에 포스팅했던 글에서 웹사이트를 다 만들었다고 했습니다. 하지만 사실 끝이 아니고 이제 시작입니다. 아직 테스트해야 할 것들이 많고, 분명히 예상치 못한 버그/오류가 많이 튀어나올 것입니다.
가장 먼저 테스트해야 할 것은 여러 사람들이 제 웹사이트를 동시에 이용해도 문제가 없는지 확인하는 것입니다. 웹사이트를 제작할 때 캐시와 여러 알고리즘을 활용해 최대한 응답 시간을 줄였습니다만, 혹시 모르죠, 사용자가 3명만 되어도 서버가 먹통이 될 수도 있는 노릇입니다. 아무래도 한 달에 2만 원대인 저렴한 ec2를 사용 중이라 걱정이 되었습니다.
특히 사용자가 특정 종목을 골라 그 종목과 비슷한 차트를 탐색하여 응답하는 부분이 있는데, 약 천만 개의 데이터를 탐색하기 때문에 응답 시간이 꽤 길었습니다.(약 10~15초)
만약 10명의 사용자가 동시에 위 요청을 보내면 서버에 부하가 많이 가거나 응답시간이 매우 느릴 수도 있을 것 같아 걱정이 되었습니다. 그래서 점진적으로 이용자의 수를 늘려가며 테스트를 진행하기로 했습니다.
떨리는 첫 공개 순간
2월 9일 구글 애드센스를 붙이는 것을 마지막으로 사람들에게 제 웹사이트의 링크를 공개했습니다. 한두 명씩 제 웹사이트에 방문하는 것을 로그로 지켜보니 뭔가 뿌듯한 기분이 들더군요.
첫 번째 날은 아주 조금 홍보하고, 두 번째 날은 홍보를 더 늘리고, 세 번째 날은 좀 과하게 홍보를 했습니다. 그 결과 초당 5번 이상의 트래픽을 얻을 수 있었습니다.
일단은 한숨 돌렸다
로그를 실시간으로 지켜본 결과, 서버에는 큰 문제는 없는 것 같고, 응답시간도 괜찮아 보입니다.
응답 플로우 곳곳에 캐시를 적용한 것이 효과적인 것 같습니다. CloudFlare(CDN) - Nginx(Web Server) - EC2 Volume(Storage) - Redis(Memory DB) 등 최소한 4곳 이상에 캐시 로직을 두었습니다.
일단은 괜찮아 보이지만, 이후에도 모니터링을 계속할 예정입니다.
'프로젝트' 카테고리의 다른 글
프로젝트24. 새로운 도전(앱개발) Start! - 리액트 네이티브 VS 플러터 (0) | 2024.03.11 |
---|---|
프로젝트23. 또 하나의 희망, 비슷한 차트들을 활용한 주가예측 검증 Start (0) | 2024.03.10 |
프로젝트21. 서비스에 광고를 달아보자! (애드센스 9번째(4달만)에 승인) (0) | 2024.03.10 |
프로젝트20. 프로젝트 아키텍처 정리 (0) | 2024.02.17 |
프로젝트19. 두번째 도전 Start - 앱을 만들어 보자! (그런데 아는게 없다) (0) | 2024.02.17 |