SOPT 32기 앱잼 때 한 <건빵>을 리팩토링 하려고 한다
이에 대한 이유는 ... 아래와 같음
사실 가장 큰 이유는 역량 강화겠지..?
성능을 ~에서 ~까지 ~% 개선했다 또는 ~~를 사용해 Developer Experience를 개선했다 등 ...
맨 처음 앱잼 할 때 있었던 기능들이 많았는데, 현실적으로 힘들다는 생각에 다이어트를 많이 시켰다
그래서 그 때 넣고자 했던 기능들 (지도, 위치기반 등)을 추가해야 하는데,
지금 코드에서 추가하면 정말 개판이 될 것 같아 추가 기능 개발 전에 리팩토링을 돌려야 한다는 생각
원래 일정대로라면 작년 말? 쯤에 출시를 했어야 했는데 App Store에서 빠꾸먹어서 ...
계속 미루다미루다 2월 중순쯤에 출시를 했다
무튼 요는 이게 아니라 32기 앱잼이 끝난 이후(2023.08쯤?)부터 지금까지 새롭게 공부한거나 알게 된 것들을 잘 적용해보고 싶은 생각
크게 이렇게 3가지 이유 때문에 리팩토링을 하게 되었다 !!
요번 리팩토링 때는 아래의 것들을 적용하려고 한다
Clean Architecture
넥스터즈 24기를 하면서 리드 개발자 형님의 도움에 클린 아키텍처를 잘 '이해'하게 되었다
그래서 이번엔 실제로 내가 설계하고 적용해보면서 체화하고 싶은 ...!!
Coordinator Pattern
이건 내 개인적인 욕심 ?
원래 ViewController에서 담당하던 '뷰의 전환'이라는 역할을 다른 애한테 넘겨주고 싶었다
그동안 MVC 또는 MVVM 쓰면서 고생 많았지 ㅠㅠ 이제 편히 쉬렴 ... 이제는 역할을 많이 덜어줄거다
Entity 설계
이제까지 프로젝트를 진행하면서 팀원들끼리 크게 Entity를 정하고 간 적이 없었다
그래서 각자 필요할때마다 만들고 싶은 Model을 만들고 .. 하다보니
겹치는 Entity가 많았기 때문에, 이번에는 뷰 보면서 필요한 것들로 적절히 분배하고 설계할 생각
'제대로 된' 디자인 시스템
Funch 프로젝트를 진행하면서 얼추 만들어보긴 했는데 ... 그때도 다시 보면 좀 난잡하다
이제는 그래도 여기저기서 많이 쓰이는 요소들을 묶어서 디자인 시스템으로 관리해보고자 한다
에러처리
부끄럽지만 ... 지금까지 개발 하면서 제대로 된 에러처리를 한 적이 없 ....ㅠ
그냥 냅다return nil로 때려박은 경험이 많다 ...
그래서 요번엔 더 나은 UX를 위해 에러처리도 제대로 해보고 싶은 생각
DIContainer 설계
이것도 Funch 프로젝트를 하면서 처음 알게 된 애인데, 리드 형이 메모리 개선되는 것을 보여주니까 꽤나 유용하다는 생각이 들었다
지난번에는SwiftUI에서EnvironmentObject로 적용했었는데, 이번에는 UIKit에서 나름대로의 방법(?)으로 적용해보고 싶은 생각
Combine
이전에 RxSwift로 플젝을 잠시 진행한 적이 있어서 공부를 좀 했었는데,
역시 순정은 못이기지 ... 는 장난이고
좀 더 Raw 한 Combine도 사용하면서 custom publisher나 subscriber도 만들면 좋은 경험이겠다 싶어서 사용 예정 !
자잘한 것들 더 따져보면 새롭게 적용하려는게 더 많을 수도 있지만 ...
일단은 요정도 생각이 들었다
다 사용할지 안할지도 모르겠고, 해보고 싶은 것들은 이정도 !!
맨 처음으로는 Coordinator Pattern 설계를 하지 않을까 싶다 !
다음 글에 작성할 예정 ㅎ
건빵 레포를 ... 공개하고 싶은데 ... 지금은 너무 부끄러운 코드들이라 ...
리팩토링이 얼추 마무리 되면 공개하겠다 !!