대니
danny's blog@dannywon_dev
발행 60 · 대기 84

1인 개발자. 클로드 코드를 팀처럼 굴린다. 매일 겪은 것만 쓴다.

클로드 코드

클로드 코드 상태 표시줄 191줄을 97줄로 줄일 때

막대를 지우면 칸 수만 사라지는 게 아니라 색으로 알리던 경고까지 같이 사라진다

화면 아래에 다섯 줄이 깔려 있었다. 디렉토리·브랜치·모델 / 컨텍스트 막대 + 비용 / 5시간·7일 사용량 막대 + 리셋 시각 / 세션 종료 신호등 + 커밋·푸시 상세 / 그 밖의 표시.

2026-08-09에 이걸 줄이기로 했다. 요청은 명확했다. 그래프는 다 삭제하고 몇 % 인지만 남긴다.

스크립트는 191줄이었고, 막대를 그리는 부분은 make_bar() 함수 하나에 모여 있었다. 그것만 들어내면 끝날 것처럼 보였다.

막대 안에 모양이 아닌 것이 하나 더 있었다

지우기 전에 함수를 읽었는데, 안에서 두 가지 일을 하고 있었다.

if [ "$p" -lt 50 ]; then c='\033[32m'      # 초록
elif [ "$p" -lt 80 ]; then c='\033[33m'    # 노랑
else c='\033[31m'                          # 빨강
fi
# … 채운 칸을 c 색으로, 남은 칸을 회색으로 그린다
  1. 칸 수로 양을 보여준다 ← 지우기로 한 것
  2. 채운 칸 색으로 위험을 알린다 ← 지우기로 한 적 없는 것

막대를 통째로 들어내면 두 번째도 같이 사라진다. 그러면 27%88% 도 똑같이 밋밋한 회색 숫자가 된다. 컨텍스트가 다 차 가는지 한도가 임박했는지를 숫자를 읽어서 판단해야 하는데, 상태 표시줄은 원래 안 읽고 알아채라고 있는 물건이다.

여기가 갈린 지점이었다. 「막대를 지운다」는 요청은 모양에 대한 것이었는데, 막대 안에는 모양이 아닌 것이 하나 더 들어 있었다.

없앨 것과 남길 것이 한 함수 안에서 같은 변수를 쓰고 있으면, 없애는 쪽만 보다가 남길 것을 조용히 같이 버린다. 그리고 이런 손실은 에러를 안 낸다. 화면은 멀쩡히 나오고, 경고가 안 뜬다는 걸 경고가 필요한 날에야 안다.

색만 떼어내 숫자에 입혔다

pct() {
  p=$(printf '%.0f' "$1")
  if [ "$p" -lt 50 ]; then c='\033[32m'
  elif [ "$p" -lt 80 ]; then c='\033[33m'
  else c='\033[31m'
  fi
  printf '%s%s%%%s' "$c" "$p" '\033[0m'
}

191줄 → 97줄. 화면은 5줄 → 2줄.

임계값 세 구간은 실제로 값을 넣어 돌려서 27%가 초록, 63%가 노랑, 88%와 100%가 빨강으로 나오는 것을 확인했다. 「짰으니 되겠지」로 넘기면 확인할 방법이 그날 밤 한도가 찰 때밖에 없다.

사고가 나서 붙인 것이 제일 군더더기처럼 보인다

같은 작업에서 신호등 문구도 줄였다.

세션 종료 🔴 불가능 · 커밋 안 함 2 (danny-OS) · 푸시 안 함 1 (danny-OS) · 체크포인트 이후 변경 · 다른 변경 3
→ 🔴 종료 불가 · 커밋 2 · 푸시 1

괄호 안 저장소 이름도 군더더기로 보였다. 그런데 그건 8월 3일에 사고가 나서 붙인 것이었다. 볼트 폴더에 앉아 설정 폴더를 고치는 일이 흔한데, 이름이 없으면 「지금 열어둔 폴더 얘기」로 읽혀서 엉뚱한 곳에서 커밋을 찾게 된다.

그래서 이름을 없애지 않고 조건을 좁혔다. 지금 폴더 하나뿐이면 생략하고, 다른 저장소가 섞였을 때만 붙인다.

커밋 4 (.claude 2 · danny-OS 2)     ← 섞였을 때
커밋 2                              ← 지금 폴더뿐일 때

왜 붙었는지가 코드에 안 적혀 있으면 다음에 지운다. 이번엔 주석에 사고 날짜가 남아 있어서 살았다.

← 목록으로