유료 파일 전송 앱보다 뛰어난 무료 CLI 도구 (croc)

BBetter Stack
컴퓨터/소프트웨어창업/스타트업AI/미래기술

스크립트

00:00:00이것은 Croc이라는 도구인데, 제가 최근에 우연히 발견한 가장 멋진 도구 중 하나입니다.
00:00:04단도직입적으로 말씀드리죠. 제가 지금까지 사용해 본 최고의 파일 전송 도구라고 생각합니다.
00:00:10그렇습니다. 제가 말했죠. Croc은 단순한 파일 전송 도구가 아닙니다. 구축 방식과 작동 방식부터가 확실히 다릅니다.
00:00:17이번 영상에서는 Croc을 살펴보고, 어떻게 작동하는지,
00:00:22얼마나 사용하기 간편한지 보여드리겠습니다. 아주 재미있을 겁니다.
00:00:28그럼 시작해 볼까요? 이런 질문을 던져보죠. 지금 당장 다른 사람의 컴퓨터로 대용량 파일을 전송하는 방법을 몇 가지나 떠올릴 수 있나요?
00:00:38AirDrop, WeTransfer, Dropbox, Google Drive, SCP 같은 것들이 있죠. 정말 급하면 Discord를 쓰기도 하고,
00:00:46더 절박하면 USB 메모리를 쓰거나, 완전히 제정신이 아니라면 USB 메모리를 우편으로 보내기도 하겠죠.
00:00:56이처럼 수많은 도구가 있습니다. 그런데도 파일 전송 때문에 30초면 끝날 일을 오후 내내 붙잡고 있었던 경험,
00:01:02누구나 한 번쯤은 있을 겁니다.
00:01:08예를 들어 동료가 AirDrop으로 파일을 보내려고 하는데, 안타깝게도 당신은 Windows를 사용 중인 경우죠.
00:01:15또 다른 상황으로는, 상대방이 확인하기 전에 WeTransfer 링크가 만료되는 경우도 있고요.
00:01:21파일이 너무 커서 이메일로 보낼 수 없거나, 상대방이 Dropbox 계정이 없어서 만들고 싶어 하지 않는 경우도 있습니다.
00:01:27솔직히 그 마음 이해합니다. 그럼 핵심 질문을 해보죠. 도구는 이렇게 많은데,
00:01:32왜 이런 일이 계속 반복될까요? 그 이유는 솔직히 말해, 이 솔루션들 중 어느 것도
00:01:38훌륭한 파일 전송 솔루션을 만드는 3대 원칙 전략을 사용하지 않기 때문입니다. Croc은 Zach Scholl이 만들었는데요,
00:01:45그는 자신의 웹사이트에서 좋은 파일 전송 솔루션 아키텍처가 어떤 모습이어야 하는지 상세히 설명합니다.
00:01:51정말 타당한 이야기입니다. 훌륭한 파일 전송 시스템에는 세 가지 기둥이 필요합니다.
00:01:57빠르고, 안전하고, 간단해야 합니다. 이 세 가지를 하나도 포기하지 않고 동시에 충족해야 하죠.
00:02:05하지만 시중의 대부분 도구는 두 가지만 선택해서 그 벤 다이어그램의 최적점을 찾지 못하는 것 같습니다.
00:02:11그럼 각 요소를 하나씩 살펴보죠. 대부분의 링크 기반 도구는 파일을 서버에 업로드한 뒤
00:02:18상대방이 다운로드하는 방식입니다. 괜찮아 보이지만, 이건 수학적으로는
00:02:23필요 이상으로 느립니다. 업로드 속도가 초당 5메가비트이고 다운로드 속도가 초당 8메가비트라면,
00:02:30업로드 후 다운로드하는 순차 방식의 실질적인 전송 속도는 초당 약 3.1메가비트가 됩니다.
00:02:37각각의 속도보다 느려지는 것이죠. 동시가 아니라 하나씩 처리하면 발생하는 당연한 현상입니다.
00:02:43이제 보안에 대해 이야기해 봅시다. 많은 보안 전송 도구가 파일을 암호화하기 위해
00:02:50공유 비밀번호를 설정하게 하는데, 나쁘지는 않지만 비밀번호는 설정한 본인의 강도에 의존할 뿐입니다.
00:02:57비밀번호가 유추되거나 유출되면, 그걸로 끝이죠. 게임 오버입니다.
00:03:04세 번째는 간단함입니다. 현재 SSH나 FTP 같은 훌륭한 도구들이 있죠.
00:03:11정말 빠르고 매우 안전합니다. 하지만 포트 포워딩이 활성화된 서버를 운영해야 합니다.
00:03:18데이터 센터나 기술을 잘 아는 사람에게는 완전히 합리적인 설정이지만,
00:03:24카페에 있는 두 대의 노트북에게는 불가능을 요구하는 것과 다름없습니다. 패턴을 보시죠.
00:03:30WeTransfer는 간단하지만 느리고 보안은 링크에만 의존합니다. SCP는 빠르고 안전하지만,
00:03:37비기술자인 친구는 SCP를 바로 사용할 줄 모를 겁니다. 그래서 세 가지 기둥을 모두 충족하는 도구는 거의 없습니다.
00:03:43그럼 Croc은 어떻게 다를까요? Croc은 오픈 소스 Go 기반 CLI 도구로,
00:03:51이 세 가지 원칙 중 어느 것도 타협하지 않기 위해 만들어졌습니다. 첫 번째는 속도입니다.
00:03:57Croc은 업로드 후 다운로드 방식 대신 릴레이 서버를 사용하여 양쪽 컴퓨터 간에 전이중(full duplex) 대화를 설정합니다.
00:04:04양쪽 모두 데이터를 동시에 주고받기 때문에 아까 말씀드린 순차적 업로드-다운로드 방식의 병목 현상이 발생하지 않습니다.
00:04:10만약 두 기기가 동일한 로컬 네트워크에 있다면,
00:04:17Croc이 이를 감지하고 로컬 전송을 수행하여 훨씬 더 빠르게 처리합니다.
00:04:23다음은 보안입니다. 정적 공유 비밀번호 대신 PAKE, 즉 암호 인증 키 교환 방식을 사용합니다.
00:04:30일회성 코드 문구를 사용하는데, 이것 자체가 암호화 키는 아닙니다.
00:04:38양쪽은 이 문구를 사용하여 암호화된 교환을 주고받으며, 즉석에서 훨씬 강력한 키를 생성합니다.
00:04:44누군가 잘못된 문구로 가로채기를 시도하면, 전체 과정은 실패하게 됩니다.
00:04:50데이터는 전송되지 않고 모두가 문제가 있음을 알게 되죠. 마지막으로 간단합니다. 단일
00:04:57바이너리 파일 하나만 있으면 서버 설정도, 포트 포워딩도 필요 없고 릴레이 서버를 통해 NAT와 방화벽을 그대로 통과합니다.
00:05:04받는 쪽에서는 Croc을 입력하고 요청 시 코드 문구만 입력하면,
00:05:10전송을 수락하기만 하면 끝입니다. 그런데 잠깐, 그 릴레이는 누가 운영하나요? 기본적으로
00:05:16Croc은 도구 제작자인 Zach이 직접 운영하는 공용 릴레이 서버를 통해 전송을 라우팅합니다.
00:05:22파일 자체가 기기를 떠나기 전에 PAKE를 통해 종단간 암호화되기 때문에,
00:05:27릴레이는 암호화된 데이터와 연결 메타데이터만 볼 뿐입니다. 물리적으로 파일 내용을 읽을 수 없습니다.
00:05:34하지만 기본적으로는 제3자 서버가 전송 중간에 개입하고 있는 셈이죠.
00:05:40만약 데이터 보관 규정이 엄격한 회사에 다니거나, 직접 제어하지 않는 인프라를 통하는
00:05:45트래픽에 정책적 제한이 있다면 문제가 될 수 있습니다. 하지만 좋은 소식이 있습니다.
00:05:50Croc은 이를 고려했습니다. 도커 이미지가 포함된 Croc 릴레이 명령어를 통해 자신만의 릴레이를 띄울 수 있죠.
00:05:57그런 다음 기본 설정 대신 릴레이 플래그를 사용하여 전송 대상을 지정하면 됩니다.
00:06:03개인적인 용도로는 공용 릴레이가 편리하지만,
00:06:10기업 환경에서는 5분이면 자체 릴레이를 설정할 수 있으니 큰 걸림돌은 아닙니다. 이제
00:06:16Croc을 사용하는 것이 얼마나 쉽고 편리한지 보여드리겠습니다. 저는 최근 며칠 동안 Croc을 정말
00:06:23많이 사용했는데, Windows와 MacBook 두 대의 워크스테이션을 사용하다 보니 정말 편리했습니다.
00:06:29Croc을 사용해서 한 기기에서 다른 기기로 대용량 파일을 얼마나 쉽게 보낼 수 있는지 확인해 보세요.
00:06:35설치도 매우 쉽습니다. Windows와 Mac 모두 한 줄짜리 명령어면 끝납니다.
00:06:41GitHub 페이지에 모든 환경에 대한 설치 방법이 나와 있습니다. 설치한 후
00:06:47보내는 쪽에서 'Croc send [파일 이름]'을 입력하면, 무작위로 생성된
00:06:54코드 문구가 나옵니다. 받는 쪽에서 Croc을 실행하고 코드 문구를 입력한 뒤 Y를 눌러 수락하면,
00:07:01짠! 마법처럼 완료됩니다. 쉽고 빠르죠. 게다가 다른 기능도 있습니다. 연결이 끊겼을 때
00:07:08전송을 재개할 수 있는 기능입니다. 전송 도중에 연결을 끊었다가,
00:07:14보내는 쪽에서 재개해 보겠습니다. 보시다시피 처음부터 다시 시작하는 게 아니라 끊긴 지점부터 이어집니다. 그게 다입니다.
00:07:19사용 경험은 이게 전부입니다. 명령어로 보내고 코드 문구로 받으면 끝. 계정도,
00:07:27브라우저 탭도, 서버를 띄울 필요도 없습니다. 얼마나 멋진가요? 자, 이것이 바로 Croc의 핵심입니다.
00:07:34전이중 릴레이 전송 덕분에 빠르고, 정적 비밀번호 대신 PAKE를 사용해 안전하며,
00:07:40사용하기 매우 간단합니다. 실제로 링크를 보내고 만료되지 않기를 바라는
00:07:46WeTransfer 같은 대안과 비교해 보면, 일단 한번 사용하고 나서는 다시 돌아가기 어려울 겁니다.
00:07:52Croc에 대해 어떻게 생각하시나요? 마음에 드시나요? 여러분의 도구 목록에 추가할 건가요?
00:07:57아래 댓글로 알려주세요. 여러분, 이런 기술적인 분석 영상이 마음에 드셨다면,
00:08:02영상 아래의 '좋아요' 버튼을 눌러서 알려주세요.
00:08:06그리고 우리 채널 구독하는 것도 잊지 마시고요.
00:08:09BetterStack의 Andres였고, 저는 다음 영상에서 뵙겠습니다.

