「Cliply」 개발기에서는 이 앱을 어떻게 만들었는지를 정리했다. 이번 연재는 반대로 어떻게 쓰는지를 다룬다. 만든 사람이 매일 쓰는 방식 그대로, 실제 화면 순서로 따라가 본다.

Cliply가 하는 일은 한 줄로 요약된다.

어느 창에서든 Ctrl+Shift+Space → 몇 글자 입력 → Enter → 원래 창에서 Ctrl+V

첫 글에서는 설치부터 이 한 줄을 처음 끝까지 해 보는 데까지 간다.

내려받고 실행하기

Cliply는 애드소프트 홈페이지의 공유도구 > Cliply 페이지에서 zip으로 받는다. Windows 10 / 11 64비트용이다.

설치 과정은 없다. .NET 같은 런타임도 exe 안에 들어 있어서 따로 깔 필요가 없다.

  1. 받은 zip을 오른쪽 클릭 → 속성 → 아래쪽 차단 해제에 체크하고 확인
  2. 원하는 폴더에 압축을 푼다 (예: C:\Tools\Cliply)
  3. Cliply.exe를 실행한다

1번은 인터넷에서 받은 파일에 Windows가 붙여 두는 표시를 떼는 단계다. 건너뛰어도 실행은 되지만 경고가 한 번 더 뜬다.

"Windows의 PC 보호" 창이 뜨면

코드 서명을 하지 않은 프로그램이라 처음 실행할 때 SmartScreen이 경고를 띄운다. 추가 정보 → 실행을 누르면 되고, 한 번만 하면 된다. 받은 파일이 맞는지 확인하고 싶다면 Cliply.exe 오른쪽 클릭 → 속성 → 자세히 탭에서 회사 이름이 "애드소프트 (Addsoft)"인지 보면 된다. 홈페이지에 올려 둔 SHA-256 값과 비교해도 된다.

창이 안 뜨는 게 정상이다

실행해도 아무 창이 뜨지 않는다. 대신 작업 표시줄 오른쪽 아래 알림 영역(트레이)에 파란색 >_ 아이콘이 생긴다. 안 보이면 ^를 눌러 숨겨진 아이콘 안을 확인한다. 아이콘을 오른쪽 클릭하면 메뉴가 나온다.

트레이 아이콘 오른쪽 클릭 메뉴: 빠른 검색 열기, 스니펫 관리, 설정, 종료

Cliply는 하루 종일 트레이에 있다가 단축키를 누를 때만 나타나는 앱이다. 메뉴의 빠른 검색 열기도 단축키와 같은 일을 하지만, 실제로는 거의 단축키만 쓰게 된다. 첫 실행은 필요한 파일을 풀어 두느라 2~3초 걸리고, 그 뒤로는 팝업이 바로 뜬다.

처음 실행하면 예시 스니펫 11개가 들어 있다. 도커 로그 보기, 포트를 쓰는 프로세스 찾기, MySQL 테이블 크기 조회 같은 것들이다. 아래 화면도 모두 이 예시로 찍었다. 필요 없으면 나중에 지우면 된다.

1. 단축키로 팝업 열기

PowerShell 창에서 작업하다가 도커 컨테이너 로그를 봐야 하는 상황이라고 하자. 명령어가 docker logs -f --tail 이었는지 --tail이 앞이었는지 매번 헷갈린다.

콘솔 창에 커서를 둔 채 Ctrl+Shift+Space를 누른다.

콘솔 위에 뜬 빠른 검색 팝업: 검색어가 없을 때는 고정·최근 사용 순으로 목록이 보인다

팝업은 마우스가 있는 모니터 가운데쯤에 뜨고, 검색 칸에 바로 입력할 수 있는 상태다. 검색어가 없을 때는 고정한 것 → 최근에 쓴 것 → 많이 쓴 것 순서로 보여 준다. 자주 쓰는 명령어는 검색어 없이 ↓ 몇 번으로 끝나는 경우도 많다.

맨 아래 줄에는 팝업에서 쓸 수 있는 키가 적혀 있다. 이것만 기억하면 된다.

