3년 전, 인터넷에서 우연히 매직미러²(MagicMirror²) 프로젝트를 알게 된 후, 라즈베리파이 3B+를 구해 거실 한편에 설치했습니다. 클라우드에 잠자고 있던 가족사진들을 멋진 디지털 액자로 다시 볼 수 있다는 점이 정말 매력적이었죠. 2TB 유료 플랜을 사용하며 구글 포토에 차곡차곡 쌓아둔 사진들이 불규칙적으로 화면에 나타날 때마다, 잊고 있던 소중한 순간들을 떠올리는 재미가 쏠쏠했습니다.
하지만 행복은 길지 않았습니다. 어느 날부터 매직미러가 더 이상 사진을 보여주지 못하는 문제가 발생했습니다. 원인을 찾아보니, 제가 사용하던 MMM-GooglePhotos 모듈이 의존하던 구글 포토 API 정책이 변경되면서 기능이 중단된 것이었습니다.

1. 첫 번째 시도: MMM-RandomPhoto
가장 먼저 시도한 것은 MMM-RandomPhoto 모듈이었습니다. USB 드라이브에 사진을 저장해두면 무작위로 보여주는 간단한 방식이었죠. 가로 사진은 문제없이 잘 나왔지만, 결정적인 단점이 있었습니다. 세로로 찍은 사진의 비율을 조절해주지 못해 사진 일부가 잘려 나가는 현상이 발생했습니다. 가족들의 얼굴이 반만 나오는 모습을 보고 있자니 아쉬움이 컸습니다.
2. 두 번째 시도: MMM-BackgroundSlideshow
다음으로 찾은 대안은 MMM-BackgroundSlideshow였습니다. 이 모듈은 MMM-RandomPhoto의 단점을 완벽하게 보완해주었습니다. 세로 사진도 화면 비율에 맞게 자동으로 리사이징해줄 뿐만 아니라, 다양한 설정 옵션을 제공하여 입맛에 맞게 커스터마이징하기도 좋았죠.
하지만 또 다른 복병을 만났습니다. 사진 파일을 불러오고 리사이징하는 과정에서 라즈베리파이 3B+의 성능이 부족했던 탓인지, 화면이 종종 멈춰버리는 현상이 발생했습니다. 슬라이드쇼가 멈출 때마다 전원을 껐다 켜야 하는 불편함이 뒤따랐습니다.
발상의 전환: 홈서버와 라즈베리파이의 완벽한 협업
여기서 잠시 고민에 빠졌습니다. ‘모든 작업을 라즈베리파이에서 처리해야만 할까?’
문득 좋은 아이디어가 떠올랐습니다. 이미 집에서 24시간 가동 중인 **홈서버(Home Server)**가 있었고, 그곳에는 Docker를 이용해 예비용 매직미러를 설치해 둔 상태였습니다.
무거운 사진 처리 작업은 성능이 넉넉한 홈서버에 맡기고, 라즈베리파이는 그 결과물을 화면에 보여주는 ‘뷰어(Viewer)’ 역할만 하도록 하자!
계획은 간단했습니다.
- 홈서버의 Docker 매직미러에
MMM-BackgroundSlideshow모듈을 설치합니다. - 사진 디렉터리를 라즈베리파이의 USB가 아닌, 홈서버의 사진 백업 디렉터리로 지정합니다.
- 라즈베리파이는 부팅 시 크롬 브라우저를 키오스크 모드로 실행시켜, 홈서버 매직미러의 주소(
http://홈서버IP:포트)에 접속하도록 설정합니다.
결과는 대성공이었습니다! 이제 라즈베리파이는 더 이상 사진 리사이징 때문에 힘겨워하지 않았고, 홈서버의 넉넉한 자원 덕분에 사진 슬라이드쇼는 아주 부드럽게 재생되었습니다.

마무리 그리고 남은 과제
마지막으로 샤오미 스마트 플러그를 활용해 매일 특정 시간에만 매직미러가 켜지고 꺼지도록 자동화까지 설정하며 프로젝트를 마무리했습니다.
물론 아직 남은 숙제가 있습니다. 처음 만들 때부터 계획했던, 모니터 패널을 분리해 멋진 나무 액자에 넣어 완벽한 인테리어 소품으로 만드는 작업이죠. 언젠가는 꼭 실행에 옮겨, 기술과 감성이 어우러진 세상에 하나뿐인 가족 앨범을 완성해 볼 생각입니다. 혹시 저와 비슷한 문제로 고민하셨던 분이 있다면, 이 방법이 좋은 해결책이 되길 바랍니다.
참고사항(잊지 않기위해)
– 라즈베리파이를 처음 부팅할 때 특정 주소의 브라우저가 키오스크 모드로 열리는 것은 다음의 기능을 이용했습니다
1) PM2 – 부팅시 실행될 프로그램 관리(크롬브라우저 실행)
2) 웹브라우저릉 전체화면으로 미리 정의된 주소로 Open
/usr/bin/chromium-browser –noerrdialogs –disable-infobars –kiosk http://192.168.x.y:nnnn/