핵심 요약

Croc은 PAKE 암호화와 릴레이 서버 기반의 전이중 통신을 통해 속도, 보안, 간편함이라는 파일 전송의 3대 요소를 동시에 충족하는 무료 CLI 도구다.

하이라이트

  • Croc은 오픈 소스 Go 기반 CLI 도구로 별도의 포트 포워딩이나 서버 설정 없이 파일 전송을 지원한다.

  • 일반적인 업로드 후 다운로드 방식과 달리 릴레이 서버를 활용한 전이중(full duplex) 통신으로 전송 병목을 제거한다.

  • 보안 강화를 위해 정적 비밀번호 대신 PAKE(암호 인증 키 교환) 방식을 사용하여 일회성 코드 문구로만 암호화된 통신을 수행한다.

  • 로컬 네트워크 내의 기기 간 전송 시 Croc은 이를 자동으로 감지하여 직접 전송을 통해 속도를 극대화한다.

  • 도커 이미지를 제공하여 사용자가 직접 릴레이 서버를 구축하고 제어할 수 있는 유연성을 갖추고 있다.

  • 전송 중간에 연결이 끊겨도 처음부터 다시 시작할 필요 없이 끊긴 지점부터 즉시 재개가 가능하다.

타임라인

파일 전송 도구의 한계와 Croc의 등장 배경

  • 기존의 파일 전송 도구들은 속도, 보안, 간편함이라는 세 가지 핵심 요소를 동시에 해결하지 못한다.
  • 링크 기반 도구들은 서버에 업로드 후 다운로드하는 순차적 방식 때문에 물리적인 대역폭 손실이 발생한다.
  • 대부분의 보안 전송은 설정된 비밀번호 강도에 의존하며, 유출 시 방어 수단이 없다.
  • SSH나 FTP 같은 도구는 속도와 보안은 우수하지만 일반 사용자가 포트 포워딩을 설정하기에는 기술적 장벽이 높다.

