Google์ Flutter 2 ์ฌ์ฉ์ ์ธํฐํ์ด์ค ๊ฐ๋ฐ ํ๋ ์์ํฌ๋ฅผ ์ถ์ํ์ต๋๋ค. ์ด๋ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๊ธฐ ์ํ ํ๋ ์์ํฌ์์ ๋ฐ์คํฌํฑ ํ๋ก๊ทธ๋จ๊ณผ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ํฌํจํ ๋ชจ๋ ์ ํ์ ํ๋ก๊ทธ๋จ์ ๋ง๋๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๋ฒ์ฉ ํ๋ ์์ํฌ๋ก์ ์ ํ์ ์๋ฏธํฉ๋๋ค.
Flutter๋ React Native์ ๋์์ผ๋ก ์ฌ๊ฒจ์ง๋ฉฐ, ๋จ์ผ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ iOS๋ฅผ ํฌํจํ ์ฌ๋ฌ ํ๋ซํผ์ฉ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ถ์ํ ์ ์๋๋ก ํฉ๋๋ค. Android, Windows, macOS ะธ Linux๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฌผ๋ก ๋ธ๋ผ์ฐ์ ์์ ์คํ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ ์ง์ํฉ๋๋ค. Flutter 1์ผ๋ก ์์ฑ๋ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ Flutter 2๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ ํ ์ฝ๋๋ฅผ ๋ค์ ์์ฑํ ํ์ ์์ด ๋ฐ์คํฌํฑ ๋ฐ ์น์ฉ์ผ๋ก ๋ณํํ ์ ์์ต๋๋ค.
Flutter ์ฝ๋์ ์ฃผ์ ๋ถ๋ถ์ Dart ์ธ์ด๋ก ๊ตฌํ๋์์ผ๋ฉฐ, ์ ํ๋ฆฌ์ผ์ด์ ์คํ์ ์ํ ๋ฐํ์ ์์ง์ C++๋ก ์์ฑ๋์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ๋ Flutter์ ๊ธฐ๋ณธ Dart ์ธ์ด ์ธ์๋ Dart Foreign Function ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ C/C++ ์ฝ๋๋ฅผ ํธ์ถํ ์ ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์ ํ๋ซํผ์ฉ ๋ค์ดํฐ๋ธ ์ฝ๋๋ก ์ปดํ์ผํ์ฌ ๋์ ์คํ ์ฑ๋ฅ์ ๋ฌ์ฑํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๊ฐ ๋ณ๊ฒฝ ํ์ ํ๋ก๊ทธ๋จ์ ๋ค์ ์ปดํ์ผํ ํ์๊ฐ ์์ต๋๋ค. Dart๋ ์คํ ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณ๊ฒฝํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ฆ์ ํ๊ฐํ ์ ์๋ ํซ ๋ฆฌ๋ก๋ ๋ชจ๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
Flutter 2๋ ํ๋ก๋์ ๋ฐฐํฌ์ ์ ํฉํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋๋ ๋ฐ ๋ํ ์๋ฒฝํ ์ง์์ ์ฝ์ํฉ๋๋ค. ์น์์ Flutter๋ฅผ ์ฌ์ฉํ๋ ์ธ ๊ฐ์ง ์ฃผ์ ์๋๋ฆฌ์ค๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๋ ๋ฆฝํ ์น ์ ํ๋ฆฌ์ผ์ด์ (PWA, Progressive Web Apps) ๊ฐ๋ฐ, ๋จ์ผ ํ์ด์ง ์น ์ ํ๋ฆฌ์ผ์ด์ (SPA, Single Page Apps) ์์ฑ, ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ๋ณํ. ์น ๊ฐ๋ฐ ๋๊ตฌ์ ํน์ง์ผ๋ก๋ 2D ๋ฐ 3D ๊ทธ๋ํฝ ๋ ๋๋ง ๊ฐ์ ๋ฉ์ปค๋์ฆ ์ฌ์ฉ, ํ๋ฉด์์ ์์์ ์ ์ฐํ ๋ ์ด์์, WebAssembly์ ์ปดํ์ผ๋ CanvasKit ๋ ๋๋ง ์์ง ๋ฑ์ด ์์ต๋๋ค.
๋ฐ์คํฌํฑ ์ฑ ์ง์์ ํ์ฌ ๋ฒ ํ ๋ฒ์ ์ด๋ฉฐ ์ฌํด ์ถ์๋ ํฅํ ๋ฒ์ ์์ ์์ ํ๋ ์์ ์ ๋๋ค. Canonical, Microsoft, ๊ทธ๋ฆฌ๊ณ Toyota๋ Flutter ๊ฐ๋ฐ ์ง์์ ๋ฐํํ์ต๋๋ค. Canonical์ Flutter๋ฅผ ์์ฌ ์ฑ์ ์ฃผ์ ํ๋ ์์ํฌ๋ก ์ ํํ์ผ๋ฉฐ, ์๋ก์ด ์ค์น ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์๋ Flutter๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. Ubuntu๋ง์ดํฌ๋ก์ํํธ๋ ์ํผ์ค ๋์ค์ ๊ฐ์ ์ฌ๋ฌ ๊ฐ์ ํ๋ฉด์ ๊ฐ์ง ํด๋๋ธ ๊ธฐ๊ธฐ์ ํ๋ฌํฐ๋ฅผ ์ ์ฉํ์ต๋๋ค. ํ ์ํ๋ ์ฐจ๋์ฉ ์ธํฌํ ์ธ๋จผํธ ์์คํ ์ ํ๋ฌํฐ๋ฅผ ์ฌ์ฉํ ๊ณํ์ ๋๋ค. ๋ํ ํ๋ฌํฐ๋ ๊ตฌ๊ธ์ ๋ง์ดํฌ๋ก์ปค๋ ์ด์์ฒด์ ์ธ ํธ์์์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์๋ ์ฌ์ฉ๋ฉ๋๋ค.

