검증된 자료요청으로 신뢰성 높이기
목차
사용자가 추가되었으면 하는 자료나 콘텐츠를 직접 요청할 수 있는 채널이 필요했다. 많은 팀이 이런 피드백을 슬랙 DM이나 메일로 받다 보니 체계가 없었고, 실제 사용자 요구인지 스팸인지 구분하기도 어려웠다. 그래서 이번엔 위젯과 API를 함께 만들어 신뢰도 높은 채널로 만들기로 했다.
자동생성 없이, 진정성 있는 요청만
커밋 메시지의 핵심은 "(수집만, 자동생성 X — 거짓금지)" 다. 이건 단순한 기술 결정이 아니라 팀의 신뢰도를 지키는 정책이다.
처음엔 "자료요청을 받아서 자동으로 TODO 이슈를 생성하면 효율적이지 않을까?" 라는 아이디어가 있었다. 그런데 한 번 생각해 봤다:
- 거짓 데이터의 위험: 자동화하면 스팸이나 중복 요청이 필터링 없이 시스템에 쌓인다. 지워도 기록은 남는다.
- 팀의 신뢰 훼손: "그건 봇이 만든 이슈고, 사람이 검증한 게 아니잖아?" 라는 의심이 생긴다. 심지어 실제로 검증 없이 쌓이니까 의심이 맞다.
- 검증 비용: 결국 팀이 하나하나 확인해야 하면, 자동화의 이점이 사라진다. 오히려 노이즈가 늘어난다.
그래서 결정한 게: 사용자 요청은 순수하게 수집만 하고, 어떤 요청을 실제 작업으로 삼을지는 팀이 직접 검토한다. 이렇게 하면:
- 사용자는 자기 목소리가 실제로 들린다고 느낀다.
- 팀은 스팸과 진정한 요청을 구분할 수 있다.
- 데이터가 깨끗하고 신뢰도 있어서 나중에 분석하거나 우선순위 결정할 때 정확하다.
위젯과 API의 설계
변경 파일을 보면 구조가 명확하다:
| 파일 | 역할 |
|---|---|
| ContentRequestWidget.astro | 프론트에 보이는 위젯. 사용자가 자료 제목, 설명을 입력하는 폼 |
| Base.astro | 기존 레이아웃에 위젯을 삽입. 사이트 전역에서 접근 가능하게 |
| content-request.ts (API) | POST로 요청을 받아서 데이터에 기록 |
| package.json | 필요한 의존성 추가 (폼 검증, 알림 등) |
위젯은 Astro 컴포넌트로 정적 사이트와 잘 어울리고, API는 TypeScript로 타입 안전하게 처리한다. 사용자 입력이 Base 레이아웃에 포함되니까 모든 페이지에서 접근 가능하면서도, 실제 처리는 한곳(content-request.ts)에서만 한다. 나중에 검증 로직이나 알림을 추가해야 해도 API 한 곳만 수정하면 된다.
회고: 수집과 검증의 분리
이런 유형의 기능 설계할 때 자주 나오는 질문이 "얼마나 자동화할 수 있을까?" 다. 우리가 배운 건:
-
수집(collection)과 액션(action)을 분리하라: 데이터 수집은 자동으로 해도 되지만, 그걸 시스템 변경으로 전환하는 건 사람의 판단이 필요하다. 둘을 섞으면 나중에 롤백하거나 정책을 바꾸기 어렵다.
-
신뢰도가 높으면 나중에 자동화 여지가 있다: 깨끗한 데이터가 쌓이면, "가장 많이 요청된 자료 TOP 5", "최근 24시간 요청 추이" 같은 통계도 의미 있고, 필요하면 나중에 자동화 규칙도 추가할 수 있다.
-
사용자는 "진정성"을 센다: 자동으로 이슈가 생기지 않더라도, 요청이 어디로 가고 누가 봐주는지 알면 참여하려 한다. 역으로 "봇이 처리한다"고 느껴지면 사용자는 제대로 된 피드백을 안 준다.
비슷한 상황 — 피드백, 건의사항, 버그 신고, 구독자 목록 — 에선 항상 이 원칙을 적용한다. 수집만 하고, 검증은 팀이, 액션은 의도적으로. 한 번 정해진 이 흐름은 사이드 프로젝트에서도, 본 서비스에서도 든든한 기초가 된다.
🛒 이 글과 어울리는 추천 상품
*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.
댓글 0
첫 댓글 달아줘.