함수 인수 (Argument)
이 페이지는 바이브 코딩 문맥에서 자주 쓰이는 함수 인수 (Argument)의 뜻과 쓰임을 입문 난이도 기준으로 정리한 AI 용어사전 항목입니다. 정의와 맥락, 관련 용어 5개 순서로 묶었으니, 아래 설명을 먼저 읽고 연결된 개념과 글까지 이어서 보면 이해가 빨라집니다.
함수 인수(Argument)는 함수를 호출할 때 입력으로 전달하는 값입니다. 함수 정의에 적는 매개변수는 그 값을 받아 함수 안에서 부를 이름이며, 인수는 실제 호출마다 달라질 수 있습니다. 숫자나 문자열뿐 아니라 객체도 전달할 수 있고, 어떤 순서와 이름으로 값을 넘길지는 언어와 함수가 정한 호출 규칙을 따릅니다.
호출에 전달하는 값과 매개변수
MDN의 인수 용어 설명은 인수를 함수에 입력으로 전달하는 값으로 정의하고, 함수 정의에서 그 값을 가리키는 이름인 매개변수와 구분합니다. 가격과 수량을 받아 합계를 구하는 함수를 만들었다면 ‘가격’과 ‘수량’은 입력을 받을 매개변수입니다. 이 함수를 호출하며 넘긴 1,000과 3이 인수이고, 함수는 그 값을 매개변수에 대응시켜 계산에 사용합니다.
같은 함수를 다음에 2,000과 5로 호출하면 계산 절차를 다시 쓰지 않고 입력만 바꿔 실행합니다. 매개변수 이름은 그대로여도 각 호출에 전달되는 인수는 달라집니다. 함수를 정의하는 부분과 실제로 호출하는 부분을 나누어 읽으면 두 용어의 역할이 드러납니다. 함수 안의 이름만 읽으면 이번 호출에서 어떤 값을 전달했는지 알 수 없으므로, 호출하는 쪽의 코드도 함께 살핍니다.
인수는 호출자가 넣는 값이고 반환값은 함수가 실행 결과로 돌려주는 값입니다. MDN의 JavaScript 함수 안내는 제곱 함수에 5를 전달하면 25를 돌려주는 예시로 이 관계를 설명합니다. 여기서 5는 인수이며 25는 반환값입니다. 함수를 정의하는 것과 호출하는 것도 구분됩니다. 정의는 어떤 일을 할지 정하고, 호출은 전달한 값으로 그 일을 실제 수행하게 합니다.
위치와 이름으로 값을 대응시키는 방식
위치 인수는 호출에 적힌 순서로 매개변수에 대응합니다. 가격 다음에 수량을 받도록 만든 함수에 두 값을 거꾸로 넣으면 입력의 의미가 달라집니다. 두 값이 모두 숫자라면 겉으로는 비슷해 보여도 함수가 사용하는 역할은 서로 다릅니다. 인수의 자료형이 같다는 사실만으로 순서를 바꿀 수는 없습니다. 호출 예시와 함수 정의를 함께 읽으면 각 위치가 어떤 입력을 뜻하는지 확인할 수 있습니다.
Python의 함수 정의 안내는 위치로 전달하는 방식과 매개변수 이름을 지정하는 키워드 인수 방식을 설명합니다. 키워드 인수는 이름과 값을 함께 적어 어느 매개변수에 넣는지 표시하므로, 허용된 이름을 사용한다면 키워드끼리의 순서를 바꿀 수 있습니다. 다만 Python 함수는 특정 매개변수를 위치로만 받거나 키워드로만 받도록 정의할 수도 있어, 모든 함수가 두 방식을 모두 허용하는 것은 아닙니다.
기본값이 지정된 매개변수는 대응하는 인수를 생략하고 호출할 수 있습니다. 같은 Python 안내에서는 기본값이 함수 정의 시점에 한 번 평가된다고 설명합니다. 그래서 변경 가능한 리스트를 기본값으로 두고 내용을 추가하면, 다음 호출에서도 그 리스트의 내용이 남을 수 있습니다. 인수를 생략할 때마다 새 리스트가 만들어진다고 생각하면 예상과 다른 결과를 얻습니다. 기본값을 사용하는 방식에는 언어별 규칙이 적용됩니다.
객체를 넘길 때와 호출 오류의 확인
MDN의 JavaScript 함수 안내에 따르면 함수 안에서 전달받은 객체의 속성을 바꾸면 그 변화가 함수 밖에서도 보입니다. 사용자 정보를 담은 객체를 인수로 전달한 뒤 함수가 그 객체의 이름 속성을 바꾸면, 호출한 쪽에서도 바뀐 이름을 읽게 됩니다. 객체를 입력으로 전달하는 코드를 볼 때는 반환값과 함께 원래 객체의 내용이 바뀌는지도 확인 대상입니다.
객체의 속성을 바꾸는 것과 매개변수에 다른 값을 대입하는 것은 동작이 다릅니다. 같은 MDN 문서는 함수 안에서 매개변수에 완전히 새로운 값을 대입해도 호출한 쪽의 변수에 그 대입이 반영되지는 않는다고 설명합니다. 함수 안에서 같은 객체의 속성을 고치는 경우와, 함수 안의 이름이 다른 객체를 가리키게 하는 경우를 구분하면 이 차이를 이해할 수 있습니다. 객체 전달을 설명할 때 두 동작을 모두 ‘원본 변경’으로 묶으면 혼동이 생깁니다.
호출이 실패하면 필요한 인수가 빠졌는지, 허용되지 않은 이름을 썼는지, 같은 매개변수에 값을 중복으로 줬는지 살핍니다. Python의 키워드 인수 설명은 이런 호출을 오류 예시로 제시합니다. 값을 전달한 방식이 맞아도 함수가 기대하는 값의 의미까지 맞는지는 별도 문제입니다. 가격과 수량을 바꿔 넣은 호출처럼 입력 개수만으로 발견하기 어려운 경우에는 각 값이 어떤 매개변수에 대응했는지 추적합니다.
관련 용어
함수 인수 (Argument)와 함께 자주 언급되는 개념들입니다. 비슷한 말처럼 보여도 역할과 쓰임은 다를 수 있습니다.
