ํ์ต๊ธฐ๊ฐ : 2023.01.18 ~ 2023.02.06
๋ชฉ์ : Flutter ๋ฐฐ๊ฒฝ์ง์
- UI์ ์ต์ ํ
- ์์ฐ์ ์ธ ๊ฐ๋ฐํ๊ฒฝ
- ๋ชจ๋ ํ๋ซํผ(mobile, desktop, backend, ...)์์ ๋น ๋ฆ
Dart์๋ ๋๊ฐ์ง ์ปดํ์ผ๋ฌ๊ฐ ์๋ค.
-
Dart Native
Dart๋ก ์์ฑํ ์ฝ๋๋ฅผ ์ฌ๋ฌ CPU์ ์ํคํ ์ฒ(ARM32, ARM64, x86_64)์ ๋ง๊ฒ ๋ณํํด์ฃผ๋ ์ปดํ์ผ๋ฌ
์ธ๋ถ์ ์ผ๋ก JIT, AOT ์ปดํ์ผ๋ฌ๊ฐ ์๋ค.AOT (Ahead-Of-Time) Compile
์์คํ ์ด ๋ฐ๋ก ์คํํ ์ ์๋ ๊ธฐ๊ณ์ด๋ก ๋ฏธ๋ฆฌ ์ปดํ์ผํ๋ ๋ฐฉ์
๋น๋์๋๋ ๋๋ฆฌ๊ณ , ๋์์๋๋ ๋น ๋ฆJIT (Just-In-Time) Compile
ํ์ํ ๋ ๋ง๋ค ๊ธฐ๊ณ์ด๋ก ๋ณํํ๋ ๋ฐฉ์
AOT์ ๋นํด ๋น๋์๋๋ ๋น ๋ฅด๊ณ , ๋์์๋๋ ๋๋ฆผUI ๊ฐ๋ฐ์ค์ธ๊ฒฝ์ฐ ๋ณํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ฆ์ ํ์ธํด์ผํ๋๋ฐ ์ฌ์ํ ๋ณํ๊ฐ ์์๋ ๋ง๋ค
๋ชจ๋ ์ฝ๋๋ฅผ AOT๋ฐฉ์์ผ๋ก ์ปดํ์ผํ ๊ฒฝ์ฐ ๋ฏธ๋ฆฌ๋ณผ ์ ์๋ค.
๊ทธ๋์ Dart๋ ๊ฐ๋ฐ์ค์ผ๋ Dart VM ์์์ JIT๋ฐฉ์์ผ๋ก ์ปดํ์ผํ์ฌ ๋ณํ๋ฅผ ์ฆ์ ํ์ธํ ์ ์๊ฒํ๊ณ ,
๊ฐ๋ฐ์ด ๋๋ํ ๋ฆด๋ฆฌ์ฆ๋๋ AOT ๋ฐฉ์์ผ๋ก ์ปดํ์ผํ์ฌ ๊ธฐ๊ธฐ์์์ ๋์์๋๋ฅผ ๋น ๋ฅด๊ฒ ํ๋ค.๊ฐ๋ฐ์ค : Dart VM ์์์ ์คํ, JIT, ๋์์๋ ๋๋ฆฐ๋์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋ก ๋ณผ ์ ์์.
๋ฐฐํฌ์ : Native, AOT, ๋์์๋ ๋น ๋ฆ -
Dart Web
Dart๋ก ์์ฑํ ์ฝ๋๋ฅผ javascript๋ก ๋ณํํด์ฃผ๋ ์ปดํ์ผ๋ฌ
Swift์ฒ๋ผ ์์์น๋ชปํ null ์ฐธ์กฐ ์๋ฌ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์ปดํ์ผ ์
null ๊ฐ์ด ๋ค์ด๊ฐ ์ ์๋ค๊ณ ๋ช
์ํ์ง ์์ ๋ณ์์ null์ด ๋ค์ด๊ฐ๋์ง ์ฒดํฌํ๋ค.
์ด๋ ์์ ํ ํ๋ก๊ทธ๋จ์ ๋น๋ํ๋๋ฐ ํ์ํ๋ค.
Flutter ํ๋ ์์ํฌ์ Dart ์ธ์ด๋ ๋ชจ๋ Google์์ ๊ฐ๋ฐํ๋ค.
๋ฐ๋ผ์ Flutter ํ๋ ์์ํฌ๋ฅผ ์ต์ ํ ํ๋๋ฐ ์์ด Dart ์ธ์ด์ ๋ณ๊ฒฝ์ด ํ์ํ๋ค ์ถ์ผ๋ฉด
Google์ด Dart ์ธ์ด๋ฅผ ์์ ํ ์ ์๋ค.
์๋ฅผ๋ค์ด ๊ธฐ์กด Dart ์ธ์ด๋ Native ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ง์ํ๋ AOT ํด์ฒด์ธ์ด ์์๋๋ฐ,
์ง๊ธ์ Dart ์ธ์ด์ AOT ํด์ฒด์ธ์ด ์๋ค.
์ด๊ฒ์ Flutter ๊ฐ๋ฐํ์ด ๋ค์ํ ํ๋ซํผ์์ ๋น ๋ฅธ์๋๋ก ๋์ํ๊ธฐ์ํด
Dart ๊ฐ๋ฐํ์ ์์ฒญํ์ฌ ์๊ธด๊ฒ์ด๋ผ๊ณ ํ๋ค.
(์ ํ์ค๋ฆฌ์ฝ๊ณผ ์ํํธ์จ์ด ๊ด๊ณ๋ผ๊ณ ํ๋ฉด ๋ ๋ผ๋?...)