7-1. 함수 소개

7-1-1. 함수의 정의와 역할

자바스크립트에서 함수(function)는 일련의 절차를 코드 블록으로 감싸서 재사용 가능한 하나의 코드 단위로 정의한 것이다. 함수를 정의하면 특정 작업을 수행하는 코드를 그룹화하고, 필요할 때 호출하여 코드를 실행할 수 있다.

함수는 function 키워드를 사용하여 정의하고, 이때 다른 함수와 구분하기 위해 사용되는 식별자인 함수의 이름, 함수 내부로 전달되는 변수인 매개변수(parameter), 출력되는 값인 **반환 값(return value)**으로 구성된다.

예를 들어, 다음은 입력받은 정수 num의 제곱 값을 반환하는 간단한 함수이다.

function square(num) {
    return num * num;
}

square(5); // 25

위 코드에서 함수의 이름은 square이고, 외부에서 함수 내부로 전달되는 매개변수는 num, 반환 값은 num * num이 평가되는 값이다.

그렇다면 함수는 왜 사용하고, 함수를 사용했을 때의 장점은 무엇일까? 입력받은 두 수를 더하는 코드를 작성한다고 가정해 보자.

const num1 = 2;
const num2 = 3;

const sum = num1 + num2;

console.log('덧셈 결과: ' + sum); // 덧셈 결과: 5

위 예제 코드에서는 두 수를 더한 값을 콘솔에 출력한다. 하지만 이 코드는 특정한 두 개의 숫자에만 동작하며, 이후 다른 숫자에 대해 동일한 작업을 수행하려면 비슷한 코드를 다시 작성해야 하는 번거로움이 있다.

function addNumbers(num1, num2) {
    return num1 + num2;
}

const sum = addNumbers(2, 3);

console.log('덧셈 결과: ' + sum); // 덧셈 결과: 5

위의 코드에서는 두 수를 더하는 작업을 함수로 정의하고, 함수를 호출하여 수행한다. 이렇게 하면 두 수를 다루는 작업을 함수로 그룹화하고, 이후에 다른 숫자에 대해 동일한 작업을 수행하려면 같은 함수를 호출하면 된다.

이처럼 함수를 사용하면 코드의 재사용성과 가독성이 증가하며, 오류를 줄이고 유지보수를 용이하게 만든다. 함수를 적절하게 활용하면 코드를 보다 모듈화하고 관리하기 쉽게 작성할 수 있다.

7-1-2. 함수의 선언과 호출

함수를 선언하고 호출하는 일반적인 방법은 다음과 같다.

// 함수의 선언(정의)
function functionName(parameter) {
    // 실행될 코드
    parameter = parameter + ' World!'; 
    // 반환 값
    return parameter;
}

// 함수의 호출
functionName('Hello'); // Hello World!

함수는 function ****키워드와 함께 함수의 이름을 정의하여 선언할 수 있다. 함수 이름 뒤에 소괄호를 사용하여 0개 이상의 매개변수를 정의할 수 있다.

매개변수의 개수에는 제한이 없지만 일반적으로 3개 이하로 제한하는 것이 좋다. 너무 많은 매개변수를 지정하게 되면 코드를 이해하고 테스트하는데 어려움이 생길 수 있다. 더 많은 매개변수가 필요하다면, 객체나 배열을 사용하여 여러 데이터를 그룹화하여 사용할 수도 있다.