서버 없는 도구를 고집하는 이유
OEZ Works의 도구에는 공통 원칙이 하나 있습니다. 사용자가 입력한 데이터는 서버로 보내지 않고, 그 사람의 브라우저 안에서만 처리한다는 것입니다. 이 글은 왜 그런 선택을 했는지, 그리고 무엇을 포기해야 했는지에 대한 기록입니다.
상세페이지는 생각보다 민감한 데이터입니다
상세페이지 HTML에는 단순한 코드 이상이 담겨 있습니다. 아직 공개 전인 신상품의 사진과 설명, 원가 구조를 짐작할 수 있는 문구, 사입처가 드러나는 이미지 주소가 섞여 있는 경우가 많습니다. 셀러 입장에서 이런 데이터를 정체 모를 사이트의 서버에 업로드하는 것은 꺼려질 수밖에 없고, 저 역시 셀러로서 남의 서버에 제 상세페이지를 올리고 싶지 않았습니다.
그래서 변환기는 처음부터 브라우저 완결형으로 설계했습니다. HTML을 붙여넣으면 브라우저에 내장된 DOM 파서가 그 자리에서 코드를 해석하고, 변환 결과도 같은 화면에서 만들어집니다. 네트워크 탭을 열어 확인해보면 변환 과정에서 어떤 데이터도 전송되지 않는 것을 직접 볼 수 있습니다.
서버가 없어서 좋은 점
- 개인정보 부담이 없습니다. 입력 데이터를 수집하지 않으니 유출될 데이터 자체가 없습니다. 개인정보처리방침도 그만큼 단순하고 투명해집니다.
- 속도가 빠릅니다. 업로드와 다운로드 대기 없이 붙여넣는 즉시 결과가 나옵니다. 수백 킬로바이트짜리 상세페이지도 순식간에 처리됩니다.
- 운영이 지속 가능합니다. 서버 비용이 들지 않으니 1인 운영으로도 도구를 무료로 계속 제공할 수 있습니다. 갑자기 이용자가 늘어도 서버가 죽을 일이 없습니다.
포기해야 했던 것들
물론 공짜는 아닙니다. 서버가 없으면 변환 이력을 저장해주는 기능, 여러 기기에서 이어서 작업하는 기능은 만들 수 없습니다. 이미지 파일을 대신 호스팅해주는 기능도 불가능합니다. 외부 이미지가 판매 채널에서 차단되는 문제는 변환기가 가장 자주 받는 질문인데, 서버가 없는 한 "이미지를 내려받아 채널에 직접 업로드하세요"라고 가이드로 안내하는 것이 최선입니다.
또 하나의 제약은 브라우저 성능에 의존한다는 점입니다. 아주 오래된 브라우저에서는 동작하지 않을 수 있고, 처리 속도도 사용자의 기기에 따라 달라집니다. 다만 요즘 브라우저의 성능이면 상세페이지 변환 정도는 충분하다는 것이 지금까지의 결론입니다.
앞으로도 이 원칙을 지킬 겁니다
앞으로 만들 도구도 가능한 한 브라우저 완결형을 유지할 계획입니다. 서버가 꼭 필요한 기능이 생긴다면, 무엇이 전송되고 무엇이 저장되는지 그 도구의 안내 페이지에 구체적으로 밝힌 뒤에 만들겠습니다. 도구는 편리해야 하지만, 사용자가 자기 데이터가 어디로 가는지 몰라야 편리해지는 도구라면 만들지 않는 것이 낫다고 생각합니다.