0. LazyColumn에서 Key를 사용하지 않는다면

/**
 * Key를 사용하지 않는 LazyColumn
 */
@Composable
fun NoteList(notes: List<Note>) {
    LazyColumn {
        items(notes) { note ->
            // ,,,
        }
    }
}

LazyColumn으로 구현한 List가 업데이트 될 때

→LazyColumn은 어떤 item이 변경되었는지 알 수 없음. 따라서, 갱신 후 모든 화면에 보이는 item을 재구성.

/**
 * Key를 부여
 */
@Composable
fun NoteList(notes: List<Note>) {
    LazyColumn {
        items(
            items = notes,
            key = { note ->
                note.id
            }
        ) { note ->
            // ,,,
        }
    }
}

LazyColumn에 각 아이템을 판별할 수 있는 고유값을 알려 주기 위한 key 람다를 사용.

상기 코드에서, note의 고유 id를 Key로 전달.

→ 이 방식을 통해 LazyColumn은 실제 변경된 item만 재구성하므로, 효율성 증대.