๐ŸŽฏ [Dart] Dart Project ์ƒ์„ฑํ•ด ๋ณด๊ธฐ

Tygerยท2024๋…„ 5์›” 10์ผ
1

Flutter

๋ชฉ๋ก ๋ณด๊ธฐ
58/64
post-custom-banner

๐ŸŽฏ Dart Project ์ƒ์„ฑํ•ด ๋ณด๊ธฐ

Dart Language
Flutter Documentation
dartpad.dev

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Flutter ํ”„๋กœ์ ํŠธ๊ฐ€ ์•„๋‹Œ Dart ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์— ๋Œ€ํ•ด์„œ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ณ˜๋‹ค.

Dart ? Flutter ?

Dart ์–ธ์–ด๋Š” ๊ตฌ๊ธ€์—์„œ ๋งŒ๋“  ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ๊ทธ๋ ˆ๋ฐ ์–ธ์–ด์ด๋‹ค.

Flutter๋Š” ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค.

๋Œ€ํ‘œ์ ์œผ๋กœ Flutter๋Š” Apple iOS, Google Android OS ํ”Œ๋žซํผ์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ Application ๊ฐœ๋ฐœ์— ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๊ณ , ์•ฑ ์™ธ์—๋„ Web, Windows, Linux ๋“ฑ์˜ ๊ฐœ๋ฐœ๋„ ๊ฐ€๋Šฅํ•œ ํ”„๋ ˆ์ž„์›Œํฌ ์ด๋‹ค.

Flutter ๊ฐœ๋ฐœ์— ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด๋กœ๋Š” Dart ์–ธ์–ด๊ฐ€ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค.

์ด์ฒ˜๋Ÿผ Dart๋Š” ์–ธ์–ด์ด๊ณ , Flutter๋Š” ํ”„๋ ˆ์ž„์›Œํฌ ์ด๋‹ค.

Dart Project

๋Œ€๋ถ€๋ถ„ Flutter๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ Dart ์–ธ์–ด๋ฅผ ํ•™์Šตํ•˜๊ธฐ ๋•Œ๋ฌธ์—, Dart ์–ธ์–ด ์ž์ฒด๋ฅผ ํ•™์Šตํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๋ผ๋ฉด ์ฃผ๋กœ dartpad.dev์—์„œ Dart ์–ธ์–ด๋ฅผ ํ•™์Šต ํ–ˆ์„ ๊ฒƒ์ด๋‹ค.

dartpad์—์„œ๋Š” ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” IDE๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ต๋‹ตํ•˜๊ณ  ๋Š๋ฆฐ ๋ถ€๋ถ„์ด ์žˆ์–ด, IDE์—์„œ Flutter ํ”„๋กœ์ ํŠธ๊ฐ€ ์•„๋‹Œ Dart ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

์ด๋ฏธ Flutter๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ , ๋น ๋ฅด๊ฒŒ Dart ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ๋งŒ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

Flutter ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ์— ํ„ฐ๋ฏธ๋„์„ ์‚ฌ์šฉํ•ด์„œ ์›ํ•˜๋Š” ๊ฒฝ๋กœ์— ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์›ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•  ๊ฒƒ์ด๋‹ค.

flutter create {project_name}

์—ฌ๊ธฐ์„œ ์•ž์— ๋ช…๋ น์–ด๋งŒ dart๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

dart create dart_sample_project

์ •์ƒ์ ์œผ๋กœ ์ƒ์„ฑ์ด ๋˜์—ˆ๋‹ค.

๊ฐ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” IDE์—์„œ ํ•ด๋‹น ํด๋”๋ฅผ ๊ฐ€์ ธ์˜ค๋ฉด ๋œ๋‹ค. ์ €๋Š” VSCode๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์–ด ํ•ด๋‹น IDE ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค. ๋‹ค๋ฅธ IDE๋„ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ ๋น„์Šทํ•˜๊ณ , ๊ฑฐ์˜ flutter ํ”„๋กœ์ ํŠธ๋ž‘ ํฌ๊ฒŒ ๋‹ค๋ฅธ ๊ฒƒ๋„ ์—†๋‹ค.

Dart๋กœ ์ƒ์„ฑ๋œ ํ”„๋กœ์ ํŠธ์˜ ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด flutter์™€ ๋™์ผํ•˜๊ฒŒ pubspec.yaml ํŒŒ์ผ๋„ ๋ณด์ด๊ณ , ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

