

Flutter는 모바일 앱 개발을 위한 구글의 오픈소스 UI 소프트웨어 개발 키트(SDK)이다.
Flutter의 핵심 특징 중 하나는 선언적 UI(Declarative UI) 패러다임을 채택하고 있다는 것이다.
이는 UI를 구성할 때, 명령적(Imperative) 방식이 아닌 선언적 방식을 사용한다는 것을 의미한다.
선언적 UI에서는 UI의 현재 상태를 선언하고, Flutter 프레임워크가 이를 기반으로 UI를 렌더링한다.
이는 전통적인 명령형 UI 방식과는 다르다.
명령형 UI에서는 UI를 단계별로 구성하고, 각 단계에서 UI의 변경사항을 명시적으로 지시한다.
Flutter에서 위젯 인스턴스를 생성할 때, 보통 변수명을 사용하지 않고 직접 생성자를 호출하여 인스턴스를 생성한다.
이는 Flutter의 선언적 UI 스타일의 일부입니다.
다음은 변수명을 사용하여 Padding 위젯 인스턴스를 만드는 예시이다:
하지만 Flutter에서는 보통 이렇게 하지 않고, 바로 생성자를 호출하여 인스턴스를 만든다:
여기서 Padding() 자체가 Padding 클래스의 인스턴스이다.
Padding 클래스의 생성자를 호출하면서 자체 인스턴스화 된것이다.
인스턴스가 된 Padding에 정의로 들어가면 실제 Flutter 프레임워크의 파일로 이동이 되는데, 정의된 Padding 클래스의 생성자를 가리키는 것을 볼 수 있다.
정리
이렇게 하는 이유는 다음과 같다:
- 가독성: 직접 생성자를 호출하여 인스턴스를 만들면, 코드가 더 간결해지고 가독성이 좋아진다. 변수명을 사용하면 불필요한 코드가 추가되어 코드를 이해하는데 방해가 될 수 있다.
- 불변성: Flutter의 위젯은 불변(Immutable)객체이다. 즉, 한 번 생성된 위젯은 변경할 수 없다. 변수명을 사용하여 인스턴스를 만들면, 변수에 새로운 인스턴스를 할당할 수 있다는 인상을 줄 수 있다. 하지만 위젯은 불변이므로, 이는 Flutter의 설계 철학과 맞지 않다.
- 선언적 UI: Flutter는 선언적 UI를 지향한다. 선언적 UI에서는 UI의 현재 상태를 선언하는 것이 중요하다. 변수명을 사용하여 인스턴스를 만들면, 선언적 UI의 개념과 맞지 않다. 직접 생성자를 호출하여 인스턴스를 만드는 것이 선언적 UI에 더 부합하다.
- 트리 구조: Flutter의 위젯은 트리 구조로 구성된다. 각 위젯은 자식 위젯을 가질 수 있고, 자식 위젯은 다시 자식 위젯을 가질 수 있다. 이런 트리 구조에서는 변수명을 사용하지 않고 직접 생성자를 호출하여 인스턴스를 만드는 것이 더 자연스럽다.
이처럼 Flutter에서 변수명을 사용하지 않고 위젯 인스턴스를 생성하는 것은, Flutter의 선언적 UI 스타일과 불변성, 트리 구조 등의 특성을 고려한 것이다. 이는 Flutter 앱을 개발할 때 코드의 가독성과 유지보수성을 높이는데 도움이 된다.
'Flutter 초급' 카테고리의 다른 글
Navigator (0) | 2024.09.13 |
---|---|
Slider (0) | 2024.09.13 |
Stack(LIFO)과 Queue(FIFO) (0) | 2024.09.11 |
Align (0) | 2024.09.10 |
Constraint, 레이아웃의 4대 원칙 (0) | 2024.09.10 |

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!