인프런 커뮤니티 질문&답변

qwer1234님의 프로필 이미지

작성한 질문수

Flutter 중급 1편 - 클린 아키텍처

14 클린 아키텍처

Photo.fleezed.dart,photo.g.dart삭제시 에러

24.07.07 15:20 작성

·

67

0

강의에서 저 두개 파일을 삭제하는데 저 두개파일을 삭제하면 photo.datr 에서 14줄_Photo랑 16줄_$PhotoFromJson에서 에러가 나고photo_widget.dart에서 19줄previewURL에서에러가 나고pixabay_api_test_dart에서 21번째 id에서 에러가 납니다dart run build_runner build를 하면 에러가 사라지긴 하는데Photo.fleezed.dart
photo.g.dar 이 두파일이 다시 생성되는데 괜찮은건가요?에러1.png에러2.png에러3.png

답변 2

0

오준석님의 프로필 이미지
오준석
지식공유자

2024. 07. 08. 00:33

이런. AI 보다 늦게 답변을 달게 되었네요.
freezed 의 역할이 ==, hashCode, toString() 재정의, copyWith() 메서드 작성을 자동으로 해 주는 역할이고 그 결과물이 *.freezed.dart 파일입니다.
그리고 fromJson(), toJson() 도 만들어 주는데 결과물이 g.dart 파일입니다.

수동으로 할 일을 자동화 해 주기 때문에

build_runner build 명령을 통해서 생성된 이 파일들은 수동으로 지우면 빌드가 안 됩니다.

0

인프런 AI 인턴님의 프로필 이미지

2024. 07. 07. 15:26

안녕하세요, 인프런 AI 인턴입니다. qwer1234님의 질문과 관련하여, photo.fleezed.dartphoto.g.dart 파일들에 대한 혼란과 그 이후 발생하는 에러 관련으로 도움이 될 만한 기존 답변을 찾아보았습니다.

  1. g.dart 파일이 생성이 안됩니다.에서는 g.dart 파일 생성 문제에 대한 해결책을 제시하고 있습니다. 특히, 이 게시물에서는 오류의 원인이 되는 Typo를 지적하며, 오타를 수정한 이후에 다시 dart run build_runner build를 실행하여 정상적으로 파일이 생성되도록 안내하고 있습니다. 이 내용은 qwer1234님의 경우와 비슷하게, 생성 과정 중 발생하는 파일이 예상대로 생성되지 않는 상황에 대응할 수 있는 솔루션을 제공합니다.

  2. photo.g.dart 파일이 생성되지 않습니다. 글에서는 파일명의 대소문자 민감성이 파일 생성에 영향을 줄 수 있다는 점을 언급하고 있습니다. 여기서는 파일 이름을 수정한 뒤 문제가 해결됨을 설명하는 이용자의 경험이 공유되었습니다. 이 경우, 특정 파일 생성 과정에서 예상치 못한 이슈에 부딪혔을 때 확인해볼 수 있는 좋은 예시가 됩니다.

잘못된 명명규칙 혹은 작은 오타도 코드 생성기(build_runner)가 제대로 동작하지 않아 결과적으로 에러를 발생시킬 수 있으므로, 이를 확인하는 것이 중요합니다. 질문하신 내용에 언급된 파일(photo.fleezed.dartphoto.g.dart)이 기대대로 생성되지 않는 문제는, 대소문자 구분, 오타, 혹은 어노테이션 사용에 있어 세심한 주의가 필요함을 시사합니다.

정리하자면, dart run build_runner build를 실행하여 파일이 다시 생성되는 것은 정상적인 동작입니다. 코드 생성 라이브러리(예: freezed, json_serializable)를 사용할 때, 이러한 .g.dart 및 기타 생성된 파일들은 라이브러리가 데이터 클래스 혹은 모델을 위한 추가 코드를 자동 생성하기 위해 필요합니다. 따라서 이 파일들이 생성되는 것은 정상이며, 올바른 코드 작성 및 명명 규칙을 따르는 것이 중요합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

qwer1234님의 프로필 이미지

작성한 질문수

질문하기