지난 글에서 = 가 "양쪽이 같다"는 주장이라는 것을 세웠습니다. 그러면 그 양쪽에 놓인 식 하나는 어떻게 읽을까요.
14일까요, 20일까요. 답이 갈리는 것은 계산을 못 해서가 아닙니다. 무엇을 먼저 하는지가 정해져 있지 않으면 같은 식이 두 값을 가리키게 되기 때문입니다. 이 글은 그 순서 하나만 다룹니다. 그리고 순서보다 실제로 더 자주 발목을 잡는 것 — 괄호를 안 썼는데도 이미 묶여 있는 자리들 — 을 넷으로 나눠 봅니다.
연산의 우선순위
네 칸의 차례
수학은 이 순서를 약속으로 정해 두었습니다.
위 칸부터 차례로 하고, 같은 칸에 있는 것끼리는 왼쪽부터 합니다. 그래서 는 곱셈이 덧셈보다 위 칸이므로 입니다. 20이 되려면 라고 괄호를 적어야 합니다.
칸이 넷이라는 것은 뒤섞인 식을 만나면 볼 곳이 넷뿐이라는 뜻이기도 합니다. 처럼 길어 보이는 식도 위 칸부터 차례로 걷어 내면 금방 짧아집니다. 거듭제곱을 먼저 해서 , 곱셈과 나눗셈을 해서 , 남은 덧셈과 뺄셈을 왼쪽부터 해서 48입니다. 계산이 어려웠던 것이 아니라 어느 것부터 손댈지가 정해져 있지 않으면 시작을 못 하는 것이고, 이 표가 그 시작점을 매번 똑같이 정해 줍니다.
뺄셈과 나눗셈의 방향
'왼쪽부터'가 왜 필요했는지는 숫자로 바로 보입니다.
왼쪽부터 하면 입니다. 오른쪽부터 하면 입니다. 값이 갈립니다. 뺄셈도 같습니다.
왼쪽부터 하면 , 오른쪽부터 하면 입니다. 반면 덧셈과 곱셈은 순서를 바꿔도 값이 같아서 이 규칙이 없어도 문제가 없습니다. 규칙이 필요했던 것은 뺄셈과 나눗셈 때문입니다.
덧셈과 곱셈이 순서에 흔들리지 않는 성질에는 이름이 있습니다. 처럼 두 수의 자리를 바꿔도 값이 같은 것을 교환법칙이라고 하고, 덧셈과 곱셈에는 있지만 뺄셈과 나눗셈에는 없습니다. 그래서 규칙이 하나 더 필요했던 쪽도 뺄셈과 나눗셈입니다.
분배법칙과 우선순위
그러면 곱셈이 덧셈보다 위 칸인 것은 그저 약속일까요, 아니면 그래야만 하는 이유가 있을까요. 를 두 순서로 계산해 봅니다. 우선순위대로 하면 이고, 무조건 왼쪽부터 하면 입니다. 둘 다 계산 자체는 막힘없이 굴러갑니다. 이 식 하나만 보면 어느 쪽도 틀렸다고 말할 수 없습니다.
갈리는 자리는 다른 데 있습니다. 를 괄호를 풀어 적어 보면
하나의 수를 괄호 안 전부에 나눠 곱하는 이 성질을 분배법칙이라고 합니다. 오른쪽의 는 곱셈이 덧셈보다 먼저라는 규칙 아래에서만 14가 됩니다. 무조건 왼쪽부터 하는 세계에서 같은 줄을 읽으면 , 로 32가 나옵니다. 분배법칙을 그 세계에서도 적으려면 처럼 괄호를 두 쌍 더 붙여야 합니다.
곱셈을 위 칸에 둔 덕분에 괄호 없이 적을 수 있게 된 것이 분배법칙만은 아닙니다. 앞으로 계속 나올 같은 식이 전부 여기에 기대고 있습니다 — 곱셈과 거듭제곱이 먼저 묶여 덩어리를 만들고, 덧셈이 그 덩어리들을 이어 붙입니다. 순서 규칙은 계산을 정하는 약속이면서, 동시에 괄호를 얼마나 적게 쓰고도 식을 적을 수 있는지를 정하는 약속입니다.
(가) 생략된 곱셈
기호 없이 붙여 적는 곱
수식에서 다음은 전부 곱입니다.
읽는 법은 "3 곱하기 ", "2 곱하기 ", " 곱하기 ", "4 곱하기 곱하기 " 입니다. 눈에 보이는 기호가 없을 뿐 곱셈이 거기 있습니다.
이것이 우선순위와 어떻게 얽히는지가 중요합니다. 생략된 곱셈도 그냥 곱셈이라 3번 칸에 들어갑니다. 그러니 는 이지 가 아닙니다. 를 넣어 보면 앞의 것은 이고 뒤의 것은 입니다.
기호를 지웠는데도 뜻이 흔들리지 않는 것은 붙여 적은 두 글자 사이에는 곱 말고 다른 것이 올 자리가 없기 때문입니다. 를 보고 "3 더하기 "로 읽을 사람은 없습니다. 더하기라면 기호를 적었을 테니까요.
숫자끼리의 곱
숫자끼리는 생략할 수 없습니다. 은 2 곱하기 3이 아니라 스물셋입니다. 자리를 붙여 적는 것이 이미 "십의 자리에 2, 일의 자리에 3"이라는 다른 뜻으로 쓰이고 있어서, 곱셈이 그 자리를 빼앗을 수 없습니다.
그래서 숫자와 숫자를 곱할 때는 반드시 기호를 적고, 이때 대신 가운뎃점 을 쓰기도 합니다. 은 과 같은 뜻입니다. 는 글자 와 모양이 닮아서 글자가 섞인 식에서는 가운뎃점 쪽이 안전합니다.
숫자와 글자 사이, 글자와 괄호 사이, 괄호와 괄호 사이는 전부 생략할 수 있습니다. , , 가 그것입니다. 생략할 수 없는 자리는 숫자와 숫자 사이 하나뿐입니다.
(나) 분수선
위아래를 묶는 괄호
손으로 쓴 분수를 한 줄로 옮겨 적을 때 가장 흔한 사고가 여기서 납니다.
이 모양을 그대로 한 줄로 적으면 (a + b) / 2 입니다. a + b / 2 가 아닙니다. 분수선은 위에 적힌 것 전체와 아래에 적힌 것 전체를 각각 괄호로 묶고 있고, 한 줄로 펴는 순간 그 괄호가 눈에 보이지 않게 되기 때문에 직접 적어 줘야 합니다.
숫자를 넣으면 한 번에 끝납니다. , 이라 하면
5와 7. 다른 식입니다.
분모 쪽의 괄호
같은 일이 아래쪽에서도 일어납니다.
이것은 1 / (x + 1) 이지 1 / x + 1 이 아닙니다. 을 넣어 보면 앞의 것은 이고 뒤의 것은 입니다. 값이 다섯 배 넘게 벌어집니다.
위아래가 둘 다 여러 항이면 괄호가 두 쌍 필요합니다. 는 (a + b) / (c + d) 입니다. 한 줄로 펼 때 괄호를 몇 쌍 적어야 하는지는 세어 보면 됩니다 — 분수선 위와 아래를 각각 보고, 그 안이 덧셈이나 뺄셈으로 이어진 여러 덩어리면 괄호가 필요하고 덩어리 하나면 필요 없습니다. 의 위는 곱 하나라 2*x / 3 으로 충분합니다.
(다) 함수 이름과 근호
수식에는 괄호 없이도 뒤쪽을 덮는 기호가 몇 개 있습니다. 이 절에서는 그것들이 무슨 계산인지는 전혀 다루지 않습니다. 선이 어디까지 덮는가만 봅니다.
함수 이름이 덮는 덩어리
함수 이름은 바로 뒤에 붙은 덩어리 하나를 덮습니다.
- 는 입니다. 가 곱으로 한 덩어리라 통째로 들어갑니다.
- 은 입니다. 이 아닙니다. 덧셈은 덩어리를 묶어 주지 못합니다.
- 는 입니다. 가 곱이라 한 덩어리입니다.
헷갈릴 때는 괄호를 적으면 됩니다. 실제로 많은 책이 라고 괄호를 적어 줍니다. 덩어리를 만드는 것은 곱이고 덧셈은 덩어리를 끊습니다 — 이 한 줄이 위 셋을 전부 설명합니다.
근호의 지붕
근호는 지붕이 덮은 만큼만 덮습니다. 이것은 손으로 쓴 모양을 보면 분명한데 한 줄로 옮기면 사라집니다.
앞의 것은 에만 지붕이 있고 는 밖에 있습니다. 뒤의 것은 지붕이 전체를 덮습니다. 한 줄로 적으면 각각 sqrt(a) + b 와 sqrt(a + b) 입니다. 분수선과 완전히 같은 이야기입니다 — 손글씨에서 선의 길이가 하던 일을 한 줄에서는 괄호가 대신합니다.
지붕이 어디까지인지 헷갈릴 일이 손글씨에서는 거의 없습니다. 선을 그은 만큼이 그대로 보이니까요. 그런데 인쇄된 식에서는 지붕이 짧아 보여 헷갈리는 자리가 생깁니다. 와 가 그렇습니다. 앞의 것은 지붕이 3에만 있고 는 밖에서 곱해진 것이고, 뒤의 것은 가 통째로 근호 안입니다. 이럴 때도 답은 같습니다 — 지붕의 오른쪽 끝이 어디서 멈추는지만 보면 됩니다.
(라) 위첨자와 아래첨자
거듭제곱 표기
위첨자는 같은 것을 몇 번 곱했는지를 적은 것입니다.
는 " 의 제곱" 또는 " 의 2승"이라고 읽고, 를 두 번 곱했다는 뜻입니다. 입니다. 이 약속 하나면 앞으로 나올 같은 표기를 읽을 수 있습니다 — 2를 세 번, 3을 두 번, 5를 한 번 곱했다는 뜻이니 입니다. 5번 · 약수와 배수·소인수분해에서 이 모양을 계속 쓰게 됩니다. 지수를 다루는 규칙들과 ·음의 지수는 13번 · 거듭제곱과 근호의 몫입니다.
위첨자가 우선순위 표의 둘째 칸에 있다는 것도 여기서 챙겨 둡니다. 은 이지 이 아닙니다. 거듭제곱은 곱셈보다 먼저라, 붙어 있는 위첨자가 바로 아래 것에만 작용하고 나서 곱셈이 일어납니다.
와
위첨자도 덮는 범위가 있습니다. 그리고 그 범위가 우선순위와 겹쳐 있어 부호가 붙으면 갈립니다.
앞의 것은 위첨자가 에만 붙어 있고 앞의 부호는 밖에 있습니다. 거듭제곱이 위 칸이므로 을 먼저 하고 그 결과에 부호를 붙입니다. 뒤의 것은 괄호가 를 한 덩어리로 묶었으니 그 덩어리를 두 번 곱합니다. 덮는 범위가 다르므로 다른 식입니다.
두 값이 각각 얼마인지는 여기서 계산하지 않습니다 — 음수끼리 곱하면 무엇이 되는지를 아직 세우지 않았고, 그것은 10번 · 수의 종류와 수직선의 몫입니다. 지금 챙길 것은 괄호가 있고 없고에 따라 위첨자가 덮는 것이 달라진다는 것, 그리고 을 "마이너스 2의 제곱"이라고 읽으면 뒤의 것과 구별되지 않으니 "2의 제곱에 마이너스" 라고 읽어야 한다는 것입니다.
와
앞 소절이 우선순위 이야기였다면 이번 것은 순전히 표기 이야기입니다. 같은 글자에 붙는 작은 글자가 위에 있느냐 아래에 있느냐로 완전히 다른 두 가지를 가리킵니다.
아래첨자는 곱이 아니라 이름표입니다. 은 " 곱하기 "이 아니라 " 들 중 번째"라는 뜻입니다. 이름이 하나뿐인데 그런 것이 여럿 필요할 때, 새 글자를 계속 만드는 대신 번호를 붙여 구별하는 장치입니다.
는 반대로 계산입니다. 를 번 곱하라는 뜻이고, 가 3이고 가 2면 9라는 수 하나가 나옵니다. 는 를 정해도 수가 나오지 않습니다 — 가 얼마인지는 누군가 따로 정해 줘야 알 수 있습니다.
| 모양 | 읽는 법 | 정체 |
|---|---|---|
| " 아이" · " 들 중 번째" | 이름 | |
| " 의 승" | 계산 |
작은 글자가 위아래 어느 쪽인지만 보면 되므로 구별 자체는 쉽습니다. 문제는 한 줄로 옮겨 적을 때 위아래가 사라진다는 것이고, 그 자리를 다음 절에서 봅니다.
코드 한 줄로 옮겨 적기
여기까지가 수식을 읽는 법입니다. 그런데 수식을 한 줄에 늘어놓아야 하는 자리가 있습니다. 코드가 그렇고, 계산기 입력창이 그렇고, 메신저로 식을 적어 보낼 때가 그렇습니다. 손으로 쓴 모양에서 선의 길이와 글자의 높낮이가 하던 일을 한 줄에서는 전부 괄호와 기호가 대신해야 합니다.
한 줄로 펴면 사라지는 것
한 줄로 옮길 때 잃어버리는 것이 정확히 넷이고, 앞에서 본 넷과 같습니다.
| 손으로 쓴 모양 | 무엇이 묶고 있었나 | 한 줄에서는 |
|---|---|---|
| 붙여 적은 것이 곱 | 3 * a |
|
| 분수선의 길이 | (a + b) / 2 |
|
| 근호의 지붕 | sqrt(a + b) |
|
| · | 작은 글자의 높낮이 | x[i] · x ** i |
곱셈 기호를 되살려야 하는 것이 가장 자주 잊히는 자리입니다. 코드에서 3a 라고 적으면 계산이 틀리는 것이 아니라 문장 자체가 성립하지 않아 그 줄에서 멈춥니다.
(a + b) / 2 와 a + b / 2
이 둘은 코드에서도 멀쩡히 돌아가고 둘 다 숫자를 내놓습니다. 틀렸다는 표시가 어디에도 안 뜹니다. 그래서 분수선을 옮겨 적다 괄호를 빠뜨리면, 프로그램은 조용히 다른 값을 계속 내놓습니다.
a, b = 4, 6
print((a + b) / 2) # 5.0
print(a + b / 2) # 7.0
앞에서 손으로 구한 5와 7이 그대로 나옵니다. 코드가 수학과 다른 순서를 쓰는 것이 아니라, 같은 순서를 쓰기 때문에 괄호를 빠뜨린 줄이 7을 내놓는 것입니다.
부호와 거듭제곱도 같습니다.
print(-2 ** 2) # -4
print((-2) ** 2) # 4
앞 절에서 "값은 나중에 세운다"고 미뤄 둔 그 두 값입니다. 여기서는 수를 외우지 말고 둘이 다른 값이라는 사실만 챙기면 됩니다.
첨자와 거듭제곱
작은 글자의 높낮이는 한 줄에서 가장 크게 모양이 바뀌는 자리입니다.
- 아래첨자 는 대괄호로 적습니다 —
x[i]. 이름표이므로 값이 아니라 자리를 가리키는 표기를 씁니다. - 위첨자 는 별표 둘로 적습니다 —
x ** i. 계산이므로 연산 기호가 붙습니다.
도 한 줄에서는 이름을 가진 함수가 됩니다 — sqrt(x). 근호의 지붕이 괄호로 바뀐 것뿐이고, 그래서 지붕이 어디까지였는지를 옮겨 적는 사람이 직접 판단해 괄호를 쳐야 합니다.
한 줄로 옮긴 뒤에는 숫자를 하나 넣어 맞춰 보는 것이 가장 빠릅니다. 에 , 을 넣으면 5여야 하니, 한 줄로 적은 것이 7을 내놓으면 거기서 틀린 것입니다. 이 확인 방법은 다음 글에서 검산 습관으로 다시 세웁니다.
연습 문제
연습 1 — 괄호를 채워 뜻을 확정하기
다음 열 개의 식에 괄호를 채워 계산 순서를 눈에 보이게 적고, 값을 구하세요.
- 입니다.
- 입니다.
- 입니다.
- 입니다.
- 입니다.
- 입니다.
- 입니다.
- 입니다.
- 입니다.
- 입니다.
연습 2 — 분수를 한 줄로 옮겨 적기
다음 다섯 개를 괄호를 써서 한 줄로 적으세요.
(a + b) / 2입니다.2 / (x - 3)입니다.(2*x + 1) / 3입니다.x / (y + z)입니다.(a + b) / (c + d)입니다.
3번에서 곱셈 기호를 되살려 적은 것에 주의하세요. 는 곱이므로 한 줄로 옮길 때 2*x 가 됩니다.
연습 3 — 겉보기에 비슷한 다섯 쌍
각 쌍의 두 값을 구해서, 두 식이 같지 않다는 것을 확인하세요.
와
와 입니다.와
와 입니다.와
과 입니다.와
과 입니다.와
와 입니다.
다섯 쌍 모두 괄호 하나가 값을 바꿉니다. 앞에서 본 와 , 와 도 같은 이유로 다른 식이지만, 그 값을 확인하는 것은 음수와 근호를 세운 뒤의 일이라 여기서는 읽는 법만 챙겨 둡니다.
연습 4 — 소리 내어 읽기
식을 말로 옮기는 연습입니다. 앞의 셋이 손으로 적는 연습이었다면 이번 것은 입으로 읽는 연습입니다. 소리 내어 읽을 수 있으면 어디까지가 한 덩어리인지를 이미 안 것이고, 읽다가 막히면 그 자리가 아직 안 잡힌 자리입니다.
다음 다섯 개를 소리 내어 읽고, 읽은 말을 그대로 적으세요. 괄호도 "괄호 열고 · 괄호 닫고"로 읽습니다.
- "5 곱하기 괄호 열고 빼기 2 괄호 닫고"입니다. 곱셈 기호가 생략되어 있으므로 "곱하기"를 살려 읽습니다.
- " 빼기 1을 4로 나눈 것"입니다. 위쪽 전체가 한 덩어리라 " 빼기, 1을 4로 나눈 것"으로 끊어 읽으면 다른 식이 됩니다.
- "2 의 제곱근"입니다. 지붕이 전체를 덮고 있어 가 통째로 근호 안입니다.
- " 들 중 다섯 번째"입니다. " 곱하기 5"가 아닙니다.
- "괄호 열고 더하기 1 괄호 닫고, 의 세제곱"입니다. 괄호가 덩어리를 만들었으므로 그 덩어리를 세 번 곱한다는 뜻입니다.
다섯 개 모두 어디서 끊어 읽느냐가 곧 어디까지가 한 덩어리냐입니다. 읽다가 어색하면 대개 덩어리를 잘못 잡은 것이니, 그때 괄호를 적어 넣고 다시 읽으면 됩니다.
정리
- 순서는 괄호 → 거듭제곱 → 곱셈·나눗셈 → 덧셈·뺄셈이고, 같은 칸이면 왼쪽부터입니다. '왼쪽부터'가 필요했던 것은 뺄셈과 나눗셈이 순서를 바꾸면 값이 달라지기 때문입니다.
- 괄호를 안 썼는데도 이미 묶여 있는 자리가 넷 있습니다 — 생략된 곱셈, 분수선, 함수 이름과 근호, 위첨자.
- 위첨자 는 같은 것을 두 번 곱했다는 뜻이고, 아래첨자 은 곱이 아니라 이름표입니다. 작은 글자가 위에 있으면 계산이고 아래에 있으면 이름입니다.
- 곱셈이 덧셈보다 먼저인 것은 분배법칙을 괄호 없이 적을 수 있게 하는 선택이었습니다. 그 순서 덕분에 같은 식이 괄호 없이 적힙니다.
- 한 줄로 옮길 때는 선의 길이와 글자의 높낮이가 하던 일을 괄호와 기호가 대신합니다 —
3 * a,(a + b) / 2,sqrt(a + b),x[i],x ** i.
읽는 법은 여기까지입니다. 다음 글은 반대 방향 — 어떻게 적을 것인가입니다. 계산이 틀렸을 때 어느 줄에서 틀렸는지 찾을 수 있게 적는 방법과, 답을 얻은 뒤 숫자로 검산하는 습관을 세웁니다.
읽어주셔서 감사합니다. 😊

