Android RecyclerView Kotlin 예제: ViewBinding과 ListAdapter로 목록 만들기

이미지
이 글은 2022년에 작성한 RecyclerView 예제를 2026년 기준으로 전면 개정한 글입니다. 기존 URL과 검색 의도는 유지하면서 깨진 이미지와 실행되지 않는 코드를 제거하고, ViewBinding·ListAdapter·DiffUtil을 연결한 완성형 Kotlin 예제로 다시 작성했습니다. Android RecyclerView Kotlin 예제: ViewBinding과 ListAdapter로 목록 만들기 RecyclerView 는 많은 데이터를 목록이나 그리드로 표시할 때 화면 밖의 아이템 뷰를 재사용하는 Android View 컴포넌트입니다. 모든 행을 한꺼번에 만들지 않기 때문에 메모리 사용과 뷰 생성 비용을 줄일 수 있습니다. 이 글에서는 단순히 목록이 보이는 데서 끝나지 않고 다음 요소를 하나의 예제로 연결합니다. 구성 요소 역할 RecyclerView 목록을 화면에 표시하고 아이템 뷰를 재사용 LinearLayoutManager 아이템을 세로 방향으로 배치 ViewHolder 한 행의 ViewBinding을 보관 ListAdapter 현재 목록을 관리하고 변경 목록을 제출받음 DiffUtil.ItemCallback 이전 목록과 새 목록의 차이를 계산 ViewBinding findViewById() 없이 XML 뷰에 안전하게 접근 Android 공식 문서는 새 UI에 Jetpack Compose 사용을 권장하며 RecyclerView 라이브러리는 유지보수 모드입니다. 다만 기존 XML 기반 앱을 유지하거나 View 시스템이 필요한 화면에서는 RecyclerView가 여전히 중요한 선택입니다. 완성할 예제 예제 화면에는 사용자 프로필 목록이 표시됩니다. 아이템을 누르면 즐겨찾기 상태가 바뀌고, 전체 목록이 아니라 변경된 행만 갱신됩니다. text RecyclerViewSample/ ├─ MainActivity.kt ├─ Profile.kt ├─ ProfileAda...

Socket.IO 채팅 만들기 1편: Node.js 서버와 웹 클라이언트 구현

이미지
전면 개정 안내 (2026-07-24) 2022년에 작성한 설치 중심의 글을 Socket.IO 4.x와 ES Modules 기준으로 다시 작성했습니다. 이번 글을 끝까지 따라 하면 방에 입장하고 메시지를 주고받는 웹 채팅을 실행할 수 있습니다. Socket.IO 채팅의 핵심은 단순히 emit() 한 번을 호출하는 것이 아닙니다. 서버가 사용자를 식별하고, 올바른 방에 메시지를 전달하며, 연결이 끊겼을 때의 상태와 중복 전송까지 다뤄야 합니다. 이 글에서는 먼저 학습용으로 충분히 작으면서도 다음 기능을 갖춘 채팅을 만듭니다. 닉네임과 방 이름을 입력해 입장 같은 방의 사용자에게만 메시지 전송 서버에서 입력값과 방 입장 여부 검증 ACK(승인 응답)로 전송 성공 여부 확인 일시적인 연결 끊김 후 상태 복구 메시지 ID를 이용한 화면 중복 표시 방지 Socket.IO와 WebSocket은 같은 것일까? 완전히 같지는 않습니다. WebSocket은 양방향 통신 프로토콜이고, Socket.IO는 그 위에서 이벤트, 자동 재연결, 승인 응답, 방(Room), 브로드캐스트 같은 기능을 제공하는 라이브러리입니다. 환경에 따라 HTTP long-polling으로 연결한 뒤 WebSocket으로 업그레이드할 수도 있습니다. 따라서 순수 WebSocket 서버에 Socket.IO 클라이언트를 바로 연결할 수는 없습니다. 서버와 클라이언트가 모두 Socket.IO 프로토콜을 사용해야 합니다. 항목 WebSocket Socket.IO 통신 방식 표준 프로토콜 이벤트 기반 라이브러리 자동 재연결 직접 구현 기본 제공 방과 브로드캐스트 직접 구현 기본 제공 ACK 직접 메시지 규약 설계 콜백 방식 제공 전송 폴백 없음 long-polling 후 업그레이드 가능 1. 프로젝트 만들기 Node.js의 지원 중인 LTS 버전을 사용합니다. 빈 폴더에서 다음 명령을 실행하세요. bash ...