250108 백로그 추가 및 코드 유지보수성 개선점 파악 - Team-HGD/SniffMEET GitHub Wiki
백로그 정리
1주차 프로파일링 결과에서 발견한 개선 필요 부분들을 2주차에 적절하게 배분하였다.
- TextField 딜레이
- 메이트 목록 테이블뷰 페이지네이션
코드 복잡도 / 중복도를 체크하는 방법
클래스 등을 기준으로 비교하여 중복도를 체크할 수 있어 보인다.
수치화는 해당 클래스들의 개선 전/후를 이용해 코드 감소량으로 파악할 수 있다.
[리팩토링 회고 - 복잡한 코드, 중복 코드, 비효율적 코드 개선 경험](https://upcurvewave.tistory.com/593)
맥케이브 순환복잡도
- 수식으로 나오는 코드 자체의 복잡도
- 측정하는 툴이 있으나 Swift용은 못 찾았음
- 원래는 수동으로 그림 그려가면서 하는거… 그런데 이걸 하는 당시에 하는게 아니라 나중에 하는건…
복잡도 / 중복도는 개발자 입장에서 유지보수를 편하게 하기 위함이니 문제점을 파악해 해결해가는 과정을 위주로 해도 될 것 같다. 복잡도가 높은 부분은 거의 없다고 판단. (있어도 핵심 부분은 아니기 때문에 개선 임팩트가 크지는 않아 보인다.)
확장해서 유지보수성을 높이는 쪽으로 가는 것은 어떨지? → Good
- Repository 사용
- 특정 패턴 등 추가 도입해 유지보수성 개선
- VIPER 패턴(모듈이 전부 같은 로직) 개선해볼 수 있을듯
몰리오의 특정 API 동작 중지 → 변경 쉽게 가능 → 좋은 유지보수 사례인듯
복잡도 / 중복도 보다는 결합도 위주로 확인-개선!
개선이 필요한 코드
- 결합도가 높은 코드
- MPC - NI
- Supabase 레이어 자체 (특히 세션매니저 부분)
- Entity - DTO 확실한 구분이 안되고 있음
- 메이트리스트에서 친구 찾는 기능 (뷰와 기능 분리)
- 에러 처리 개선
- 커스텀 에러 enumeration 타입 자체의 네이밍부터 통합했으면 좋겠습니다.
- 기존 에러 / 만든 에러 구분이 어려웠다
- description도 따로 빼서 만들었으면 좋겠다.
- 보통 앱에서 사용하는 에러 정의시 하나의 타입으로? 레이어마다?
- 레이어마다.
- 디렉토리 정도는 하나로 통합할 수 있다
- 사용자에게 보여지는 에러 / 개발자 딴에서의 에러 구분
- 사용자 - 진원님의 custom alert 사용해 에러 제공
- 커스텀 에러 enumeration 타입 자체의 네이밍부터 통합했으면 좋겠습니다.
- persistence 타입을 구현하는데 있어서 추상화 포커스 통일 필요성
- 레이어마다 추상화하는 포커스 통일 (가능한 부분들)
- 에러를 throw하는데, 이걸 핸들링 하는 부분을 어떤 바이퍼 모듈에서 처리해야 하는지 일관성을 가졌으면 좋겠습니다.
- ex) Interactor 모듈에서 do-catch 이용해서 처리하기 아니면… 다른 모듈에서 할 것인지
- 마찬가지로 VIPER가 아닌 애들 (네트워크 수파베이스 등등)도 일관성이 있어야 할 것 같습니다.
- 레이어 내부에서 각각 기준을 만들어야 할듯 ex) 수파베이스는 어떤 매니저에서 처리한다던지…