다양한 OS 환경에서 사용 가능한 터미널 프로그램 Termius

미르·2024년 6월 15일
1
post-thumbnail

터미널 환경

개발자라면 터미널 환경은 꽤 친숙할 것이다. 기본적으로 개발한 프로그램을 빌드하거나 서버 환경을 구축하기 위해서 자주 사용하기 때문이다.

Windows 환경에서 개발할 때 터미널 소프트웨어 몇 개를 사용했었다. PuTTY, SecureCRT, XShell 등을 사용했었고, 그 중에서 가장 많이 애용했던 것은 XShell 이었다. 넷사랑소프트라는 국내 업체가 개발하여 한글화가 잘 되어 있고 UI도 직관적이라 사용하기 쉬웠다. 특히 비상업적 용도라면 개인 사용자는 무료로 사용할 수 있는 것이 큰 장점이었다. 반면 회사에서는 보통 터미널 소프트웨어를 따로 구매해 주진 않기 때문에 PuTTY를 주로 사용했었다. PuTTY는 충분히 좋은 소프트웨어임은 분명하나 편의성이 다소 불친절하기에 초반 세팅과 관리가 비효율적이라는 단점이 있다.

PuTTYXShell
PuTTYXShell

지금은 Windows 보다 macOS에서 작업하기 때문에 XShell은 사용할 수가 없는 것이 가장 아쉬웠다. (VM 사용은 제외) 물론 맥 환경에서는 터미널 프로그램이 없어도 기본 터미널로 작업 가능한데다 iTerm2 같은 프로그램도 있기 때문에 대체 가능하긴 하다. 다만 기본 터미널과 iTerm2는 서버 접속을 위해 설정해야 할게 많고 동기화가 안되기 때문에 여러모로 불편한 점이 있다.

지금 소개할 소프트웨어는 Windows, macOS, Linux는 물론이고 iOS, Android까지 지원하는 막강한 호환성을 보여주는 Termius다.

주요 기능

SSH, SFTP, Telnet, Serial Port 등 다양한 프로토콜 지원

기본적으로 SSH 접속을 지원하고 부가적으로 SFTP까지 지원한다. SFTP는 약간 구색을 맞추려는 것처럼 기능이 다른 FTP 소프트웨어만큼 좋진 못하다. 하지만 급할 때 파일 전송하기에는 좋다. 참고로 FTP는 안되고 SFTP만 가능하다. 최근에는 Host 등록시 AWS, Azure, DigitalOcean을 보다 간편하게 등록할 수 있도록 기능이 추가되었다.
Serial 포트는 일반적으로 사용할 일이 없긴 하지만 모바일 디바이스 같은 것을 연결하여 디버깅을 할 때 나름 유용한 기능인 것 같다.

포트포워딩 (Port Forwarding) 지원

자주 쓰는 기능 중에 하나가 포트포워딩(Port Forwarding)이다. 보안 이슈를 막기 위해 개발 서버나 DB에 접근 제한이 되어 있는 것을 포트포워딩을 통해 연결하여 개발환경을 수월하게 만들어 줄 수 있다.
예를 들어, A 서버는 웹서버이고 B 서버는 DB 서버다. 그런데 B 서버는 방화벽을 설정해서 A를 통해서만 DB 접근이 가능하다. 이렇게 되면 자신의 로컬 환경에서는 DB에 직접적으로 접근이 불가능하기 때문에 개발할 때 조금 불편한 상황이 발생한다. 이럴 때 포트포워딩 기능을 활용하면 DB에 바로 접근이 가능하다.

포트포워딩 예시

포트포워딩 등록
1. 포트포워딩 등록시 Local을 선택한다.

2. Local port number는 로컬 환경에서 사용할 포트를 임의로 지정하면 된다. 단, 다른 포트와 충돌이 나지 않게 지정해야 한다. MySQL을 연결하는 것을 예시로 13306이라고 지정했다.
Bind address는 로컬이기 때문에 127.0.0.1로 한다.

3. 접근할 Host를 지정한다. 아까 예시로 들었던 A 서버를 지정하면 된다.

4. 최종적으로 접근할 B 서버의 정보를 입력하면 된다.

5. 마지막으로 포트포워딩 이름을 지정하고 저장하면 끝!

포트포워딩 목록에서 등록한 정보를 더블클릭하면 활성화가 되면서 아이콘이 다른 색으로 바뀐다. 활성화가 되면 아까 로컬 환경을 설정한 대로 127.0.0.1:13306으로 DB에 접근할 수 있다.

동기화 지원 (유료)

내가 Termius를 쓰는 가장 큰 이유 중 하나다. 유료 플랜을 써야만 활성화 되긴 하지만 유용하게 활용할 수 있다. (Github 학생 계정은 무료!) 단순히 집과 회사의 개발 환경을 동기화하려는 목적 뿐만 아니라 모바일까지 지원하기 때문에 장애가 발생하는 급한 상황에서는 모바일로도 SSH로 접속하여 간단하게 대처가 가능하기에 꽤 가치있는 기능이라고 본다.

키 체인 관리 (Keychain), 스니펫 (Snippets), 자동완성 등 부가 기능

키 체인 관리는 SSH 접속시 사용하는 Private key와 Public key를 관리하는 기능이다. 설정에서 신규 생성을 하거나 기존에 쓰던 키들을 등록해 놓으면 접속시 편리하게 사용할 수 있다. 그 외에 FIDO2와 Touch ID까지 지원한다. (어떻게 쓰는지는 아직 몰...)
스니펫은 내가 자주 쓰는 커맨드를 저장해 두고 터미널에서 사용할 수 있다. 보통 개발 환경에서 특정 경로로 이동한다거나 로그를 자주 볼 때 스니펫을 불러와서 간단하게 실행할 수 있다. .bash_profile로도 충분히 가능하지만 모든 서버에 동기화 하기에는 귀찮을 수 있어 스니펫을 자주 사용하고 있다.
자동완성은 내가 사용한 커맨드의 history를 기반으로 추천해 주는 기능이다. 커맨드 외에도 sudo 같은 것을 사용할 때 해당 호스트의 비밀번호를 자동으로 입력해 주기도 한다. 그런데 개인적으로는 불편한 점이 더 많아 잘 쓰고 있진 않다.
이 외에도 터미널 창을 여러개 띄워 분할 화면으로 보여주고 동시에 커맨드를 날릴 수 있는 Command Broadcast도 꽤 쓸모있는 기능이다.

Github 학생 계정은 무료

지난 포스트에 소개한 Github 학생 계정을 등록하면 Termius의 Pro 플랜을 무료로 사용할 수 있다. 동기화와 자동완성 같은 부가 기능을 사용하려면 Pro 플랜을 등록하는 것을 추천한다.

0개의 댓글