Skip to content

Friox/study-dart

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

9 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Dart

ํ•™์Šต๊ธฐ๊ฐ„ : 2023.01.18 ~ 2023.02.06
๋ชฉ์  : Flutter ๋ฐฐ๊ฒฝ์ง€์‹

Why Dart?

  • UI์— ์ตœ์ ํ™”
  • ์ƒ์‚ฐ์ ์ธ ๊ฐœ๋ฐœํ™˜๊ฒฝ
  • ๋ชจ๋“ ํ”Œ๋žซํผ(mobile, desktop, backend, ...)์—์„œ ๋น ๋ฆ„

Dart Compiler

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๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ

Null Safety

Swift์ฒ˜๋Ÿผ ์˜ˆ์ƒ์น˜๋ชปํ•œ null ์ฐธ์กฐ ์—๋Ÿฌ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ปดํŒŒ์ผ ์ „
null ๊ฐ’์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ช…์‹œํ•˜์ง€ ์•Š์€ ๋ณ€์ˆ˜์— null์ด ๋“ค์–ด๊ฐ€๋Š”์ง€ ์ฒดํฌํ•œ๋‹ค.
์ด๋Š” ์•ˆ์ „ํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ๋นŒ๋“œํ•˜๋Š”๋ฐ ํ•„์š”ํ•˜๋‹ค.

Flutter์™€ Dart์˜ ๊ด€๊ณ„

Flutter ํ”„๋ ˆ์ž„์›Œํฌ์™€ Dart ์–ธ์–ด๋Š” ๋ชจ๋‘ Google์—์„œ ๊ฐœ๋ฐœํ–ˆ๋‹ค.
๋”ฐ๋ผ์„œ Flutter ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ตœ์ ํ™” ํ•˜๋Š”๋ฐ ์žˆ์–ด Dart ์–ธ์–ด์˜ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•˜๋‹ค ์‹ถ์œผ๋ฉด
Google์ด Dart ์–ธ์–ด๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
์˜ˆ๋ฅผ๋“ค์–ด ๊ธฐ์กด Dart ์–ธ์–ด๋Š” Native ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์ง€์›ํ•˜๋Š” AOT ํˆด์ฒด์ธ์ด ์—†์—ˆ๋Š”๋ฐ,
์ง€๊ธˆ์€ Dart ์–ธ์–ด์— AOT ํˆด์ฒด์ธ์ด ์žˆ๋‹ค.
์ด๊ฒƒ์€ Flutter ๊ฐœ๋ฐœํŒ€์ด ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์—์„œ ๋น ๋ฅธ์†๋„๋กœ ๋™์ž‘ํ•˜๊ธฐ์œ„ํ•ด
Dart ๊ฐœ๋ฐœํŒ€์— ์š”์ฒญํ•˜์—ฌ ์ƒ๊ธด๊ฒƒ์ด๋ผ๊ณ  ํ•œ๋‹ค.
(์• ํ”Œ์‹ค๋ฆฌ์ฝ˜๊ณผ ์†Œํ”„ํŠธ์›จ์–ด ๊ด€๊ณ„๋ผ๊ณ  ํ•˜๋ฉด ๋ ๋ผ๋‚˜?...)

About

Dart Study Log

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages