몇 년 전에 누군가가 왜 온라인 도구 웹사이트를 만드느냐고 물었다면, 저는 좀 이상한 질문이라고 생각했을 겁니다.
제 기억에는 이미 인터넷에 너무 많은 도구 웹사이트가 있기 때문입니다.
이미지 압축, PDF 변환, JSON 포맷팅, QR 코드 생성, 색상 변환 등 거의 모든 수요에 대해 수십 개, 심지어 수백 개의 웹사이트를 찾을 수 있습니다. 많은 도구는 십 년 이상 운영되어 방대한 사용자 그룹을 보유하고 있습니다.
그렇다면 왜 다시 하나를 만들까요?
솔직히 처음에는 알지 못했습니다.
처음에는 단지 자신의 문제를 해결하고 싶었습니다
많은 프로그래머들에게는 습관이 있습니다.
문제가 생기면 소프트웨어를 다운로드하기보다 브라우저를 열고 온라인 도구를 검색하는 것이 첫 반응입니다.
때로는 이미지를 압축해야 합니다.
때로는 JSON 코드를 포맷해야 합니다.
때로는 UUID를 생성해야 합니다.
때로는 이미지를 자르거나, 포맷을 변환하거나, QR 코드를 생성하는 것뿐입니다.
이러한 수요는 복잡하지 않지만 매일 마주칩니다.
그래서 저는 각종 도구 웹사이트를 즐겨찾기하기 시작했습니다.
브라우저 즐겨찾기 목록은 점점 길어졌습니다.
어느 날, 저는 아주 흥미로운 현상을 발견했습니다.
거의 모든 웹사이트가 제가 정말 편하다고 느끼지 못했습니다.
어떤 웹사이트는 광고가 내용보다 많았습니다.
어떤 웹사이트는 사용하려면 로그인해야 했습니다.
어떤 웹사이트는 속도가 느려서 작은 기능 하나에도 오래 기다려야 했습니다.
어떤 웹사이트는 파일을 서버에 업로드하여 제 데이터가 얼마나 오래 저장되는지 알 수 없었습니다.
또 다른 웹사이트는 인터페이스가 십 년 전에 머물러 있어 모바일에서 제대로 사용할 수 없었습니다.
그래서 저는 이런 생각을 했습니다:
만약 제가 자주 사용하는 이런 작은 도구들을 다시 만들어 보면 어떨까요?
처음에는 단지 연습 프로젝트였습니다.
상업 계획도 없고 제품 규획도 없었습니다.
단지 매일 사용하고 싶은 웹사이트를 만들고 싶었을 뿐입니다.
코드 작성은 사실 어렵지 않습니다, 어려운 것은 세부 사항을 잘 처리하는 것입니다
정말 시작한 후, 저는 기능 개발이 오히려 가장 간단한 부분이라는 것을 발견했습니다.
정말 시간이 걸리는 것은 사용자가 거의 알아차리지 못하는 세부 사항들이었습니다.
예를 들어 페이지 로딩 속도입니다.
많은 사람들은 이미지 자르기 도구가 조금 느리게 열려도 괜찮다고 생각할 수 있습니다.
하지만 저는 그렇게 생각하지 않습니다.
만약 도구가 삼사 초 기다려야 한다면, 저는 차라리 최적화를 다시 하고 사용자가 한 번 더 기다리게 하지 않겠습니다.
그래서 저는 성능 최적화를 계속 연구하기 시작했습니다.
이미지를 어떻게 지연 로딩하나요?
JavaScript를 어떻게 분할하나요?
어떤 리소스를 캐시해야 하나요?
어떤 리소스를 장기 캐시해야 하나요?
어떤 요청이 첫 화면 렌더링에 영향을 미치나요?
어떤 코드는 사실 로딩할 필요가 없는가요?
약간의 점수를 높이기 위해, 저는 반복적으로 페이지 성능을 테스트했습니다.
때로는 설정 하나를 수정하는 것뿐입니다.
때로는 수십 KB의 리소스를 줄이는 것뿐입니다.
사용자가 이러한 변화를 느끼지 못할 수도 있지만, 모든 최적화가 겹쳐져 결국 전체 웹사이트를 더 빠르고 부드럽게 만들어 줍니다.
도구 만들기는 상상보다 복잡합니다
처음에는 도구 만들기가 기능을 작성하는 것이라고 생각했습니다.
나중에야 진정으로 오래 사용할 수 있는 웹사이트에는 보이지 않는 작업이 많다는 것을 알게 되었습니다.
예를 들어 국제화입니다.
만약 중국어 웹사이트만 만든다면, 개발은 사실 간단합니다.
하지만 더 많은 나라의 사람들도 사용할 수 있기를 바란다면, 단순히 텍스트를 번역하는 것뿐만이 아닙니다.
다른 언어의 조판도 고려해야 합니다.
다른 나라 사용자의 사용 습관도 고려해야 합니다.
검색 엔진이 어떻게 다른 언어 페이지를 인식하는지.
URL을 어떻게 설계할지.
페이지 제목과 설명을 어떻게 다른 언어에 맞게 최적화할지.
이러한 것들은 기능으로 보이지 않지만,
웹사이트가 진정으로 더 많은 사람들을 서비스할 수 있는지를 결정합니다.
SEO는 상상보다 더 어렵습니다
예전에는 웹사이트만 잘 만들면 검색 엔진이 자연스럽게 색인할 것이라고 생각했습니다.
나중에야 일이 그렇게 단순하지 않다는 것을 알게 되었습니다.
저는 사이트맵을 연구하기 시작했습니다.
구조화된 데이터를 연구했습니다.
페이지 제목을 연구했습니다.
메타 설명을 연구했습니다.
캐노니컬을 연구했습니다.
오픈 그래프를 연구했습니다.
페이지 캐싱을 연구했습니다.
코어 웹 바이탈을 연구했습니다.
구글과 빙이 왜 어떤 페이지를 색인하고 다른 페이지를 무시하는지 연구했습니다.
때로는 아주 작은 문제 하나에도 몇 시간, 심지어 며칠을 들여 답을 찾아야 할 수 있습니다.
이것도 이 웹사이트를 만든 가장 큰 수확 중 하나입니다.
그것은 저에게 웹사이트가 단지 페이지와 코드가 아니라는 것을 진정으로 이해하게 해 주었습니다.
또한 많은 숨겨진 규칙들이 있습니다.
왜 무료를 고집하나요?
많은 친구들이 저에게 이 도구들이 앞으로 유료화될지 물어봤습니다.
현재, 제 대답은 부정적입니다.
최소한 대부분의 기본 도구에 대해서는, 그것들이 계속 무료이기를 바랍니다.
왜냐하면 저 자신이 바로 이러한 도구의 사용자이기 때문입니다.
저는 알고 있습니다, 이미지를 압축하고 싶을 때 유료 팝업을 보고 싶지 않다는 것을요.
파일을 변환하고 싶을 때 먼저 계정을 등록하고 싶지도 않다는 것도요.
도구는 문제를 해결해야지 새로운 문턱을 만들어서는 안 됩니다.
물론, 웹사이트에는 서버가 필요하고, 유지보수가 필요하며, 지속적인 개발도 필요합니다.
미래에는 광고나 프리미엄 기능 같은 비즈니스 모델이 생길 수도 있습니다.
하지만 그것이 일반 사용자의 가장 기본적인 사용 경험에 영향을 주지 않기를 바랍니다.
ToolAct라는 이름
많은 사람들이 ToolAct를 처음 보면 이 이름이 무슨 뜻이냐고 물어봅니다.
사실 특별히 복잡한 이야기는 없습니다.
저는 이 웹사이트가 단순히 도구들을 모아놓은 것이 아니기를 바랍니다.
더 중요한 것은, 도구가 실제로 사람들의 행동(Act)을 돕는 것입니다.
도구 자체에는 가치가 없습니다.
진정한 가치는 시간을 절약하고 일을 더 빨리 완료할 수 있게 도와주는 것입니다.
그래서 많은 도구를 즐겨찾기하는 것보다, 웹사이트를 열고, 사용하고, 닫고, 자신의 일을 계속하기를 바랍니다.
도구는 주인공이 아니라 배경이 되어야 합니다.
웹사이트를 만드는 것은 배우는 것이기도 합니다
많은 사람들이 웹사이트를 보면 이미 완성되었다고 생각합니다.
하지만 개발자에게는 영원히 시작일 뿐입니다.
기능을 하나 추가할 때마다 새로운 것을 배웁니다.
이메일 시스템.
로그인 인증.
캐시 전략.
국제화.
접근성 지원.
브라우저 호환성.
검색 엔진 최적화.
보안.
성능 최적화.
이 지식들 중 많은 것이 이전에는 문서에만 머물러 있었습니다.
직접 해봐야 얼마나 많은 세부 사항이 있는지 알 수 있습니다.
이 프로젝트 덕분에 사용자가 진정으로 무엇을 필요로 하는지에 더 관심을 가지게 되었습니다.
앞으로
ToolAct에는 아직 개선해야 할 곳이 많습니다.
더 많은 도구가 추가될 것입니다.
더 많은 언어를 지원할 것입니다.
속도를 지속적으로 최적화할 것입니다.
사용자 경험도 꾸준히 개선할 것입니다.
하룻밤 사이에 수천, 수만의 사용자가 생기기를 기대하지는 않습니다.
오히려 이곳을 찾는 모든 분들이 자신의 문제를 빠르게 해결하고, 다음에 다시 오고 싶어하시기를 바랍니다.
언젠가 온라인 도구가 필요할 때 머릿속에 ToolAct가 떠오른다면.
그렇다면 이 프로젝트는 이미 반은 성공했다고 생각합니다.
마지막으로
인터넷에는 매일 새로운 제품이 등장하고, 많은 웹사이트가 조용히 사라집니다.
ToolAct가 얼마나 멀리 갈 수 있을지 저는 모릅니다.
하지만 적어도 지금, 저는 여전히 기꺼이 코드를 쓰고, 남들이 눈치채지 못할 세부 사항을 최적화하고, 진정으로 유용한 작은 도구들을 추가하고 있습니다.
이 글을 읽고 계신다면, ToolAct에 오신 것을 환영합니다.
이곳의 도구 중 하나가 언젠가 여러분의 시간을 몇 분 절약하고, 작은 문제를 해결하는 데 도움이 되기를 바랍니다.
정말 그렇다면, 이 웹사이트를 만들기로 결심한 것은 가치 있는 일이었을 것입니다.