unnecessary_parenthesis 린트 규칙: 불필요한 괄호 없애기

unnecessary_parenthesis 린트 규칙: 불필요한 괄호 없애기

코드의 의미를 바꾸지도 않고 가독성도 좋게 만들지 않는 괄호는 불필요해요. 이 린트 규칙은 그런 괄호를 잡아내서 표현식을 더 깔끔하게 만들어 줘요.

출처: unnecessary_parenthesis

본문

설명

필요하지 않은 괄호는 사용하지 마세요.

BAD:

a = (b);

GOOD:

a = b;

괄호는 코드의 의미를 바꾸지 않고 가독성도 높이지 않을 때 불필요하다고 판단돼요. 목표는 모든 개발자가 우선순위 표(expression precedence table)를 머릿속에 외우게 만드는 게 아니에요. 그래서 두 번째 조건(가독성 개선)이 포함되어 있어요. 이 조건에 해당하는 예시는 다음과 같아요.

  • 계단식 표현(cascade expressions) — 계단식 표현의 대상이 무엇인지 때때로 명확하지 않아요. 특히 대입이나 중첩된 계단식이 있을 때 그렇죠. 예를 들어 a.b = (c..d) 같은 표현식을 말해요.
  • 토큰 사이에 공백이 있는 표현식 — !await foo 같은 표현식은 유효하면서도 !(await foo)와 같은 의미인데, 그렇게 보면 아주 이상해질 수 있어요.
  • 논리 표현식 — 괄호는 우선순위로 정해진 묵시적 그룹핑의 가독성을 높여줄 수 있어요. 예를 들어 (a && b) || c && d 같은 표현식을 말해요.

활성화 방법

unnecessary_parenthesis 규칙을 활성화하려면 analysis_options.yaml 파일의 linter > rules 아래에 규칙을 추가하면 돼요.

linter:
  rules:
    - unnecessary_parenthesis

대신 YAML 맵 문법을 사용해서 린트 규칙을 설정하고 있다면, linter > rules 아래에 unnecessary_parenthesis: true를 추가하면 돼요.

linter:
  rules:
    unnecessary_parenthesis: true

더 알아보기