핵심 요약
- 터미널 명령어의 표준 출력을 백그라운드 데몬 메모리에 임시 저장해 재사용할 수 있게 해주는 오픈소스 CLI 툴 'once'가 공개되었습니다.
- 1Password CLI 등으로 토큰을 불러올 때 매번 지문 인증을 요구하는 번거로움을 줄이고, 지정한 TTL 동안 캐시된 값을 즉시 반환하도록 설계되었습니다.
- 디렉터리 무관 옵션(--no-dir)과 절대 만료 시간 설정, 세션 분리를 위한 테넌트 키 기능을 제공하며 만료 시 데몬이 자동 종료됩니다.
요약 터미널 환경에서 CLI 명령어의 실행 결과를 메모리에 캐싱해 재사용할 수 있도록 돕는 오픈소스 도구 'once'가 공개되었습니다. Go 언어로 작성된 이 도구는 백그라운드에서 동작하는 작은 사용자별 데몬을 통해 표준 출력(stdout) 결과를 메모리에 보관하고, 지정된 유효 기간(TTL) 동안 동일한 명령어 호출에 대해 저장된 캐시 값을 즉시 반환하는 방식으로 작동합니다.
이 도구의 주된 활용 사례는 1Password와 같은 비밀번호 관리자 CLI(op read)를 사용할 때 발생하는 반복적인 생체 인증(지문 인식) 피로도를 줄이는 것입니다. 예를 들어 환경 설정 스크립트나 direnv, mise 등을 통해 민감한 토큰을 읽어올 때 매번 인증 팝업이 뜨는 불편함이 있는데, once를 적용하면 최초 1회만 지문 인식을 거치고 이후 설정한 시간(예: 8시간 또는 12시간) 동안은 추가 인증 없이 메모리에 캐시된 값을 가져와 사용하게 됩니다.
기본적으로는 명령어뿐만 아니라 실행된 현재 작업 디렉터리까지 조합해 캐시 키(HMAC-SHA256)를 생성하지만, 디렉터리에 종속되지 않는 비밀값 조회 같은 명령어를 위해 `--no-dir` 옵션을 지원합니다. 또한 절대적인 만료 시점을 지정할 수 있는 `--until` 옵션이나 캐시 격리를 위한 테넌트 키(`--tenant`) 기능도 포함되어 있습니다. 캐시된 모든 항목의 만료 시간이 지나면 백그라운드 데몬은 스스로 프로세스를 종료하며, 사용자가 직접 `once status`로 상태를 확인하거나 `once clear`로 캐시를 즉시 비우고 데몬을 내릴 수도 있습니다. 현재 macOS와 Linux 환경을 지원합니다.
Sponsored · 광고