---
# System prepended metadata

title: K5 피어세션

---

# K5 피어세션


| K006 | K011 | K026 | K053 | K054 | K058 |
| ---- | ---- | ---- | ---- | ---- | ---- |
|김세진|김지현|박태훈| 전종현 | 정우진 | 최재영 |


## 토론 주제


### 리사이클러뷰 (클릭이벤트 처리, 아이템별 숫자 지정)
- ItemTouchHelper를 활용한 아이템 드래그 이벤트 구현
- HeaderViewHolder와 ItemViewType을 사용해 최상단 만들기
- TouchEvent를 Adapter에서 처리할지 Activity에서 처리할지
- 이벤트 리스너를 바인드에서 처리하지 않기 (ViewHolder)
- 매번 notifyDataSetChanged() 사용하지 않고 DiffUtil 사용하기

### 드로잉 처리
- Canvas의 Path를 사용해서 실시간으로 처리
- Path의 AddPoint 혹은 moveTo, lineTo사용

### MVC 구조에서 역할 분리
- Model : 서비스에 필요한 도메인 데이터와 데이터를 처리하는 부분
- View : 사용자에게 보여지는 부분에 대해 처리 하는 부분
- Control : 사용자의 입력을 받아 처리, 모델과 뷰를 중개하면서 둘 간의 결합도를 낮추는 것을 목적으로 함.

### 직렬화 (상태저장)
- Serializable
    - 부모 클래스가 sealed class 사용하면 하위 클래스의 deserializer를 별도로 지정할 필요가 없음.
    - abstract class를 사용하게 되면 별도로 deserializer를 지정하는 함수를 override 해야함.
- Parcelable(Parcelize)
    - @Parcelize 어노테이션 붙이면 끝남
    - primitive type이 아닌 경우, percelize하는 코드를 구현해야함
    - 리플렉션을 사용하지않아서 성능적으로 우수..하다고 함
- gson
    - 같은 Shape를 상속받아 각자 클래스를 구별하기위해 InterfaceAdapter를 만들어주고, 해당 Json에 ClassName을 기록해 Deserialize할때 판별을 해줄 수 있다

### Bitmap 저장 방식
- Bitmap을 그냥 저장시에는 오류발생
- 모델 클래스가 가지고 있는 데이터는 URI 정보이고, 실제로 사용할 때 이미지 또는 비트맵을 불러와서 사용하는 것이 메모리 관점에서 좋아보임.

### 개인적인 궁금한거
- 코틀린의 null safety
    - if문 vs ?.