코드베이스를 더 행복하게 만드는 9가지 Dart 문법 설탕 기능

발행: (2026년 5월 27일 PM 12:38 GMT+9)
4 분 소요
원문: Dev.to

출처: Dev.to

2년 넘게 사용해 온 유용한 Dart 언어 기능들. Kotlin과 다른 언어들을 오가며 작업하다 보니, Dart에는 눈치채지 못할 정도로 매일 쓰는 문법 설탕이 많다는 걸 깨달았습니다—이 기능들이 조용히 제 삶을 훨씬 편하게 만들어 주죠. 다른 언어로 전환할 때마다 이름이 있든 없든 매개변수, 널‑인식 연산자, 스프레드 연산자 같은 작은 편리함이 그리워집니다. 특히 Flutter 코드베이스를 깔끔하게 유지하는 데 큰 도움이 됩니다.

아래는 제가 일상에서 즐겨 쓰는 기능들입니다.

생성자 축약 (Initializer Parameters)

class Person {
  String name;
  int age;

  // 자세한 버전
  Person(String name, int age) {
    this.name = name;
    this.age = age;
  }
}

다음처럼 간단히 쓸 수 있습니다:

class Person {
  String name;
  int age;

  Person(this.name, this.age);
}

깨끗하고 가독성이 좋으며 보일러플레이트가 적습니다.

화살표 함수 (=>)

// 자세한 버전
int add(int a, int b) {
  return a + b;
}

Dart 스타일:

int add(int a, int b) => a + b;

짧은 함수와 콜백에 딱 맞습니다.

캐스케이드 연산자 (..)

var person = Person()
  ..name = 'John'
  ..age = 30
  ..sayHello();

다음과 동일합니다:

var person = Person();
person.name = 'John';
person.age = 30;
person.sayHello();

특히 Flutter 위젯 트리에서 강력합니다.

널‑인식 연산자

Dart는 널 처리를 표현력 있게, 안전하게 해줍니다:

  • ?. – 널 예외를 방지
  • ?? – 기본값 제공
  • ??= – 널일 때만 할당
String? name;
print(name?.toUpperCase() ?? 'No name');
name ??= 'Guest';

한 번 익숙해지면 돌아가기 힘듭니다.

컬렉션 if / for (리스트, 셋, 맵 안에서)

var isLoggedIn = true;
var menu = [
  'Home',
  if (isLoggedIn) 'Profile',
  for (var i = 1; i  3.14 * radius * radius;
}

간단하고 표현력이 풍부하며 가독성이 좋습니다.

문자열 보간

print('Hello, $name! You are ${age + 1} next year.');

문자열 연결보다 훨씬 깔끔합니다.

Kotlin에서 아직도 그리운 것들

구조 분해 선언

값을 바로 풀어낼 수 있다는 점이 매우 편리합니다.

강력한 when

Kotlin의 when은 Dart의 switch보다 표현력이 뛰어납니다:

when (value) {
    in 1..10 -> ...
    is String -> ...
}

범위, 타입 검사, 다중 조건을 바로 지원합니다.

마무리 생각

Dart가 항상 인정받지는 않지만, 개발자 경험이 Flutter를 생산적으로 느끼게 하는 이유 중 하나입니다. 이런 작은 문법 설탕들이 모여 큰 차이를 만들고, 한 번 익숙해지면 다른 언어에서 그 부재를 크게 느끼게 됩니다.

Flutter/Dart 개발자라면 공감하실 겁니다. 아직 아니라면—Dart를 한 번 써보세요 😉

0 조회
Back to Blog

관련 글

더 보기 »