210202
코드의 퀄리티에 대한 생각 본문
이번에 더치 업데이트 과정에서 겪은 경험을 통해 코드의 퀄리티를 어느정도 보장하는 방식에 대해 써보려고한다.
다음은 실제 더치에서 동작하는 프로세스이다.
1. 버튼 추가
2. 버튼 클릭 -> 검색화면 이동
3. 검색 -> 검색된 결과 리스트표시
4. 검색결과 클릭 -> 위치확인화면 이동
5. 확인버튼 클릭 -> 메인화면 이동
여기서 버튼을 추가하는 기능이 버튼을 동적으로 추가하는 방식이라 만들어진 버튼 개수를 저장하는 버튼리스트를 만들어서 기능을 구현했었다.
여기서 들었던 의문은 '굳이 버튼리스트를 만들어야하나?'였다.
이미 사용자가 선택한 위치들을 저장하는 위치리스트가 있었고, 이를 활용하면 충분히 대체할 수 있을 것 같았다.
조금 더 생각해보니 '버튼을 동적으로 추가하는것이 필요한가?'라는 생각이 들었다.
프로그램의 동작흐름상에서 보면 확인버튼을 누르면 위치리스트에 데이터가 추가되고 추가된 데이터를 기반으로 버튼을 생성하고 표시해주면 더 원활했기 때문이다.
그리고 기존방식과 새롭게 수정한 방식의 차이점을 비교해봤다.
기존방식
동적으로 버튼추가
장점
- 추가한 버튼을 눌러 해당 위치를 수정 할 수 있음
단점
- 위치를 수정하기 위해 선택한 동적버튼의 위치를 저장할 변수와 버튼의 개수를 저장하기 위한 리스트를 사용해야함
- 버튼을 하나씩 계속 추가해야함
새로운 방식
위치설정 후 버튼추가
장점
- 버튼을 계속 추가하지 않아도 됨
- 위치데이터를 저장하는 리스트 외에 다른 변수들을 생성하지 않음
단점
- 위치 수정불가
코드의 퀄리티, 프로그램의 동적흐름, UX 3가지를 고려했을 때 기존 방식보다 새로운 방식이 훨씬 나았다.
이 경험을 통해서 내가 생각한 코드의 퀄리티를 보장할 수 있는 방식은 다음과 같다.
1. 프로그램의 흐름이 자연스러운지 생각한다.
2. UX측면에서 불편한 부분, 개선할 부분이 있는지 생각한다.
3. 사용하지 않아도 될 것 같은 코드가 있는지 확인한다.
프로그램의 흐름을 생각하다보면, 자연스럽게 기능을 단순하게 생각하게된다. 기능이 단순해지면, 메소드 작성도 단순해진다. 그럼 코드의 퀄리티가 높아진다.
UX의 불편한 부분과 개선할 부분을 고치다보면, 동작이 간결해진다. 동작이 간결해지면 기능도 간결해진다.
사용하지 않아도 될 것 같은 코드를 고치면, 클래스가 가벼워지고 그에따라 코드의 가독성이 증가하게 된다.
이 3가지 방식을 앞으로 진행할 프로젝트에서 기획단계 및 리팩토링시에 적극적으로 사용해볼 생각이다.
'메모장' 카테고리의 다른 글
OP.GG 제 1회 정보통신 써-비스 대잔치 합격후기(feat. 개인적인 끄적끄적) (0) | 2021.06.26 |
---|---|
DataBinding와 BindingAdapter 사용 시 조심해야할 사소한 것 (0) | 2021.06.11 |
코드 루틴 (0) | 2021.03.06 |
2021년 개발계획 (0) | 2021.01.12 |
나와 반대의 의견을 가진사람의 의견을 집중해서 들어야하는 이유 (0) | 2020.07.21 |