iBetter Books
수정

첫 번째 Dart 프로그램 만들기

SDK를 설치했으니 이제 진짜 시작입니다. 이 챕터에서는 Dart 프로젝트를 만들고, 코드를 작성하고, 실행하는 과정을 처음부터 끝까지 따라해봅니다. 길게 설명하지 않겠습니다. 직접 해보는 게 가장 빠릅니다.

dart create로 프로젝트 만들기

터미널을 열고 프로젝트를 만들 폴더로 이동합니다. 그런 다음 dart create 명령어를 실행합니다.

dart create hello_dart

hello_dart는 프로젝트 이름입니다. 마음에 드는 이름으로 바꿔도 됩니다. 단, Dart 프로젝트 이름은 소문자와 밑줄(_)만 사용할 수 있습니다.

명령어를 실행하면 Dart가 알아서 폴더를 만들고 필요한 파일들을 생성합니다. 터미널에 아래와 비슷한 출력이 나타납니다.

Creating hello_dart using template console...

  .gitignore
  analysis_options.yaml
  CHANGELOG.md
  pubspec.yaml
  README.md
  bin/hello_dart.dart
  lib/hello_dart.dart
  test/hello_dart_test.dart

Running pub get...
...
Created project hello_dart! In order to get started, type:

  cd hello_dart
  dart run

Dart가 친절하게 다음에 할 일까지 알려주었습니다. 안내대로 따라갑니다.

cd hello_dartdart run

그러면 아래 결과가 출력됩니다.

Hello world: 42!

첫 번째 Dart 프로그램이 실행되었습니다.

프로젝트 구조 살펴보기

생성된 파일들이 무엇인지 간단히 알아봅니다. VS Code에서 hello_dart 폴더를 열어보세요.

hello_dart/
├── bin/
│   └── hello_dart.dart    ← 프로그램 시작점
├── lib/
│   └── hello_dart.dart    ← 재사용 가능한 코드
├── test/
│   └── hello_dart_test.dart ← 테스트 코드
├── pubspec.yaml           ← 프로젝트 설정 파일
├── analysis_options.yaml  ← 코드 분석 설정
└── .gitignore

지금 당장 모든 파일을 이해할 필요는 없습니다. 지금은 bin/hello_dart.dart 파일에만 집중합니다. 이 파일이 프로그램의 시작점입니다.

main() 함수 이해하기

bin/hello_dart.dart 파일을 열어봅니다.

import 'package:hello_dart/hello_dart.dart' as hello_dart;

void main(List<String> arguments) {
  print('Hello world: ${hello_dart.calculate()}!');
}

처음 보면 복잡해 보일 수 있습니다. 하나씩 살펴보겠습니다.

main() 함수는 프로그램이 시작되는 곳입니다. Dart를 실행하면 가장 먼저 이 함수가 호출됩니다. C, Java, JavaScript를 배운 적이 있다면 익숙한 패턴입니다.

void는 이 함수가 아무것도 반환하지 않는다는 뜻입니다. 프로그램의 시작점이니 반환할 값이 없는 게 자연스럽습니다.

List<String> arguments는 터미널에서 프로그램을 실행할 때 전달하는 인수입니다. 지금은 신경 쓰지 않아도 됩니다.

print()는 화면에 내용을 출력하는 함수입니다. ${...}은 문자열 안에 변수나 표현식을 넣는 방법입니다. 이 부분은 나중에 자세히 다루겠습니다.

지금은 더 단순하게 시작해봅시다. bin/hello_dart.dart 파일의 내용을 다음과 같이 바꿔봅니다.

void main() {
  print('안녕하세요, Dart!');
}

저장하고 터미널에서 실행합니다.

dart run
안녕하세요, Dart!

이게 Dart 프로그램의 가장 기본적인 형태입니다. main() 함수 안에 코드를 작성하면 실행됩니다.

pubspec.yaml 간단히 알아보기

pubspec.yaml 파일은 프로젝트의 신분증 같은 파일입니다. 열어보면 다음과 같이 생겼습니다.

name: hello_dartdescription: A sample command-line application.version: 1.0.0environment:  sdk: ^3.0.0dev_dependencies:  lints: ^3.0.0  test: ^1.24.0

name은 프로젝트 이름, description은 설명, version은 버전 번호입니다.

environmentsdk 항목은 이 프로젝트가 요구하는 Dart SDK 버전을 나타냅니다. ^3.0.0은 "3.0.0 이상, 4.0.0 미만"을 의미합니다.

dev_dependencies는 개발할 때만 필요한 패키지 목록입니다. 나중에 외부 패키지를 사용할 때 여기에 추가하게 됩니다.

지금 당장 이 파일을 수정할 일은 없습니다. 하지만 이 파일이 프로젝트의 기본 정보를 담고 있다는 것은 기억해두세요.

dart run 살펴보기

dart run 명령어는 Dart 프로그램을 실행합니다. 기본적으로 bin/ 폴더 안의 파일을 실행합니다. 만약 실행할 파일을 직접 지정하고 싶다면 이렇게 씁니다.

dart run bin/hello_dart.dart

또는 파일을 직접 실행할 수도 있습니다.

dart bin/hello_dart.dart

세 가지 방법 모두 같은 결과를 냅니다. 지금은 dart run으로 충분합니다.

다음 챕터에서는

로컬에 SDK를 설치하지 않아도 Dart 코드를 바로 실행할 수 있는 방법이 있습니다. 브라우저에서 바로 쓸 수 있는 DartPad입니다. 다음 챕터에서는 DartPad를 사용하는 방법을 알아봅니다. 이 책의 실습 예제 대부분은 DartPad에서도 따라할 수 있도록 구성했습니다.