flutter로 클론코딩 시작 전 Dart 이해하기
개발자가 되고 말거야!를 외쳤지만 계속 붕 떠다니고만 있습니다. 이것저것 하고는 있는데 말만 하고 있는 것 같네요.
창업 부트캠프 멤버분 중 한분이 앱개발 스터디원을 모집하신다고 하셔서 아~무것도 할 줄 모르는 제가 마음만 들고 참여했습니다.
클론코딩을 하기로 했고 먼저 Dart에 대해 이해하는 것이 좋다고 하셔서 강의를 듣고 있어요.
Dart 공부부터 클론 코딩하는 과정까지 지켜봐주세요!
강의 : https://nomadcoders.co/dart-for-beginners (노마드코더 Dart 시작하기)
# 1.The Var Keyword
1) var 키워드 사용
함수나 메소드 내부에 지역변수 선언 할 때
2) 명시적 타입지정
class에서 변수나 property를 선언 할 때
함수나 메소드 안에서 지역변수를 사용한다면 var를 사용. 컴파일러가 타입을 인지하고 있기 때문에 일일이 타입을 지정하지 않아도 된다.
변수 수정시 타입을 지키세요! var 사용이 가장 권장된다.
#1.2 Dynamic Type
여러가지 타입을 가질 수 있는 변수에 사용하는 키워드.
타입을 지정하면 dynamic 안에서는 타입을 알 수 있지만 밖에서는 알 수 없음. 지정한대로.
항상 써야 할 필요는 없다. 필요한 때에만 사용.
#1.3 Nullable Variables
Null safety는 개발자가 null값을 참조할 수 없도록 하는 것. null 값을 참조하면 런타임 에러가 뜸.
런타임 에러는 사용자가 앱을 사용하는 중에 에러가 뜬 다는 것. 컴파일 전에 에러를 찾는 것이 중요한데 그게 바로 null safety가 한다.
null safety가 없는 코드. string length가 0인지 아닌지 판별하는 함수.
string을 보내야하는 곳에 null을 보냈기 때문에 런타임 에러가 난다. 사용자의 기기에서!
null을 삭제하는 것은 좋지 않다. null 상태도 가질 수 있어야함. 문제는 참조할 때 발생.
dart에서는 어떤 변수가 null이 될 수 있음을 정확히 표시해야 한다.
예시) 이렇게 하면 안됨. nico는 오직 String이어야 함.
이 경우에 nico가 null,String 모두 되게 하려면
물음표를 붙여주면된다. string ?(or) null의 의미가 된다. 모든 변수는 non-nullable.
#1.4 Final Variables
변수 선언하면 수정 가능한 변수가 만들어지는데 변경할 수 없게 하려면 final을 선언.
javascript나 typescripte의 const와 같다.
#1.5 Late Variables
late는 final이나 var 앞에 붙여줄 수 있는 수식어다. 초기 데이터 없이 변수를 선언 할 수 있게 해준다.
필요한 데이터가 없을 수 있으니 데이터 없이 변수를 생성하고 나중에(late) 받는 것.
final변수이니 변수를 또 만들 수 없다.
이렇게 출력하려고 하면 할당 받지 않았기 때문에 dart가 막아준다.
flutter에서 api와 작업할 때 많이 보게 될 것. late 변수를 만들고 api 요청을 보낸 후 api에서 값을 보내주면 그걸 late 변수에 넣어준다.
#1.6 Constant Variables
javascript나 typescript와는 다르다. javascript, typescript의 const는 final과 비슷하다.
final과 똑같이 동작한다. 수정 안됨.
! 중요한 건 const는 compile-time에 알고 있는 값이어야 한다는 것.
예를 들어 api 키가 있다면, const에 넣어주면 절대 안바뀔거고 컴파일이 될 때 그 값을 알고 있을거야.
API 요청을 한다고 가정해보면 / fetchApi , 컴파일러는 api의 변수값 모른다.
> 왜냐면 api에서 불러와야 하니까 >> 그건 final !
앱스토어에 앱을 올리기 전에 알고 있는 값이라는 것. 값을 알고 있다면 const ,
어떤 값인지 모르고 그 값이 api로부터 오거나 사용자가 입력해야하는 거라면 final이나 var이 되어야 한다.
#1.7 Recap
복습하기! 복습 영상 보며 위 내용 추가 및 정리하기!
댓글
로그인 후 댓글을 남길 수 있습니다.
개발 이야기 같이 하고 싶으면 연락 주세요. 과외도 해 드려요 https://open.kakao.com/o/sM7NofEf