Codex로 만든 암실 타이머 Darkplug, 취미의 불편은 어떻게 앱이 될까요?
핵심 요약 (TL;DR)
필름 사진가가 iPhone과 스마트 플러그를 연결해 암실 인화용 타이머 Darkplug를 만들었습니다. 제작자는 Codex와 Xcode를 활용해 바이브코딩했다고 밝혔습니다.[1] 흥미로운 점은 새로운 장비 전체를 만들기보다, 이미 가진 휴대전화에 부족한 제어 기능을 더했다는 것입니다. 다만 실제 기기를 움직이는 앱은 화면 완성도와 장비의 동작 정확도를 따로 검증해야 합니다.
사진가는 어떤 문제를 해결하고 싶었을까요?
제작자는 고급 인화 타이머를 갖고 싶었지만 비용이 부담스러웠고, 휴대전화 자체는 시간 측정을 할 수 있으니 확대기를 켜고 끌 방법이 필요했다고 설명합니다.[1] 확대기는 암실에서 사진 인화지에 빛을 비추는 장비입니다. Darkplug는 호환 스마트 플러그를 통해 그 장비를 로컬 네트워크에서 제어하도록 설계됐습니다.[2]
이 사례는 한국 시간 10월 6일 오후 10시 58분 Hacker News에 소개됐습니다. 제작자는 임시로 꾸민 욕실 암실에서 수개월간 사용했다고 말합니다.[1] 따라서 ‘방금 출시된 앱’이나 ‘하루 만에 완성한 앱’으로 소개할 수는 없습니다. 사용 기간과 Codex 활용 역시 제작자의 자기보고이며, 전체 개발 과정을 독립적으로 감사한 결과는 아닙니다.
첫 MVP는 어디까지 좁히면 좋을까요?
공식 페이지에는 일반 타이밍 외에도 노출을 단계적으로 조절하는 f-stop 타이밍, 테스트 스트립, 부분 노출 작업, 인화지 현상 타이머 등이 소개돼 있습니다.[2] 그렇지만 여러분이 비슷한 앱을 처음 만든다면 이 목록을 한꺼번에 따라갈 필요는 없습니다. 출발점은 ‘정해진 동안 장비가 켜지고, 끝나면 꺼지는가’라는 작은 동작입니다.
처음에는 실제 장비 대신 화면 속 가짜 스위치로 시작해 보세요. 시작, 취소, 완료가 서로 어떤 상태인지 확인하고, 연결 실패를 성공으로 표시하지 않도록 요청하는 것입니다. 이는 원작의 개발 순서를 재현한 설명이 아니라, 하드웨어 연결형 시제품에 적용할 설계 제안입니다.
연결됐다는 표시와 실제 동작은 왜 다를까요?
앱에서 명령을 보냈다는 사실이 장비가 원하는 순간에 반응했다는 증거는 아닙니다. 스마트 플러그와 휴대전화가 같은 네트워크에 있어야 한다는 공식 안내도 출발 조건이지, 모든 환경에서 같은 정밀도를 보장하는 약속은 아닙니다.[2]
실제 장비를 연결하기 전에는 지원 모델과 전기 정격을 확인하고, 취소하거나 통신이 끊겼을 때 어떤 상태가 되는지 안전한 환경에서 점검해야 합니다. 정밀한 노출이 필요한 작업이라면 타이머 숫자뿐 아니라 실제 켜짐과 꺼짐을 측정할 기준도 필요합니다. 이 글에서는 앱 설치, 네트워크 지연 측정이나 인화 시험을 수행하지 않았습니다.
이 구분은 취미 앱 밖에서도 유용합니다. 예약 문자를 보내는 앱은 발송 요청과 수신 결과를, 재고 앱은 저장 버튼과 실제 수량을 따로 확인해야 합니다. 화면 밖에서 결과가 생기는 제품일수록 완료의 기준을 명확히 정하는 일이 중요합니다.
FAQ: 아무 스마트 플러그나 연결하면 되나요?
아닙니다. 제작자 페이지는 호환되는 Shelly 모델을 따로 나열합니다.[2] 집에 있는 플러그가 같은 브랜드라는 이유만으로 지원된다고 가정하지 말고, 정확한 모델과 사용 지역의 전기 조건을 확인하세요.
FAQ: 소개된 고급 기능은 모두 기본 제공인가요?
공식 페이지는 여러 고급 작업을 Darkplug+ 기능으로 표시하고, 일회성 앱 내 구매라고 안내합니다. 작업 계획을 코드로 저장·복원하는 기능은 아직 예정으로 표시돼 있습니다.[2] 현재 기능과 계획을 나누어 읽는 습관도 좋은 MVP 검수의 일부입니다.
출처
[1] https://news.ycombinator.com/item?id=49978595
[2] https://peterszentkiralyi.eu/darkplug/
댓글 0
아직 댓글이 없습니다