기술을 읽고, 서비스를 잇다
Dive into J-POP: AI로 J-POP을 쉽게 생성해보기
안녕하세요, log 쌓는 MK 입니다. 온 디바이스 음악 생성으로 소개해 드렸던 ACE-Step 1.5을 이용한 JPOP 음악 생성 앱 Dive into J-POP을 출시했습니다. 팀이나 회사가 아닌 개인으로 혼자 마켓에 앱을 등록해 본 건 처음인데요. AI의 도움을 받아 AI 음악 생성 앱을 만들게 되었네요! Dive into J-POP 다운로드 처음 뮤직풍덩이라는 이름으로 웹 서비스로 방향을 잡고 시작했는데 친구를 대상으로 베타 테스트를 진행한 뒤에 앱으로 방향을 전환하게 되었습니다. 이때 주요한 기능이 변경되었습니다. ...
넷플릭스(Netflix) 인증 메일 자동화 사례 공유
안녕하세요, log 쌓는 MK 입니다. 넷플릭스를 여러 장소에서 TV로 보시는 분들은 같은 경험이 있으실텐데요. A 장소에서 보다가 B 장소로 가게 되면 다시 인증을 받아야 합니다. 모바일의 경우 임시 코드를 받는 형태이고, TV로 접속하면 등록된 메일에서 새롭게 인증을 해야 합니다. 빈번하진 않아도 폰을 들고 있지 않은 경우 귀찮은 일이 발생하곤 해서 자동화를 한 번 해보았습니다. 기본 구성 넷플릭스 메일 수신 ↓ (10~30초 이내) Gmail → Google Pub/Sub → Cloudflare Tunnel ↓ Flask 서버 (Mac Mini) ↓ Playwright → "업데이트 확정" 자동 클릭 처음엔 별도의 서버를 두고 싶지 않아서 Apps Script 폴링 방식도 검토했지만 더 짧은 시간내 처리를 위해 Gmail Push 방식을 선택했습니다. ...
Ubuntu ARM64에서 OpenAI Codex CLI의 Missing optional dependency 오류 해결하기
안녕하세요, log 쌓는 MK 입니다. 운영 중인 오라클 Ubuntu ARM64 서버에서 OpenAI Codex CLI를 업데이트 한 후 다음과 같은 오류가 발생 했습니다. Error: Missing optional dependency @openai/codex-linux-arm64. Reinstall Codex: npm install -g @openai/codex@latest 이 오류는 단순히 @openai/codex 패키지가 설치되지 않은 상황과는 달랐는데요. Codex CLI 본체는 설치되어 있지만, 현재 운영체제와 CPU 아키텍처에 필요한 플랫폼별 native 패키지가 설치되지 않은 상태에서 발생하는 것으로 확인했습니다. 이번 글에서는 Ubuntu ARM64 환경에서 실제로 발생한 사례를 기준으로 원인을 확인하고 해결하는 과정을 정리해 보려고 합니다. ...
Tailscale vs ipTIME 공유기 WireGuard, 뭘 써야 할까?
TL;DR WireGuard는 프로토콜이고, Tailscale은 그 WireGuard를 이용해서 만든 서비스다. 둘은 같은 층에 있는 경쟁 관계가 아니다. iptime 공유기도 최근 펌웨어부터 WireGuard 서버 기능을 내장하고 있어서, 별도 서버 없이 “내 공유기 = VPN 서버"로 쓸 수 있다. 우리 집 인터넷이 공인 IP를 받는지 CGNAT(유동 공유 IP)인지가 둘 중 뭘 선택할지를 사실상 결정한다. 대부분 일반 가정은 공인 IP를 받겠지만 오피스텔 등은 그렇지 않은 경우가 존재할 수 있다. 이동 중(카페 와이파이 → LTE → 5G) 연결 안정성이 중요하면 Tailscale이 유리하고, 외부 의존 없이 완전히 내 인프라 안에서 끝내고 싶으면 iptime WireGuard가 유리하다. 왜 이 비교가 필요한가 집에 노트북이나 홈서버를 하나 두고, 회사나 카페에서 거기 접속해서 작업하고 싶다는 니즈는 개발자라면 한 번쯤 겪게 됩니다. “SSH 포트를 그냥 열어두면 되지 않나?“라고 생각할 수 있지만, 인터넷에 SSH 포트를 그대로 노출하는 순간 전 세계의 무차별 대입 공격(brute force) 스캐너들의 표적이 됩니다. 그래서 VPN으로 터널을 만들고, 그 안에서만 접속을 허용하는 게 기본입니다. ...
Android 온디바이스 음악 생성 실험기: ACE-Step 1.5를 폰에서 돌리기 #2
안녕하세요, log 쌓는 MK 입니다. 지난 편에서 갤럭시 S24+ 모델을 기준으로 ACE-Step 1.5 모델을 기반으로 음악 생성을 진행했는데요. 실제 사용된 모델은 다음과 같습니다. 모델 대략적인 크기 역할 acestep-5Hz-lm-1.7B-Q8_0.gguf 약 2GB 텍스트와 가사를 음악용 semantic audio code로 변환 Qwen3-Embedding-0.6B-Q8_0.gguf 약 784MB 프롬프트와 가사를 DiT conditioning 벡터로 인코딩 acestep-v15-turbo-Q4_K_M.gguf 약 1.45GB audio code를 음악 잠재 벡터로 합성 vae-BF16.gguf 약 337MB 잠재 벡터를 48kHz 스테레오 오디오 파형으로 복원 LM의 경우 0.6B로도 테스트를 했었지만 audio code가 생성되지 않거나 후반부에 무너지는 경우가 많아 느리더라도 1.7B 모델을 사용할 수 밖에 없었습니다. ...
Android 온디바이스 음악 생성 실험기: ACE-Step 1.5를 폰에서 돌리기 #1
안녕하세요, log 쌓는 MK 입니다. 제가 개인적으로 로컬에서 AI 모델을 돌리면서 가장 인상깊었던 오픈소스 모델은 음악을 생성하는 ACE-Step 1.5 였습니다. 맥에서 이정도 수준의 음악 생성을 이렇게 빠르게 진행할 수 있다는 게 정말 놀라웠어요. 아래는 맥에 설치해서 처음 만들어봤던 노래입니다. M1 맥북프로 16기가 램 모델에서 몇 분 정도만에 생성해낸 음악입니다. 꽤 그럴듯 하지 않나요? 그래서 이런 생각이 들었어요. 스마트폰에서도 직접 온디바이스로 생성도 가능할까? ...
특정 도메인을 로컬 IP로 매핑하기
안녕하세요, log 쌓는 MK 입니다. 최근에 깨져버린 스마트폰을 Spotify 전용 머신으로 만들어 사용하면서 아쉬운 점이 2가지 있었는데요. 스피커를 수동으로 켰다 껐다 해야한다. 스마트폰의 배터리 때문에 전원을 연결해 놔야한다. 1번의 경우 스피커를 상시 켜놓으면 해결되기도 하지만 2번의 경우는 배터리 스웰링이 발생할 수 있어 조심스러웠습니다. 그래서 가지고 있던 오래된 HK네트웍스 SP30A 스마트 플러그를 이용해 보기로 했어요. HK네트웍스는 사실 2021년에 폐업했기 때문에 지원을 전혀 받을 수 없는데, 사실 알고보니 중국의 Orvibo 제품으로 밝혀져서 계속 사용할 수 있게 된 제품이에요. ...
Welcome
안녕하세요, log 쌓는 MK 입니다. 모든 걸 영상으로 시작하는 요즘 그래도 텍스트가 더 편한 사람들을 위해 블로그를 시작하게 되었습니다. 관심있었던 Local LLM, IoT, OpenSource SW 등 여러 주제에 대해서 제가 경험하고, 실험해본 내용을 log가 쌓이듯 쌓아가보려고 합니다. 그럼 MK.log 시작해 보겠습니다.