마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

ArrayList를 static으로 사용중인데.. 질문있습니다..

0 추천
안녕하세요 요즘 static에 맛들린 초보개발자입니다..

 

서버와 통신을 할때 어싱크태스크를 통해서 값을 쫙 받아오는데

요즘 이 부분을 static Array로 받고있습니다.

 

처음에는 static으로 안놓고 멤버변수로 넣은후에 이동하는 페이지에

넘겨주고, 또 다시 어댑터에 넘겨주고 하면서 Recyclerview에 뿌려줬었는데..

어찌 하다가 static으로 한번 써봤는데 이게 너무 편한겁니다..

 

이 List가 한 Fragment에 적용되는게 아니고 여러군데에서 사용하기 때문에

더 이렇게 느꼈는지도 모르겠습니다.

 

static에 대해 아에 모르는건 아니고 예전에 한번 파고들은적도 있었습니다..

많은 단점들이 있겠지만 아무래도 가장 큰 문제는 메모리 문제일 거 같은데

class 변수이기 때문에 가비지컬렉션 대상이 안되는걸로 알고 있는데(대신 빠른점도..?)

이 부분은 list 사용 종료함과 동시에 null처리 하면서 나름 대비를 하고 있지만..

정확히 잘 처리되는건지 모르겠고 찝찝함이 있습니다..

 

그리고 두번째는 아무래도 오류가 발생했을때 발견하기 힘들다 정도 일거 같은데

에러가 예상되는 부분이 static으로 선언된 변수를 변경하거나 동시접근할때 생길거 같은데

제가 사용하는부분에서는 변경이나 동시접근하는 부분이 없어서 문제가 없을거 같은데..

역시나 찝찝한 부분이 있네요..

 

static을 사용하는 이유가 편한면도 있지만.. 접근속도가 빠르다라는점과 가독성을 위해서 쓰는면도

있습니다..

 

이렇게 static으로 사용하는 Arraylist는 한 40개정도 됩니다..

(앱을 실행하자마자 static 40개가 먼저 메모리는 차지하겠죠. 이 부분이 클까요?..)

 

이 부분이 앱 성능상 독이 되는 부분일까요?.. 아직 개념적으로 부족해서 싹 뜯어고쳐야할지

냅둬도 될 지 잘 판단이 안됩니다 ㅠㅠ.
익명사용자 님이 2016년 11월 14일 질문

1개의 답변

+1 추천
 
채택된 답변
좋은글이 있어서 링크 남김니다.

http://darrysea.tistory.com/21

 

추가: 저같은 경우는 공용변수나 메소드의 경우 application안에 몰아 넣고 씁니다 -_-a
익명사용자 님이 2016년 11월 14일 답변
...