본문으로 건너뛰기
피드

브라 사이즈 계산기를 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

NIPA, 260명 규모 오픈소스 컨트리뷰션 아카데미 시작

정보통신산업진흥원이 2026 오픈소스 컨트리뷰션 아카데미 발대식을 열고 13주간의 프로젝트 활동을 시작했음. 국내 개발자들이 GitHub 기반 글로벌 협업 환경에서 코드, 문서, 버그 수정, 풀 리퀘스트를 직접 경험하게 하는 프로그램임.

open-source

그누보드7, 디딤과 손잡고 멀티클라우드 도입 문턱 낮춘다

에스아이알소프트가 클라우드 전문기업 디딤과 협력해 그누보드7 기반 웹서비스 구축·운영 환경을 넓히기로 했다. 커뮤니티, 쇼핑몰, 예약, 구독형 서비스 같은 실무 프로젝트에서 서버 구성과 운영 부담을 줄이는 게 핵심이다.

open-source

오픈소스 컨트리뷰션 아카데미 출범, 국내 개발자 260여 명 참여

정보통신산업진흥원이 2026 오픈소스 컨트리뷰션 아카데미 발대식을 열고 13주간의 활동을 시작했다. 11개 프로젝트팀의 멘토와 멘티 260여 명이 글로벌 오픈소스 프로젝트 기여를 목표로 코드 개발, 문서화, 오류 수정 등을 진행한다.

open-source

NIPA, 국내 개발자 260명 규모 오픈소스 컨트리뷰션 아카데미 시작

정보통신산업진흥원이 2026 오픈소스 컨트리뷰션 아카데미 발대식을 열고 국내 개발자의 글로벌 오픈소스 프로젝트 참여를 지원한다. 11개 프로젝트팀, 멘토·멘티 260여 명이 13주 동안 깃허브 기반 협업, 코드 리뷰, 문서화, 오류 수정 등을 실제로 경험한다.

open-source

Ghostty 엔진을 Emacs 안으로 끌고 온 터미널, Ghostel.el

Ghostel.el은 Ghostty의 libghostty-vt를 기반으로 Emacs 안에서 동작하는 터미널 에뮬레이터다. eat 스타일의 여러 입력 모드, 안정적인 복사 모드, line mode, 자동 password prompt 처리, compile-mode 유사 실행 버퍼, Kitty graphics 지원, 높은 throughput을 앞세워 eat/vterm과 차별화함.