본문 바로가기
개발이야기/C++

C++기초 5강: 함수: 코드의 조각을 만들고 재활용하기

by oddsilk 2024. 12. 13.

함수란 무엇인가요?

함수는 쉽게 말해 코드 조각을 묶어서 이름을 붙여놓은 것이라고 할 수 있습니다. 여러분이 자주 하는 일을 미리 만들어 두고 필요할 때마다 호출해서 쓰는 것과 같아요. 예를 들어, 여러분이 매일 아침마다 "일어나기 → 씻기 → 아침 먹기 → 출근 준비"라는 루틴을 반복한다고 해볼게요. 이 루틴을 함수로 만든다면 이렇게 표현할 수 있겠죠:

 

void 아침준비() {
    일어나기();
    씻기();
    아침먹기();
    출근준비();
}

위와 같이 여러 작업을 묶어 하나의 이름(함수)으로 만든 것이 함수입니다.

거대한 구조물을 만들려면, 설계하고 부품을 만들고 조각들을 하나로 조립합니다


왜 함수를 사용하나요?

함수를 쓰는 이유는 간단합니다:

  1. 코드의 재사용성: 같은 코드를 반복해서 작성할 필요가 없어요.
  2. 코드의 가독성: 어떤 작업을 하는지 한눈에 이해할 수 있어요.
  3. 유지보수의 편리함: 한 번만 수정하면 함수가 사용된 모든 곳에 자동으로 적용돼요.

함수의 구조

C++에서 함수를 만드는 방법은 크게 두 가지로 나눌 수 있어요:

  1. 함수 선언(함수 이름과 모양 정의)
  2. 함수 구현(실제로 무슨 일을 할지 작성)
반환형 함수이름(매개변수) {
    함수가 실행할 코드;
    return 반환값; // 반환값이 있을 경우
}

 

  • 하나씩 뜯어볼게요:
    • 반환형: 함수가 실행한 결과로 무엇을 돌려줄지 나타냅니다. (예: 숫자, 문자열, 아무것도 없음)
    • 함수 이름: 함수에 붙이는 이름입니다.
    • 매개변수: 함수가 처리할 데이터를 전달받는 공간입니다.
    • return: 반환할 값을 지정합니다.

    예시로 이해해보기: 더하기 계산 함수
  • "두 숫자를 더해서 결과를 돌려주는 함수"를 만들어볼게요.

 

#include <iostream>
using namespace std;

// 함수 선언
int 더하기(int a, int b) 
{
    return a + b; // 두 숫자를 더한 결과를 반환
}

int main() 
{
    int x = 5, y = 3;
    int 결과 = 더하기(x, y); // 함수 호출
    cout << "두 숫자의 합은: " << 결과 << endl;
    return 0;
}
두 숫자의 합은: 8

 

 

함수의 실무 활용: 캐릭터 체력 관리

게임에서는 캐릭터의 체력을 계산하는 일이 아주 흔해요. 함수를 사용해서 캐릭터가 공격받았을 때 체력을 줄이는 코드를 만들어볼까요?

#include <iostream>
using namespace std;

// 체력을 계산하는 함수
int 체력계산(int 현재체력, int 공격력) {
    int 남은체력 = 현재체력 - 공격력;
    if (남은체력 < 0) {
        남은체력 = 0; // 체력은 0 이하로 떨어지지 않도록 처리
    }
    return 남은체력;
}

int main() {
    int 캐릭터체력 = 100; // 캐릭터의 초기 체력
    int 공격력 = 20; // 적의 공격력

    cout << "공격받기 전 체력: " << 캐릭터체력 << endl;

    // 함수를 호출해 체력을 계산
    캐릭터체력 = 체력계산(캐릭터체력, 공격력);

    cout << "공격받은 후 체력: " << 캐릭터체력 << endl;
    return 0;
}

 

결과

공격받기 전 체력: 100
공격받은 후 체력: 80

 

이 코드에서는 다음과 같은 점이 실무적으로 유용합니다:

  1. 체력 계산의 로직을 함수로 분리했기 때문에 코드가 깔끔해집니다.
  2. 공격력과 현재 체력만 입력하면 체력을 계산할 수 있어 다양한 캐릭터에 쉽게 적용할 수 있습니다.

함수를 잘 쓰기 위한 팁

  1. 함수 이름은 어떤 일을 하는지 명확하게 짓는 것이 중요합니다. (예: 체력계산은 "체력을 계산한다"는 의미가 분명하죠.)
  2. 한 함수는 하나의 역할만 하도록 작성하세요. (예: 체력 계산 함수는 체력만 계산해야지, 동시에 공격력까지 바꾸지 않습니다.)
  3. 함수의 결과를 예측 가능하게 만드세요. 호출할 때마다 다른 결과가 나오면 안 됩니다!

이제 여러분도 함수를 사용해서 코드를 더 깔끔하고 효율적으로 작성할 수 있겠죠? 함수를 잘 활용하면 여러분의 프로그램이 훨씬 더 간결하고 이해하기 쉬워질 것입니다. 다음 시간에는 더 심화된 개념을 배워보도록 할게요! 😊