카테고리 없음

2025.11.04

kwontete 2025. 11. 4. 21:07

오늘은 Flutter의 MVVM 구조와 Riverpod 패턴을 중심으로 학습했다.
Model, Repository, ViewModel, View 간의 데이터 흐름을 이해하고,
Form과 TextFormField의 작동 원리, 그리고 Key의 역할을 구체적으로 익혔다.

  1. MVVM + Riverpod 구조
    • Model: 데이터의 형태와 JSON 변환 방식을 정의한다. (fromJson, toJson)
    • Repository: 외부에서 데이터를 불러와 Model 객체로 변환한다.
    • ViewModel: Repository에서 데이터를 가져와 상태(state)에 저장하고 View에 전달한다.
    • View: 사용자가 보는 화면이며, ViewModel의 상태 변화에 따라 갱신된다.
  2. Form / TextFormField / GlobalKey
    • Form은 여러 입력창을 하나로 묶어 유효성 검사를 관리한다.
    • 각 TextFormField는 입력값을 받고, validator로 유효성을 검사한다.
    • GlobalKey<FormState>를 통해 전체 폼의 상태를 제어하고 validate()를 실행한다.
  3. Expanded
    • Row나 Column 안에서 공간을 균등하게 분배하기 위한 위젯이다.
    • flex 값을 사용해 각 위젯의 차지 비율을 조정할 수 있다.
  4. query
    • 서버나 데이터베이스에 “검색 요청”을 보낼 때 사용하는 검색어나 요청 문자열을 의미한다.
    • API에서 ?query=검색어 형태로 자주 사용된다.
  5. Key
    • Flutter가 여러 위젯을 구분하기 위해 붙이는 식별자다.
    • 특히 GlobalKey는 외부에서 특정 위젯의 상태에 접근할 때 사용된다.
    • Form에서는 GlobalKey를 통해 입력값 검증이나 상태 제어를 수행한다.

오늘은 전반적으로 Flutter의 입력 처리와 상태 관리 흐름을 처음부터 끝까지 이해할 수 있었다.
특히 Key와 FormState의 관계, 그리고 ViewModel이 데이터를 관리하는 이유를 명확히 grasp했다.