🧐 🤔 그거 어떻게 쓰더라 🙄 😙

인자(인수), 매개변수 차이

2022. 7. 7. Evergood Kim이가 씀
인자, 인수, argument
함수를 호출할 때 넣는 값 생각해봐! ‘인’이 ‘원인’ 할 때 ‘인’이잖아. 그러니까 인자는 함수 결과의 원인(因)이 되는 녀석(子)인 거지. 그럴듯하쥐??
매개변수, 파라미터, parameter
인자를 받아서 초기화되는, 함수 안에서 쓰이는 변수. 그러니까 매개“변수”이다. 그럴듯하쥬??
function 함수( 매개변수 ){  // 함수 정의
    …
}

함수(인자); // 함수 호출

근데 이걸 헷갈려하는 사람이 많은 만큼, 실제로 말을 하다 보면 둘 중 어느 단어를 쓰든 말이 될 때가 많은 듯 ㅋ

검색해보니까 인수, 매개변수는 확실한 거 같은데 인자는 검색결과 게시글에 따라 =인수라고도 해석되고 =매개변수라고도 하던데. 그래서 내가 잘못 알고있는 건가 하고 한국정보통신기술협회의 정보통신용어사전에 검색해봤습니다. 역시 인수인자 둘 다 argument에 대응하는 게 맞아요.

그런데!! 여기의 인수(引數)라는 한자어는 또 국어사전에 안 나온다. 썩을. 구글에 ‘引數’를 검색하면 나오는 건 일본어 위키피디아. 역시 이것도, 우리나라의 전문용어들이 흔히 그러듯, 그냥 일본어를 고대~로 갖고 온 거인 듯…. 국어사전에 안 나오는 걸 보니 이거는 우리말이 아닌 거시야!(?) 그런데 이 페이지에선 인수에 해당하는 영단어로 parameter를 소개하고 있다. 왜냐?

실 매개변수(actual parameter)’와 ‘형식 매개변수(formal parameter)’, ‘실인수(actual argument(parameter))’와 ‘가인수(dummy argument)’, 그러고도 또 가매개 변수’ 하는 단어들이 있는데; 이게 도대체 뭐냐? 사실 이 단어들을 만든 사람들조차도 인수나 매개변수나 다 섞어서 쓰고있다 이 말이다.(영어로도!) 이쯤 되니 인수라 하든 매개변수라 하든 개취 아닐까 생각마저….

인자도 그럼 뭐냐; 사실 인자든 인수든 매개변수든 다들 원래 컴퓨터과학과 함께 생겨난 말이 아니라 아마 수학에서 가져온 말이겠지.(뇌피셜) 수학에서 변수는 그냥 진짜 수, 변하는 수. 변수 자체가 이값 저값 되는 거지, 컴퓨터에서처럼 값을 저장할 공간과 진짜 값 같은 구분이 없다.(아마도) 거기다, 거꾸로; 프로그래밍에서는 표현식(수학으로 치면 인자)은 결국 그 결과값(수학으로 치면 인수)과 같은 취급을 받는다. 용어 대혼돈.

그래도 어쨌든; 함수 호출 시 넘겨주는 값과, 그 값을 받는 변수라는 서로 다른 두 개념이 있는 것임에는 이견이 없는 듯. 그리고 대체로 앞에 건 argument, 뒤에 건 parameter라고 하고, 그리고 대체로 argument는 인수, parameter은 매개변수라고 하니깐; 그러니깐

여러분은 다들 함수에 넘겨주는 값에는 ‘인수’, 함수가 사용하는 변수에는 ‘매개변수’라는 단어를 쓰도록 하세요~ ^-^

난 그냥 인자와 매개변수라고 하겠어. 취향존중좀.

728x90