Skip to content

โ† ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๊ฐ€์ด๋“œ ๋ชฉ๋ก์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ

๐ŸŽฏ Dart ์ƒ์„ธ ๊ฐ€์ด๋“œ โ€‹

"๊ตฌ๊ธ€์ด Flutter๋ผ๋Š” ํฌ๋กœ์Šคํ”Œ๋žซํผ ๋‚ ๊ฐœ๋ฅผ ๋‹ฌ์•„์ฃผ์–ด ์ „์„ฑ๊ธฐ๋ฅผ ๋งž์ดํ•œ, ํ•œ ๋ฒˆ์˜ ์ฝ”๋”ฉ์œผ๋กœ ์•ˆ๋“œ๋กœ์ด๋“œ์™€ iOS๋ฅผ ๋™์‹œ ํญ๊ฒฉํ•˜๋Š” ๋ช…์‚ฌ์ˆ˜"


๐Ÿ’ก 1. 30๋…„์ฐจ ์„ ๋ฐฐ์˜ ์‰ฌ์šด ์„ค๋ช… โ€‹

๊ณผ๊ฑฐ์—๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ๊ณผ iOS ์•ฑ์„ ๋งŒ๋“ค๋ ค๋ฉด ๊ฐ๊ฐ Kotlin(์•ˆ๋“œ๋กœ์ด๋“œ)๊ณผ Swift(iOS)๋ฅผ ๋”ฐ๋กœ ๊ณต๋ถ€ํ•ด ์ฝ”๋“œ๋ฅผ ๋”ฐ๋กœ ๋‘ ๋ฒˆ ์งฐ์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. 1์ธ ์Šคํƒ€ํŠธ์—…์ด๋‚˜ ์†Œ๊ทœ๋ชจ ํŒ€์—๊ฒŒ๋Š” ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„๊ณผ ๋น„์šฉ์ด ๋‘ ๋ฐฐ๋กœ ๋“œ๋Š” ์ง€์˜ฅ ๊ฐ™์€ ์ž‘์—…์ด์—ˆ์ฃ .

Dart(๋‹คํŠธ) ๋Š” ๋ฐ”๋กœ ์ด ์ง€์˜ฅ์—์„œ ๋ฐง์ค„์„ ๋˜์ ธ ์ค€ ๊ตฌ๊ธ€์˜ Flutter(ํ”Œ๋Ÿฌํ„ฐ) ํ”„๋ ˆ์ž„์›Œํฌ ์ „์šฉ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ๋‹คํŠธ๋Š” ์ž๋ฐ”, C#, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์žฅ์ ๋“ค์„ ๊ณ ๋ฃจ ์„ž์–ด ๋ฌธ๋ฒ•์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋•๋ถ„์— ์ž๋ฐ”๋‚˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ•  ์ค„ ์•„๋Š” ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ๋‹จ ๋ช‡ ์‹œ๊ฐ„ ๋งŒ์— ๋ฌธ๋ฒ•์„ ํ„ฐ๋“ํ•  ์ˆ˜ ์žˆ์„ ์ •๋„๋กœ ์ต์ˆ™ํ•ฉ๋‹ˆ๋‹ค.

  • ๋น„์œ ํ•˜์ž๋ฉด: ํ•˜๋‚˜์˜ ์šด์ „๋Œ€๋กœ ์•ˆ๋“œ๋กœ์ด๋“œ(์ขŒํ•ธ๋“ค)์™€ iOS(์šฐํ•ธ๋“ค) ์ฐจ๋Ÿ‰์„ ๋ชจ๋‘ ๋™์‹œ์— ์กฐ์ข…ํ•ด๋ฒ„๋ฆฌ๋Š” ๋งŒ๋Šฅ ์šด์ „๋ฉดํ—ˆ์ฆ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๐Ÿ› ๏ธ 2. ์–ด๋””์— ์ฃผ๋กœ ์“ฐ์ด๋‚˜์š”? โ€‹

  1. Flutter ํฌ๋กœ์Šคํ”Œ๋žซํผ ์•ฑ ๊ฐœ๋ฐœ: ํ•˜๋‚˜์˜ Dart ์ฝ”๋“œ๋ฒ ์ด์Šค๋กœ ์•ˆ๋“œ๋กœ์ด๋“œ, iOS ๋ชจ๋ฐ”์ผ ์•ฑ์€ ๋ฌผ๋ก ์ด๊ณ  ์›น์‚ฌ์ดํŠธ, macOS/Windows ๋ฐ์Šคํฌํ†ฑ ํ”„๋กœ๊ทธ๋žจ๊นŒ์ง€ ํ•œ ๋ฐฉ์— ํ†ต์งœ ์ปดํŒŒ์ผํ•˜์—ฌ ์ถœ์‹œํ•ฉ๋‹ˆ๋‹ค.

