본문 바로가기
C.W.K.
Stream
Lesson 01 of 04 · published

역공학이 아니라 역스펙

~10 min · reverse-spec, ethics, observable, research

Level 0불씨 없음
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"엔진을 훔치는 게 아냐. 차가 어떻게 달리는지 보고 똑같이 달리는 내 차를 짓는 거야."

볼 수 있는 건 이게 전부

Wispr Flow 는 비공개 소스야. 코드를 못 읽고, 읽으려 들어서도 안 돼. 그런데 볼 수 있는 것만으로 복제에 필요한 게 다 나와. 공개 문서, 지원 페이지, 그리고 실제로 써 볼 때 눈에 보이는 동작. 단축키를 누르면 오디오가 시작돼. 놓으면 텍스트가 나타나고. 필러 단어를 말하면 출력에서 사라져. "아 근데, 그거 화요일로 해줘" 라고 하면 교정이 덧붙는 게 아니라 반영되고. 여기서 소스를 읽어야 알 수 있는 건 하나도 없어. 다 눈에 보이잖아. 그리고 눈에 보이는 동작은 마음껏 다시 만들어도 되는 스펙이야.

역공학과 역스펙

이 둘은 윤리가 다른 별개의 행위야. 역공학은 구현을 뜯는 거야. 바이너리 디컴파일, 알고리즘 추출, 백엔드 복사. 역스펙은 눈에 보이는 인터랙션 모델을 받아 적는 거고. 단축키, 삽입 동작, 정리 느낌. 그러고 나서 처음부터 따로 짓는 거야. 역공학은 걔네가 어떻게 만들었는지를 베끼고, 역스펙은 사용자가 겪는 걸 베껴. Firekeeper 는 역스펙만, 그것도 공개된 자료로만 해.

역공학 (피함)                 역스펙 (이걸 함)
---------------------         ----------------------
바이너리 디컴파일             공개 문서 읽기
내부 알고리즘 복사            관찰 가능한 동작 기록
백엔드 복제                   내 스택에 인터랙션 재구축
프롬프트/브랜딩 복사          내 프롬프트, 내 이름 쓰기

내 것으로 남는 것

동작만 보고 다시 지었으니까 밑에 깔린 게 전부 진짜 네 거야. 네 STT 엔진, 네 정리 프롬프트, 네 삽입 코드, 네 이름. 이게 법적으로 눈가림하는 게 아니야. 그렇게 만든 복제가 오히려 네 목적에 더 맞는 이유지. Wispr 는 클라우드에서 전사해. 네가 다시 지은 건 온디바이스로 전사하고. 걔네 백엔드를 베꼈으면 이건 물려받을 수가 없어. 그 백엔드가 바로 네가 일부러 거부한 그거니까.

경험은 복제하고, 구현은 직접 지어. 비공개 제품에서 다시 쓸 수 있고, 윤리적으로 문제없고, 쓸모까지 있는 건 인터랙션 모델이야. 그러니까 쓸 때 어떤 느낌인지. 그건 공개된 동작만 보고 다시 만들고, 속은 내 방식대로 지어. 좋은 UX 는 챙기고 원치 않던 부분은 하나도 안 딸려 와.
Wispr 를 처음 조사할 때 우리가 한 건 그냥 나랑 아빠가 그걸 써 보면서 소리 내 읊는 거였어. "오케이, 키 누르니까 녹음 시작... 마지막 전사를 유지했네... 'um' 을 벗겼어..." 우리는 보면서 스펙을 쓰고 있었던 거야. 객석에서 마술을 묘사하듯이. 그때 읊은 줄들이 하나하나 Firekeeper 기능이 됐고, 그중 어느 것도 걔네 코드가 필요하지 않았어.

Code

역스펙은 관찰한 동작 목록이야·text
# 공개 문서 + 제품 사용에서 관찰:

단축키 누름            -> 녹음 즉시 시작
단축키 놓음            -> 전사, 정리, 삽입
"um" / "어"             -> 출력에서 제거
"아 근데, X"            -> 교정으로 처리 (덧붙이지 말고 교체)
편집 가능 필드 없음    -> 클립보드 복사 + 알림
"...엔터 쳐"            -> 문구 벗기고, 삽입 후 Enter 합성

# 이 목록이 스펙이야. 여기 어느 것도 걔네 소스코드가 아니고.
# 각 줄을 따로따로 다시 지으면 루프가 완성돼.

External links

Exercise

괜찮다고 생각하는 비공개 제품을 하나 골라서, 기능 하나에 대해 다섯 줄짜리 역스펙을 써봐. 눈에 보이는 동작만, 구현은 추측하지 말고. 그다음 어느 줄을 내 스택에서 다르게, 그리고 더 낫게 다시 지을 수 있는지 표시해.
Hint
잘 쓴 역스펙 줄은 유저 행동으로 시작해서 눈에 보이는 결과로 끝나. 'X 누름 -> Y 벌어짐.' 줄이 내부 메커니즘을 설명하기 시작하면('트랜스포머로...') 스펙에서 추측으로 미끄러진 거야. 잘라내.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.