정말 재미있고 영감을 주는 글이라고 생각함, 엔지니어의 본질을 잘 담아냈음, OP가 진정한 해커임이 드러남
미국에 3개월 동안 있을 때 PureGym에 가입해서 PIN을 받았고, 나중에 멤버십을 취소함, 그런데 크롬에서 PureGym PIN이 유출되었다고 알려줌
2년 후 다시 미국에 가서 같은 PIN을 받았고, 이는 보안상 굉장한 문제라고 생각함
PureGym 앱과 토큰도 흥미로웠는데, 하이드로 마사지 의자 활성화 시스템에서 보안 결함도 발견했음, 어떤 PIN이든 받아들이는 구조였음
크롬이 PureGym PIN 유출을 알린 것은 아마 오탐으로 보임, 크롬이 HaveIBeenPwned API를 사용할 때 이런 일이 발생할 수 있음
예를 들어 87623103 같은 PIN은 해시값이 558B4C37F6E3FF9A5E1115C66CEF0703E3F2ADEE로 변환되고HaveIBeenPwned 해시 범위에서 검색하면 실제로 여러 번 유출된 기록이 있음
한 번만 생각해봐야 할 문제임, 야외에 놓인 물리적 키패드는 영국의 날씨, 단백질 셰이크, 후회로 덮여 있고, 어떤 집의 링 도어벨로 틱톡 라이브 중계까지 될 수 있는 곳임. 그런데도 내 예전 PIN을 문제없이 받아들임, 반면 디지털 QR코드는 NSA가 감탄할 정도의 암호화 회전이 필요함
이런 이야기를 읽는 게 너무 즐거움, 앱이 제대로 작동할 때까지 기다리는 대신 직접 PIN을 외움. 그래서 OP가 제안한 방법보다도 더 빠르게 들어갈 수 있고, 기기나 별도 서비스도 필요 없어서 더 간편하다고 생각함
“Apple Wallet을 구현하지 않는 것도 다 이유가 있다”라는 글을 봤을 때, PureGym 앱의 스크린샷을 참고하면 사실상 모바일 웹 사이트를 얇게 감싼 수준이거나 Flutter 같은 기술을 쓴 것으로 보임. 애플 API의 미묘한 부분까지 다룰 수 있는 사내 개발자가 있을 확률은 매우 낮아 보임
이게 핵심임, PureGym은 서비스 가입자를 최대한 많이 받고 탈퇴는 어렵게 만드는 게 본업임, 개발이 본업이 아님. 운이 좋으면 내부 웹 개발자가 사이트와 데이터베이스만 겨우 관리하고, 앱처럼 동작하게 해달라며 외주를 맡김, 운이 나쁘면 모든 웹 업무를 외주업체에 맡기고 제목 한 글자 바꾸려고 해도 추가 비용을 내는 상황일 것
그런데 왜 배우지 못할까라는 의문이 듦, 구글, Stack Overflow, LLM 같은 도구가 많은데도 여전히 개선이 없음. 아마도 UX를 신경 쓰는 사람이 아예 없거나, 백엔드 개발팀은 다 떠난지 오래고 남은 건 최소 인원의 저렴한 엔지니어로 유지하고 있기 때문이라고 생각함
만약 Apple Wallet을 추가한다면 Android Wallet 지원도 해야 하므로 관리할 코드가 늘어남. 그래도 최소한 앱을 켜자마자 QR 코드를 항상 보여주게는 만들 수 있을 것 같음
내 휴대폰에도 PureGym 앱이 있는데, 실제로 그냥 PureGym 웹사이트를 감싼 앱 느낌임
순금 같은 말임, 8자리 짐 도어 PIN이 곧 API 비밀번호이고, 대다수 사용자가 직접 설정하지 않았음. 실패 시도에 대해 레이트 리미트가 있길 바라는 중임. 이메일 주소만 알면 곧바로 API 접근이 되는 구조 같음. 또 요청할 수 있는 권한 범위도 잘 제한되어 있는지 궁금함
OP임
API 접근이 바로 가능하냐는 질문에는 맞음, 실제로 앱과 사이트를 쓰면서 레이트 리미트에 걸려본 적이 없음, 실패 시도에 꽤 관대함
포스트에 소개한 scope는 공식 앱과 GitHub의 비공식 클라이언트들이 쓰는 것과 동일함
추가 scope가 있을 확률은 매우 낮음PureGym PHP Wrapper와 PureGym Attendance Python도 참고할 만함
PureGym의 앱 로드맵 논의를 IT 업계에서 많이 겪음
“이 기능을 만들면 우리가 직접 책임을 져야 한다”라는 식
“맞는 말임, 그럼 2028년 로드맵에 넣어두자”라는 농담도 많이 함
내 부서 미팅도 똑같음, 로드맵과 계획 이야기를 할 때 “이게 우리 매출에 도움이 되냐, 돈 드는 일 아니냐”가 핵심임
원래 할 일이나 위시리스트도 길어서 기능 추가가 잘 안 됨
PureGym이 지금 가장 잘할 수 있는 건, 이 앱 만든 개발자에게 몇 천 파운드와 평생 무료 이용권을 주는 것이라고 생각함
Apple Developer Portal에서 발급하는 Pass Type ID 증명서 비용이 궁금함
Apple Wallet 패스를 만들고 싶은데 개발자 계정 설정과 추가 비용이 부담스러움
내가 아는 한 기본 개발자 구독에 포함되어 있음, 다만 매년 개발자 구독을 갱신해야 계속 유지할 수 있음
매 분마다 새로운 코드를 받으라고 푸시 알림이 온다면 배터리 문제 아닐지 궁금함
본문을 보면 코드 갱신이 주 1회라 주 1회가 최대일 것으로 예상함
푸시 알림에는 백그라운드 모드라는 게 있어서, 폰이 준비됐을 때만 처리됨
배터리 부족 시나 절전 모드에선 아예 전달되지 않아 배터리 소모를 최소화하려고 만들어진 구조임
더 중요한 알림은 UI 요소가 반드시 보여야 하고, 절전 상황과 관계없이 도착함
Hacker News 의견
미국에 3개월 동안 있을 때 PureGym에 가입해서 PIN을 받았고, 나중에 멤버십을 취소함, 그런데 크롬에서 PureGym PIN이 유출되었다고 알려줌
2년 후 다시 미국에 가서 같은 PIN을 받았고, 이는 보안상 굉장한 문제라고 생각함
PureGym 앱과 토큰도 흥미로웠는데, 하이드로 마사지 의자 활성화 시스템에서 보안 결함도 발견했음, 어떤 PIN이든 받아들이는 구조였음
예를 들어 87623103 같은 PIN은 해시값이 558B4C37F6E3FF9A5E1115C66CEF0703E3F2ADEE로 변환되고HaveIBeenPwned 해시 범위에서 검색하면 실제로 여러 번 유출된 기록이 있음
API 접근이 바로 가능하냐는 질문에는 맞음, 실제로 앱과 사이트를 쓰면서 레이트 리미트에 걸려본 적이 없음, 실패 시도에 꽤 관대함
포스트에 소개한 scope는 공식 앱과 GitHub의 비공식 클라이언트들이 쓰는 것과 동일함
추가 scope가 있을 확률은 매우 낮음PureGym PHP Wrapper와 PureGym Attendance Python도 참고할 만함
“이 기능을 만들면 우리가 직접 책임을 져야 한다”라는 식
“맞는 말임, 그럼 2028년 로드맵에 넣어두자”라는 농담도 많이 함
원래 할 일이나 위시리스트도 길어서 기능 추가가 잘 안 됨
PureGym이 지금 가장 잘할 수 있는 건, 이 앱 만든 개발자에게 몇 천 파운드와 평생 무료 이용권을 주는 것이라고 생각함
Apple Wallet 패스를 만들고 싶은데 개발자 계정 설정과 추가 비용이 부담스러움
배터리 부족 시나 절전 모드에선 아예 전달되지 않아 배터리 소모를 최소화하려고 만들어진 구조임
더 중요한 알림은 UI 요소가 반드시 보여야 하고, 절전 상황과 관계없이 도착함