• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    해결됨

빅데이터 처리관련

24.02.06 08:28 작성 조회수 111

1

선생님 강좌덕분에 무사히 서버 개설과 웹사이트 로드까지 마친 수강생입니다! 감사합니다 ㅠㅠ

제가 만든 사이트는 데이터를 수집하고 그 데이터 중 유저가 원하는 데이터만을 보기좋게 가공해서 화면에 표기해주는 간단하다면 간단한 기능을 수행하고 있습니다. 그런데 그 데이터의 양이 많아지니 로딩 시간이 확 늘어났고 확인해 보니.. sql 쿼리문 자체가 응답시간이 많이 소요되더군요... ㅠㅠ sql 최적화나 index 적용 등은 이미 다했는데도 느리고... 아직 테스트 버젼으로 사실 데이터의 양도 제가 원하는 양에 비하면 턱없이 적은 양인데 벌써 이렇게 느려지니 막막한 심정입니다 ㅠㅠ

해당 강좌와는 크게 관련이 없지만 어디 물어볼 곳도 마땅히 없어서...ㅠㅠ 혹시 관련한 해결 방안이나 추천해주실만한 강좌같은게 있으실까요..?

답변 1

답변을 작성해보세요.

1

안녕하세요.

한번의 API 요청에 모든 데이터를 리턴하는 것은 경험하신대로 비효율적입니다.

일반적으로 게시판에서 이와 같은 상황에 쿼리스트링 등으로 페이징 처리를 합니다.

예를들면 한번에 10개의 데이터만 리턴하게끔 하고,, domain/?page=k

위처럼 k 값으로 조절하기도 합니다.

반면 지도 서비스의 경우엔 스코프에 따라 반환하는 형태를 달리할 수 있을 것 같네요.

지도가 좁아질수록 디테일을 주도록 프로그래밍 하면 되지않을까라는 생각이 듭니다!

감사합니다.

 

전예준님의 프로필

전예준

질문자

2024.02.06

앗... 우선 저는 선생님 강의를 보고 그대로 따라서 맛집지도 유형을 만든 수강생이 아니라... 강의를 참고해서 제가 만들어 보고 싶었던 기능인 '게임 전적검색' 기능을 구현했습니다.

그리고 말씀하신대로 부분부분 호출하기 위해서 처음 로드시에는 가장 최근인 5건의 데이터만 보여주고 스크롤을 내림에 따라 추가적으로 데이터를 5건씩 또 호출하는 방식을 사용중입니다! 다만 제가 1만개의 게임 기록을 데이터베이스에 갖고있을때는 느리지 않던 것이, 5만개의 게임 기록을 데이터베이스에 갖게 되면 느려지는 현상을 겪었습니다...

혹시 이 부분이 문제일수도 있겠다 싶어서 말씀드리자면... 데이터베이스와 백엔드의 서버는 모두 aws ec2 의 무료 모델인 하나의 t2.micro 에 위치해 있습니다.

데이터베이스랑 서버랑 분리할 때가 된 것 같네요.

프리티어에 포함되는 RDS로 데이터베이스를 관리하시고, ec2는 백엔드 서버로만 사용해도 되구.. 그냥 더 좋은 컴퓨터를 빌리셔도 됩니다! ㅋㅋ

전예준님의 프로필

전예준

질문자

2024.02.07

공짜 개발의 벽이었나보네요 ㅠㅠ 답변 감사합니다!