Dart 언어는 구글에서 개발한 프로그래밍 언어로, 특히 모바일 애플리케이션 개발 프레임워크인 Flutter에서 널리 사용됩니다. Dart는 사용하기 쉬운 문법과 빠른 실행 속도를 제공하여 초보자에게 적합합니다. Dart의 기초적인 내용부터 하나씩 자세히 살펴보겠습니다.
1. Dart 개발 환경 설정
설치
Dart를 설치하려면 공식 Dart 사이트에서 다운로드할 수 있습니다. 또는 Flutter를 설치하면 Dart SDK가 함께 설치됩니다.
설치 후, 터미널이나 명령 프롬프트에서 `dart –version` 명령어를 입력하여 설치가 잘 되었는지 확인할 수 있습니다.
개발 도구
Dart 코드를 작성하기 위해 추천하는 개발 도구는 Visual Studio Code(VS Code)입니다. VS Code에서는 Dart 및 Flutter 확장 프로그램을 설치하여 편리하게 개발할 수 있습니다.
2. Dart의 기본 문법
Hello World
Dart의 가장 기본적인 프로그램은 “Hello World”를 출력하는 것입니다.
void main() {
print('Hello, World!');
}
위의 코드를 보면 `main` 함수가 프로그램의 시작점이며, `print` 함수를 사용하여 콘솔에 문자열을 출력합니다.
변수와 데이터 타입
Dart는 강타입 언어로, 변수 선언 시 타입을 지정해야 합니다. 하지만 `var` 키워드를 사용하면 타입을 명시하지 않아도 됩니다.
void main() {
int age = 30; // 정수형 변수
double height = 5.9; // 실수형 변수
String name = 'John Doe'; // 문자열 변수
bool isStudent = true; // 불리언 변수
var country = 'South Korea'; // var를 사용한 변수 선언
country = 'Japan'; // 같은 타입으로 변경 가능
}
기본 연산자
Dart는 대부분의 프로그래밍 언어와 유사한 연산자를 제공합니다.
void main() {
int a = 10;
int b = 20;
// 산술 연산자
print(a + b); // 30
print(a - b); // -10
print(a * b); // 200
print(b / a); // 2.0
print(b % a); // 0
// 비교 연산자
print(a == b); // false
print(a != b); // true
print(a > b); // false
print(a < b); // true
// 논리 연산자
bool x = true;
bool y = false;
print(x && y); // false
print(x || y); // true
print(!x); // false
}
조건문
Dart의 조건문은 `if`, `else if`, `else` 키워드를 사용합니다.
void main() {
int score = 85;
if (score >= 90) {
print('A');
} else if (score >= 80) {
print('B');
} else if (score >= 70) {
print('C');
} else {
print('F');
}
}
반복문
Dart는 `for`, `while`, `do-while` 반복문을 지원합니다.
void main() {
// for문
for (int i = 0; i < 5; i++) {
print(i);
}
// while문
int j = 0;
while (j < 5) {
print(j);
j++;
}
// do-while문
int k = 0;
do {
print(k);
k++;
} while (k < 5);
}
함수
Dart에서 함수를 정의하고 호출하는 방법은 다음과 같습니다.
// 함수 정의
int add(int x, int y) {
return x + y;
}
// 메인 함수에서 함수 호출
void main() {
int sum = add(5, 3);
print(sum); // 8
}
3. 객체 지향 프로그래밍
Dart는 객체 지향 언어로, 클래스와 객체를 사용하여 코드를 구조화할 수 있습니다.
클래스와 객체
// 클래스 정의
class Person {
String name;
int age;
// 생성자
Person(this.name, this.age);
// 메서드
void introduce() {
print('My name is $name and I am $age years old.');
}
}
// 메인 함수에서 객체 생성 및 사용
void main() {
Person p = Person('John Doe', 30);
p.introduce(); // My name is John Doe and I am 30 years old.
}
4. 컬렉션
Dart는 다양한 컬렉션 타입을 제공하여 데이터를 저장하고 조작할 수 있습니다.
리스트
void main() {
List<int> numbers = [1, 2, 3, 4, 5];
numbers.add(6); // 리스트에 요소 추가
print(numbers); // [1, 2, 3, 4, 5, 6]
}
맵
void main() {
Map<String, int> scores = {'Alice': 90, 'Bob': 85};
scores['Charlie'] = 80; // 맵에 요소 추가
print(scores); // {Alice: 90, Bob: 85, Charlie: 80}
}
5. Dart의 비동기 프로그래밍
Dart는 `Future`와 `async`, `await` 키워드를 사용하여 비동기 프로그래밍을 지원합니다.
Future<void> fetchUserOrder() {
return Future.delayed(Duration(seconds: 2), () => print('Order fetched'));
}
void main() async {
print('Fetching user order...');
await fetchUserOrder();
print('Order complete');
}
이 예제에서는 `fetchUserOrder` 함수가 2초 후에 “Order fetched”를 출력하고, `await` 키워드를 사용하여 함수 호출이 완료될 때까지 기다립니다.
여기까지 Dart의 기초적인 내용을 다루어봤습니다. Dart를 배우는 과정에서 다양한 예제와 실습을 통해 더 깊이 있는 이해를 할 수 있습니다. 추가로 더 자세한 내용을 공부하고 싶다면 Dart 공식 문서를 참고하는 것도 좋은 방법입니다.
Dart는 어느 분야에서 많이 활용될까요?
Dart 언어는 여러 분야에서 활용될 수 있지만, 특히 다음과 같은 분야에서 매우 유용하게 사용됩니다:
1. 모바일 애플리케이션 개발
Dart는 구글의 Flutter 프레임워크와 함께 사용되며, Flutter는 단일 코드베이스로 안드로이드와 iOS 애플리케이션을 개발할 수 있는 강력한 툴입니다. Flutter는 빠른 개발 속도, 아름다운 UI, 뛰어난 성능으로 많은 개발자들에게 사랑받고 있습니다. 따라서 모바일 애플리케이션 개발이 Dart의 주요 활용 분야입니다.
- 장점: 단일 코드베이스로 다중 플랫폼 지원, 빠른 Hot Reload 기능, 풍부한 위젯 라이브러리
- 예시: Google Ads, Alibaba, Reflectly 등의 앱이 Flutter로 개발됨.
2. 웹 애플리케이션 개발
Dart는 웹 애플리케이션 개발에서도 유용합니다. Dart의 웹 개발 프레임워크인 AngularDart는 Angular 프레임워크와 유사하게 동작하며, 복잡한 웹 애플리케이션을 구조화된 방식으로 개발할 수 있게 합니다.
- 장점: 강력한 타입 시스템, 안정적인 성능, 유지보수 용이성
- 예시: Google의 여러 내부 도구와 웹 애플리케이션이 Dart로 개발됨.
3. 서버 사이드 개발
Dart는 서버 사이드 개발에도 사용할 수 있습니다. `dart:io` 라이브러리를 사용하여 서버 애플리케이션을 작성할 수 있으며, 이를 통해 웹 서버, REST API 등을 구축할 수 있습니다.
- 장점: 빠른 실행 속도, 풍부한 라이브러리 지원, 비동기 프로그래밍의 용이성
- 예시: 서버 사이드 로직과 백엔드 서비스 구축
4. IoT (Internet of Things)
Dart는 IoT 분야에서도 사용될 수 있습니다. Dart의 경량성과 성능 덕분에 IoT 디바이스에서 실행되는 애플리케이션을 작성하는 데 적합합니다.
- 장점: 효율적인 메모리 사용, 빠른 실행 시간, 다양한 플랫폼 지원
- 예시: 스마트 홈 기기 제어 애플리케이션
5. 게임 개발
Flutter와 함께 Dart는 간단한 2D 게임을 개발하는 데 사용할 수 있습니다. Flutter의 강력한 그래픽 기능과 애니메이션 지원을 통해 간단한 게임부터 복잡한 게임까지 개발할 수 있습니다.
- 장점: 빠른 개발, 다양한 그래픽 및 애니메이션 기능
- 예시: 미니 게임, 교육용 게임 앱