프로그래밍을 처음 배울 때 1+2 대신 1 + 2 같이 연산자 앞뒤로 한 칸씩 띄어 쓰는 모습이 눈에 들어왔었다. 분명 앞뒤 공백 없이도 오류 안 나고 잘 실행된다. 그러나 대부분의 사람이 이 의미 없어 보이는 공백을 사용한다. 현재 나 또한 연산자 앞뒤로 꼬박꼬박 띄어 쓰고 있으며 그렇지 않은 코드를 보면 괜히 불편한 마음이 든다. 도대체 사람들은 뭐가 좋길래 2바이트씩 낭비해 가며 띄어 쓰고 있는지 알아보자.
가독성
뭐니 뭐니 해도 가장 큰 이유는 가독성일 것이다. 사실 프로그래밍을 처음 배울 때는 짧은 변수명과 간단한 구문을 주로 다루다 보니 크게 안 와닿을 수 있다. 가령, a=b-c 같이 간단한 코드는 연산자 주변에 공백이 없어도 쉽게 읽힌다. 그렇다면 아래 2줄의 코드를 보자.
free_size=total_array_capacity-current_index
free_size = total_array_capacity - current_index
변수 이름이 길어졌을 뿐인데 공백 없는 첫 번째 줄은 읽기 다소 불편하다. 반면, 두 번째 줄은 연산자 주변 공백 덕에 각각의 변수를 편하게 구별해낼 수 있다. 변수 이름이 길어지지 않더라도, 다양한 기호들이 섞이고 복잡한 상황에서 적절한 공백은 가독성 향상에 꽤 도움을 준다.
문법적 이유
대부분은 연산자 주변의 공백이 있든 없든 문법적으로 문제없이 잘 돌아가지만, 일부 언어나 기능을 사용할 때 연산자 앞뒤로 공백을 제대로 사용하지 않으면 오류가 날 수 있다. 대표적으로 Zig 언어의 경우 이항 연산자 앞뒤로 한쪽만 공백이 있으면 오류가 나기에 앞뒤 모두 공백을 두거나 아예 두지 않는 것이 강제된다. 예를 들어, a+ b같이 쓰면 오류가 난다(대부분의 언어는 이렇게 써도 괜찮다). 연산자처럼 쓸 수 있는 함수인 중위 함수(infix function)를 Kotlin이나 Scala처럼 지원한다면 a plus b 같은 표현이 가능하다. 중위 함수를 사용하는데 앞뒤로 공백을 두지 않으면 aplusb처럼 값과 구별이 불가능하기에 앞뒤로 공백이 필수이다.
예외
일반적으로 연산자 앞뒤로 띄어 쓰지만, 항상 그런 것은 아닌 게 코딩 스타일에 따라 연산자를 쓸 때 주변에 공백을 사용하지 않기도 한다. 대표적으로 수식을 대괄호 안에 인덱스로 사용하는 경우, a[i + 1] 대신 a[i+1]처럼 사용하기도 한다. 2*7 + 6/3 같이 우선순위가 다른 연산자가 섞여 있을 때, 상대적으로 높은 우선순위의 연산자 주변을 공백 없이 붙여쓰기도 한다. 함수의 기본값이나 인자를 직접 지정할 때 사용하는 =의 경우, foo(x=4) 같이 오히려 공백을 없는걸 권장하는 등 상황에 따라 달라질 수 있다.
기타
위에서 다룬 내용은 이항 연산자에 관한 내용이었다. -a, b++, !c 같은 단항 연산자를 사용한다면 공백을 두지 않는 게 일반적이다(다만, sizeof 같은 단항 연산자는 sizeof a 또는 sizeof(a)처럼 공백이나 괄호를 사용해야한다). 삼항 연산자는 a ? b : c 형태로 이항 연산자와 같이 공백을 두는 것이 일반적이다.
연산자를 쓸 때마다 띄어쓰기를 일일이 하는 것이 귀찮을 수 있다. 만약 자동 포맷터를 사용할 수 있다면 손수 띄어 쓸 필요 없이 자동으로 보기 좋게 정리해 주니 사용해 보자.
마무리
이번 글에선 코딩에 입문한 사람들 입장에서 제일 어색할 만한 연산자 주변의 공백을 다뤘지만, 이 외에도 보기 좋은 코드를 위해 코딩 컨벤션이라 부르는 다양한 규칙들이 존재한다. 이런 규칙을 준수하면 누군가 내 코드를 볼 때 피로함을 조금이나마 줄일 수 있지 않을까?
'컴퓨터 > 간단지식' 카테고리의 다른 글
| 아스키 코드표 — ASCII Table (0) | 2026.01.08 |
|---|