Dart/๊ธฐ์ดˆ

[Dart ๊ธฐ์ดˆ] Dart ํŠน์ง•

๋ฟŒ๋น„ 2024. 8. 3. 16:16
728x90

๐Ÿ”ฅ Dart  ๋ž€? 

  • Google์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋Œ€์ฒดํ•˜๊ธฐ ์œ„ํ•ด 2011๋…„์— ๊ฐœ๋ฐœํ•œ ๊ฐ์ฒด์ง€ํ–ฅ๊ฐœ๋… ๊ธฐ๋ฐ˜์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด(OOP)์ด๋‹ค 
  • ๋ชจ๋ฐ”์ผ ์•ฑ, ์›น, ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋“ฑ ๋ฌด์—‡์ด๋“  ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค
  • ์›น์•ฑ์ด ์•„๋‹Œ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋กœ ์•ˆ๋“œ๋กœ์ด๋“œ๋‚˜ iOS์šฉ ์•ฑ์„ ๋™์‹œ์— ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค
โ€ป OOP(Object Oriented Programming)

๐Ÿ”ฅ Dart  ํŠน์ง• 

  • user Interface๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ์ตœ์ ํ™”๋˜์–ด ์žˆ๋‹ค
  • ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์ด๋‹ค. ํด๋ž˜์Šค, ์ƒ์†, ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ฐ™์€ ๊ฐ์ฒด ์ง€ํ–ฅ ๊ฐœ๋…์„ ์‚ฌ์šฉํ•œ๋‹ค
    • main() ํ•จ์ˆ˜๋ฅผ ์‹œ์ž‘์ ์œผ๋กœ ๊ฐ€์ง„๋‹ค
    • ๋ณ€์ˆ˜์— ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ์€ ๊ฐ์ฒด์ด๋ฉฐ, ๋ชจ๋“  ๊ฐ์ฒด๋Š” Object ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›๋Š”๋‹ค (Function, number, null ์ „๋ถ€ Object๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค)
    • ๋ณ€์ˆ˜์— ์ €์žฅ๋˜๋Š” ๋ชจ๋“  ๊ฐ’์€ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋กœ ์ทจ๊ธ‰๋œ๋‹ค
  • ๋™์  ํƒ€์ž…(dynamic)์„ ์ง€์›ํ•˜๋Š” ์ •์  ํƒ€์ž… ์–ธ์–ด์ด๋‹ค
    • var: type์„ ์ง€์ •ํ•˜์ง€ ์•Š์•„๋„ dart์—์„œ ํƒ€์ž…์„ ์ถ”๋ก ํ•œ๋‹ค
    • dynamic: ๋ณ€์ˆ˜์— ํƒ€์ž… ์ œํ•œ์„ ๋‘์ง€ ์•Š๋Š”๋‹ค
  • public, private๊ณผ ๊ฐ™์€ ํ‚ค์›Œ๋“œ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค
    • private์˜ ๊ฒฝ์šฐ, ํด๋ž˜์Šค ๋‹จ์œ„๊ฐ€ ์•„๋‹Œ ํŒŒ์ผ ๋‹จ์œ„๋กœ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค
    • private ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•จ์ˆ˜ ๋ช… ์•ž์— ์–ธ๋”๋ฐ”(_)๋ฅผ ๋ถ™์—ฌ์ฃผ๋ฉด ๋œ๋‹ค
  • JIT(Just-In-Time) ์ปดํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ ์ค‘ ๋น ๋ฅธ ๋ฐ˜๋ณต๊ณผ AOT(Ahead-Of-Time) ์ปดํŒŒ์ผ์„ ํ†ตํ•ด ๋ฐฐํฌ ์‹œ ์ตœ์ ํ™”๋œ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค
  • Future์™€ Stream์„ ํ†ตํ•ด ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•œ๋‹ค
  • ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋ฐ ํ•ด์ œ๋ฅผ ๊ฑฑ์ •ํ•˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค
  • HTTP ์š”์ฒญ, ํŒŒ์ผ ์‹œ์Šคํ…œ ์ž‘์—… ๋“ฑ ๋Œ€๋ถ€๋ถ„์˜ ์ผ๋ฐ˜์ ์ธ ์ž‘์—…์„ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค
  • ์ฝ”๋“œ ์ž‘์„ฑ ์‹œ ๋์—๋Š” ์„ธ๋ฏธ์ฝœ๋ก (;)์„ ๊ผญ ์จ์ฃผ์–ด์•ผ ํ•œ๋‹ค
    • dart์—์„œ๋Š” ์ผ๋ถ€๋Ÿฌ ์„ธ๋ฏธ์ฝœ๋ก (;)์„ ์•ˆ ์“ธ ๋•Œ๋„ ์žˆ์–ด์„œ(dart์˜ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜) formatter๊ฐ€ ์ž๋™์œผ๋กœ ์„ธ๋ฏธ์ฝœ๋ก ์„ ์ถ”๊ฐ€ํ•ด์ฃผ์ง€ ์•Š๋Š”๋‹ค
    • ๋นผ๋จน์œผ๋ฉด ์ปดํŒŒ์ผ์ด ์•ˆ๋˜๊ธฐ๋„ ํ•ด์„œ ์‹ ๊ฒฝ ์จ์ค˜์•ผ ํ•œ๋‹ค

โ€ป Reference

https://dart-ko.dev/language

https://focusly777.github.io/dartoop/

728x90