연재 소개 (feat. NVIDIA DGX Spark)
우리 커뮤니티가 지향하는 가치와 신념에 대하여는 📜 매니페스토 페이지를 확인해주세요.
연재를 시작하며…
왜 이 글을 쓰는가
저는 변호사입니다. 코딩을 업으로 삼는 사람도 아니고, 리눅스 터미널을 보면 본능적으로 닫고 싶어지던 평범한 맥 유저였습니다. 그런 제가 어쩌다 보니 책상 위에 GIGABYTE AI TOP ATOM (DGX Spark) 한 대를 들이게 되었고, 거기에 직접 로컬 LLM을 올리고 다듬는 일에 빠져들었습니다.
인터넷에서도 쉽게 찾기 어려운 경험인 만큼, 저와 같은 길을 걸어가실 분들을 위해 그 좌충우돌의 기록을 연재해보려 합니다.
누구를 위한 글인가
- 클라우드 AI는 써봤지만, 내 데이터를 내 손 안에 두고 싶은 분
- 리눅스를 한 번도 다뤄본 적 없지만, 로컬 AI에 관심이 가는 분
- 데이터를 외부로 보내기 어려운 분
- 그리고 무엇보다, “왜 이렇게 되는 거지?”가 궁금한 분
저도 매 단계마다 “왜?”를 묻고 있는 입장이라, 사소한 개념 하나도 그냥 지나치지 않으려 합니다. 그 과정에서 같은 의문을 가진 분들에게 도움이 되기를 바랍니다.
왜 DGX Spark였는가
선택지가 없었던 건 아닙니다. Mac Studio, Windows x86에 RTX 5090 또는 RTX 6000을 얹은 워크스테이션, 그리고 DGX Spark. 이 셋을 두고 한참 고민했습니다.
결론부터 말하면, 가장 큰 이유는 NVIDIA의 CUDA 생태계를 직접 경험해보고 싶었기 때문입니다. AI/ML의 표준 환경이 사실상 CUDA로 굳어진 지금, 한 번은 그 안에 들어가 봐야겠다 싶었거든요.
그렇다고 RTX 6000 같은 워크스테이션급 GPU를 살 수는 없었습니다. 가격이 정말 부담스러웠고, 본업이 변호사인 제가 그 정도까지 투자할 명분은 없었습니다. 그 사이에서 약 700만원 선의 DGX Spark가 비교적 합리적인 절충안으로 보였습니다. 지금은 가격이 조금 올랐네요 :)

| 항목 | 사양 |
|---|---|
| 하드웨어 | GIGABYTE AI TOP ATOM (DGX Spark) |
| 칩 | NVIDIA GB10 |
| 메모리 | 128GB 통합 메모리 |
| 저장공간 | 4TB SSD |
| 아키텍처 | ARM64 |
| OS | NVIDIA DGX OS (우분투 기반) |
물론 단점도 또렷합니다.[변호사의 로컬llm 세팅기] 24화: 1.2B 파서를 형사기록에 들이밀다 — 점수와 실사용의 거리
- 메모리 대역폭이 낮습니다. 추론 속도가 GPU에 비할 바가 못 됩니다.
- 리눅스입니다. 맥에서 막 넘어온 입장에서는 매 단계가 학습 곡선이었습니다.
그래도 끌렸던 건 128GB라는 큰 통합 메모리였습니다. 대역폭은 낮아도 메모리 자체가 넉넉해서, “이것도 올려볼까, 저것도 돌려볼까” 같은 실험에 너그러운 머신이라는 점이 좋았습니다.
그런데 API가 더 가성비 좋지 않나요?
솔직히 맞습니다. 700만원이면 OpenAI, Anthropic, Google의 프론티어 모델 API를 한참 동안 마음껏 쓸 수 있습니다. 지금 시점에서 순수 성능 대 비용만 따지면, 로컬 LLM은 API를 이기지 못합니다.
그럼에도 로컬을 택한 이유는 두 가지입니다.
첫째, 변호사라는 직업의 특성상 데이터 통제권이 중요합니다. 의뢰인 정보를 클라우드로 보내는 일에는 늘 신중해야 하고, 지금 당장 모든 업무를 로컬로 처리할 수는 없더라도 로컬에서 무엇이 가능한지, 한계는 어디인지를 직접 경험해두는 것 자체가 변호사로서 의미 있다고 느꼈습니다.
둘째, 로컬 LLM은 빠르게 좋아지고 있습니다. 지금의 성능은 분명 프론티어 모델에 못 미치지만, 1년, 2년 뒤에는 어떨까요? 그때 가서 처음부터 배우기 시작하는 것보다, 한 발 먼저 손에 익혀두는 편이 낫겠다고 판단했습니다.
요약하면 지금의 가성비가 아니라, 앞으로의 가능성에 베팅한 셈입니다.
지금까지 걸어온 길
연재는 처음부터 다시 정리해 풀어드릴 예정이지만, 미리 큰 그림을 보여드리자면 이런 순서로 흘러왔습니다.
- 첫 만남 - 맥 유저가 처음 만난 리눅스, 그리고 DGX Dashboard의 정체
- Open WebUI - Docker로 처음 띄워본 나만의 ChatGPT, 그리고 Tailscale로 외출 중에도 접속하기
- ComfyUI - 노드 기반 이미지 생성의 세계
- Stable Diffusion XL - JupyterLab에서 직접 굴려본 이미지 모델 (그리고 한국어 프롬프트의 한계)
- Ollama와 OpenClaw - 진짜 “로컬 에이전트”를 세팅하기까지
- Nemotron 30B 모델 연결 - 깃허브 이슈를 추적해 컨텍스트 윈도우 버그를 우회한 이야기
각 단계마다 단순한 설치 가이드가 아니라, “왜 이 명령어를 쓰는가”, “systemd 유저 서비스와 시스템 서비스는 뭐가 다른가”, “Docker 볼륨은 왜 컨테이너와 따로 노는가” 같은 질문들을 함께 풀어갈 예정입니다.
앞으로 다룰 것들
- Telegram 봇으로 모바일에서 내 로컬 LLM 부르기 - 외출 중에도 집에 있는 AI에게 일을 시키는 방법
- OpenClaw Skills 실험 - 에이전트에게 도구를 쥐여주기
- 세션 메모리 다루기 - 대화의 연속성을 어떻게 관리할 것인가
- 모델 라이프사이클 - 디스크, 메모리, 언로드의 삼각관계
- 모델 큐레이션 - 어떤 모델을 언제 골라 쓸 것인가
그 너머에 무엇이 있을지는 저도 아직 모릅니다. 그게 이 연재의 재미이기도 합니다.
미리 드리는 약속
- 모르면 모른다고 씁니다. 명령어 하나 잘못 쳐서 시스템이 어떻게 됐는지, 솔직하게 기록합니다.
- 개념 먼저, 명령어는 그 다음입니다.
curl | bash를 그냥 따라치는 글은 이미 충분히 많습니다. - 실패도 기록합니다.
rm -rf로 날려먹을 뻔한 순간, Firefox 자동번역이 일으킨 버그 소동, 1M 컨텍스트에서 모델이 죽어버린 사건들. 다 남깁니다.
마치며
리눅스 초보가, 변호사가, 맥 유저가, 어디까지 갈 수 있을지 같이 지켜봐 주세요.
다음 글에서는 DGX Spark가 처음 도착한 날, 박스를 열고 무엇부터 했는가에서부터 시작하겠습니다.