스크립트
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였고, 저는 다음 영상에서 뵙겠습니다.