DART (4)


freezed와 .g.dart, .freezed.dart 파일의 정체 완벽 정리

freezed와 .g.dart, .freezed.dart 파일의 정체 완벽 정리

오늘 개발 스터디 Flutter/Dart로 프로젝트를 진행하다 보면 *.g.dart나 *.freezed.dart 같은 생소한 파일들을 자주 마주하게 됩니다. 특히 상태 관리를 위해 freezed 라이브러리를 도입하면 필수적으로 보게 되는 파일들이죠.이 파일들은 왜 생성되는 것이며, freezed는 우리에게 어떤 편리함을 줄까요? 이번 글에서는 Dart의 코드 생성(Code Generation) 메커니즘과 freezed 라이브러리의 핵심 지식을 깊이 있게 살펴보겠습니다.1. 왜 freezed가 필요했을까? (Dart의 한계와 보일러플레이트)Java나 Kotlin, Swift 같은 모던 언어들과 달리, Dart(특히 초기 버전)는 데이터 모델 객체를 만들 때 개발자가 직접 작성해야 하는 반복적인 코드(보일러..

Flutter 입문(4): 상태 관리의 끝판왕, Riverpod 완벽 정리

Flutter 입문(4): 상태 관리의 끝판왕, Riverpod 완벽 정리

안녕하세요! 오늘은 Flutter 개발자들 사이에서 가장 사랑받는 상태 관리 라이브러리인 Riverpod에 대해 알아보겠습니다.Provider의 제작자가 만든 Riverpod은 기존 Provider의 단점(런타임 에러, 위젯 트리 의존성 등)을 완벽하게 보완하며, 현재 Flutter 생태계에서 사실상 표준으로 자리 잡고 있습니다.1. Riverpod이란?Riverpod은 Provider 의 철자를 재배열(Anagram)한 이름입니다. 이름에서 알 수 있듯이 Provider의 정신을 계승하면서도 훨씬 더 안전하고(Compile-safe), 유연하게 설계되었습니다.컴파일 타임 안전성: 잘못된 타입 접근으로 인한 런타임 에러를 방지합니다.위젯 트리 독립성: 위젯 트리 외부에서도 상태에 접근할 수 있어 로직 분..

Flutter 입문(2): [Flutter] 플러터의 뼈대, Scaffold 위젯 완벽 정리

Flutter 입문(2): [Flutter] 플러터의 뼈대, Scaffold 위젯 완벽 정리

1. Scaffold란 무엇인가요?단어 뜻 그대로 발판 라는 의미를 가집니다. 건축 현장에서 건물을 짓기 위해 설치하는 임시 가설물처럼, Scaffold는 앱 화면의 전체적인 레이아웃 구조를 잡아주는 뼈대 역할을 합니다. 2. Scaffold의 주요 속성 (Property)Scaffold는 여러 개의 슬롯(Slot)을 가지고 있어, 원하는 위치에 위젯을 넣기만 하면 됩니다.속성명설명appBar화면 최상단에 위치하는 제목 표시줄 (PreferredSizeWidget)body화면의 중심이 되는 메인 콘텐츠 영역floatingActionButton화면 위에 떠 있는 듯한 원형 버튼 (주요 액션 시 사용)drawer왼쪽에서 오른쪽으로 밀어서 여는 사이드 메뉴bottomNavigationBar하단 탭 바 혹은 메..

Flutter 입문(1): StatelessWidget vs StatefulWidget 완벽 이해하기

Flutter 입문(1): StatelessWidget vs StatefulWidget 완벽 이해하기

플러터(Flutter) 개발을 시작하면 가장 먼저 마주치는 관문이 바로 위젯(Widget)의 종류입니다오늘은 UI를 구성하는 두 축인 StatelessWidget과 StatefulWidget의 차이점을 비유와 코드를 통해 아주 쉽게 알아보겠습니다1. 핵심 요약구분StatelessWidgetStatefulWidget상태(State)없음 (고정됨)있음 (변할 수 있음)화면 갱신불가능setState()를 통해 가능비유한 번 인쇄된 전단지내용을 지우고 쓸 수 있는 화이트보드 2. StatelessWidget (상태가 없는 위젯)말 그대로 상태가 없는 정적인 위젯입니다. 한 번 생성되면 그 모습 그대로 화면에 머뭅니다.특징: 위젯 내부의 데이터가 변하지 않습니다. 만약 값을 바꾸고 싶다면 위젯을 '삭제하고 다시 ..