연산자 주변 띄어쓰기

2026. 1. 10.컴퓨터/간단지식

프로그래밍을 처음 배울 때 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 형태로 이항 연산자와 같이 공백을 두는 것이 일반적이다.

 

연산자를 쓸 때마다 띄어쓰기를 일일이 하는 것이 귀찮을 수 있다. 만약 자동 포맷터를 사용할 수 있다면 손수 띄어 쓸 필요 없이 자동으로 보기 좋게 정리해 주니 사용해 보자.

 

마무리

이번 글에선 코딩에 입문한 사람들 입장에서 제일 어색할 만한 연산자 주변의 공백을 다뤘지만, 이 외에도 보기 좋은 코드를 위해 코딩 컨벤션이라 부르는 다양한 규칙들이 존재한다. 이런 규칙을 준수하면 누군가 내 코드를 볼 때 피로함을 조금이나마 줄일 수 있지 않을까?

'컴퓨터 > 간단지식' 카테고리의 다른 글

구문과 표현식 2부 — 구문(Statement) 알아보기  (0) 2026.02.18
구문과 표현식 1부 — 표현식(Expression) 알아보기  (0) 2026.02.05
최상위 도메인 — TLD 알아보기  (0) 2026.01.20
아스키 코드표 — ASCII Table  (0) 2026.01.08
'컴퓨터/간단지식' 카테고리의 다른 글
  • 구문과 표현식 2부 — 구문(Statement) 알아보기
  • 구문과 표현식 1부 — 표현식(Expression) 알아보기
  • 최상위 도메인 — TLD 알아보기
  • 아스키 코드표 — ASCII Table
우들 WODEUL
우들 WODEUL
wodeul is wonderful!
  • 우들 WODEUL
    우들의 메모 — wodeul's notes
    우들 WODEUL
  • 전체
    오늘
    어제
    • 분류 전체보기 (6)
      • 컴퓨터 (6)
        • 문제해결 (1)
        • 간단지식 (5)
      • 수과학 (0)
      • 일상 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    표현식
    SvelteKit 정적 사이트
    SvelteKit 빌드
    아스키 코드표 PDF
    ASCII Table PDF
    연산자 주변 공백
    ccTLD
    연산자 앞뒤 띄어쓰기
    연산자 앞뒤 공백
    tld
    SvelteKit SSG
    Ascii Table
    최상위 도메인
    Top-Level Domain
    아스키 코드표 벡터
    아스키 코드표
    Expression
    ASCII Table Vector
    구문
    statement
    gTLD
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
우들 WODEUL
연산자 주변 띄어쓰기
상단으로

티스토리툴바