기존 솔루션들은 업로드와 다운로드를 분리 처리하여 통신 효율이 낮고, 링크 만료나 계정 요구 등으로 인해 사용자 경험이 단절되는 경우가 많다. 파일 전송 시스템은 빠르고, 안전하고, 간단해야 하지만 현실의 도구들은 이들 중 일부만 타협하는 벤 다이어그램의 한계에 갇혀 있다.

Croc의 기술적 차별점

  • 릴레이 서버를 활용한 전이중 통신으로 업로드와 다운로드 병목 현상을 방지한다.
  • PAKE 방식을 채택하여 사용자가 입력한 짧은 코드 문구로 강력한 암호화 키를 즉석에서 생성한다.
  • 단일 바이너리 파일로 작동하며 포트 포워딩 없이 NAT와 방화벽을 통과한다.
  • 데이터 보관 규정이 엄격한 환경에서는 도커를 이용해 자신만의 릴레이 서버를 직접 운영할 수 있다.

Croc은 데이터가 서버를 거치는 동안 종단간 암호화되어 전송되므로 릴레이 서버 운영자도 파일 내용을 읽을 수 없다. 기업 환경과 같이 데이터 주권이 중요한 경우 자체 릴레이를 구축해 인프라 정책을 준수할 수 있는 구조를 갖추고 있다.

실사용 방법 및 기능

  • 명령어 한 줄로 설치가 완료되며, 송신 시 생성된 코드 문구 하나만으로 수신측과 즉시 연결된다.
  • 전송 중 연결이 끊기더라도 끊긴 지점부터 데이터 전송을 재개할 수 있다.
  • 계정 생성이나 브라우저 탭을 열 필요 없이 명령줄 환경에서 파일 전송 과정이 완료된다.

Croc send [파일 이름] 명령을 통해 발신자가 파일을 준비하고, 수신자가 생성된 코드 문구를 입력하여 간단히 파일을 전송받는다. 복잡한 브라우저 인터페이스 없이 터미널 내에서 모든 과정이 처리되므로 작업 흐름이 효율적이다.

커뮤니티 글

모든 글 보기