Dart ์–ธ์–ด๋งŒ์„ ์‚ฌ์šฉํ•ด์„œ๋„ ํŒจํ‚ค์ง€ ๊ฐœ๋ฐœ์„ ํ•  ์ˆ˜์žˆ๋Š”๋ฐ, ํด๋” ๊ตฌ์กฐ ์ค‘ ๊ธฐ์กด Flutter ํ”„๋กœ์ ํŠธ์—๋Š” ์ƒ์„ฑ๋˜์ง€ ์•Š๋Š” bin ํด๋”๊ฐ€ ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

ํด๋” ๊ตฌ์กฐ์— ๋Œ€ํ•ด์„œ ์‚ดํŽด๋ณด์ž.

๊ธฐ๋ณธ ์ƒ˜ํ”Œ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด bin ํด๋”์˜ ํŒŒ์ผ์—๋Š” main ํ•จ์ˆ˜๊ฐ€ ์žˆ๊ณ , lib ํด๋”์—๋Š” ๊ณ„์‚ฐ์‹์ด ์žˆ๋Š” ํ•จ์ˆ˜๊ฐ€ ์ž‘์„ฑ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

bin, lib ํด๋”์˜ ์ฐจ์ด์ ์€ ์ƒ˜ํ”Œ ์ฝ”๋“œ์—์„œ ๋ณด๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ๊ธฐ๋Šฅ๊ณผ ์—ญํ• ์ด ๋‹ค๋ฅด๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.

binary

bin์€ binary์˜ ์•ฝ์–ด๋กœ, ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ Dart ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ Entry Point, ์ฆ‰ ์ง„์ž…์ ์„ ํฌํ•จํ•˜๊ฒŒ ๋˜๊ณ , ์‹คํ–‰์„ ์œ„ํ•œ ์ฝ”๋“œ ํŒŒ์ผ์ด ํฌํ•จ๋˜๋Š” ํด๋” ์ด๋‹ค.

library

lib ํด๋”๋„ ์•ฝ์–ด์ธ๋ฐ, library๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ Dart ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•˜์—ฌ ์ž„ํฌํŠธ๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ์„ ํฌํ•จํ•˜๋Š ใ„ด๊ตฌ์กฐ์ด๋‹ค. ํ•ด๋‹น ํด๋”์— ํด๋ž˜์Šค, ํ•จ์ˆ˜, ์œ ํ‹ธ๋ฆฌํ‹ฐ ์ฝ”๋“œ์™€ ๊ฐ™์€ ํ•ต์‹ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์ด ํฌํ•จ๋˜๋Š” ๊ตฌ์กฐ์ด๋‹ค.


๊ฐ€๋ณ๊ฒŒ Dart ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋งŒ ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, bin ํด๋”๋“ , lib ํด๋”๋“  ์–ด๋Š ๊ณณ์—์„œ๋‚˜ main ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

์‹คํ–‰ ๋ฐฉ๋ฒ•์€ flutter ํ”„๋กœ์ ํŠธ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•๊ณผ ๋™์ผํ•˜๋‹ค.

๋งˆ๋ฌด๋ฆฌ

๊ฐ„๋‹จํ•˜๊ฒŒ Dart ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ• ๋ถ€ํ„ฐ ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ๋ฐ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ์— ๋Œ€ํ•ด์„œ ์‚ดํŽด๋ดค๋‹ค.

์ €๋„ Dart ์–ธ์–ด๋กœ๋งŒ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ฑฐ๋‚˜ ํŒจํ‚ค์ง€ ๋ฐฐํฌ๋ฅผ ๊ฒฝํ—˜ํ•œ ์ ์ด ์•„์ง ์—†์–ด์„œ ์‚ฌ์šฉํ•ด ๋ณด๋ฉด์„œ ๋ฐฐํฌ๋„ ํ•ด๋ณด๊ณ  ํŒจํ‚ค์ง€ ๊ฐœ๋ฐœ๋„ ํ•ด๋ณด๋ฉด์„œ ์ถ”๊ฐ€์ ์ธ ๋‚ด์šฉ ๊ณต์œ ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค !

profile
Flutter Developer
post-custom-banner

0๊ฐœ์˜ ๋Œ“๊ธ€