๋์์ Dart 2.12 ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ฆด๋ฆฌ์ค๊ฐ ์ถ์๋์์ผ๋ฉฐ, ์ด๋ฅผ ํตํด ๊ทผ๋ณธ์ ์ผ๋ก ์ฌ์ค๊ณ๋ Dart 2 ๋ธ๋์น์ ๊ฐ๋ฐ์ด ๊ณ์๋์์ต๋๋ค. Dart 2๋ ๊ฐ๋ ฅํ ์ ์ ํ์ดํ์ ์ฌ์ฉํ๋ค๋ ์ ์์ ์๋ Dart ์ธ์ด์ ๋ค๋ฆ ๋๋ค(์ ํ์ ์๋์ผ๋ก ์ถ๋ก ๋ ์ ์์ผ๋ฏ๋ก ์ ํ์ ์ง์ ํ ํ์๋ ์์ง๋ง, ๋์ ํ์ดํ์ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ผ๋ฉฐ ์ฒ์ ๊ณ์ฐ๋ ์ ํ์ด ๋ณ์์ ํ ๋น๋๊ณ ์ดํ ์๊ฒฉํ ์ ํ ๊ฒ์ฌ๊ฐ ์ ์ฉ๋ฉ๋๋ค).
์ด ๋ฆด๋ฆฌ์ค๋ ๊ฐ์ด ์ ์๋์ง ์๊ณ Null๋ก ์ค์ ๋ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ์๋ํ์ฌ ๋ฐ์ํ๋ ์ถฉ๋์ ๋ฐฉ์งํ๋ null ์์ ๋ชจ๋๋ฅผ ์์ ํํ ๊ฒ์ผ๋ก ์ ๋ช ํฉ๋๋ค. ์ด ๋ชจ๋๋ ๋ณ์์ ๋ช ์์ ์ผ๋ก null ๊ฐ์ด ํ ๋น๋์ง ์๋ ํ ๋ณ์๊ฐ ์ ์๋์ง ์์ ๊ฐ์ ๊ฐ์ง ์ ์์์ ์๋ฏธํฉ๋๋ค. ์ด ๋ชจ๋๋ ๋ณ์์ ์ ํ์ ์๊ฒฉํ๊ฒ ๊ณ ๋ คํ๋ฏ๋ก ์ปดํ์ผ๋ฌ๊ฐ ์ถ๊ฐ์ ์ธ ์ต์ ํ๋ฅผ ์ ์ฉํ ์ ์์ต๋๋ค. ์ ํ ์ ํฉ์ฑ์ ์ปดํ์ผ ์์ ์ ๊ฒ์ฌ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, "int"์ ๊ฐ์ด ์ ์๋์ง ์์ ์ํ๋ฅผ ์๋ฏธํ์ง ์๋ ์ ํ์ ๋ณ์์ "Null" ๊ฐ์ ํ ๋นํ๋ ค๊ณ ํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
Dart 2.12์ ๋ ๋ค๋ฅธ ์ค์ํ ๊ฐ์ ์ฌํญ์ C API์ ์ ๊ทผํ ์ ์๋ ๊ณ ์ฑ๋ฅ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋๋ก ํด์ฃผ๋ FFI ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์ ์ ์ธ ๊ตฌํ์ ๋๋ค. ์ฑ๋ฅ ๋ฐ ํฌ๊ธฐ ์ต์ ํ๊ฐ ์ด๋ฃจ์ด์ก์ต๋๋ค. Flutter๋ก ์์ฑ๋ ๊ฐ๋ฐ์ ๋๊ตฌ์ ์ฝ๋ ํ๋กํ์ผ๋ง ์์คํ ์ด ์ถ๊ฐ๋์์ผ๋ฉฐ, Dart ๋ฐ Flutter ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ํ ์๋ก์ด ํ๋ฌ๊ทธ์ธ๋ ์ ๊ณต๋ฉ๋๋ค. Android Studio/IntelliJ ๋ฐ VS Code.

์ถ์ฒ : opennet.ru
