Flutter 2.0 버전이 올라오면서 플러터에서 NullSasfety라는 기능을 지원한다.
NullSafety는 안전성을 보장한 상태로 개발되게 진행하는 기능이다.
NullSafety를 지원하지 않는 언어들은 객체 생성떄 null값이 대입이 가능하며 null 상태의 객체에 멤버 접근을 하게 되면 NPE 에러(Runtime Error)가 발생한다.
그래서 NullSafety를 지원하게 되면 컴파일러가 NPE 에러가 발생할 수 있는 가능성을 체크해 NPE 에러가 발생할 수 없는 코드를 작성할 수 밖에 만든다.
NullSafety는 기본적으로 Nullable과 Non-Nullable로 구분되며 컴파일러에게 해당 변수에 Null값이 대입할 수 있는지 없는지 알려주는 것이다.
NullSafety
main(){
int a = null;
int? b = null;
print(a); /// 에러 발생
print(b);
}
Late
int a; /// 컴파일 에러 발생
late int b;
코드를 작성할 떄 지역변수에 값이 없는 변수를 선언 할 떄가 많다, 이러한 경우에는 변수 타입 앞에 “late”라는 코드를 붙여줘야되는 NullSafety 규칙이다.