로그가 곱셈을 덧셈으로 바꾸는 이유

밤이 깊었는데 천문학자는 책상을 못 뜬다. 별의 자리를 맞추려면 자릿수가 여럿인 수를 몇 번이고 곱해야 하는데, 손으로 하는 곱셈은 한 줄 한 줄이 다 고비거든. 바다 위 항해사도 사정이 똑같았어. 별과 시계를 보고 배가 어디쯤 왔는지 셈하는데, 그 계산이 또 큰 수 곱셈투성이였지. 수백 년 전엔 큰 수를 곱하는 일이 이렇게 사람을 밤새 붙잡아두는 노동이었다. 누가 이 지긋지긋한 곱셈을 쉬운 덧셈으로 바꿔주기만 하면 얼마나 좋을까. 바로 그 바람에서 태어난 도구가 로그(logarithm)야. 그러니 로그가 어렵게 느껴졌더라도 그건 네 탓이 아니야. 이게 무슨 문제를 풀려고 나왔는지는 건너뛰고 밑이 어쩌고 진수가 어쩌고 기호부터 배운 탓이지. 자, 그 로그가 뭔지 한마디로 말해줄게.
로그는 밑을 몇 번 곱했나를 세는 자다.
이게 전부다. 오늘은 이거 하나만 챙기면 돼. 그럼 로그가 어떻게 저 밤샘 곱셈의 구원투수가 됐는지 보자. 곱셈은 손이 많이 가고 덧셈은 쉽지. 종이에 342 곱하기 918을 세로셈으로 푸는 거랑, 몇 개의 수를 그냥 더하는 거, 뭐가 편한지는 물어볼 것도 없잖아. 로그의 쓸모는 딱 하나로 요약돼. 어려운 곱셈을 쉬운 덧셈으로 바꿔준다. 두 수를 직접 곱하는 대신, 각각의 로그를 표에서 찾아 더하고, 그 합을 표에서 거꾸로 되짚으면 곱이 딱 나왔지. 공학도의 필수품이던 계산자(slide rule)도 20세기 내내 이 원리로 돌아갔어.
이름도 잠깐 짚고 가자. 로그라는 말은 미분·적분 같은 한자어랑 달리 그리스어에서 왔어. 비율을 뜻하는 로고스(logos)랑 수를 뜻하는 아리트모스(arithmos)를 붙인 말이야. 400여 년 전 네이피어라는 사람이 바로 이 큰 수 곱셈을 덧셈으로 바꾸려고 로그를 만들면서 붙인 이름이지. 우리말로 딱 떨어지는 번역이 없어서 소리 그대로 로그라 불러. 한자어가 뜻을 담아 옮긴 이름이라면, 로그는 발명자가 붙인 이름을 음으로 받아 적은 셈이야. 이름 유래까지 알았으니 이제 로그가 좀 덜 낯설지.
그런데 로그가 대체 어떻게 곱을 합으로 바꾸는 거야? 마법처럼 보이지? 근데 뜯어보면 규칙 딱 하나야. 천천히 따라와봐.
디자이너: “로그가 곱셈을 덧셈으로 바꿔준다는데, 그게 무슨 마법이야?”
동료: “마법 아니야. 로그는 밑을 몇 번 곱했나 세는 자거든.”
디자이너: “그게 왜 곱을 합으로 만들어?”
동료: “곱하면 곱한 횟수가 더해지잖아. 그 횟수를 읽는 게 로그라서 그래.”
로그는 몇 번 곱했나를 세는 자
로그가 뭔지부터 눈높이 맞추자. 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이나 벌어졌는데, 로그 축에서는 딱 한 칸 차이로 얌전히 붙어 보여. 지각 인코딩 글에서 축을 바꾸는 일이 정직과 왜곡의 경계라고 했는데, 로그 축이 정확히 그 경계야. 배율을 보여주는 데는 정직하지만 절대적인 차이는 작아 보이게 만들거든. 그러니까 무엇을 보여줄지부터 먼저 정해. 몇 배 차이가 핵심이면 로그 축, 얼마나 벌어졌는지가 핵심이면 선형 축이야.
예시 문제
자, 로그가 밑을 몇 번 곱했나 세는 자라는 거, 그리고 곱이 합으로 눕는다는 거 두 개 봤지. 이제 직접 풀어보자. 방금 배운 거 그대로라 겁낼 것 없어.
문제 1. log₁₀(10000)은 얼마일까?
직접 한번 해보고 내려와. 풀이 간다.
풀이. 로그가 뭐라고 했어. 밑을 몇 번 곱했나를 세는 자야. 여기 밑은 10이고. 그러니 물음은 딱 하나로 바뀌어. 10을 몇 번 곱해야 10000이 되냐.
10을 한 번은 10, 두 번은 100, 세 번은 1000, 네 번은 10000. 네 번 만에 닿았지? 그러니 log₁₀(10000)은 4다.
자릿수로 확인해봐. 10000은 다섯 자리 수야. 앞에서 로그는 자릿수보다 대략 하나 작다고 했지? 다섯 자리니까 로그는 4. 딱 맞아떨어지지. 외운 게 아니라 세어보니 나온 거야.
문제 2. 옛날 계산자 쓰던 사람이라 치고, log₁₀(2)는 약 0.301, log₁₀(3)은 약 0.477이라는 것만 알아. 이걸로 log₁₀(6)을 구해봐.
직접 한번 해보고 내려와. 풀이 간다.
풀이. 6을 로그 표에서 바로 못 찾아도 괜찮아. 6이 뭐야, 2 곱하기 3이잖아. 곱이지. 그리고 로그는 곱을 합으로 바꿔주는 자였고.
그러니 6의 로그는 2의 로그랑 3의 로그를 더하면 나와. 곱이 합으로 눕는 거지. 이제 아는 값만 더하면 돼.
log₁₀(6) = log₁₀(2 × 3) = log₁₀(2) + log₁₀(3) = 0.301 + 0.477 = 0.778
log₁₀(6)은 약 0.778이야. 옛사람이 표에서 2랑 3의 로그만 찾아 더해서 6을 셈에 써먹은 게 바로 이거야. 곱하기 하나를 더하기 하나로 바꿔치기한 거지.
여기서 하나만 조심해. 6이 2 곱하기 3이라 로그를 더한 거야. 만약 2 더하기 3이었으면 로그를 더하면 안 돼. log₁₀(2 + 3), 곧 log₁₀(5)는 0.301 더하기 0.477이 아니야. 로그의 마법은 곱에만 걸린다고 했잖아. 그것만 기억하면 돼. 봐, 별거 아니지?
정리
정리하자. 로그는 밑을 몇 번 곱했나를 세는 자다. 곱셈은 그 곱하기를 더 쌓는 일이라 쌓인 횟수가 더해지고, 로그는 그 횟수를 읽으니 곱이 합으로 바뀌는 거야. 그래서 옛사람은 큰 수의 곱셈을 로그의 덧셈으로 바꿔 풀었고, 지금 우리는 크기 등급을 넘나드는 데이터를 로그 축에 펴지. 곱으로 벌어지는 세상을 덧셈의 눈으로 보게 해주는 도구, 그게 로그야. 봐, 별거 아니지? log 세 글자에 겁먹었던 게 좀 억울할 정도잖아.
여러 사건을 곱하고 더하는 확률의 두 규칙은 앞 글에서 다뤘어. 거기서 곱이 어떻게 범위를 좁히는지 봤다면, 여기선 그 곱을 로그가 어떻게 덧셈으로 눕히는지를 본 거야.
이 글, 어떠셨어요?