Study/Dev Note

[Android] 비슷한 듯 다른 컴포넌트 데이터 구조 분리하기

latteeea 2025. 12. 31. 16:40

이런식으로 설문조사라는 형식에서는 같은 종류인데, 추후 데이터 분석 시에는 전자의 경우는 문자열로, 후자는 정수(숫자)로 구분되어야 편한 경우가 있다. 

질문지 박스의 title이나 인덱싱 표현의 디자인이 동일해서 같은 컴포넌트로 처리하기 위해

후자의 경우 "1점\n추천하지 않을래요" <- 이런식으로 설문 선택지 구조는 같게 하되 문자열로 서버에 날리고 서버 단에서 정수 처리해서 계산하려고 했는데 그것보다 프론트 단에서 질문 타입을 나눠 관리하는 게 나을 것 같다고 생각했다.

그 이유는 

1. 추후 점수화 하는 다른 질문이 들어가야 할 때 선택지의 표현을 쉽게 바꿀 수 있다

2. 질문 타입(data class)에 따라 UI를 다르게 할 수 있다. 전자는 그리드 선택형, 후자는 바 선택형인데 이 디자인을 나누는 분기 기준을 질문 index로 하는것보다 question type으로 나누는 게 추후 다른 사람이 볼 때 명확하게 구분된다.

+ 또한 index가 달라지거나 늘어나면 분기식이 복잡하게 꼬여서 알아보기 힘들것,,

 

이런 이유 때문에 data class 정의 하는 부분에서 question data를 scoreQuestion과 choiceQuestion으로 나눴다. 



ㄴ 기존 코드


ㄴ 바뀐 코드

 

sealed Class로 추상클래스를 만들어주고 ChoiceQuestion과 ScoreQuestion으로 나눠 관리한다. 

비슷한 듯 다른 것들을 처리하기 위한 '상속'의 필요성을 다시 한 번 느낀다.