reuse Identifier는 무엇일까

7과11사이·2023년 8월 4일
0

UITableView

목록 보기
2/2
post-thumbnail

🔥 모든 내용은 공부하는 차원에서 정리하고 있습니다.
🔥 누락되거나 잘못된 내용이 있다면 알려주시면 감사드립니다!

TableView의 Cell

테이블 뷰를 만들고자 할 때 우리는 cell을 활용한다.
스토리보드에서도 보이는 테이블 뷰의 prototype cell은 아래처럼 하나의 영역을 의미한다.
각 cell별로 저장된 데이터를 불러와서 화면에 출력을 시켜주는 것으로 이해하면 편하다!

reuseIdentifier?

그렇다면 여기서 reuse identifier라는건 무엇이고 왜 필요한걸까?

tableView의 모습을 생각해보자.
테이블 뷰는 투두 리스트 또는 메모처럼 여러 데이터를 일렬로 보관하는 역할을 한다.
데이터가 적게는 몇 개에서 수십, 수백개가 될텐데 - 모든 데이터를 cell이라는 공간에 일일이 넣어 출력을 시키고 보관을 한다면 엄청난 메모리를 잡아 먹을 것이다!

따라서 Swift에서는 reuseIdentifier라는 것을 통해 지정된 cell을 재활용한다.
우리 핸드폰 화면 크기를 생각하면 '재활용'의 의미를 이해할 수 있다.


- 테이블 뷰는 과연 언제까지 데이터를 보여주면 될까?

만약 50개의 투두를 썼다고 가정해보자.
스마트폰은 50개의 투두를 담고 있으니 각 투두별로 메모리에 올려두고 출력시키면 될까?

실질적으로는 데이터가 화면 안에 있을 때, 사용자가 직접 데이터를 볼 수 있을 때만
각 cell에 데이터를 보여주면 된다.
따라서 각 기종마다 화면 길이가 다르겠지만, 테이블 뷰의 데이터가 화면 밖으로 나가는 순간, 해당 cell은 재활용되어 다음 호출될 데이터 값을 담게 된다.
위 이미지에서 "내가 오늘 할 일은" 을 담은 cell은 화면 밖을 나가는 순간
데이터를 담고 있던 cell은 데이터를 앞으로 보여질 데이터를 담는다.

고로, reuseIdentifier은 수백, 천개의 메모나 투두가 있더라도
사용하는 cell은 화면에 들어갈 대략 15~6개의 cell일 뿐이다.

오늘의 요약
reuseIdentifier은 메모리 관리에 좋다~

참고 [링크],[링크]

1개의 댓글

comment-user-thumbnail
2023년 8월 12일

이부분은 생각해보지 못했는데 좋은 정보 얻어갑니당🥰

답글 달기