inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

StatefulWidget 라이프 사이클 이론

CodeFactoryWidget이 StatefulWidget인 이유에 대해서

76

작성자 없음

작성한 질문수 0

0

안녕하세요?

초보자라서 질문을 어떻게 해야될지 모르겠어서 횡설수설인 점 미리 죄송합니다.

 

세번째 라이프사이클을 설명하실 때 사용하신 코드에 대해서 질문이 있습니다.

홈스크린 위젯을 StatefulWidget해서 클래스를 2개 만드는것은 변하는 화면을 보여주기 위해서 사용한것이겠죠?

 

그런데 CodeFactoryWidget은 버튼을 보여주는 위젯인데 왜 StatefulWidget을 상속받아 만드신 것일까요?

CodeFactoryWidget은 상태를 관리하지 않으므로 StatelessWidget을 상속받아도 되지 않을까요?

 

궁금해서 잠이 오지 않습니다.

flutter 클론코딩

답변 2

0

코드팩토리

안녕하세요!

휴가중이라 답변이 늦었습니다. 죄송합니다.

코드 예제와 헷갈리는 부분을 정확히 찝어서 보여주실 수 있을까요?

감사합니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 358792번째 도전님.

StatefulWidget과 StatelessWidget의 선택은 Flutter에서 가장 기본적이지만 중요한 내용입니다. 질문 주신 부분에 대해 설명해 드리겠습니다.

StatefulWidget은 주로 상태가 변하는 위젯을 만들 때 사용합니다. 반면, StatelessWidget은 상태가 변하지 않는 UI 요소를 위해 사용됩니다.

CodeFactoryWidget이 StatefulWidget을 사용하는 이유:
1. 상태 관리의 필요성: 만약 CodeFactoryWidget이 내부적으로 상태 변화를 요구하는 동작이나 UI 업데이트가 필요하다면, StatefulWidget을 사용하는 것이 맞습니다. 시간의 흐름에 따라 UI에 변화가 일어날 수 있는 경우 StatefulWidget이 필요합니다.

  1. 연습 및 구조화: 때로는 학습 목적으로 특정 패턴을 익히기 위해 StatefulWidget을 사용해보는 것이 추천되기도 합니다. 강의 중에 이와 같은 사례가 있을 수 있습니다.

하지만 실제로 상태 변화가 필요하지 않다면 StatelessWidget을 사용할 수 있습니다. StatelessWidget은 간단하고 성능 면에서 이점이 있습니다.

추가적으로, 위젯이 어떤 상태나 로직을 유지하고자 하는 경우가 아닌 단순한 UI 표현에 그칠 때 StatelessWidget이 적합한 선택입니다.

만약 해당 강의 예제에서 CodeFactoryWidget이 실제로 상태 변환을 요구하지 않는다면, StatelessWidget으로 변경해보아도 좋습니다. 이를 통해 두 종류의 위젯 사용 차이를 직접 체험해볼 수 있을 것입니다.

관련된 다른 질문과 답변들을 참고하시려면 setState 질문StatelessWidget과 StatefulWidget 비교 게시글을 확인해 보세요.

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

198강 (){onTap(e);}의 이해 돕기

0

25

1

video_call 플러그인 설치후 에러 발생

0

45

1

SDK 안드로이드 설치 질문!

0

59

1

코드팩토리 디스코드 링크 다시 부탁드려요~

0

92

1

Webview를 이용해서 URL 상의 페이지 출력 불가

0

69

1

홈스크린 함수를 함축해서 main.dart에 옮기는 문제

0

55

1

플레이스토어

0

59

1

아고라 엔진 init 함수의 반환타입이 Future<void> 이것의 의미는 무엇인가요?

0

55

1

가이드라인 질문

0

57

0

emulator 에러 환경설정 뭐가 문제 일까요??

0

76

1

emulator 실행 오류

0

93

3

Column을 가로방향 최대 사이즈를 차지하도록 하는 방법에 관련

0

71

1

pubspec.yaml에서 font를 추가하면서 weight 값을 지정하는 것이 의미가 있는 것인지 문의

0

43

1

setState()를 호출하지 않으면 build가 실행 안되는 건가요?

0

53

1

video_call 플러그인 설치시 에러문제

0

64

1

children 안의 if 문에서 { } 못쓰는 이유?

0

48

1

이렇게 오류가 떠요

0

63

1

AppBar 사용했는데

0

61

2

[문제해결] '오늘도 출첵!' 의 171번 강의에서 중요한 문제를 발견했습니다

0

56

1

StatefulWidget 실습 에러가 발생합니다.[해결완료]

0

63

1

Video Player 프로젝트에 대한 추가 질문

0

53

0

Row위젯이나 column위젯의 위치는 누가 정하나요??

0

42

1

geolocator 오류때문에 개발진행이 불가능입니다

0

63

1

API 관련 이슈

0

86

2