어느 날 갑자기 이런 생각이 들었습니다. "워치로 폰 커서 움직이면 멋있지 않나?" 손목 까딱하면 커서가 움직이고, 손목 흔들면 켜지고 꺼지는 그런 거요. 워치 앱을 만들어 본 적은 없지만 바이브코딩이 있어서 한번 만들어보기로 했습니다. Claude한테 "이거 만들 수 있어?"라고 물어봤더니 된다고 해서 바로 시작했습니다.
통신이 안 됨
워치 앱 설치하고, 폰 앱 설치하고, 실행했는데 아무 일도 안 일어났습니다. 워치에서는 데이터를 보낸다고 하는데 폰에서 안 받아지는 거예요. 에러 메시지도 없고... Claude가 코드를 이리저리 고쳐줬는데 계속 안 됐습니다. "코드는 맞는 것 같은데요..."를 몇 번을 들었는지 모르겠습니다. 한참 후에야 원인을 찾았는데 워치 앱은 com.airmouse.sensor이고 폰 앱은 com.airmouse.phone이었거든요. 근데 이 Wearable Data Layer API라는 게 같은 패키지명끼리만 통신이 된다고 합니다. 이걸 왜 처음에 안 알려줬는지... 그다음에는 앱 서명이 달랐습니다. 패키지명 맞췄는데도 안 돼서 또 한참 헤맸어요. 워치 앱이랑 폰 앱을 따로따로 프로젝트로 만들어서 서명 키가 달랐던 겁니다. 결국 하나의 프로젝트 안에 워치 앱이랑 폰 앱을 같이 넣어서 해결했습니다. 여기까지 오는 데 생각보다 많이 걸렸어요...ㅠ
왜 이렇게 오래 걸렸나
돌아보니까 이유가 있었습니다. 저는 워치랑 폰이 어떻게 통신하는지 전혀 몰랐습니다. 그냥 "만들어줘"하고 시작했거든요. 그러니까 어디서 문제가 생긴 건지 감을 못 잡았어요. 워치가 데이터를 안 보내는 건지, 보내는데 폰이 못 받는 건지, 받는데 처리를 못 하는 건지. 전혀 모르니까 Claude한테 "안 돼"밖에 못 했습니다. 에러가 날 수 있는 곳도 너무 많았습니다. 워치에서 센서 데이터 읽을 때, 워치에서 데이터 보낼 때, 폰에서 데이터 받을 때, 폰에서 커서 움직일 때... 이걸 순서 없이 왔다 갔다 확인하니까 시간이 생각보다 오래 걸리더라고요. 처음부터 AI한테 체크리스트 만들어서 순서대로 디버깅하라고 시켰으면 아마 더 빨리 완성하지 않았을까 생각이 듭니다.
완성
어쨌든 결국 됐습니다. 손목을 위로 기울이면 커서가 위로 가고, 아래로 기울이면 아래로 갑니다. 손목을 흔들면 ON/OFF도 됩니다. 처음 커서가 움직였을 때 진짜 신기했어요. "오 진짜 되네?" 근데 쓸 수 있나? 어찌저찌해서 결국 완성은 했어요. 손목을 위로 기울이면 커서가 위로 가고, 아래로 기울이면 아래로 갑니다. 손목을 흔들면 ON/OFF도 됩니다. 하지만 실사용은 힘들 것 같더라고요. 정밀한 조작이 안 돼요. 작은 버튼 누르려면 커서가 왔다 갔다 하는데 엄청 불편했어요;;; 편하게 사용하려고 가속도 센서 사용하려다가 기울기 센서로 바꾼 건데도 생각보다 정밀하게 작동하지 못했어요.
마무리
실용성은 별로지만, 워치 앱도 바이브코딩으로 만들 수 있다는 건 신기했습니다. 센서 읽고, 다른 기기랑 통신하고, 이런 것도 되는구나 싶었어요. 다음엔 뭘 만들어볼까 고민 중입니다ㅎ
댓글을 작성하려면 로그인이 필요합니다.
어느 날 갑자기 이런 생각이 들었습니다. "워치로 폰 커서 움직이면 멋있지 않나?" 손목 까딱하면 커서가 움직이고, 손목 흔들면 켜지고 꺼지는 그런 거요. 워치 앱을 만들어 본 적은 없지만 바이브코딩이 있어서 한번 만들어보기로 했습니다. Claude한테 "이거 만들 수 있어?"라고 물어봤더니 된다고 해서 바로 시작했습니다.
통신이 안 됨
워치 앱 설치하고, 폰 앱 설치하고, 실행했는데 아무 일도 안 일어났습니다. 워치에서는 데이터를 보낸다고 하는데 폰에서 안 받아지는 거예요. 에러 메시지도 없고... Claude가 코드를 이리저리 고쳐줬는데 계속 안 됐습니다. "코드는 맞는 것 같은데요..."를 몇 번을 들었는지 모르겠습니다. 한참 후에야 원인을 찾았는데 워치 앱은 com.airmouse.sensor이고 폰 앱은 com.airmouse.phone이었거든요. 근데 이 Wearable Data Layer API라는 게 같은 패키지명끼리만 통신이 된다고 합니다. 이걸 왜 처음에 안 알려줬는지... 그다음에는 앱 서명이 달랐습니다. 패키지명 맞췄는데도 안 돼서 또 한참 헤맸어요. 워치 앱이랑 폰 앱을 따로따로 프로젝트로 만들어서 서명 키가 달랐던 겁니다. 결국 하나의 프로젝트 안에 워치 앱이랑 폰 앱을 같이 넣어서 해결했습니다. 여기까지 오는 데 생각보다 많이 걸렸어요...ㅠ
왜 이렇게 오래 걸렸나
돌아보니까 이유가 있었습니다. 저는 워치랑 폰이 어떻게 통신하는지 전혀 몰랐습니다. 그냥 "만들어줘"하고 시작했거든요. 그러니까 어디서 문제가 생긴 건지 감을 못 잡았어요. 워치가 데이터를 안 보내는 건지, 보내는데 폰이 못 받는 건지, 받는데 처리를 못 하는 건지. 전혀 모르니까 Claude한테 "안 돼"밖에 못 했습니다. 에러가 날 수 있는 곳도 너무 많았습니다. 워치에서 센서 데이터 읽을 때, 워치에서 데이터 보낼 때, 폰에서 데이터 받을 때, 폰에서 커서 움직일 때... 이걸 순서 없이 왔다 갔다 확인하니까 시간이 생각보다 오래 걸리더라고요. 처음부터 AI한테 체크리스트 만들어서 순서대로 디버깅하라고 시켰으면 아마 더 빨리 완성하지 않았을까 생각이 듭니다.
완성
어쨌든 결국 됐습니다. 손목을 위로 기울이면 커서가 위로 가고, 아래로 기울이면 아래로 갑니다. 손목을 흔들면 ON/OFF도 됩니다. 처음 커서가 움직였을 때 진짜 신기했어요. "오 진짜 되네?" 근데 쓸 수 있나? 어찌저찌해서 결국 완성은 했어요. 손목을 위로 기울이면 커서가 위로 가고, 아래로 기울이면 아래로 갑니다. 손목을 흔들면 ON/OFF도 됩니다. 하지만 실사용은 힘들 것 같더라고요. 정밀한 조작이 안 돼요. 작은 버튼 누르려면 커서가 왔다 갔다 하는데 엄청 불편했어요;;; 편하게 사용하려고 가속도 센서 사용하려다가 기울기 센서로 바꾼 건데도 생각보다 정밀하게 작동하지 못했어요.
마무리
실용성은 별로지만, 워치 앱도 바이브코딩으로 만들 수 있다는 건 신기했습니다. 센서 읽고, 다른 기기랑 통신하고, 이런 것도 되는구나 싶었어요. 다음엔 뭘 만들어볼까 고민 중입니다ㅎ
댓글을 작성하려면 로그인이 필요합니다.