본문으로 건너뛰기
피드

브라 사이즈 계산기를 Emacs 안에 만든 사람의 진짜 Emacs식 생활 자동화

open-source 약 5분
vote
0
댓글
북마크

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

  • 1

    Emacs Calc의 단위 변환 기능을 써서 cm, inch 같은 길이 단위를 자동 변환함

  • 2

    EU, UK, US마다 다른 컵 사이즈 표를 alist로 정의하고 밴드와 버스트 차이로 컵을 계산함

  • 3

    Org 테이블의 `#+TBLFM`에 Emacs Lisp 함수를 연결해 측정 기록용 스프레드시트처럼 사용함

  • 4

    실용성은 작아 보여도 Emacs가 텍스트 편집기를 넘어 개인용 계산 환경이 되는 사례임

  • 필자는 브라 사이즈를 다시 계산해야 하는 상황에서, 그냥 웹 계산기를 찾는 대신 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를 오래 쓰는 사람들이 왜 모든 걸 Emacs 안으로 끌고 들어오는지 보여주는 꽤 웃기고도 설득력 있는 예시다.

댓글

댓글

댓글을 불러오는 중...

open-source

Paint.NET, 22년 만에 드디어 paint.net 도메인을 손에 넣다

무료 이미지 편집 도구 Paint.NET이 2004년 출시 이후 22년 만에 paint.net 도메인을 확보했다. 기존 도메인 소유자가 Paint.NET 공식 사이트처럼 보이는 콘텐츠와 광고 링크를 올리면서 상표권 침해와 도메인 점유 문제가 명확해졌고, 제작자 릭 브루스터가 법적 대응 끝에 도메인을 가져왔다.

open-source

KORE, Parquet보다 더 작고 빠르다는 새 컬럼형 바이너리 포맷 공개

KORE는 분석 워크로드를 겨냥한 오픈소스 바이너리 파일 포맷으로, Parquet 대비 더 높은 압축률과 빠른 쿼리 성능을 주장한다. 다만 현재 공개된 내용에는 일부 구현이 스텁 처리됐다는 언급도 있어, 벤치마크 숫자는 흥미롭지만 실제 도입 전 검증이 필수다.

open-source

소설 쓰기에 맞춘 오프라인 텍스트 에디터, 치즈 페이퍼

치즈 페이퍼는 소설과 장문 글쓰기에 특화된 오픈소스 텍스트 에디터다. 장면별 본문은 마크다운으로, 노트와 요약은 TOML 헤더로 저장하고, 파일 동기화 도구와 함께 쓰는 오프라인 우선 구조를 택했다.

open-source

진짜 신용카드 두께에 컴퓨터를 넣어버린 DIY 하드웨어 프로젝트

Muxcard는 ESP32-C3, 전자종이 디스플레이, NFC를 실제 신용카드에 가까운 두께로 집어넣은 초박형 컴퓨터 프로토타입이다. 제작자는 약 1밀리미터 두께를 목표로 직접 플렉스 피시비를 만들고, 배터리·디스플레이 연결·기계적 피로 같은 현실적인 문제를 하나씩 검증했다.

open-source

마크다운을 PDF와 논문, 이력서로 뽑아주는 판독 템플릿 모음

Pandoc Templates는 마크다운 문서를 PDF, LaTeX, HTML, 이력서, 논문, 편지, 논문 템플릿 등으로 변환할 때 쓸 수 있는 템플릿을 모아둔 사이트다. Eisvogel, Markdown Resume, IEEE Paper Template, PhD thesis template, novel template처럼 개발자와 연구자가 바로 써먹을 만한 문서 자동화 재료가 많다.