Evaluation의 번역어 평가

Posted on October 21, 2022

일상 생활에서 평가라는 낱말은, “시험 평가”, “등급 평가”등 뭔가 절차를 거쳐 가치, 등급을 확인 할 때 써왔습니다. 아주 말이 안되는 건 아니지만, 코드의 “가치를 평가”하다는 말이 낯설지 않으신가요? 전 낯설어서 한 번 정리를 해봤습니다.

Evaluation과 評價

Evaluation 뜻:
to judge the value or condition of (someone or something) in a careful and thoughtful way - Merriam Webster

값이 무엇인지 판단judge 하는 걸 Evaluation이라 말합니다. “값을 판단”한다는 말이 있으니, 함수형 코드의 expression과는 그런대로 어울리는 말처럼 보입니다. 수식expression의 값을 구하는 걸 평가라고 생각하면 자연스럽습니다. 하지만, 리턴하는 값이 없는 프로시져는 평가란 말과 어울리지 않아 보입니다.

평가 評價 뜻:
물건값을 헤아려 매김. 또는 그 값
사물의 가치나 수준 따위를 평함. 또는 그 가치나 수준 - 네이버 표준국어대사전

Evalutation과 우리말 평가가 그리 다른 뜻을 가진 부분은 안보입니다.

평가란 말을 추상화

값을 “결정”한다는 말은, 여러가지 가능한 값들 중에 하나를 고르는 행위입니다. 한 문제에 10점짜리인 문제가 10개가 있습니다. 이 시험을 본 사람의 성적은 “0점, 10점,…,90점, 100점”이 가능한 값이고, 이 중 9개를 맞추면 “90점이라 평가”합니다. 주어진 조건context에 따라 값을 결정합니다. 다시 말해,

여러 값 중에, 어떤 조건을 가지고 계산 또는 실행을 하면 값이 결정되는 걸 말합니다.

※ 그 사람이 얼마나 열심히 준비해서 9개를 맞혔는지는 관심을 가지지 않습니다.

계산 또는 실행

코드 “평가”는 마치 계산식expression을, 프로시저를, 코드를 “실행” 또는 “계산”하는 것으로 바꿔 말하면 더 직관적일 것처럼 보입니다. 하지만, 평가는 어떤 절차를 거치는지는 상관하지 않고, 값을 드러내는 행위를 말합니다. 어떤 물건의 가치를 매길 때, 이 것 저 것 조건을 살펴보고 결정하는 것도 평가고, 남이 가치를 알려줘도 평가입니다. 어떤 식으로든 값이 드러나는 걸 평가라 합니다.

낱말을 좀 더 정확히 쓰면 “계산해서 평가”, “실행해서 평가”한다 입니다.

글 시작 부분에 쓴 “시험 평가”는 “시험으로 평가”한다고 쓰는 게 더 어울립니다.

프로시저를 평가

※ 아래 코드는 의사 코드입니다.

값이 나오기까지의 과정을 분리하면, 수식expression도 프로시저도 어색함이 없어집니다.

func x = return (x + 1)
func 1 호출

func 함수는 x에 1을 바인딩하는 컨텍스트를 가지고 “계산” 하면 2라는 값으로 평가되는 함수입니다.

proc x =
  func1 x
  func2 x
proc 1 호출

proc 프로시저는, 컨텍스트에 따라 여러 동작을 할 수 있는 코드로 x에 1을 바인딩하는 컨텍스트를 가지고 “func1 1을 실행하고, func2 1을 실행”하는 작업으로 평가되는 프로시저입니다. 이 프로시저가 평가되면 func1을 실행해서 평가하고, func2를 실행해서 평가합니다.

결론

“등급 평가”의 뉘앙스와 “코드 실행”의 의미가 연결이 안돼 낯설었던 것으로 보입니다. 코드란 어떤 값을 구하는 절차, 방법을 서술해 놓은 것이고, 그 절차들을 계산 또는 실행해서 값을 구하는 걸(값이 드러나게 하는 걸) 코드를 평가한다 말합니다.

업무량이 많아 하스켈 공부가 더뎌, 잡스런운 것들 올리고 있습니다. T.T

Github 계정이 없는 분은 메일로 보내주세요. lionhairdino at gmail.com