logo

DowanKim

15. 코드 스타일

2026년 4월 10일

자바스크립트

🏗️ 1. 중괄호 및 코드 구조 (Braces)

대부분의 자바스크립트 프로젝트는 **'이집션(Egyptian) 스타일'**을 권장합니다.

  • 규칙: 키워드와 같은 줄에 여는 중괄호를 배치하고, 앞에 공백 한 칸을 둡니다.
  • 단순 구문: 코드가 한 줄이더라도 가독성과 유지보수를 위해 중괄호와 줄 바꿈을 사용하는 것이 안전합니다.
// ✅ 추천: 가독성이 가장 좋음 if (n < 0) { alert(`Power ${n} is not supported`); } // ❌ 비추천: 새로운 라인 추가 시 실수 유발 if (n < 0) alert(n);

📏 2. 가로/세로 들여쓰기 (Whitespace)

가로 들여쓰기 (Horizontal)

  • 스페이스 vs 탭: 현재 업계 표준은 스페이스 2칸 혹은 4칸입니다. 탭보다 환경에 구애받지 않고 일관된 간격을 보여주기 때문입니다.
  • 가로 길이: 한 줄은 80~120자 이내로 제한합니다. 백틱이나 줄 바꿈을 활용해 가로 스크롤을 방지하세요.

세로 들여쓰기 (Vertical)

  • 논리적 분리: 변수 선언, 반복문, 리턴문 사이에는 빈 줄을 넣어 논리 블록을 구분하세요. 아홉 줄 이상 빈 줄 없이 코드가 이어지면 읽기 힘듭니다.

🛡️ 3. 중첩 레벨 줄이기 (Early Return)

깊은 중첩(if 안에 if)은 코드를 해석하기 어렵게 만듭니다. 이를 해결하는 핵심 기법이 **'가드 클로저(Guard Clause)'**입니다.

  • 전략: 예외 상황이나 부정적인 조건을 먼저 처리하고 return 혹은 continue로 빠져나갑니다.
  • 효과: 코드의 '주요 흐름'을 중첩 없이 일직선으로 읽을 수 있습니다.
// ✅ 개선된 코드 (Guard Clause 적용) function pow(x, n) { if (n < 0) return; // 예외를 먼저 쳐냄 let result = 1; for (let i = 0; i < n; i++) { result *= x; } return result; }

🛠️ 4. 헬퍼 함수의 배치 (Top-Down)

사람은 글을 위에서 아래로 읽습니다. 따라서 **'무엇을 하는지'**를 먼저 보여주는 것이 좋습니다.

  1. 상단: 주요 로직을 담은 코드 (함수 호출부)
  2. 하단: 로직을 보조하는 헬퍼 함수들 (함수 선언문)
  • 이름만으로 역할을 유추할 수 있다면, 굳이 아래에 있는 헬퍼 함수의 본문까지 읽지 않아도 되기 때문입니다.

🤖 5. 도구의 힘: Linter (ESLint)

스타일 가이드를 일일이 기억하고 교정하는 것은 비효율적입니다. ESLint 같은 도구를 사용해 자동화하세요.

  • 기능: 오타 검출, 미사용 변수 체크, 스타일 가이드 강제.
  • 실무 팁: 팀 프로젝트를 시작할 때 AirbnbGoogle 설정 세트를 기반으로 시작하면 스타일 논쟁을 종결시킬 수 있습니다.

🎙️ 기술 면접 대비 (Interview Questions)

Q1. 코드 가독성을 높이기 위해 본인만의 코딩 스타일 원칙이 있나요? (중급)

답변: "저는 '가드 클로저(Guard Clause)' 패턴을 적극 활용하여 함수의 중첩 레벨을 최소화하는 것을 선호합니다. 예외 상황을 함수 상단에서 먼저 처리하고 조기에 반환(Early Return)함으로써, 함수의 핵심 비즈니스 로직이 중첩 없이 명확하게 드러나도록 작성합니다."

Q2. 탭(Tab) 대신 스페이스(Space)를 사용하는 추세인 이유는 무엇일까요? (기초)

답변: "스페이스를 사용하면 에디터나 운영체제 설정에 관계없이 모든 개발자가 동일한 너비의 들여쓰기를 볼 수 있기 때문입니다. 또한, 함수의 매개변수 정렬처럼 아주 세밀한 간격 조정이 필요할 때 스페이스가 훨씬 더 정교한 제어가 가능합니다."


💡 기억해야 할 중요한 내용

  1. 코드는 한 번 작성되지만 수백 번 읽힙니다. 가독성을 위해 작성 시간을 더 투자하는 것이 장기적으로는 훨씬 이득입니다.
  2. 일관성이 완벽함보다 중요합니다. 내가 선호하는 스타일이 아니더라도, 팀이 정한 스타일 가이드를 철저히 따르는 것이 좋은 개발자의 덕목입니다.