TextExpander 평생 라이선스를 구매해서 잘 쓰고 있었는데, 어느 날 갑자기 활성화가 안 된다. 확인해보니 라이선스 서버가 종료됐단다. 평생 라이선스라며?
TextExpander에 무슨 일이
TextExpander 측에서 온 메일 내용을 요약하면 이렇다:
구버전 평생 라이선스를 관리하던 서드파티 서버가 운영을 종료했습니다. 라이선스 인증 서버가 없어졌기 때문에, 기존 라이선스 키로는 더 이상 활성화가 불가능합니다.
평생 라이선스를 샀는데 서버가 꺼지면 끝이라니. 보상으로 구독 서비스 1년 무료를 제안하긴 했지만, 그 이후엔 또 구독료를 내야 한다. 이런 경험을 하니 클라우드 의존적인 유료 서비스에 대한 신뢰가 확 떨어졌다.
그래서 대안을 찾았다. Espanso.
Espanso란
Espanso는 한마디로 오픈소스 텍스트 확장기다. 자주 사용하는 긴 문장, 이메일 주소, 코드 조각 등을 짧은 단축어로 등록해두고, 타이핑하면 즉시 변환해준다.
주요 특징
- 크로스 플랫폼: Windows, macOS, Linux 모두 지원
- 오픈소스 & 무료: 비용 없음, 프라이버시 걱정 없음
- Rust 기반: 가볍고 빠름, 시스템 자원 거의 안 먹음
- 텍스트 기반 설정: YAML 파일로 단축어 관리. Git으로 동기화 가능
- 강력한 확장성: 날짜 삽입, 쉘 스크립트 실행, 폼 입력 등 복잡한 자동화 지원
설치
# macOS (Homebrew)
brew install espanso
# Windows (Winget)
winget install espanso
# Linux
# https://espanso.org/install/ 참고
설치 후 espanso start로 실행하면 된다.
기본 사용법
설정 파일 위치:
- macOS:
~/.config/espanso/match/base.yml - Windows:
%APPDATA%\espanso\match\base.yml
기본 예제
matches:
# 이메일 주소
- trigger: ":email"
replace: "myemail@example.com"
# 인사말
- trigger: ":hello"
replace: "안녕하세요, 문의 주셔서 감사합니다."
# 특수 기호
- trigger: "::shrug"
replace: "¯\\_(ツ)_/¯"
이제 어디서든 :email을 입력하면 이메일 주소로 자동 변환된다.
동적 값 삽입
matches:
# 오늘 날짜
- trigger: ":date"
replace: ""
vars:
- name: date
type: date
params:
format: "%Y-%m-%d"
# 현재 시간
- trigger: ":time"
replace: ""
vars:
- name: time
type: date
params:
format: "%H:%M"
# 클립보드 내용 활용
- trigger: ":clip"
replace: "클립보드: "
vars:
- name: clipboard
type: clipboard
쉘 스크립트 실행
matches:
# 현재 Git 브랜치
- trigger: ":branch"
replace: ""
vars:
- name: output
type: shell
params:
cmd: "git branch --show-current"
폼 입력
matches:
- trigger: ":meeting"
form: |
회의록
--------
일시: [[date]]
참석자: [[attendees]]
안건: [[agenda]]
:meeting 입력 시 폼이 뜨고, 각 필드를 채우면 완성된 템플릿이 삽입된다.
TextExpander에서 마이그레이션
기존 TextExpander 스니펫을 Espanso로 옮기는 건 수동으로 해야 한다. 다행히 TextExpander 앱에서 스니펫 그룹을 우클릭해 내보내기가 가능하다. 내보낸 파일을 보면서 YAML로 옮겨 적으면 된다.
스니펫이 많다면 좀 귀찮긴 하지만, 한 번 옮기고 나면 Git으로 버전 관리도 되고 여러 기기 간 동기화도 자유롭다.
왜 Espanso인가
| TextExpander | Espanso | |
|---|---|---|
| 가격 | 연 $59.95 (구독) | 무료 |
| 라이선스 | 클라우드 의존 | 로컬, 서버 불필요 |
| 설정 | GUI | YAML (Git 동기화 가능) |
| 플랫폼 | macOS, Windows, iOS | macOS, Windows, Linux |
| 확장성 | 제한적 | 쉘 스크립트, 폼 등 |
TextExpander 사태를 겪고 나니, 로컬에서 돌아가고 서버 의존성이 없다는 게 얼마나 큰 장점인지 체감했다. 설정 파일 기반이라 처음엔 약간의 진입장벽이 있지만, 개발자라면 오히려 이 방식이 더 편하다.
정리
평생 라이선스라고 믿고 산 서비스가 서버 종료로 못 쓰게 되는 경험은 꽤 허탈하다. 이번 기회에 오픈소스, 로컬 우선 도구의 가치를 다시 느꼈다.
텍스트 확장기가 필요하다면 Espanso를 추천한다. 무료고, 빠르고, 내 데이터는 내 컴퓨터에 있다.
- 공식 사이트: espanso.org
- GitHub: espanso/espanso
- 문서: espanso.org/docs