IMCAT.DEV
로그인 가입
Dart 입문 함수형

Dart 함수 정의

Dart 함수 정의 — 초급

함수 정의

1. 도입 (왜 배워야 하는가)

함수는 프로그래밍의 기본 구성 요소 중 하나로, 특정 작업을 수행하는 코드 블록입니다. 실무에서는 여러 사람이 협업하여 코드를 작성할 때, 함수를 사용해 기능을 모듈화하고, 코드의 재사용성을 높이며, 유지보수를 용이하게 합니다. 만약 함수의 개념을 모른다면, 반복적인 코드 작성으로 인해 코드가 길고 복잡해지며, 버그 발생 가능성이 높아지고, 수정이 어려워질 수 있습니다. 즉, 함수는 효율적이고 관리하기 쉬운 코드를 작성하는 데 필수적입니다.

2. 핵심 개념 설명

함수는 입력값(매개변수)을 받아 특정 작업을 수행하고, 결과값(반환값)을 반환하는 구조입니다. 이를 통해 코드의 재사용성을 높이고, 프로그램을 더 쉽게 이해할 수 있게 합니다.

실생활 비유

함수를 요리 레시피에 비유할 수 있습니다. 레시피는 특정 재료(입력값)를 사용하여 요리(작업)를 만들고, 요리 결과(반환값)를 제공합니다. 여러 번 같은 요리를 만들 때 매번 레시피를 새로 작성할 필요 없이, 동일한 레시피를 참조할 수 있습니다.

관련 용어 정리

용어설명
매개변수함수가 입력으로 받는 값
반환값함수가 작업을 수행한 후 반환하는 값
함수 호출정의된 함수를 실행하는 과정

3. 기본 코드 예제

아래는 Dart에서 가장 기본적인 함수 정의 및 호출 예제입니다.

// 두 숫자를 더하는 함수 정의
int add(int a, int b) {
  return a + b; // 두 숫자를 더한 값을 반환
}

// 함수 호출
void main() {
  int result = add(3, 4); // add 함수를 호출하고 결과를 result 변수에 저장
  print(result); // 결과를 출력
}

실행 결과: 7

  • int add(int a, int b): add라는 이름의 함수를 정의하며, 두 개의 정수 a와 b를 매개변수로 받습니다.
  • return a + b;: a와 b를 더한 값을 반환합니다.
  • void main() { ... }: 프로그램의 시작점입니다.
  • int result = add(3, 4);: add 함수를 호출하여 3과 4를 더하고, 결과를 result 변수에 저장합니다.
  • print(result);: result의 값을 출력합니다.
  • 4. 실전 활용 예제

    예제 1: 쇼핑몰 장바구니에서 가격 계산

    쇼핑몰에서 장바구니에 담긴 여러 상품의 총 가격을 계산할 때 함수를 사용할 수 있습니다.

    // 상품 가격을 합산하는 함수 정의
    double calculateTotalPrice(List<double> prices) {
      double total = 0;
      for (double price in prices) {
        total += price; // 각 상품의 가격을 합산
      }
      return total; // 총 가격을 반환
    }
    
    void main() {
      List<double> prices = [10.5, 20.0, 5.75]; // 상품 가격 목록
      double totalPrice = calculateTotalPrice(prices); // 총 가격 계산
      print('총 가격: \$${totalPrice}'); // 총 가격 출력
    }

    실행 결과: 총 가격: $36.25

    예제 2: 성적 계산

    학생의 성적을 계산하여 평균을 구하는 함수를 만들 수 있습니다.

    // 평균 성적을 계산하는 함수 정의
    double calculateAverage(List<int> scores) {
      int sum = 0;
      for (int score in scores) {
        sum += score; // 모든 성적을 합산
      }
      return sum / scores.length; // 평균 성적을 반환
    }
    
    void main() {
      List<int> scores = [90, 85, 78, 92]; // 학생 성적 목록
      double averageScore = calculateAverage(scores); // 평균 성적 계산
      print('평균 성적: ${averageScore}'); // 평균 성적 출력
    }

    실행 결과: 평균 성적: 86.25

    5. 흔한 실수와 주의사항

    실수 1: 매개변수의 자료형 오타

    // 잘못된 코드
    int add(int a, int b) {
      return a + b; // 정수형 매개변수를 받는 함수
    }
    
    // 올바른 코드
    int add(double a, double b) { 
      return a + b; // 매개변수 자료형을 실수형으로 변경
    }

    실수 2: 함수 호출 시 괄호 누락

    // 잘못된 코드
    int result = add; // 함수를 호출하지 않음
    
    // 올바른 코드
    int result = add(3, 4); // 함수 호출

    6. 정리

    1. 함수는 특정 작업을 수행하는 코드 블록으로, 코드 재사용성과 유지보수성을 높인다.
    2. 매개변수와 반환값을 통해 입력과 출력을 정의한다.
    3. 실생활의 비유를 통해 더 쉽게 이해할 수 있다.
    4. 함수 정의 및 호출의 문법을 숙지하는 것이 중요하다.
    5. 다음에 학습하면 좋은 주제

    6. 함수의 고급 개념 (예: 익명 함수, 클로저)
    7. Dart의 비동기 프로그래밍 (Future, async/await)
    8. 클래스와 객체지향 프로그래밍의 기초