처음 Base64를 접한 건 ChatGPT API에 이미지를 보낼 때였습니다. 이미지를 Base64로 변환해서 넘겨야 하거든요. 그때는 남들이 만든 도구를 그냥 갖다 썼습니다.
근데 웹 수익화를 리서치하다 보니, 이 Base64 변환 도구를 사람들이 꽤 많이 쓴다는 걸 알게 됐습니다. 그래서 직접 써봤는데요. UI가 10년 전 느낌이더라고요. 더 큰 문제는 한글이었습니다. "안녕하세요"를 인코딩했는데 깨져서 나오고, 디코딩도 제대로 안 됐습니다.
이런 기본적인 것도 안 되는데 상위에 노출되고 있다? 그럼 내가 만들면 되겠다 싶었습니다.
한글 깨짐 문제
JavaScript의 btoa()와 atob()는 기본적으로 유니코드를 제대로 처리 못합니다. Cursor AI한테 물어보니까 TextEncoder와 TextDecoder로 UTF-8 바이트 변환을 거치면 된다고 하더라고요. 금방 해결됐습니다.
상위 노출 사이트들을 확인해보니 대부분 영문만 제대로 처리하고 한글은 깨지는 경우가 많았습니다. 이 부분에서 좀 유리할 수 있겠다 싶었습니다.
뭘 만들었냐면
텍스트를 Base64로 인코딩하고, 반대로 디코딩하는 기본 기능. 입력하는 즉시 실시간으로 결과가 나옵니다.
이미지 파일도 됩니다. 드래그 앤 드롭으로 이미지 올리면 자동으로 Base64 문자열로 변환해줍니다. 큰 이미지는 문자열이 너무 길어져서 성능 문제가 생길 수 있으니까 파일 크기 제한을 두고 경고를 띄우도록 했습니다.
복사 버튼도 당연히 있습니다. 긴 Base64 문자열 드래그해서 복사하는 건 너무 고통스럽잖아요.
모바일에서도 쓸 수 있게 반응형으로 만들었고, 디자인도 좀 모던하게 했습니다.
수익화는 어떻게 되고 있냐면
솔직히 말하면 아직 에드센스 심사도 안 통과됐습니다. 전략이랄 것도 없고, 일단 검색 상위에 노출되는 걸 노리는 중입니다. 사용자 경험을 잘 만들어놓으면 트래픽이 오지 않을까 하는 막연한 기대. 되면 좋고, 안 되면 뭐 내가 쓰면 되니까요.
직접 써보고 싶으면 Base64 인코더/디코더에서 확인할 수 있습니다.