iBetter Books
수정

DartPad로 바로 실습하기

SDK를 설치하지 않아도 Dart 코드를 바로 실행할 수 있는 방법이 있습니다. 바로 DartPad입니다. 브라우저만 있으면 됩니다. 카페에서 노트북을 꺼냈는데 개발 환경이 없을 때도, 친구에게 코드를 보여주고 싶을 때도 DartPad가 답입니다.

DartPad란

DartPad는 Dart 팀이 공식으로 운영하는 온라인 코드 편집기입니다. 별도 설치 없이 브라우저에서 Dart 코드를 작성하고 실행할 수 있습니다. 아래 주소로 접속합니다.

https://dartpad.dev

처음 접속하면 간단한 예제 코드가 이미 작성되어 있습니다. 왼쪽이 코드 편집 영역이고, 오른쪽이 실행 결과 영역입니다. 상단의 "Run" 버튼을 클릭하면 코드가 실행됩니다.

코드 작성하고 실행하기

기존 코드를 지우고 아래 코드를 직접 입력해봅니다.

void main() {
  print('DartPad에서 안녕하세요!');
  
  for (int i = 1; i <= 5; i++) {
    print('$i번째 출력');
  }
}

코드를 입력한 뒤 "Run" 버튼을 클릭하거나 Ctrl+Enter(macOS는 Cmd+Enter)를 누릅니다. 오른쪽 패널에 결과가 나타납니다.

DartPad에서 안녕하세요!
1번째 출력
2번째 출력
3번째 출력
4번째 출력
5번째 출력

이처럼 DartPad는 별도의 설정 없이 바로 Dart 코드를 실행할 수 있어서 빠르게 아이디어를 확인하거나 문법을 익힐 때 매우 편리합니다.

코드 공유하기

DartPad의 또 다른 장점은 코드를 간편하게 공유할 수 있다는 점입니다. 작성한 코드를 다른 사람과 공유하고 싶다면 상단 메뉴에서 "Share" 버튼을 클릭합니다. 고유한 링크가 생성되고, 이 링크를 공유하면 받은 사람이 같은 코드를 바로 열어볼 수 있습니다.

이 책에서도 일부 예제는 DartPad 링크를 제공합니다. 링크를 클릭하면 브라우저에서 바로 코드를 확인하고 실행해볼 수 있습니다.

GitHub Gist와 연동하는 기능도 있습니다. Gist URL을 DartPad 주소 뒤에 붙이면 해당 코드를 DartPad에서 바로 열 수 있습니다.

https://dartpad.dev/?id={gist_id}

DartPad의 제약사항

DartPad는 편리하지만 몇 가지 제약이 있습니다. 이 제약을 미리 알아두면 "왜 안 되지?" 하고 당황하는 일을 줄일 수 있습니다.

첫째, dart:io 라이브러리를 사용할 수 없습니다. dart:io는 파일 입출력, 소켓, 표준 입출력 등 운영체제와 직접 상호작용하는 기능을 제공합니다. 아래와 같은 코드는 DartPad에서 오류가 납니다.

import 'dart:io';

void main() {
  // DartPad에서는 실행할 수 없습니다
  var file = File('test.txt');
}

둘째, 외부 패키지를 자유롭게 사용할 수 없습니다. DartPad에서 사용할 수 있는 패키지는 일부로 제한되어 있습니다. pub.dev에서 내려받는 일반 패키지는 대부분 사용할 수 없습니다.

셋째, 파일을 여러 개 만드는 멀티파일 프로젝트는 지원하지 않습니다. DartPad는 하나의 파일만 편집할 수 있습니다.

넷째, 결과를 저장하거나 내려받을 수 없습니다. 작성한 코드는 링크로 공유하거나 직접 복사해서 보관해야 합니다.

이러한 제약 때문에 복잡한 프로그램이나 파일 입출력이 필요한 예제는 로컬 환경에서 실행해야 합니다.

이 책에서 DartPad를 활용하는 방법

이 책의 예제는 두 가지로 나뉩니다.

DartPad에서 실행 가능한 예제는 코드 블록 상단에 아래와 같이 표시합니다.

// DartPad에서 실행 가능
void main() {
  var name = 'Dart';
  print('Hello, $name!');
}

반면 dart:io를 사용하거나 파일을 다루는 예제는 로컬 환경이 필요합니다. 해당 예제에는 별도로 안내합니다.

이 책의 PART 01부터 PART 09까지는 대부분 DartPad에서 실행할 수 있도록 예제를 구성했습니다. 변수, 타입, 함수, 클래스, 비동기 같은 핵심 개념은 dart:io 없이도 충분히 익힐 수 있습니다.

PART 10의 미니 프로젝트는 CLI 앱이기 때문에 dart:io를 사용합니다. 그 챕터는 로컬 환경에서 따라하는 것을 권장합니다.

다음 챕터에서는

이제 개발 환경도 준비되었고, DartPad 사용법도 익혔습니다. 본격적으로 Dart 언어를 배울 준비가 끝났습니다. 다음 PART에서는 Dart의 변수와 타입 시스템으로 들어갑니다. Dart가 어떻게 데이터를 다루는지, 왜 타입을 명시하면 좋은지 이야기해보겠습니다.