---
title: "브라 사이즈 계산기를 Emacs 안에 만든 사람의 진짜 Emacs식 생활 자동화"
published: 2026-05-29T22:52:41.000Z
canonical: https://jeff.news/article/3503
---
# 브라 사이즈 계산기를 Emacs 안에 만든 사람의 진짜 Emacs식 생활 자동화

필자가 브라 사이즈를 다시 재야 하는 상황에서 Emacs Lisp로 EU, UK, US 브라 사이즈 계산기를 만든 이야기다. Emacs Calc의 단위 변환과 Org 테이블 수식을 엮어서, 측정값만 적으면 여러 지역 기준 사이즈가 자동으로 채워지는 작은 도구로 확장했다.

- 필자는 브라 사이즈를 다시 계산해야 하는 상황에서, 그냥 웹 계산기를 찾는 대신 Emacs 안에 계산기를 직접 만들어버림
  - 핵심 함수 이름은 `my-math-compute-bra-size`
  - 입력은 밴드, 즉 언더버스트 치수와 버스트 치수 두 개고, 선택적으로 EU, UK, US 지역 기준을 넘김

- 계산의 핵심은 “두 치수의 차이로 컵 사이즈를 고른다”는 꽤 단순한 로직임
  - EU 기준은 cm를 쓰고, 컵 차이는 12, 14, 16, 18cm 식으로 올라감
  - UK와 US 기준은 inch를 쓰고, 1인치 차이는 AA, 2인치는 A, 3인치는 B 같은 식으로 매핑함
  - US는 6인치부터 `DD/E`, `DDD/F`, `DDDD/G`처럼 표기가 복잡해지는 부분까지 따로 반영함

- 재미있는 포인트는 단위 변환을 직접 짜지 않고 Emacs Calc에 맡겼다는 점임
  - 함수는 `calc-units`의 단위 변환 기능을 써서 입력값을 지역별 기준 단위로 바꿈
  - 그래서 `90 cm`, `105 cm`처럼 단위가 붙은 문자열을 넘기면 됨
  - 이론상 inch뿐 아니라 광년 `ly`, 옹스트롬 `Ang` 같은 길이 단위도 받을 수 있음. 쓸모는 몰라도 Emacs Calc답긴 함

- 예시로 밴드가 `90 cm`, 버스트가 `105 cm`면 EU 사이즈는 `90B`가 나옴
  - 105cm에서 90cm를 빼면 차이가 15cm
  - EU 표에서 16cm 미만 구간이 B로 매핑되기 때문에 `90B`가 됨

- 여기서 끝내지 않고 Org 테이블을 붙여서 작은 스프레드시트처럼 만든 게 Emacs스러움의 절정임
  - 표에는 `date`, `band`, `bust`, `EU size`, `UK size`, `US size` 열을 둠
  - `#+TBLFM`에 Emacs Lisp 함수를 넣어서 각 사이즈 열을 자동 계산하게 만듦
  - 치수를 바꾼 뒤 `C-u C-c *`로 테이블을 갱신하면 EU, UK, US 사이즈가 한 번에 다시 채워짐

- 이 글의 기술적 재미는 “쓸데없이 진지한 자동화”가 아니라 “내가 쓰는 편집기가 내 생활 데이터까지 계산해준다”는 쪽에 있음
  - 브라 사이즈 계산이라는 주제는 매우 개인적이지만, 패턴은 개발자에게 익숙함
  - 단위 변환, 지역별 규칙 테이블, 계산 함수, 표 자동 갱신까지 이어지는 구조라 작은 도메인 로직 구현 사례로도 볼 수 있음
  - 특히 Org mode를 메모장과 스프레드시트 사이 어딘가로 쓰는 사람에게는 바로 응용 가능한 패턴임

---

## 기술 맥락

- 여기서 중요한 선택은 계산 로직과 UI를 분리했다는 점이에요. `my-math-compute-bra-size`는 순수하게 치수와 지역 기준만 받아 결과를 만들고, Org table은 그 함수를 호출하는 입력 화면처럼 쓰거든요.

- 단위 변환을 직접 구현하지 않은 것도 꽤 좋은 선택이에요. 길이 단위 파싱과 변환은 사소해 보여도 예외가 많아서, 이미 Emacs Calc가 처리할 수 있다면 그걸 재사용하는 편이 훨씬 덜 위험해요.

- 지역별 컵 사이즈 표를 alist로 둔 이유도 명확해요. EU, UK, US는 같은 신체 치수라도 컵 표기가 다르기 때문에 계산식 하나로 밀어붙이기보다, 지역별 매핑 데이터를 따로 두는 쪽이 수정하기 쉬워요.

- Org table을 붙인 건 단순 자동완성 이상의 의미가 있어요. 한 번 계산하고 끝내는 도구가 아니라 날짜별 측정 기록을 계속 쌓는 작은 개인 데이터베이스가 되기 때문이에요.

## 핵심 포인트

- Emacs Calc의 단위 변환 기능을 써서 cm, inch 같은 길이 단위를 자동 변환함
- EU, UK, US마다 다른 컵 사이즈 표를 alist로 정의하고 밴드와 버스트 차이로 컵을 계산함
- Org 테이블의 `#+TBLFM`에 Emacs Lisp 함수를 연결해 측정 기록용 스프레드시트처럼 사용함
- 실용성은 작아 보여도 Emacs가 텍스트 편집기를 넘어 개인용 계산 환경이 되는 사례임

## 인사이트

이건 거창한 생산성 앱 얘기가 아니라, 자기 문제를 자기 도구 안에서 바로 해결하는 해커 감성이 핵심임. Emacs를 오래 쓰는 사람들이 왜 모든 걸 Emacs 안으로 끌고 들어오는지 보여주는 꽤 웃기고도 설득력 있는 예시다.