키 동작
입력 바로 검색 (최대 30개)
↑ / ↓ 선택 이동 (끝에서 처음으로 돌아간다)
Enter 복사하고 닫기
Esc 검색어가 있으면 지우기, 없으면 닫기
Ctrl+E 선택한 스니펫을 관리 창에서 편집
Ctrl+N 입력한 검색어를 제목으로 새 스니펫 만들기
Ctrl+P 목록 위에 고정 / 고정 해제

마우스로 클릭하면 선택, 더블클릭하면 바로 복사다. 팝업 밖을 누르면 알아서 숨는다.

2. 몇 글자만 입력하기

로그라고 친다.

검색어 '로그'로 「도커 컨테이너 로그 보기」 하나만 남은 모습

제목에 "로그"가 들어간 「도커 컨테이너 로그 보기」만 남는다. 목록 아래 회색 칸에는 선택한 스니펫의 본문 전체가 보인다. 무엇이 복사될지 Enter 전에 확인하는 자리다.

검색은 입력할 때마다 바로 바뀐다. 단어 중간만 쳐도 찾는다(dock → docker). 한글도 마찬가지다. 검색어를 어떻게 넣으면 더 빨리 좁혀지는지는 다음 글 (10월 11일 공개)에서 따로 다룬다.

3. 변수 채우기

이 스니펫의 본문은 docker logs -f --tail {{줄수:100}} {{컨테이너}}다. {{ }}로 감싼 부분이 변수다. 이런 스니펫에서 Enter를 누르면 바로 복사되지 않고 입력 창이 뜬다.

변수 입력 창: 줄수는 기본값 100, 컨테이너에 web-api 입력, 위쪽 미리보기에 완성된 명령어

  • 줄수에는 기본값 100이 미리 들어가 있다. 그대로 두면 된다
  • 컨테이너에 web-api를 친다
  • 위쪽 회색 칸에 완성될 명령어가 입력하는 대로 바뀌어 보인다

Enter는 다음 칸으로 넘어가고, 마지막 칸에서 누르면 복사된다. 칸을 다 채울 필요 없이 바로 복사하려면 Ctrl+Enter, 그만두려면 Esc다. 한 번 입력한 값은 기억해 두었다가 다음에 이 창이 뜰 때 미리 채워 준다. 같은 컨테이너 로그를 여러 번 본다면 두 번째부터는 Enter 두 번이면 끝난다.

4. 원래 창에 붙여 넣기

복사가 끝나면 팝업이 사라지고 원래 쓰던 콘솔 창으로 포커스가 돌아간다. 마우스로 콘솔을 다시 누를 필요 없이 바로 Ctrl+V를 누르면 된다.

콘솔에 붙여 넣은 결과: docker logs -f --tail 100 web-api

변수가 모두 채워진 docker logs -f --tail 100 web-api가 들어갔다. Cliply는 클립보드에 넣는 데서 멈춘다. 붙여 넣고, 한 번 읽어 보고, Enter로 실행하는 것은 사람이 한다. prune이나 KILL 같은 명령어도 다루는 도구라서 이 한 박자는 일부러 남겨 두었다.

5. 변수가 없으면 더 짧다

변수가 없는 스니펫은 입력 창 없이 Enter에서 바로 복사된다. 이번에는 안 쓰는 도커 리소스를 정리하려고 prune을 쳐서 복사했다.

변수 없는 스니펫을 복사하자 팝업 아래에 '복사됨'이 표시된 모습

팝업 아래에 잠깐 ✓ 복사됨이 보였다가 닫힌다. 클립보드에 제대로 들어갔다는 표시다. 익숙해져서 거슬린다면 설정에서 끌 수 있다.

정리

여기까지가 Cliply의 전부라고 해도 된다. 실제로 하루에 쓰는 동작의 대부분이 이 다섯 장면 안에 있다.

  1. Ctrl+Shift+Space
  2. 몇 글자 입력
  3. Enter (변수가 있으면 채우고 Enter)
  4. 원래 창에서 Ctrl+V

다음 글에서는 스니펫이 수십, 수백 개로 늘었을 때 원하는 것만 골라내는 검색 문법, #태그 @언어 "구문"을 정리한다.