※ 여러가지 근거 자료를 보이며 엄격하게 주장하는 관련 학문 전문가의 견해가 아니라, 그저 경험에 의한 추측입니다.
함수란 글자를 보면 수학 함수 f(x)
같은 것들이 떠오릅니다. 너무 익숙하게 봐 와서 한 번도 ’함’이란 글자가 뭔 뜻일지 생각해 보지 않았습니다.
函 함 함
뜻이 함이고 소리도 함인 한자입니다. 가끔 이런 한자들을 만나면 더 이상 밝혀진 어원이 없나보다 하고 좇아가기를 멈추는데, 그래도 가끔은 뜻에서 필요한 힌트를 얻을 수 있는 경우가 있습니다.
대체적으로 명사로는 무언가를 감싸는 것들을 뜻하고, 동사로는 감싸고 품는 동작을 말합니다.
함이란 글자는 일반 생활에선 ‘상자’, ‘무엇을 담아 놓는 곳’ 정도로 쓰입니다. 사물함, 국기함 같은 것들이 있습니다. 이와 비슷한 뉘앙스로 함수란, 상자안에 들어 있는 수 정도 뜻으로 받아들이면 될 것 같습니다.
사전에 나와 있는 글자 뜻은 여기까지입니다.
그런데, 학문에서 용어를 만들때는 모든 뜻이 대표 글자에 담겨지진 않으니, 여기서 생각을 멈추지 않고 조금만 더 들어가면 숨겨 있는 뜻이 보이기도 합니다. 수를 그냥 두지 않고 상자안에 두었다는 말은, 수가 필요할 때는 상자에서 ‘꺼내야’ 하는 동작이 필요하다는 말입니다. 상자에서 꺼낼 때는 반드시 ’어떤 일’을 하자가 바로 함수입니다.
“무언가로 쌓여 있는 수”
보다는, 처음부터
“꺼내려면 반드시 어떤 동작을 해야 하는 무언가에 쌓여 있는 수”
로 익힌다면 좀 더 상상력이 생길 수 있지 않을까 합니다.
또 다른 말로 표현하면, 할 일을 뒤로 미루어 둔 장치로 볼 수 있습니다. 지금 당장 어떤 동작을 하는게 아니라, 벗겨낼 때 어떤 동작을 할 준비 상태로 바라 볼 수 있습니다.
하스켈에서 래핑 타입(값 생성자)과 정확히 같은 동작입니다. 래핑하는 이유는, 래핑할 때가 아니라, 래핑을 벗길 때 반드시 무슨 일을 해야만 한다는 약속같은 겁니다. (물론, 두 말할 필요 없이 일반 함수도 같은 동작을 합니다.)
그래서 제가 편한 느낌으로 함수란 뜻을 정리하면,
꺼낼때 반드시 어떤 동작을 하도록 준비된, 상자안에 들어 있는 수
입니다. 실제로 하스켈이나 함수형을 공부하다 보면 함수의 정의를 단순 매핑으로만 바라보지 않고, 이렇게 속에 숨어 있는 뜻이 몸에 배이게 하면 편할 때가 많습니다.
뭘 이런 걸 정리했어라고 하는 분들도 있을 것 같은데, 함수형에 입문하며 함수에 지겹게 치이다보면 이런 정리가 필요할 수도 있겠구나 하고 느낄때가 옵니다!
저를 돌아보니 뜻과 쉽게 연결 되지 않는 한자어로 이루어진 용어들에 약간 반감을 가지고 있는 것 같습니다. 그다지 뜻과 연관되지 않는 억지스러운 한자 용어가 과연 영어권 용어로 익히는 것보다 좋은 점이 무얼까 생각이 들곤 합니다. 연역(펼 연, 풀 역)으로 배우는게 deduce로 배우는 것보다 나은 점이 뭘까요? 한 두 번 접했을 때는 익숙하지 않지만, 여러번 만나게 되면 익숙해져서 우리 말 기반 체제가 갖추어질 수 있으니 낫다 라고 얘기한다면, 거의 사장되어 쓰이지 않는, 또는 뜻이 잘 유추되지 않는 한자를 꺼내와서, 또는 개념의 극히 일부만 표현하는 한자를 가져와 용어를 만드는게 어째서 우리 말 기반일까요? 수학 비전공자인 제 입장에서 보면 함자가 Functor보다 나은게 전혀 없습니다. 이 낱말만 놓고 보면, 사람들이 모두 배경 지식이 같진 않으니, 다 저와 같은 생각을 가지진 않을 수 있지만, 영어권 문서를 절실히 봐야하는 분야에 입문하며 한글, 영문 용어를 같이 공부하다 보면 분명 만나게 되는 생각일 겁니다. Computer를 컴퓨터로 표기하듯 그냥 펑크터/펑터로 표기하면 우리말에 악영향을 미칠까요?
어차피 어느 한 쪽이 완전히 옳다라고 기울진 않습니다. ‘정도’의 차이일 뿐입니다. 어느 ’정도’ 외래어를 허용하는 게 좋은가를 정하는 건 억지로 되진 않습니다. 각자의 생각대로 쓰고, 결론은 한 두명이 아니라 생태계(학계, 업계)가 낼 겁니다.
너무 ’억지’를 부리는 용어들을 만나면 한 숨이 나와 사족을 달아 봤습니다.