좋습니다
LazyColumn을 이해하기 위해서 예시로 루시와
루시의 무한한 책장 이야기를 잠시 보겠습니다
바쁜 도심 한가운데 루시의 마법 서점이 있었습니다
루시의 서점은 방대한 양의 책 뿐만 아니라 '무한한 책장'이라는
특별한 책장으로 인해 유명했습니다
많은 사람들이 멀리서부터 이 책장을 보러 왔습니다
처음에 봤을 때는 몇 권의 책이 있는 평범한 책장처럼 보였습니다
그러나 방문자들은 책을 보다보니 책장이 영원히 계속되는 것처럼 보이는 것을 깨달았습니다
책이 점점 더 계속 보인다는 것을 알았습니다
비밀은
바로 이 무한한 책장은 보는 사람의 눈에 바로 보이는 책만 보여주는 것이었습니다
방문자들이 훑어 보면서 새로운 책이 나오고 시야에 벗어난 것은 마술처럼 사라지는 것입니다
책장이 언제나 꽉 차지 않고 항상 매끄럽게 운영되게 하는 것입니다
어느 날 제이미라는 호기심 가득한 젊은 프로그래머가 무한한 책장에 놀라 루시의 가게를 방문합니다
제이미는 놀라서 말합니다, 마치 Android 앱 개발을 위한 Jetpack Compose에 있는 LazyColumn과 똑같아요!
흥미로워진 루시는 제이미에게 설명을 부탁합니다
제이미는 대답합니다, Jetpack Compose의 LazyColumn은 환상적인 도구로 개발자가
시스템을 과부하 시키지 않으면서 긴 목록을 만들 수 있도록 하는 도구입니다. 당신의 책장과 같습니다
화면에 보이는 항목만 렌더링하는 것이어서 사용자가 화면을 스크롤하면서
새로운 항목이 생성되고 화면에서 사라지는 항목을 폐기되어 최적화된 성능을 보장하는 것입니다
루시는 웃으며 그녀의 무한한 책장과 LazyColumn이 같은 마법을 공유한다는 것일 깨달았습니다
차질 없이 끝없는 목록을 효율적으로 표시하는 것입니다
이 이야기를 즐기셨기를 바랍니다
이 이야기를 통해 LazyColumn의 대략적인 개요를 이해하셨으면 좋겠습니다
이제부터 LazyColumn을 이용하여 목록이 composable(컴포저블)하도록 만들어서 목록 항목이 무한정으로 표시
될 수 있도록 만들 것입니다
어느 SNS 앱을 사용하면 알 수 있듯이
스크롤을 계속 내려도 영원히 멈추지 않습니다, 그렇죠?
이와 같이 스크롤하며 본 항목이 모두 저장된다면
메모리가 상당히 빨리 소진될 것입니다
이런 현상은 LazyColumn을 통해 피할 수 있습니다
기본적으로 LazyColumn은 보여지는 것만 로딩하는 것입니다
그래서 Lazy(게으른)이라고 부르는 것입니다
우리가 지금까지 사용한 것과 동일하게 column composable이고 항목을
서로 위에 올려놓을 수 있으나 게으르기 때문에 필요한 내용만 표시하고
다른 항목은 무시하거나 폐기하는 것입니다
좋습니다 이제 이것을 사용해 보겠습니다
다음 영상에서 시작해 보겠습니다