G's days

[용어] 인수(Argument), 매개변수(Parameter) 차이 본문

프로그래밍 공부/용어

[용어] 인수(Argument), 매개변수(Parameter) 차이

Hi☆G 2021. 8. 12. 13:04

강의를 듣거나, 누군가에게 설명할 때

두 개념이 헷갈리니까 설명이 더 헷갈린다.

 

잘 모르고 들으면

강의자가 같은 개념인 두 단어를 섞어서 말한다고 느껴진다.

그래서 비슷한 단어인가 보다 하고 넘기게 된다.

 

말할 때 단어 쓰는 게 뭐가 중요해?

라고 생각할 수 있지만

초보자로서 느낀 바로는 (적어도) 초보자에게는 중요하다!

적재적소에 올바른 단어를 쓸 수 있다는 건,

그 개념을 정확히 이해하고 있다는 반증이니까.

(다만 Argument가 인자인가 인수인가 와 같은 논쟁은 별로 중요치 않다고 생각한다.

인수나 인자나 직관적으로 느끼기에 별로 다를바도 없으며 어차피 영어단어 번역이니 상관없다고 생각)

 


그러면, 

개념적인 정의대신

실제로 함수를 생성하고 호출할 때의 논리를 통해

인수(Argument)와 매개변수(Parameter)를 구분해보자.

 

1. 변수를 정의하자

좋아하는 숫자를 배열로 만들어 보았다.

const favNumber = [1, 3, 7, 25, 100, 10000];

 

2. 함수를 만들자

좋아하는 숫자로 덧셈과 뺄셈을 해보자.

function calc(num1, num2) { 
// 첫 번째 매개변수: num1, 두 번째 매개변수: num2
	return num1 + num2;     // 매개변수 값을 받아서 기능을 수행한다.
    	return num1 - num2; 	// 매개변수 값을 받아서 기능을 수행한다.
}

 

3. 함수를 호출하자

첫 번째 숫자와 4번째 숫자로 셈을 해본다.

calc(favNumber[0], favNumber[3]);
// 첫 번째 인수 : favNumber[0], 첫 번째 인수 : favNumber[3]

//여기에 있는 인수들이
//calc함수의 매개변수에 할당된다.

 

정리하자면,

함수 호출소괄호 안에 적는 인수값(Argument)

함수를 만들 때 괄호 안에 적는 매개변수값(Parameter)

함수 블럭 안에서 쓰인 매개변수값(Parameter)

 

이렇게 순서대로 값이 전달되어 기능이 실행되는 것이다.

 

 

 

 

더보기

내가 자바스크립트 입문자 딱지를 뗐다고 생각되었을 때,

인수(Argument), 매개변수(Parameter)는

자바스크립트에서 수행하는 동작의 기본인 '변수 선언', '함수 생성', '함수실행'을 이해하는데

핵심적인 부분이라고 느꼈다.

 

인수와 매개변수가 상호작용하며

함수를 불러오고, 함수를 실행할 때 정보를 주기 때문이다.

 

이번 기회에 정리하게 되어 기쁘다.