태그 보관물: tip

Gmail의 Sub-addressing 기능과 활용

거의 모든 인터넷 서비스들이 연락처로 email 주소를 기입하라고 요구한다. 때로는 가입하는 서비스에 따라 서로 다른 이메일을 생성하고 가입하기도 하는데, 이러다 보면 어느새 수 많은 이메일 계정들을 새로 만들어야 하고 관리가 불가능한 지경에 이르게 될 수도 있다. 이 포스팅에서는 별도의 설정 없이 Gmail 주소를 여러개로 확장하여 수신 메일을 라벨링하고, 필터링할 수 있는 서브어드레싱(Sub-addressing)에 대해 정리해본다.

Mechanism: 플러스(+)와 점(.)의 처리 방식

Gmail을 비롯한 많은 서비스 들이 RFC 5233 를 지원한다. Gmail 서버의 경우 수신 주소의 로컬 파트에서 특정 문자를 처리할 때 다음과 같은 규칙을 따른다.

  • The Plus (+) Operatorusername+keyword@gmail.com 형식으로 사용하며, 서버는 + 이후의 문자열을 무시하고 원본 주소인 username@gmail.com으로 라우팅한다.
  • The Dot (.) Neutrality: 로컬 파트 내의 마침표는 무시된다. 즉, user.name@와 username@은 논리적으로 동일한 엔드포인트를 가리킨다.

활용하기

인프라 모니터링 분류

시스템 모니터링 용도로 서비스 별 주소를 분리하면 필터링을 편하게 할 수 있다. 매번 용도에 따라 새로운 email 주소를 만드는 것이 아니라, plus operator를 사용해서 해당 주소로 들어오는 것들은 별도로 필터링을 수행하는 것이다. 예를 들어 GitHub에서 오는 noti 이메일을 별도로 관리해서 자동으로 라벨을 붙이고 싶다면 다음과 같이 +가붙은 새로운 이메일 주소(계정+github@gmail.com)을 GitHub에 등록하고 Gmail엣 filtering에서 label을 선택해주면 자동으로 라벨을 붙이도록 할 수 있다.

개발 단계의 멀티 계정 테스트

OAuth 가입 로직이나 이메일 인증 워크플로우를 테스트할 때 매번 새로운 계정을 생성하는 것보다는 user+test01user+test02와 같은 가상 주소를 사용하면 하나의 메일함 내에서 상태별 테스트 데이터를 격리하여 검증할 수도 있다.

유의 사항

RFC5233을 지원하지 않는 오래된 시스템이나 엄격한 정규표현식 검증을 수행하는 서비스의 경우 “+” 기호 자체가 유효하지 않은 문자라 판단하고 거부할 수도 있다는 점은 알아두자.

그리고 회사에서는 “이름.성@회사도메인” 형식으로 이메일을 생성규칙을 적용하는 경우가 많아서 dot neutrality 기능은 상황에 따라 비활성화 시켜두는 곳도 있다.

yay – error while loading shared libraries: libalpm.so.xx

Arch Linux에서 yay를 실행하는데 libalpm.so를 로딩하지 못해서 죽는 경우가 생겼다. 검색해 보니 이런 경우가 종종 있는 모양이다. yay와 pacman 모두 ALPM(Arch Linux Package Management) Library에 의존하는데, packman에 의해 libalmp.so의 soname이 변경된 경우 yay가 이전 버전의 라이브러리를 로딩하지 못해 에러가 생길수 있다.

이 경우, yay는 libalpm.so.15를 참조하려다가 실패하고, pacman은 libalpm.so.16을 참조하고 있다. ldd로 봤을 때도 yay가 해당 라이브러리를 찾지 못하는 (“not found”) 상태임이 확인된다.

Arch Linux의 rolling release 특성상 이러한 종류의 문제는 이미 해결되어 있을 가능성이 높으므로 yay AUR을 빌드해서 다시 설치해 주는 것으로 대부분 해결할 수 있다.

# GitHub가 아닌 Arch AUR archive에서 clone
git clone https://aur.archlinux.org/yay.git
cd yay
# 빌드 후 인스톨 실행
makepkg -si

MacPorts: Orange3 Text Add-on 추가할 때 오류

오래된 Intel Mac은 Monterey이후 업데이트가 지원되지 않기 때문에 최신 버전의 Homebrew도 사용할 수가 없다. 이 때문에 MacPorts를 사용하는데 Orange3에 Text add-on을 설치를 시도할 때 Arch Linux에서와 같은 gensim버전 문제가 생겼다(참조: Arch Linux에서 Orange3 Text add-on 설치문제 해결).

2025년 10월 현재 최신버전인 gensim 4.3.3의 Python version 불일치 때문에 발생하는 문제인데, Arch Linux에서는 이 문제를 Python3.13대신 Python3.12의 가상환경을 만드는 것으로 해결 했었다.

MacPorts환경에서의 default python version을 확인해 보면 오래된 3.6을 가리키고 있는데, Python3.12를 설치해 준 다음 default python version을 3.12로 변경해서 이 문제를 해결할 수 있다.

먼저 MacPorts로 Python3.12를 설치해준다.

# Python3.12 설치
sudo port install python312

그리고 나서 default로 실행되는 python / python3 명령어를 Python3.12로 변경한다.

# python과 python3 명령어에 대한 인터프리터 지정
$ sudo port select --set python3 python312
Selecting 'python312' for 'python3' succeeded. 'python312' is now active.

$ sudo port select --set python python312 
Selecting 'python312' for 'python' succeeded. 'python312' is now active.

# 확인
$ port select --list python 
Available versions for python:
	none
	python312 (active)
	python313

이제, Orange3를 재실행하고 Text add-on을 추가하면 오류없이 설치되어 사용할 수 있다.