‘Saving Keystrokes’를 멈춰라. 3초만 투자해 3시간을 절약한다

발행: (2025년 12월 26일 오후 08:48 GMT+9)
6 min read
원문: Dev.to

Source: Dev.to

Cover image for Stop "Saving Keystrokes". I Spend 3 Seconds to Save 3 Hours

우리 모두 그런 경험을 해봤을 겁니다.

당신은 몰입 상태에 있습니다. 논리는 흐르고, 음악은 크게 울리며, 맵 함수 안에서 사용자 객체를 담을 임시 변수가 필요합니다.

updatedUserObject 라고 입력할 수도 있겠죠.

하지만 그건 17자입니다.

더 빠른 방법이 뭘까요? u.

u는 한 글자입니다. 효율적이고, 빠릅니다. 지금 u가 무엇을 의미하는지 정확히 알고 있기 때문에 입력하고, 코드가 컴파일되고, 생산성을 느낍니다.

당신은 미래의 자신을 위한 함정을 이미 놓은 것입니다.

이것이 주니어 함정이라 불리는 키스트로크 절약입니다.

이 함정은 “타이핑 속도가 소프트웨어 엔지니어링의 병목이다”라는 거짓에 기반합니다.

그렇지 않습니다. 병목은 읽기 이해력입니다.

의도 사전

data, item 같은 일반적인 이름이나 x 같은 한 글자를 사용할 때, 우리는 정보를 숨기고 있습니다. 논리에서 컨텍스트를 빼앗는 것이죠.

xd가 가득한 함수를 이해하려면, 독자(아마도 6개월 뒤의 당신)는 무슨 일이 일어나고 있는지 파악하기 위해 프로그램 전체 로직을 머릿속에 떠올려야 합니다. 당신은 타이핑 0.5초를 절약하기 위해 만든 퍼즐에 팀원의 인지 RAM을 태우고 있는 겁니다.

변수 이름은 단순한 라벨이 아니라 의도의 정의입니다.

주니어 함정: “키스트로크 절약”

“타이핑이 더 빠르니까 updatedUserObject 대신 u라고 이름 짓겠어. 지금은 무슨 뜻인지 알니까.”

프로의 움직임: “자동완성 의존”

프로페셔널 주니어는 코드는 읽히기 위해 쓰여야 한다는 것을 압니다, 타이핑하기 위해서가 아니라.

우리는 IDE의 황금기에 살고 있습니다. VS Code, WebStorm, IntelliJ는 우리보다 똑똑합니다. 자동완성을 제공하죠.

전략: 길고 설명적인, 의도를 드러내는 이름을 한 번 입력합니다. 그 뒤엔 Tab 키를 눌러 자동완성을 사용합니다.

우리는 지금 타이핑 3초를 투자해 나중에 디버깅 3시간을 절약합니다. 설명적인 이름을 사용하면 변수가 무엇을 담고 있는지 이해하기 위해 앞의 20줄을 읽을 필요가 없습니다. 변수 자체가 알려줍니다.

코드: “데이터 덤프” vs. “스토리”

// Before (미스터리 박스)

// 'data'는 무엇이든 될 수 있습니다.
// 우리는 'data'를 'Weather API Response'와, 'v'를 'temperature value'와 연결시켜야 합니다.
const data = getInfo();

if (data) {
  const val = data.v;
  // 이 줄을 따로 읽는다면 무슨 일이 일어나고 있는지 전혀 알 수 없습니다.
  updateUI(val);
}

// After (의도 파악)

// 파일 전체를 보지 않아도 이것이 정확히 무엇인지 알 수 있습니다.
const weatherReport = fetchWeather();

if (weatherReport) {
  const currentTemperature = weatherReport.degrees;

  // 이 줄은 영어 문장처럼 읽힙니다.
  updateUI(currentTemperature);
}

부끄러운 전당

코드 리뷰 중(또는 자신의 PR에서) 이런 경우를 발견하면 즉시 표시하세요. 이들은 컨텍스트 뱀파이어—코드의 의미를 빨아먹는 존재들입니다.

  • data → 어떤 데이터인가요? userProfile이나 transactionList를 사용하세요
  • item → 어떤 아이템인가요? cartItem이나 notification을 사용하세요
  • flag → True가 무엇을 의미하나요? isVisible이나 hasAccess를 사용하세요
  • arr → 어떤 배열인가요? activeUsers를 사용하세요

컴파일러를 위해 코드를 작성하지 마세요. 사람을 위해 코드를 작성하세요.

이 글은 제 핸드북 **“The Professional Junior: Writing Code that Matters.”**의 발췌본입니다. 400페이지 분량의 교과서는 아닙니다. 쓰여지지 않은 엔지니어링 규칙을 다룬 전술적인 현장 가이드입니다.

👉 전체 핸드북 받기

Back to Blog

관련 글

더 보기 »

메인 스레드는 당신 것이 아니다

Main Thread는 사용자의 리소스입니다. 사용자가 사이트나 앱을 방문하면, 브라우저는 단일 스레드를 할당해 JavaScript를 실행하고, 그들의…