첫 회사에 입사한지도 이제 10개월이다.
졸업을 위해 공들여 진행했던 프로젝트를 출시한지가 엇그제같은데 벌써 1년이 넘었다.
한창 프로젝트 할 때보다 스스로 배운 것도 많고, 출시한 이후로 거의 만져본 적이 없어서, 이 참에 배운 것들을 활용하여 여러가지 개선과 리팩토링을 진행하려 한다.
역시 오랫동안 건드리지 않은 코드에는 거미줄이 생기는 법.
gradle
버전부터 해서 여러가지 마이그레이션 할 부분들이 넘쳐나서 한 번씩 빌드해보며 debug console
에서 친절히 알려주는 대로 따라서 수정했다.
firebase
를 사용했기에 재설정해주니 잘 빌드된다.
기능 테스트 해보면 분명 어디선가 에러가 발생할것이므로, 우선 .gitignore
작성해주고 빌드되는 시점에서 깃허브에 잘 커밋해줬다.
riverpod
패키지를 provider
로 변경, View-ViewModel 구조의 데이터 바인딩을 구현빌드 후 첫 로그인 부터 문제가 발생했다.
Google 소셜 로그인으로 구현했는데, 다음과 같은 에러가 발생했다.
GoogleSignInException(code GoogleSignInExceptionCode.clientConfigurationError, serverClientId must be provided on Android, null)
다음과 같은 해결을 시도했다.
clean
& pub get
google-services.json
재적용firebase_options.dart
파일에서 정의된 FirebaseOptions
내 androidClientId
파라미터에 Google Cloud Console에서 확인 가능한 OAuth 2.0 Web Client 넣고 재빌드전혀 해결되지 않았고 모든 시도에서 동일한 예외가 발생했다.
Flutter 개발자들이 모인 카카오톡 오픈채팅에 조언을 구해서 해결했다.
결국 '라이브러리 버전 문제'였고, google_sign_in
을 구버전으로 고정하고 실행했더니 정상적으로 동작했다.
패키지를 무작정 업데이트하지 않고 호환성을 위해 왜 버전관리와 유지가 중요한지 몸소 느꼈다.
패키지 버전을 안정화하고 빌드 및 기존 기능의 정상동작까지 확인했다.
다음 장부터 본격적인 리팩토링을 기록하겠다.