IMCAT.DEV
로그인 가입
Lua 입문 기초

Lua 함수 정의 및 호출

Lua 함수 정의 및 호출 — 초급

함수 정의 및 호출

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

프로그래밍에서 함수는 코드의 재사용성을 높이고, 프로그램을 구조적으로 만들기 위해 매우 중요한 개념입니다. 함수는 특정 작업을 수행하는 코드 블록으로, 이를 활용하면 코드의 중복을 줄이고, 가독성을 향상시킬 수 있습니다. 실무에서 함수 없이 작업을 진행한다면, 같은 코드를 여러 번 반복 작성해야 하며, 이는 버그를 발생시키기 쉽고 유지보수를 어렵게 만듭니다. 따라서 함수의 정의와 호출 방법을 이해하는 것은 효율적인 프로그래밍을 위해 필수적입니다.

2. 핵심 개념 설명

  • 함수(Function): 특정 작업을 수행하는 독립적인 코드 블록입니다. 예를 들어, 요리를 하는 레시피와 같습니다. 요리법(함수)을 알고 있다면 언제든지 같은 요리를 쉽게 만들 수 있습니다.
  • 함수 호출(Function Call): 정의된 함수를 실제로 실행하는 과정입니다. 이는 마치 요리를 하기 위해 레시피를 따라하는 것과 유사합니다.
  • 관련 용어 정리

    용어설명
    매개변수함수에 전달되는 입력 값
    반환값함수가 수행한 결과를 반환하는 값
    스코프변수의 유효 범위

    3. 기본 코드 예제

    다음은 가장 기본적인 함수 정의와 호출 예제입니다.

    -- 두 숫자의 합을 계산하는 함수 정의
    function add(a, b)
        return a + b  -- a와 b를 더한 값을 반환
    end
    
    -- 함수 호출
    local result = add(5, 3)  -- add 함수를 호출하고 결과를 result에 저장
    
    print(result)  -- 결과를 출력

    실행 결과

    8

    코드 한 줄씩 동작 설명

    1. function add(a, b) - add라는 이름의 함수를 정의하고, 두 개의 매개변수 a와 b를 설정합니다.
    2. return a + b - a와 b를 더한 후 그 값을 반환합니다.
    3. local result = add(5, 3) - add 함수를 호출하여 5와 3을 인자로 전달하고, 반환된 값을 result 변수에 저장합니다.
    4. print(result) - result 변수를 출력하여 최종 결과(8)를 보여줍니다.
    5. 4. 실전 활용 예제

      예제 1: 쇼핑몰에서 장바구니 금액 계산

      쇼핑몰에서 장바구니에 담긴 상품의 총 금액을 계산하는 함수를 정의할 수 있습니다.

      function calculateTotal(prices)
          local total = 0  -- 총 금액 초기화
          for _, price in ipairs(prices) do
              total = total + price  -- 각 가격을 더함
          end
          return total
      end
      
      local cart = {19.99, 5.49, 3.99}  -- 장바구니의 가격 목록
      local totalPrice = calculateTotal(cart)  -- 총 금액 계산
      print("장바구니 총 금액: " .. totalPrice)  -- 결과 출력

      예제 2: 사용자 이름 인사 함수

      사용자의 이름을 받아 인사하는 함수입니다.

      function greet(name)
          return "안녕하세요, " .. name .. "님!"  -- 인사 메시지 생성
      end
      
      print(greet("홍길동"))  -- 사용자 이름으로 인사

      5. 흔한 실수와 주의사항

      실수 1: 매개변수 부족

      잘못된 코드

      function multiply(a, b)
          return a * b
      end
      
      print(multiply(5))  -- 두 번째 인자를 생략

      오류: 두 개의 매개변수가 필요하다고 경고가 발생합니다.

      올바른 코드

      print(multiply(5, 2))  -- 올바르게 두 인자를 제공

      실수 2: 반환값을 무시하기

      잘못된 코드

      function subtract(a, b)
          return a - b
      end
      
      subtract(10, 5)  -- 반환값을 저장하지 않음

      문제: 결과를 사용할 수 없습니다.

      올바른 코드

      local difference = subtract(10, 5)
      print(difference)  -- 결과를 출력

      6. 정리

    6. 함수는 코드의 재사용성을 높이며, 프로그래밍을 구조적으로 만듭니다.
    7. 함수는 매개변수를 받아 특정 작업을 수행하고, 결과를 반환합니다.
    8. 함수 호출을 통해 정의된 작업을 실행할 수 있습니다.
    9. 실무에서 자주 사용하는 패턴으로 장바구니 금액 계산, 사용자 인사 등이 있습니다.
    10. 다음에 학습하면 좋은 주제

    11. 변수와 데이터 타입
    12. 조건문과 반복문
    13. 테이블과 데이터 구조