강의 수강을 마치며..

sihyun·2024년 4월 3일


내가 느낀 강의 주요 포인트

  • Riverpod를 사용한 상태관리
  • Authentication Logic
    • Retrofit
  • Pagination 일반화
  • UX

상태관리

강의를 듣기 전까지는 상태 관리에 대해 어떤 변수나 데이터에 대해 글로벌하게 사용할 수 있게 해주고 그 변수나 데이터와 관련된 로직을 한 클래스 혹은 파일에서 작성할 수 있게 해주는 디자인 패턴의 한 종류로 생각하고 있었다.

하지만 강의를 듣고 난 뒤 나의 생각은 상태 관리란 앱에서 사용되는 도메인과 관련된 모든(어떠한) 형태의 데이터를 관리하고 사용할 수 있게 해주는 것이란 생각이 들었다. 예를 들어 이번 프로젝트에서는 auth_provider를 제작해서 인증과 관련된 로직들을 관리하는 로직을 작성했다. 추후 Router에 대한 정보도 auth_provider에 추가를 하길래 왜 그럴까, 생각을 해 보았다. 결론은 auth 정보에 따라 화면에 이동이 요구되기 때문에 auth_provider에서 작성했다. 보아 상태 관리를 할 때는 데이터 기준이 아니라 도메인을 기준으로도 작성할 수 있음을 알 수 있었다.

물론 프로젝트를 제작하는 팀원들 간의 협의를 통해 어떤 룰을 가지고 상태관리를 할 것인지 정해서 그에 맞춰 제작하는 것이 기본이라는 것은 항상 가지고 있는 생각이다. 하지만 도메인을 기준으로 작성하는 방법도 있다는 것을 알게 되었다.

Authentication Logic

로그인/로그아웃/회원가입 등 회원 인증과 관련된 로직을 이렇게 디테일하게 작성해볼 수 있는 기회였다.

  • Token 기반 인증의 흐름
  • FlutterSecureStorage를 사용한 Token 관리
  • Dio Inspector를 활용한 request, response, error 사전작업 및 공통 작업 관리

로그인 상태를 활용한 rediect logic 작성이 특히 인상 깊었다.

Pagination 일반화

이 강의에서 제작하는 배달앱은 리스트 형태의 UI가 상당수 존재한다. 이를 효율적으로 화면에 보여주기 위해 Pagination을 사용했는데 같은 로직이 반복되는 것을 싫어하는 개발자들을 위해 Pagination을 일반화하는 과정을 볼 수 있었다.

일반화를 해서 일정한 템플릿을 사용해서 UI를 작성하고 싶다는 생각은 가지고 있었는데 어떻게 해야할 지 감이 잡히지 않았었다. 내가 OOP에 대한 지식이 부족해서 발생한 일이지만... 아무튼 직접 일반화하는 모습을 보니 클린 코드를 작성하기 위해 꼭 필요한 기술이라 생각되었다. OOP의 길은 멀지만 포지하지 않고 공부해야 할 것 같다.

UX

개발을 할 때 UX와 관련되어서 버튼의 위치, 애플리케이션의 흐름, 등과 같은 UI적인 것만 생각을 했었다.

캐시 관리를 통한 로딩 시간 절약, Optimistic Reponse, Debounce, Throttle처럼 코드를 통해 UX를 향상시킬 수 있다는 것을 알게되었다. 개발 지식도 중요하지만 애플리케이션을 개발하는 이유는 결국 사용자라는 생각을 했다. Flutter와 더불어 UX와 관련된 지식도 쌓아야겠다는 생각이 들었다.

수강을 마치며

내가 많이 부족하구나 라는 생각이 많이 들었다. UI 작성이나 특정 부분에서는 수강하는데 어려움이 없었다. 그래서 수강 시간이 절약된 것도 있는 것 같다.

배달 주문 애플리케이션을 클론 코딩하면서 많이 배웠고 다른 사람들은 어떻게 Flutter를 가지고 코딩을 하는지 궁금했었는데 UI, Logic, State Management 등 내가 많이 부족했다는 것을 다시 느낄 수 있었다. 애플리케이션 개발에 있어 신경써야하는 부분이 많이 있다는 것 또한 알게 되었다. 그래도 막연하게 생각했던 상태 관리나 인증, UI 관리 부분에 있어 깨닮음도 있고, 느낀게 많은 강의 수강이었다고 생각이 된다.

추가로 부족했던 지식, OOP, UX에 대한 지식은 관련 도서를 읽으면서 보충해야겠다는 생각이 들었다.

profile
주니어 Flutter 개발자

0개의 댓글