최적화는 일부 사람들에게는 삶의 방식입니다.

소프트웨어 엔지니어 Makerinator가 자신이 "결혼 생활을 구했다"고 가볍게 주장하는 프로젝트의 세부 사항을 공개했습니다. 이 'Decisioninator'는 평소 까다롭기만 한 질문인 '오늘 저녁 식사로 뭘 먹을까?'를 '최적화하고 자동화'하기 위해 설계 및 제작되었습니다. 하지만 모든 훌륭한 프로젝트가 그렇듯이, 이 기기는 가사 분배, 데이트 코스 선정, 영화 스트리밍 콘텐츠 선택 등 유사하게 어려운 결정들까지 포괄할 수 있도록 확장되었습니다.
Makerinator는 소프트웨어 엔지니어로서 자신의 철학이 어떤 작업을 최적화하고 3ms를 줄이는 데 40시간을 투자하는 것은 언제나 "가치가 있다"는 것이라고 말합니다. 그리고 바로 이러한 정신으로 Decisioninator 제작이 시작되었습니다.
Decisioninator 기술
Makerinator는 이전 단계에서 포기했던 Decisioninator 프로젝트의 경험을 바탕으로, Raspberry Pi 4를 기반으로 새롭고 개선된 계획을 수립했습니다. Pi는 Raspberry Pi OS의 경량 버전(lite version)을 구동하며, Flutter UI를 기반으로 구축된 Flame Engine을 Flutter의 반응형 UI 프레임워크 앱과 함께 사용하여 애플리케이션을 구동합니다.
테크 얼리어답터, Gemini를 활용해 x86 마더보드 디자인 '바이브 코딩'에 성공하다
Makerinator는 이 프로젝트에서 Flame Engine을 사용했다는 점을 언급했습니다. 이는 2D 개발을 위한 모듈형 Flutter 게임 엔진입니다. 프로젝트 제작자에 따르면, 이 엔진은 선형적이지만 '포춘 휠(Wheel of Fortune)' 스타일의 Decisioninator UI에 완벽하게 부합했으며, 애니메이션 및 충돌 감지 기능을 쉽게 구현할 수 있게 해주었습니다.
Pi에 전원을 공급하기 위해 12V에서 5V로 변환하는 컨버터를 사용했습니다. 또한, Decisioninator의 조작을 담당하는 두 사용자 버튼에서 입력을 받기 위해 Pi의 GPIO 핀을 활용했다는 점도 공개했습니다.
목공 작업의 도전과제
Makerinator는 자신이 전문 목공 장인은 아니라는 사실을 솔직하게 인정했습니다. 그럼에도 불구하고 그는 필요한 모든 합판(ply sheeting)을 레이저 커팅하여, Decisioninator를 수납할 수 있는 실용적인 미니 아케이드 스타일 키오스크를 완성했습니다. 이 과정에서 발생한 모든 목공학적 미진함은 여유로운 사포질, 스프레이 페인팅, 인쇄된 승화 전사(sublimated wraps)를 통해 완벽하게 가려졌습니다.
여기저기 에폭시(epoxy)를 사용했으며, 케이스와 커넥터에 사용된 로터리 공구는 "제 계획의 허술함을 만회할 수 있게 해준 거의 면죄부와 같았다"고 묘사했습니다.
결과적으로 모든 것이 복고 아케이드 스타일로 멋지게 완성되었습니다. 이 기계는 마치 Tempest나 Tron의 영향을 받은 축소된 80년대 비디오 게임 캐비닛처럼 보입니다.
Decisioninator 활용하기
앞서 설명했듯이, 이 장치의 제어판에는 관계에 민감한 결정을 "최적화하고 자동화"하는 데 도움을 주는 두 개의 버튼이 있습니다. 왼쪽의 더 큰 빨간색 버튼은 스피너를 구동시킵니다.
오른쪽의 더 작은 파란색 버튼은 Decisioninator의 다양한 모드를 선택할 수 있게 합니다. 이 모드들은 레스토랑, 가사 분배, 데이트 나이트 외출, 스트리밍 서비스 등으로 구성되어 있습니다. Makerinator는 이를 통해 Decisioninator가 "선택 장애를 겪는 사람들을 위한 스위스 아미 나이프"가 되었다고 설명합니다. 그리고 마침내 그의 결혼 생활은 "Flutter와 레이저, 그리고 갤런짜리 5분 에폭시 덕분에" 구원받게 되었다는 것입니다. Raspberry Pi 공유(Shares)를 소유한 사용자들 역시 이 작은 싱글 보드 컴퓨터(SBC)의 역할에 대해 주목할 것입니다.
(참고: Tom's Hardware의 최신 뉴스, 분석, 리뷰를 받아보시려면 Google News에서 팔로우하거나 즐겨찾는 출처로 추가해 주세요. 팔로우 버튼을 잊지 마세요!)