왕이될상
57
2020-10-25 21:40:07
9
315

안드로이드 DB접근속도 개선방법??


안녕하세요

안드로이드 스튜디오로 앱 개발중에 있습니다.


예를 들어 게시판 기능같은 경우

서버를 요청을 보내고 -> DB쿼리실행 -> JSON형태로 반환값 리턴 -> JSON파싱하여 게시판 띄우기

위 프로세스로 하고자 하는데,


게시판 글 1개당 사진이 1개씩 있어 속도가 느립니다.

10개 불러오는데 2초정도 걸려서 깔끔하지가 않네요


혹시 DB접근속도를 빠르게 하거나,, 다른 방법이 있나요??


서버는 Tomcat 이용하고 있고, DB는 MySQL사용중입니다.

0
  • 답변 9

  • devcrema
    1k
    2020-10-25 22:01:51

    보통 사진은 db에 넣기보다는 CDN이나 파일형태로 별도의 api를 통해 다운받게 하는게 좋습니다.

    db에는 해당 파일의 url만 넣으면 되는거죠.

    그렇게 하면 먼저 게시물들을 보여주고 받은 데이터로 이미지를 10개를 병렬적으로 요청한 후에 받은 순서대로 이미지를 그려줄 수 있습니다.

  • siva6
    5k
    2020-10-25 22:02:15

    어떤 구간에서 소요되는 시간이 긴가요?
    어떤 영역인지에 따라 사용할 방식도 달라집니다.

    DB Query자체가 느리면 쿼리를 튜닝해야 하고,
    이미지가 뜨는게 느리다면 cdn을 사용하거나, resize가 필요할 수 도 있구요.

    DB 접근속도가 connection time을 이야기하시는 거면 pooling을 사용하면 좋아질 수 있습니다.

    좀 더 확인이 필요합니다.

  • 왕이될상
    57
    2020-10-25 22:12:59

    ㄴ devcrema 님

    제가 설명이 부족했네요 ㅠㅠ

    넵 말씀대로 DB에는 해당 파일  URL만 넣고 
    URL에 다시 요청하여 사진을 불러옵니다!


    혹시 병렬처리에 대해서는 어떤 방법을 이용해야 할까요??

    이론적으론 알고있는데 무엇을 사용해야하는지 잘 모르겠습니다 ㅠㅠ


  • 왕이될상
    57
    2020-10-25 22:16:25

    ㄴ siva6 님

    답변감사합니다!

    제 생각에 DB 쿼리 상태는 문제없어보입니다..


    어떤 버튼을 눌렀을 때 게시판 글을 불러오고 

    불러온 데이터를 리스트 뷰에 띄우게 되는데

    이 때 2초간의 멈춤? 현상이 발생합니다.


    사용자입장에서는 매우 좋지않아보이는데 

    이를 해결할 방법이 있을까요??


  • kimchs9325
    333
    2020-10-26 01:11:54

    이미지를 불러들이는 속도에 문제가 있는 듯 하네요.

    glide라이브러리를 통해서 url 이미지를 불러보세요.

  • 왕이될상
    57
    2020-10-26 01:22:01

    ㄴ kimchs9325 님

    오!! glide 의 존재를 까맣게 잊고 있었네요..

    감사합니다!! 해봐야겠네요 !!!

  • 김백수
    1k
    2020-10-26 07:03:36

    멈춤 현상이라고 하시는 걸 보면 그냥 안드로이드쪽이 문제인것 같은데요

    우선 리스트뷰도 리사이클러 뷰로 바꾸시는게 장기적으로 좋고

    자바를 쓰시면 asyncTask나 코틀린을 쓰시면 coroutine 같은걸 찾아보시고 비동기 처리에 대해 고려하셔야해요.

    비동기 처리나 리사이클러뷰는 그냥 기본중에 기본

  • 왕이될상
    57
    2020-10-26 15:03:20

    ㄴ 김백수 님 

    답변감사합니다!

    게시판 글이나 카드뷰를 10개씩 불러오려고 하는데,

    혹시 리스트뷰와 리사이클러뷰의 성능차이가 많이 큰가요??


    윗분 말씀대로 glide를 적용해보니
    확실히 속도가 빨라지긴 했습니다!

  • kimchs9325
    333
    2020-11-09 20:18:05

    https://medium.com/meatball-io/listview-and-recyclerview-performance-on-android-f6e9b8079a1a

    recyclerview가 listview보다 메모리를 덜 쓴다고 하네요.

  • 로그인을 하시면 답변 을 등록할 수 있습니다.