-
[Flutter 앱 개발 / 6일차] 대학생의 앱 개발로 돈 벌기 프로젝트 - null-safety / future, async, await일상/앱 개발로 돈 벌기 2023. 1. 5. 01:12
습관이라는 게 참 대단한 것 같다.
요 근래에 블로그에 글 몇 번 썼더니, 저녁만 되면 블로그에 글 써야겠다는 생각이 든다.
초반에 글을 썼을 때에는 무슨 내용을 써야 할지 막막하고, 부담도 있었는데
요즘은 무슨 내용을 쓸지 약간은 기대에 차게 된달까.
오늘 플러터 관련해서는 future, async, await 에 대해서 공부했고,
추가적으로 플러터 2.0 버전부터 공식 지원하게 된 null-safety 에 대해서도 자세히 알게 되었다.
이전에는 null-safety 라는 걸 어떻게 코드로 구현할 수 있는지에 대해서만 알고 있었다면,
오늘 학습을 통해 이것이 왜 필요한지에 대해서 알 수 있었다.
null 이란 "(아직) 존재하지 않음" 을 나타내는 값인데,
이 null 이라는 친구가 프로그래밍을 할 때 개발자들을 매우 괴롭힌다.
NullPointException 에러가 코드 중간에서 발생한다면
개발자는 몇 만 줄 되는 코드를 샅샅이 뒤져서 에러가 난 부분을 찾아내야 한다.
여간 골치 아픈 일이 아니다.
그래서 등장한 것이 이 null-safety 이다.
변수에 null 값이 들어갈 수 없도록 사전에 차단하여,
메서드가 null 값을 참조할 일이 없도록 만들어 버리는 것이다.
그리고 선언할 때에 값을 집어넣지 않는다면 이 또한 null이니,
특정 변수를 선언할 때는 무조건 값을 할당하도록 만들어버린다.int wrongInt; // 이렇게 하면 컴파일시 에러 발생 int correctInt = 3; // 이렇게 해야 정상 작동
아예 변수에 null이 들어갈 일을 만들지 않으니,
NullPointException 같은 에러가 발생할 일이 없어진다.
부득이하게 null이 들어가야 하는 경우에는 자료형 뒤에 ? 를 붙여주어
"이 변수에는 null 값이 들어갈 수 있음" 을 표시한다.int a; // 이러면 컴파일 에러 int? b; // 이러면 정상 동작
요약하자면 플러터 2.0 부터는 null-safety를 도입하여, 앱이 null 때문에 터져버릴 위험을 없앴다는 것이다.
future, async, await 에 대해서도 공부했지만, 아직은 알쏭달쏭하다.
Dart 라는 언어는 싱글 스레드(Single Thread)로 운영되는 언어라고 한다.
Thread는 '실' 을 뜻하는 영단어로, 번역하면 dart는 "실 하나로 운영되는 언어" 가 된다.
우리가 실로 옷을 만들다고 쳐보자. 그런데 실이 엉켰다.
실이 하나밖에 없으면 실의 엉킴을 풀 때까지 옷 만드는 행위가 중단된다.
그러나 실이 두 개라면, 한 사람은 실의 엉킴을 풀고 나머지 한 사람은 나머지 실로 옷을 계속 만들면 된다.
앱도 옷을 만드는 경우처럼, 특정 코드가 실행 중에 잠시 중단이 돼야 할 때가 있다.
특히 데이터를 받아오는 부분에서 이런 경우가 많다.
만약 날씨 데이터를 받아오려면 스마트폰이 기상청 서버에서 데이터를 받아와야 하는데,
이 과정에서 시간이 꽤 소요된다.
앞서 말한 대로 싱글 스레드(Single Thread)를 사용하면,
데이터를 다 받을 때까지 앱이 멈추게 된다. 터치도 안 먹을 것이다.
참으로 큰일이다.
그래서 이 dart는 future, async, await 를 통해
데이터를 받아오는 경우에도 앱이 멈추지 않고 동작할 수 있도록 만들어준다.
쓰다 보니 시간이 꽤 걸렸다.
future, async, await 관련해서는 이 정도로만 적고 오늘의 포스팅을 마쳐야겠다.
나중에 기회가 되면 이 부분 공부를 조금 더 해서 자세히 설명해 보도록 하겠다.
이전에는 밥 먹으면서 유튜브로 롤 영상을 봤는데, 어제부터는 창업 관련 영상들을 보고 있다.
보다 보니 나도 모르는 사이에 많은 영감을 받는 것 같다.영감, 왜 불러?
1일차 보러가기 ↓↓[1일차] 대학생의 앱 개발로 돈 벌기 프로젝트
서론 나는 대학생이다. 그리고 내 꿈은 창업을 하는 것이다. 그래서 스타트업 관련해서 유튜브 영상도 많이 찾아보고, 스타트업 강연들도 참여했었다. 하지만, 정작 내가 직접 돈을 버는 경험을
parksoffice.tistory.com
'일상 > 앱 개발로 돈 벌기' 카테고리의 다른 글
[Flutter 앱 개발 / 8일차] 대학생의 앱 개발로 돈 벌기 프로젝트 - 날씨앱 만들기 (1) 2023.01.08 [Flutter 앱 개발 / 7일차] 대학생의 앱 개발로 돈 벌기 프로젝트 - 플러터 스터디 (0) 2023.01.06 [Flutter 앱 개발 / 5일차] 대학생의 앱 개발로 돈 벌기 프로젝트 - 쉬어가기 (0) 2023.01.04 [Flutter 앱 개발 / 4일차] 대학생의 앱 개발로 돈 벌기 프로젝트 - 자기성찰 (2) 2023.01.03 [Flutter 앱 개발 / 3일차] 대학생의 앱 개발로 돈 벌기 프로젝트 (0) 2022.12.30