콘텐츠로 이동

04. 함수 (Functions)

지금까지 배운 자료형과 제어문만으로도 복잡한 로직을 짤 수 있습니다. 하지만 똑같은 작업을 맵 곳곳에서 반복해야 한다면 어떨까요?

매번 수십 줄의 코드를 복사해서 붙여넣는 방식은 효율적이지도 않고, 나중에 수정하기도 매우 어렵습니다. 함수는 이러한 반복되는 코드들을 하나의 '기능'으로 묶어서 관리하게 해주는 도구입니다.


왜 함수를 사용해야 할까요?

예를 들어, "특정 위치에 이펙트를 만들고, 유닛을 생성하고, 효과음을 재생하는" 소환 로직이 있다고 가정해 봅시다.

  • 함수가 없다면: 소환이 필요한 모든 장소에 똑같은 코드를 수십 번 복사해야 합니다.
  • 함수가 있다면: spawnUnit()이라는 함수를 하나 만들어두고, 필요할 때마다 이름만 불러서 사용할 수 있습니다.

코드는 쓰는 시간보다 읽는 시간이 더 많습니다. 수백 줄의 조건문과 반복문이 나열되어 있으면 무엇을 하는 코드인지 알기 어렵습니다. 하지만 이를 함수로 묶으면 코드가 한눈에 들어옵니다.

  • Before: 복잡한 메모리 주소와 계산식의 나열...
  • After: checkVictoryCondition() (승리 조건 체크 함수) - 이름만 봐도 무엇을 하는지 알 수 있습니다.

만약 유닛 소환 시의 이펙트를 변경하고 싶다면 어떤가요?

  • 함수를 쓰지 않았다면 수십 군데의 코드를 일일이 찾아다니며 수정해야 하고, 이 과정에서 실수가 생기기 마련입니다.
  • 함수를 사용했다면, 해당 함수 내부의 코드만 바꾸는 것으로 맵 전체의 로직을 단번에 수정할 수 있습니다.

학습 목표

이 챕터에서는 함수를 정의하고 활용하는 체계적인 방법을 배웁니다.

  1. 함수의 기본 (선언과 호출): 함수를 만들고, 이름을 불러서 실행하는 가장 기초적인 방법을 배웁니다.
  2. 결과 (Return) 활용하기: 함수가 실행된 후 결과값을 돌려받아 다른 계산에 사용하는 방법을 배웁니다.
  3. 변수의 범위 (Scope): 함수 안에서 쓰이는 변수가 밖의 변수와 어떻게 다른지, 안전하게 데이터를 관리하는 법을 배웁니다.