누군가 새 게시물을 작성하면 "당신의 주제가 …와 유사합니다"라는 작은 알림이 뜨는데, 여기에 추가적인 내용을 넣을 수 있을까요?
특히, 게시물에 이미지가 삽입되는 것을 감지한 후 사용자에게 다음과 같은 메시지를 표시할 수 있다면 좋겠습니다: “텍스트, 로그 또는 코드의 사진을 게시하지 마세요. 읽기 어렵고, 검색이 불가능하며(코드의 경우) 재현이 불가능할 수 있고, 일부 사용자는 아예 볼 수조차 없을 수 있습니다.”
우리 쪽에서는 UI 요소가 필요한 스크린샷이 포함된 게시물도 받지만, 설정 파일이나 로그 파일, 기타 텍스트 매체의 스크린샷(또는 화면 사진!)을 올리는 경우가 훨씬 더 많습니다.
네, 그 고충 충분히 이해합니다. 하지만 솔직히, 스크린샷을 올리는 사람들이 문제만 있고 설명이나 기록도 없이 말만 하는 사람들보다 백만 배나 앞선다고 느껴요. 해결책은 없지만, 이미지를 OCR로 처리하는 쪽이 사람들이 시도하려는 걸 탓하는 것보다 훨씬 생산적이라고 생각해요…
당연히 가능하지만, 이런 기능은 플러그인 형태로 구현해야 합니다. 특히 구현 방식에 따라 달라질 수 있습니다.
tesseract 같은 도구는 설치하기가 꽤 까다로워서 선택의 기로에 서게 됩니다. 새로운 API를 따로 세팅하거나, 아니면 애플리케이션 컨테이너를 오염시키거나 둘 중 하나입니다. API를 따로 세팅하면 격리가 더 잘 되지만, 이 플러그인을 설치하는 사람(우리의 호스팅 환경이 아닌 경우)은 이 작업을 수행하기 위해 두 번째 컨테이너를 구성하고 세팅해야 합니다.
타임아웃 처리에 매우 주의해야 합니다(코드 스크린샷인지 파악하는 데 10초가 걸린다면, 사용자는 무엇을 보게 될까요?).
즉석에서 생각해본 아이디어는 다음과 같습니다.
사용자가 이미지를 게시
게시글에 이미지가 표시됨
(동시에) 게시글이 "이것이 코드 스크린샷인지 감지"하는 서비스로 전송됨
서비스가 마침내 응답하면 경고를 표시
이미지 업로드를 모두 차단하는 것(로컬 서비스인 경우에도)은 위험할 수 있습니다. 최종 사용자의 경험이 크게 저하될 수 있기 때문입니다.
게시 직전에 큐에 남은 것이 없는지 확인하기 위해 “최종” 지연을 한 번 두는 것도 방법이겠지요.
이것들은 우리가 맡을 수 있는 잠재적으로 실현 가능한 작업들이지만, 먼저 작업할 데이터셋(예: 코드 스니펫 이미지 50개 … 코드 스니펫이 아닌 이미지 50개)이 필요합니다. 그래야 기대치를 설정할 수 있습니다.
매우 모호한(fuzzy) 문제이므로, 이 기능이 얼마나 잘 작동할 수 있는지 파악하는 데 예시가 도움이 될 것입니다.
흥미로운 변형은, 이 마법 같은 서비스가 소스 코드를 "스크린샷에서 추출"하여 사용자에게 알려주는 것입니다. "여기 소스 코드를 게시하려는 것 같은데, 이 텍스트 블록으로 변경해 드릴까요?"라고 말이죠.