전체 글 58

심화과제 TIL

ToDo 앱을 만들면서 클린 아키텍처 구조와 Riverpod Provider 구조를 어떻게 설정해야 하는지 꽤 깊게 파고들었다.처음엔 구조가 좀 헷갈렸는데, 전체 의존성 흐름을 정리하면서 ‘왜 이렇게 해야 하는가’가 명확해졌다.1. Domain–Data–Presentation 구조 다시 이해하기가장 핵심은 이 한 문장이다. 의존성의 방향은 바깥에서 안쪽으로만 흐른다.Presentation → Domain → Data 즉,Domain은 안쪽 계층이라 아무것도 의존하면 안 된다.Presentation(ViewModel)은 Data를 직접 의존하면 안 된다.Data에서는 Domain 모델을 사용해야 하고,Presentation에서는 Domain 인터페이스(IToDoRepository)만 사용해야 한다.오늘 내..

카테고리 없음 2025.12.03

2025.11.14

Freezed & JSON Serialization 트러블슈팅문제Freezed 적용 도중 part 'xxx.freezed.dart', part 'xxx.g.dart' 에러 발생fromJson(Map) 타입 불일치로 오류 (Map vs Map)원인Freezed는 Map 형식이 일반적타입 강제 지정 때문에 json_serializable이 매칭을 못 함part 파일 누락 시 build_runner가 생성 파일을 못 찾음해결 방법factory ToDoModel.fromJson(Map json) 형태로 변경model 파일 상단에 정확히 아래 2개 추가: part 'to_do_model.freezed.dart'; part 'to_do_model.g.dart'; flutter pub run build_runner ..

카테고리 없음 2025.11.14

Flutter 로그인 UI 만들면서 배운 것들

1. Padding이 먹지 않았던 이유오늘 로그인 UI를 만들다가 Padding이 먹지 않는 문제가 발생했다.원인은 아주 단순했다.Padding() 안에 child가 없으면 여백이 생길 수가 없다.Padding은 “안에 있는 위젯에게 여백을 주는 상자”인데, 안에 아무 것도 없으니 여백을 줄 대상이 없었던 것.해결Column 전체를 Padding으로 감싸는 방식이 가장 깔끔하다.레이아웃 구조는 보통 SafeArea → Padding → Column 순으로 많이 쓴다.2. ElevatedButton에서 배경색 지정 오류style: ButtonStyle(backgroundColor: Color(...))을 썼는데 오류가 났다.이유는 backgroundColor가 Color 하나를 직접 받는 타입이 아니라 M..

카테고리 없음 2025.11.13