로그가 곱셈을 덧셈으로 바꾸는 이유
곱셈은 손이 많이 가고 덧셈은 쉽다. 종이에 342 곱하기 918을 세로셈으로 푸는 것과, 몇 개의 수를 그냥 더하는 것 중 뭐가 편한지는 물어볼 것도 없다. 400년 전 천문학자와 항해사들은 이 큰 수 곱셈에 매일 시달렸다. 그때 등장한 도구가 로그(logarithm)다. 로그의 쓸모는 하나로 요약됐다. 어려운 곱셈을 쉬운 덧셈으로 바꿔준다. 두 수를 직접 곱하는 대신, 각각의 로그를 표에서 찾아 더하고, 그 합을 표에서 거꾸로 되짚으면 곱이 나왔다. 공학도의 필수품이던 계산자(slide rule)도 20세기 내내 이 원리로 돌아갔다.
그런데 로그는 대체 어떻게 곱을 합으로 바꾸는 걸까. 마법처럼 보이지만 뜯어보면 규칙 하나다.
로그는 몇 번 곱했나를 세는 자
로그가 뭔지부터 눈높이를 맞추자. log₁₀(1000)은 3이다. 10을 세 번 곱하면 1000이 되기 때문이다. 로그는 밑(base)이 되는 수, 여기선 10을 몇 번 곱해야 그 수가 되는지를 세는 값이다. 다른 말로 지수(exponent)다. 10을 몇 제곱해야 하느냐를 되묻는 게 로그다.
그래서 10의 로그는 1, 100은 2, 1000은 3, 10000은 4다. 수가 10배 커질 때마다 로그는 1씩 는다. 값 자체는 열 배씩 껑충 뛰는데, 그걸 세는 자는 한 칸씩 얌전히 올라간다. 이 어긋남이 곧 이 글의 전부다.
곱하면 지수가 더해진다
이제 핵심이다. 10을 두 번 곱한 것에, 다시 10을 세 번 곱한다고 하자.
10² × 10³ = (10 × 10) × (10 × 10 × 10) = 10을 다섯 번 곱한 것 = 10⁵
지수를 보면 2와 3이 5로 더해졌다. 당연하다. 10을 두 번 곱한 뒤 세 번 더 곱하면, 통틀어 다섯 번 곱한 것이다. 곱한다는 건 곱하기를 더 쌓는 일이고, 쌓은 횟수는 그냥 더해진다. 이게 지수 법칙이다.
그런데 로그는 바로 그 쌓인 횟수, 곧 지수를 읽는 자였다. 그러니 곱의 로그를 구하면 이렇게 된다.
log(10² × 10³) = log(10⁵) = 5 = 2 + 3 = log(10²) + log(10³)
한 줄로 줄이면 log(a × b) = log(a) + log(b)다. 왼쪽은 곱, 오른쪽은 합이다. 로그가 곱을 합으로 바꾸는 그 지점이 여기다. 두 수를 곱하는 건 각자의 곱하기 횟수를 합치는 일이고, 로그는 그 횟수를 세니까, 곱은 로그의 세계에서 합이 된다.
10의 거듭제곱이 아닌 수도 똑같다. log₁₀(2)는 약 0.301이다. 그럼 2와 4를 곱한 8의 로그는 이렇게 나온다.
log(8) = log(2 × 4) = log(2) + log(4) = 0.301 + 0.602 = 0.903
직접 log(8)을 구해도 약 0.903이다. 8은 2를 세 번 곱한 값이라 log(2³) = 3 × 0.301 = 0.903이고, 결과가 정확히 맞아떨어진다. 옛사람이 곱셈을 덧셈으로 바꿔 계산할 수 있었던 게 바로 이 등식 덕분이다.
자릿수로 느껴보기
조금 더 몸으로 느끼는 방법이 있다. log₁₀는 자릿수와 붙어 있다. 100은 세 자리 수이고 로그가 2, 1000은 네 자리 수이고 로그가 3이다. 자릿수보다 대략 하나 작은 값이 로그다.
이제 세 자리 수와 네 자리 수를 곱한다고 해보자. 대략 500 곱하기 4000 정도. 결과는 200만, 곧 일곱 자리 수 언저리다. 세 자리와 네 자리를 곱했더니 자릿수가 대략 더해져 일곱 자리가 됐다. 곱셈이 크기 등급의 덧셈으로 바뀌는 걸 자릿수로 눈대중할 수 있다. 로그는 이 크기 등급을 정밀하게 잰 값이다.
디자이너가 만나는 로그: 로그 축
로그가 옛날 계산 도구로만 남았다면 이 블로그에서 다룰 이유가 없다. 디자이너가 로그를 실제로 만나는 자리는 차트의 축이다.
데이터가 크기 등급을 넘나들 때를 생각해보자. 페이지 네 개의 방문자 수가 20, 200, 2000, 20000이라고 하자. 이걸 보통의 선형 축에 막대로 그리면 이렇게 된다.
가장 큰 20000이 축을 통째로 차지해서, 20과 200과 2000은 바닥에 눌려 서로 구분조차 안 된다. 같은 데이터를 로그 축에 그리면 달라진다.
네 막대가 같은 간격으로 계단처럼 올라간다. 값은 10배씩 뛰는데 축에서는 한 칸씩 균등하게 오른다. 앞에서 본 그대로다. 로그는 10배(곱)를 한 칸(합)으로 바꾸니, 같은 배율의 변화가 같은 거리로 펴진다. 로그 축에서 일정한 기울기의 직선은 매 구간 같은 배율로 커지는 성장, 곧 지수 성장을 뜻한다. 등비로 벌어지는 것을 등간격으로 눕힌 것이다.
이 감각은 화면 밖에서도 쓰인다. 지진의 리히터 규모는 1 차이가 진폭 약 10배다. 소리의 데시벨, 밝기의 등급도 비슷하게 짜여 있다. 사람의 감각 자체가 대체로 배율에 반응해서, 두 배 밝아진 느낌과 네 배 밝아진 느낌의 간격을 비슷하게 받아들인다. 그래서 배율로 움직이는 값을 사람에게 보여줄 때 로그 축이 잘 맞는다.
함정 두 가지
로그가 바꿔주는 건 곱셈이지 덧셈이 아니다. log(a × b)는 log(a) + log(b)가 맞지만, log(a + b)는 log(a) + log(b)가 아니다. 이건 아주 흔한 실수다. 로그의 마법은 곱셈에만 걸린다. 더하기 앞에서는 아무 일도 일어나지 않는다.
또 하나, 로그 축은 공짜가 아니다. 로그 축은 큰 차이를 시각적으로 압축한다. 20000과 2000은 실제로 18000이나 벌어졌는데, 로그 축에서는 딱 한 칸 차이로 얌전히 붙어 보인다. 지각 인코딩 글에서 축을 바꾸는 일이 정직과 왜곡의 경계라고 했는데, 로그 축이 정확히 그 경계다. 배율을 보여주는 데는 정직하지만, 절대적인 차이를 작아 보이게 만든다. 그러니 무엇을 보여줄지를 먼저 정해야 한다. 몇 배 차이가 핵심이면 로그 축, 얼마나 벌어졌는지가 핵심이면 선형 축이다.
정리
로그는 밑을 몇 번 곱했나를 세는 자다. 곱셈은 그 곱하기를 더 쌓는 일이라 쌓인 횟수가 더해지고, 로그는 그 횟수를 읽으니 곱이 합으로 바뀐다. 그래서 옛사람은 큰 수의 곱셈을 로그의 덧셈으로 바꿔 풀었고, 지금 우리는 크기 등급을 넘나드는 데이터를 로그 축에 편다. 곱으로 벌어지는 세상을 덧셈의 눈으로 보게 해주는 도구가 로그다.
여러 사건을 곱하고 더하는 확률의 두 규칙은 앞 글에서 다뤘다. 거기서 곱이 어떻게 범위를 좁히는지 봤다면, 여기선 그 곱을 로그가 어떻게 덧셈으로 눕히는지를 봤다.
이 글, 어떠셨어요?