라티의 작은 일기장

패스트캠퍼스 환급챌린지 24일차 미션(2월 24일): 15개 프로젝트로 실무까지 끝내는 Dart & Flutter 앱 개발 강의 후기 본문

Flutter & Dart

패스트캠퍼스 환급챌린지 24일차 미션(2월 24일): 15개 프로젝트로 실무까지 끝내는 Dart & Flutter 앱 개발 강의 후기

코드라티 2024. 2. 24. 23:56

오늘은 주식 탭의 나머지 화면을 구현하고, Flutter에서의 상태 관리의 의미와 그 상태 관리를 쉽게 할 수 있도록 도와주는 패키지들에 어떤 것들이 있고, 어떤 것을 공부하면 좋은지에 대해 알아보았다.

 

지난번에는 여기까지 만들었다.

그래서 주식 탭 하단의 아코디언 아이템을 마저 완성해주었다.

 

여기서 중요하게 느껴졌던 개념은 각 종목의 개별 데이터를 그대로 보여주거나 가공해서 특정한 형식으로 유저에게 보여줘야할 때, 항상 재사용성에 관해 리팩터링을 수행해야한다는 것이다.

예를 들면 아래와 같은 상황이 있을 수 있다.

 

종목의 현재 가격이 전일 종가를 기준으로 얼마나 증가하거나 감소했는지 퍼센트 형식으로 보여지고 있고, 이는 계산(calculate)되어야하는 값이어서 별도의 getter가 필요한 상황이다.

 

이걸 어디에 만드는게 좋을까? 간단하게 가져와서 쓴다면 미리 정의해둔 vo 파일에서 한꺼번에 관리하는게 좋겠지만, 이미 vo 파일은 Model의 역할을 수행하는 파일이라서 목적이 다른 별도의 기능을 구현해놓으면 해당 파일의 목적의 순수성을 침해하게 된다.

그래서 추상 클래스를 구현한 다음에 여러가지 유용한 getter들을 구현해놓고, 사용하는 쪽에서는 해당 추상 클래스를 구현해서 getter를 사용하는 리팩터링을 진행해봤는데, 매우 객체지향적인 리팩터링이라고 느껴서 좋았다.

 

그리고 Flutter에서의 상태 관리 개론 파트도 재밌었다. 상태를 UI State / Data State로 구분해서 설명해주셨는데, 확실히 웹 FE 개발과 통용되는 개념이라 듣기가 편했다.

 

그리고 아래 그림을 통해 내가 Flutter에서 어떤 상태관리 패키지를 공부하는 것이 좋을지도 생각해볼 수 있었다.

obx와 기타 편의 기능을 많이 갖고 있는 GetX를 시작으로 같은 개발자분이 만드신 riverpod, 테스트 커버리지가 100%에 달하는 것 중 내가 들어봤던 bloc를 학습해나갈 예정이다.

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

https://bit.ly/48sS29N