Dart&Flutter 6

[Dart&Flutter] Provider pattern 프로바이더 패턴 (2) - prop, hook, HOC pattern

patterns.dev의 내용을 보고 추가적인 개념을 덧붙여 정리한 글입니다. 앱 내의 여러 컴포넌트들이 데이터를 사용해야 할 때props를 통해서 데이터를 전달하는 방식은 앱 내의 모든 컴포넌트들이 데이터에 접근해야 하는 경우 번거롭다.prop drilling아주 멀리있는 컴포넌트 트리까지 props를 내려주는 경우,prop에 의존되는 컴포넌트들을 추후에 리팩토링하기 힘들어지고어떤 데이터가 어디서부터 전해져오는지 알기 어렵다.데이터가 필요하지 않는 컴포넌트는 props를 받지 않도록 수정하는것이 좋다.그러기 위해선 prop drilling에 의존하지 않고 컴포넌트가 직접 데이터에 접근할 수 있는 방법이 요구된다.이러한 경우에 provider pattern이 유용하다. provider pattern의 장..

Dart&Flutter 2025.03.26

[Dart&Flutter] Dart 입문 (3) - Null Safety

Null safety란?- NULL : null은 부재(없음, 아무것도 있지 않음)이다.- null safety는 개발자가 null값을 참조할 수 없도록 하는 것- 코드에서 null 값 참조시 Runtime Error(사용자가 사용시에 발생하는 문제) 발생 : 컴파일러가 잡아내지 못한다.- Dart는 몇몇 구버전에 대해서는 null safety가 없을수도 있다.Null safety 방식dart에서는 어떤 변수가 null이 될 수 있음을 정확히 표시해야한다. 어떠한 변수가 null값이 될 수도 있음을 나타내기 위해서는 변수 선언시에 자료형 뒤에 '?'를 붙여줘야 한다. 기본적으로 모든 변수들은 non-nullable이고, 자료형 뒤에 '?'을 붙여줌으로써 nullable로 만들 수 있다. 예를들어,void..

Dart&Flutter 2025.03.26

[Dart&Flutter] Provider pattern 프로바이더 패턴 개념 (1)

provider pattern flutter 공식문서배경flutter는 UI를 변경하려면 다시 빌드를 해야한다. 위젯을 변경하기 위해 외부에서 메소드를 호출하는 방식은 어려우며, 추천하지 않는 방식이다.여러 위젯에서 app state를 수정해야 하면 많은 callback pass가 필요하다.다행스럽게도 플러터에서는 자손들에게 데이터와 서비스를 제공하는 InheritedWidget,InheritedNotifier,InheritedModel등과 같은 메커니즘이 존재한다.flutter에서는 위의 메커니즘들보다 더 높은 수준의 사용하기 쉬운 패키지로 Provider를 제공하고 있다.provider란?provider는 크게 생성 부분과 소비 부분으로 나뉜다.상태 관리를 목적으로 하고 있으며 , UI와 비즈니스 로..

Dart&Flutter 2025.03.26

[Dart&Flutter] Dart 입문 (2) - Dart 변수 (dynamic type)

Dart 코드 작성 특징반드시 세미콜론을 붙여야 함. (일부러 세미콜론을 안 쓸 때가 있어 formatter가 자동으로 세미콜론을 생성시켜 주지 않음)Dart 변수dart에서 변수 만드는 법 1var name = '넣고 싶은 값';위의 경우에는 name이 string이라는 것을 컴파일러가 알고 있다. 따라서 name에 값을 업데이트 할 때는 반드시 string형으로 업데이트 하여야 한다.주로 함수나 메소드 내부에 지역 변수를 선언할 때 var를 사용dart에서 변수 만드는 법 2var을 사용하지 않고 명시적으로 변수 타입 지정string name = 'hong'class에서 변수나 property를 선언할 때 타입 지정  dynamic type변수 선언시 아무것도 지정해 주지 않은 경우, 변수는 dyna..

Dart&Flutter 2025.03.26

[Dart&Flutter] Dart 입문 (1) - 컴파일 방식, dart 특징

노마드 코더님의 무료강의를 듣고 개인 정리용으로 작성Dart의 특징객체지향 언어이다User interface에 친화적이라 빠르다UI에 최적화 되어있다생산적인 개발환경, 모든 플랫폼에서 빠름Null safetyDart의 Null safety 방식Dart, flutter 모두 구글에서 제작된 언어로 상호적임. dart를 수정해서 flutter를 빠르게 만들 수 있음Dart compileDart엔 dart web, dart native라는 두개의 컴파일러가 존재.dart web: dart로 쓴 코드를 javascript로 변환해주는 컴파일러dart native: 내가 쓴 dart 코드를 여러 cpu 구조에 맞게 변환컴파일 방식JIT(just in time)방식과 AOT(ahead of time) 방식이 존재A..

Dart&Flutter 2025.03.26

[Dart&Flutter] Windows 환경에서 Vscode 활용에 개발 환경 구축 및 오류 해결

개발 환경 구축법은 사실 잘 쓴 블로그들이 많아서 저는 제가 약 5일동안(ㅠㅠ) 오류 문제 해결하기 위해 고군분투한 내용 위주로 적어보려 합니다.개발 환경 구축1. flutter SDK 설치flutter 공식 홈페이지에 들어가서 SDK를 다운받습니다. SDK를 다운받고 압축을 해제합니다.flutter 파일 내의 bin 파일의 경로를 환경 변수 설정을 해야합니다.저는 사용자 파일 안에다가 압축해제를 했습니다.주소 복사를 눌러서 bin 파일의 경로를 복사하고, 시스템 환경 변수 편집으로 들어갑니다. (간단하게 앱 검색창에 치면 나옵니다)flutter가 무사히 설치되었는지 알려면,cmd창에 flutter를 적으면 welcome 화면이 뜨는 것을 보고 알 수 있습니다. [환경변수 편집]시스템 환경변수 편집>고급..

Dart&Flutter 2025.03.26
let textNodes = document.querySelectorAll("div.tt_article_useless_p_margin.contents_style > *:not(figure):not(pre)"); textNodes.forEach(function(a) { a.innerHTML = a.innerHTML.replace(/`(.*?)`/g, '$1'); });