TECH 으로 돌아가기
TECH HACKER NEWS 오늘 7분 읽기 31 READS

Rust로 만든 오픈소스 SDR 'SDR--', 전파 신호 처리를 레고처럼 조립한다

Rust로 만든 오픈소스 SDR 'SDR--', 전파 신호 처리를 레고처럼 조립한다
SOURCE IMAGE · HACKER NEWS
Rust로 만든 오픈소스 SDR 'SDR--', 전파 신호 처리를 레고처럼 조립한다

라디오를 소프트웨어로 만든다는 것

SDR이라는 말이 낯선 분들을 위해 먼저 풀어볼게요. Software Defined Radio, 소프트웨어 정의 라디오예요. 예전 라디오는 특정 주파수의 전파를 잡아서 소리로 바꾸는 과정을 전부 전자 회로로 했어요. FM 라디오 회로, 무전기 회로, 이런 식으로 용도마다 하드웨어가 따로 있었죠. SDR은 이걸 뒤집어요. 안테나로 받은 전파를 최소한의 회로로 디지털 숫자(샘플)로 바꿔서 컴퓨터에 넘기고, 그 다음 처리는 전부 소프트웨어가 해요. 그러니까 같은 동글 하나로 FM 라디오도 듣고, 항공기 위치 신호(ADS-B)도 받고, 기상 위성 사진도 수신할 수 있어요. 어떤 소프트웨어를 돌리느냐가 라디오의 종류를 결정하는 거죠.

입문용 하드웨어는 놀랄 만큼 싸요. RTL-SDR이라는 USB 동글이 원래 유럽 디지털 TV 수신용으로 만들어진 칩을 재활용한 건데, 2~4만원 정도면 구할 수 있어요. 이게 SDR 취미가 폭발적으로 퍼진 이유이기도 해요.

SDR--는 뭐가 다른가

이번에 공개된 SDR--(SDR 마이너스 마이너스)는 세 가지 특징을 내세워요. 패치 가능한 신호 그래프, Rust로 작성된 DSP, 그리고 웹 UI예요. 하나씩 볼게요.

패치 가능한 신호 그래프가 뭐냐면, 신호 처리 과정을 블록과 선으로 조립하는 방식이에요. 음악 하는 분들이 쓰는 모듈러 신시사이저를 떠올리면 딱 맞아요. '안테나 입력' 블록에서 선을 뽑아 '대역 필터' 블록에 꽂고, 거기서 'FM 복조기'로, 다시 '오디오 출력'으로 연결하는 거죠. 기존의 인기 있는 SDR 수신 프로그램들은 이 파이프라인이 내부에 고정되어 있어서 사용자는 주파수와 모드만 고를 수 있었어요. 반면 SDR--는 사용자가 블록을 원하는 대로 이어붙일 수 있게 열어둔 거예요. 이름부터가 장난인데요, 기존에 가장 널리 쓰이는 오픈소스 수신 프로그램 이름이 C++로 만든 SDR++거든요. Rust로 만들었으니 ++ 대신 --를 붙인 거죠.

Rust로 쓴 DSP는 실용적인 선택이에요. DSP는 디지털 신호 처리인데, 초당 수백만 개의 샘플을 실시간으로 필터링하고 변환하는 일이에요. 여기서 잠깐이라도 멈칫하면 소리가 끊기거나 데이터가 유실돼요. 그래서 전통적으로 C나 C++를 썼는데, 메모리 버그와 스레드 경쟁 조건이 골칫거리였죠. Rust는 가비지 컬렉터가 없어서 예측 불가능한 멈춤이 없고, 컴파일 시점에 메모리 안전성과 데이터 경쟁을 잡아줘요. 여러 블록이 각자 스레드에서 돌면서 버퍼를 주고받는 SDR 구조에 잘 맞는 언어예요.

웹 UI는 사용 방식을 바꿔요. 스펙트럼(주파수별 신호 세기 그래프)과 워터폴(시간에 따라 스펙트럼이 흘러내리는 그림)을 브라우저에서 보는 거예요. 이게 왜 좋냐면, 라즈베리파이에 동글을 꽂아 안테나 있는 옥상이나 창가에 두고, 내 노트북이나 태블릿의 브라우저로 접속해서 조작할 수 있거든요. 네이티브 앱은 그 컴퓨터 앞에 앉아 있어야 하는데 말이죠.

기존 도구들과 어디에 위치하나

SDR 소프트웨어 생태계를 놓고 보면 위치가 명확해요. 한쪽 끝에는 GNU Radio가 있어요. 블록을 연결하는 플로우그래프 방식의 원조이고 연구와 산업에서 표준처럼 쓰이지만, Python과 C++가 섞여 있고 설치와 학습이 무거워요. 반대쪽 끝에는 SDR++, GQRX, CubicSDR 같은 수신기 앱이 있어요. 설치하면 바로 라디오를 들을 수 있지만 내부 처리를 바꾸긴 어렵죠. SDR--는 그 중간을 노려요. 수신기 앱처럼 바로 쓸 수 있으면서, GNU Radio처럼 처리 과정을 조립할 수 있게 하려는 거예요. Rust 진영에는 이미 FutureSDR라는 프레임워크가 있는데, 그건 개발자용 라이브러리 성격이 강하고, SDR--는 완성된 앱 형태라는 점이 달라요.

한국 개발자가 눌러볼 만한 이유

첫째, Rust 학습 프로젝트로 훌륭해요. 실시간 처리, 멀티스레드 파이프라인, 웹소켓으로 브라우저에 데이터 스트리밍하기까지, 백엔드 개발자가 배워두면 좋은 패턴이 한 코드베이스에 다 들어 있어요. 둘째, 하드웨어 입문 비용이 낮아요. 동글 하나면 서울 상공의 항공기 위치를 직접 받아보는 경험을 할 수 있어요. 셋째, 주의할 점도 있어요. 한국에서 전파 수신 자체는 대부분 문제가 없지만, 송신은 아마추어 무선 자격이 필요하고 암호화된 통신을 복호화하는 건 법에 걸려요. 수신 전용 동글로 공개된 신호만 듣는 선에서 시작하는 게 안전해요.

한줄 정리: SDR--는 신호 처리를 레고처럼 조립하는 자유와 브라우저에서 쓰는 편의를 Rust로 묶어낸 프로젝트예요.

SDR 해보신 분들은 어떤 신호 수신이 제일 재미있었나요? 그리고 GNU Radio의 복잡함 때문에 포기한 경험이 있다면, 이런 중간 지대 도구가 답이 될 수 있을지 의견 나눠주세요.


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://github.com/Newspicel/sdrminusminus
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기
처리 중...