방문자 통계와 Anti Spam 기능을 직접 만든 이유
CY Mini Project를 개발하면서 홈페이지를 실제로 운영하기 시작하자 새로운 고민이 생겼다.
콘텐츠를 작성하는 것만으로는 사이트를 관리하기 어려웠다.
누가 방문했는지,
어떤 페이지를 많이 보는지,
스팸 댓글은 얼마나 들어오는지,
이런 운영 정보를 함께 확인할 수 있어야 했다.
워드프레스에는 이미 다양한 통계와 보안 플러그인이 존재한다.
하지만 프로젝트의 방향에 맞는 기능은 직접 만드는 편이 더 적합하다고 판단했다.
그래서 CY Mini Analytics와 CY Mini Anti Spam 개발을 시작하게 되었다.
방문자 수보다 중요한 것은 방문 흐름
초기의 Analytics는 매우 단순했다.
오늘 방문자(Today)와 전체 방문자(Total)를 표시하는 정도였다.
개인 홈페이지에서는 이 정도만으로도 충분할 것이라고 생각했다.
하지만 실제로 사이트를 운영하면서 필요한 정보가 조금씩 달라졌다.
예를 들어 다음과 같은 정보가 궁금해졌다.
- 어떤 글을 가장 많이 읽는가
- 최근 방문자는 어떤 페이지를 살펴봤는가
- 새로운 글을 올리면 방문이 얼마나 증가하는가
- 어느 콘텐츠가 꾸준히 조회되는가
단순한 숫자보다 사이트가 어떻게 이용되고 있는지를 확인할 수 있는 정보가 더 중요해졌다.
개인 홈페이지에 맞는 Analytics
대형 사이트와 개인 홈페이지는 필요한 통계가 다르다.
광고 수익이나 마케팅을 위한 분석보다는,
사이트를 관리하는 데 도움이 되는 정보가 더 중요했다.
그래서 CY Mini Analytics는 다음과 같은 방향으로 설계하고 있다.
- Today / Total 방문자
- 최근 방문 기록
- 인기 콘텐츠
- 최근 업데이트와 방문 변화
- 콘텐츠 유형별 조회 현황
복잡한 분석 도구보다는 운영자가 사이트의 상태를 빠르게 확인할 수 있는 구성을 목표로 하고 있다.
개인정보 수집은 최소화
방문자 통계를 만들면서 가장 먼저 결정한 것은 개인정보를 과도하게 저장하지 않는 것이었다.
필요 이상의 정보를 장기간 보관하면 관리 부담도 커지고 개인정보 보호 측면에서도 신중해야 한다.
그래서 Analytics는 개인 홈페이지 운영에 필요한 범위 안에서만 데이터를 활용하는 방향으로 개발하고 있다.
필요한 통계는 제공하되, 불필요한 정보는 저장하지 않는 것이 기본 원칙이다.
스팸도 함께 늘어나기 시작했다
사이트를 공개하면 가장 먼저 늘어나는 것 가운데 하나가 스팸이다.
특히 댓글 기능을 활성화하면 자동 등록 프로그램이나 광고성 댓글이 계속 유입될 가능성이 있다.
외부 서비스를 사용하는 방법도 있지만, 프로젝트에서는 가능한 한 워드프레스 자체 기능을 활용하는 방향을 선택했다.
그래서 별도의 CY Mini Anti Spam 플러그인을 개발하기 시작했다.
필요한 기능만 직접 구현
Anti Spam 역시 처음부터 큰 기능을 목표로 하지는 않았다.
실제로 운영하면서 필요한 기능을 하나씩 추가하는 방식으로 개발했다.
현재는 다음과 같은 기능을 제공한다.
- 금지어 검사
- 링크 개수 검사
- 특정 도메인 차단
- 기본적인 스팸 패턴 검사
복잡한 인공지능 분석보다 일반적인 스팸을 빠르게 차단하는 데 초점을 맞추고 있다.
워드프레스 구조를 최대한 활용
Anti Spam을 개발하면서 중요하게 생각한 것은 워드프레스의 기본 구조를 유지하는 것이었다.
가능한 한 WordPress 공식 API를 활용하고,
업데이트와 Migration에도 영향을 최소화하는 방향으로 개발을 진행하고 있다.
또한 PHP 8.x 환경에서도 문제없이 동작하도록 지속적으로 테스트하고 있다.
프로젝트와 함께 계속 발전하는 기능
Analytics와 Anti Spam은 모두 현재 진행형인 프로젝트이다.
사이트를 운영할수록 필요한 기능이 계속 생기고 있다.
Analytics에서는
- 방문 추세
- 콘텐츠별 통계
- 관리자 요약 화면
등을 추가로 검토하고 있다.
Anti Spam 역시 새로운 스팸 유형에 대응하기 위해 계속 개선할 계획이다.
운영 도구도 프로젝트의 일부
CY Mini Project는 단순히 방문자에게 보여지는 화면만 개발하는 프로젝트가 아니다.
사이트를 운영하는 사람의 입장에서도 관리하기 쉬운 환경을 만드는 것을 목표로 하고 있다.
Analytics는 사이트의 상태를 확인하는 역할을,
Anti Spam은 사이트를 안정적으로 운영하기 위한 역할을 담당한다.
두 플러그인 모두 눈에 잘 보이지는 않지만, 프로젝트를 운영하는 데 필요한 기반 기능이라고 생각한다.
💬 댓글 (0)