โš–๏ธ 3. ์žฅ์ ๊ณผ ๋‹จ์  (์„ ๋ฐฐ์˜ ์†”์ง ํ•œ๋งˆ๋””) โ€‹

  • ์žฅ์  (์‹œ๊ฐ„ ๋‹จ์ถ• ๋ํŒ์™•):
    • Hot Reload (ํ•ซ ๋ฆฌ๋กœ๋“œ): ์ฝ”๋“œ๋ฅผ ๊ณ ์น˜๊ณ  ์ €์žฅ ๋ฒ„ํŠผ๋งŒ ๋ˆ„๋ฅด๋ฉด, ํฐ์— ์ผœ์ ธ ์žˆ๋Š” ์•ฑ ํ™”๋ฉด์ด 0.5์ดˆ ๋งŒ์— ๋ฐ”๋€Œ์–ด ๊ฐœ๋ฐœ ํ”ผ๋“œ๋ฐฑ ์†๋„๊ฐ€ ํ™˜์ƒ์ ์ž…๋‹ˆ๋‹ค.
    • ์‰ฌ์šด ํ•™์Šต ๋‚œ์ด๋„: ๋ฌธ๋ฒ•์ด ๋งค์šฐ ๊ทœ์น™์ ์ด๊ณ  ์ƒ์‹์ ์ด๋ผ ์˜ค๋ฅ˜๋ฅผ ๋‚ผ ์š”์ธ์ด ์ ์Šต๋‹ˆ๋‹ค.
  • ๋‹จ์  (Flutter ์˜์กด์„ฑ):
    • ํ”Œ๋Ÿฌํ„ฐ ์™ธ์˜ ์‚ฌ์šฉ์ฒ˜ ๋ถ€์กฑ: ํ”Œ๋Ÿฌํ„ฐ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์•„๋‹Œ ๋…๋ฆฝ์ ์ธ ์›น ๋ฐฑ์—”๋“œ๋‚˜ ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ถ„์•ผ์—์„œ๋Š” ๋‹คํŠธ ์–ธ์–ด ๋‹จ๋…์œผ๋กœ ์“ฐ์ด๋Š” ์ผ์ด ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค.

๐Ÿš€ 4. ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ ์ฒซ๊ฑธ์Œ ์ฝ”๋“œ โ€‹

๋‹คํŠธ์˜ ๊น”๋”ํ•˜๊ณ  ์ •์ œ๋œ ํด๋ž˜์Šค ์„ ์–ธ๊ณผ ๋™์  ๋ฌธ์ž์—ด ํ…œํ”Œ๋ฆฟ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

dart
class App {
  String name;
  String platform;

  // ์ƒ์„ฑ์ž ๋‹จ์ถ• ๋ฌธ๋ฒ•
  App(this.name, this.platform);

  void run() {
    print('๐Ÿš€ $name ์•ฑ์ด $platform ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค!');
  }
}

void main() {
  // Dart๋Š” ๊ฐ€๋ฒผ์šด ์„ ์–ธ๊ณผ ์‹คํ–‰์„ ์ง€ํ–ฅํ•ฉ๋‹ˆ๋‹ค.
  var myApp = App('์ง€์‹DB ๋ชจ๋ฐ”์ผ', 'Android/iOS');
  myApp.run();
}

๐ŸŽฏ 5. ์ดˆ๋ณด์ž ์ถ”์ฒœ ๊ณต๋ถ€ ๋ฐฉํ–ฅ โ€‹

  1. ๋‹คํŠธ๋ฅผ ๋”ฐ๋กœ ๊นŠ๊ฒŒ ํŒŒ๊ณ ๋“ค๊ธฐ๋ณด๋‹ค, Flutter ๊ฐœ๋ฐœ ์„ธํŒ…์„ ํ•˜๊ณ  ํ”Œ๋Ÿฌํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ํ•„์š”ํ•œ ๋‹คํŠธ ๋ฌธ๋ฒ•์„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์Šต๋“ํ•˜๋Š” ๊ฒƒ์ด 100๋ฐฐ ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.
  2. UI ์œ„์ ฏ์„ ๊ทธ๋ฆฌ๋Š” ์ƒํƒœ ๊ด€๋ฆฌ ๊ตฌ์กฐ(StatelessWidget / StatefulWidget)์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ณต๋ถ€ํ•˜์‹ญ์‹œ์˜ค.
  3. ๊ตฌ๊ธ€์˜ Flutter ๊ณต์‹ ์œ ํŠœ๋ธŒ ์ฑ„๋„์ด๋‚˜ ๊ณต์‹ ๋„ํ๋จผํŠธ์˜ ์ฝ”๋“œ ๋žฉ์„ ๋”ฐ๋ผ ํ•˜๋ฉด์„œ ์žฅ๋‚œ๊ฐ ์•ฑ์„ ์„œ๋„ˆ ๊ฐœ ์ง์ ‘ ๊ตฌ๋™ํ•ด ๋ณด์„ธ์š”.

๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ง€์‹DB โ€” ๋” ๋‚˜์€ ๊ฐœ๋ฐœ ๊ฒฝํ—˜์„ ์œ„ํ•ด