# 부상 중인 최상위 기여자 파악하기

**URL:** https://meta.discourse.org/t/identifying-up-and-coming-top-contributors/317633
**Category:** Community Building
**Created:** [7월 22, 2024, 4:40오후 UTC](https://meta.discourse.org/t/identifying-up-and-coming-top-contributors/317633 "2024-07-22T16:40:32Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![noahl](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/noahl/32/552343_2.png) [@noahl](https://meta.discourse.org/u/noahl)
#### Post date: [7월 22, 2024, 4:40오후 UTC](https://meta.discourse.org/t/identifying-up-and-coming-top-contributors/317633/1 "2024-07-22T16:40:32Z")

</div>

상승 중인 상위 기여자들을 어떻게 식별하고 계신가요?

계정 목록과 기여 빈도를 조회하여 상위 기여자 목록을 추론하는 것은 비교적 쉽지만, 상위 기여자로 나아가는 추세에 있는 계정을 식별하는 방법이 있을까요?

이런 계정들을 더 잘 "육성"하고 싶습니다. 예를 들어, 이모지 반응이나 "좋은 답변이네요"라는 답글을 달아 그들의 기여를 인정해 주는 것과 같은 간단한 조치들을 말입니다.

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [7월 22, 2024, 6:53오후 UTC](https://meta.discourse.org/t/identifying-up-and-coming-top-contributors/317633/2 "2024-07-22T18:53:29Z")

</div>

데이터 탐색기를 사용하면 많은 정보를 추출할 수 있다고 생각합니다. 최상위 기여자를 분류하는 기준에 따라 달라지겠지만, 예를 들어 TL3 등급에 근접한 사용자를 확인하려면 다음과 같은 쿼리를 사용할 수 있습니다: [Find the users which are more likely to become TL3 - #19 by ganncamp](https://meta.discourse.org/t/find-the-users-which-are-more-likely-to-become-tl3/91495/19?u=jammydodger)

---

<div class="post-metadata">

### Author: ![davidkingham](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/davidkingham/32/119528_2.png) [@davidkingham](https://meta.discourse.org/u/davidkingham)
#### Post date: [7월 22, 2024, 6:58오후 UTC](https://meta.discourse.org/t/identifying-up-and-coming-top-contributors/317633/3 "2024-07-22T18:58:33Z")

</div>

참고로 Claude(저는 3.5 Sonnet을 사용 중입니다)를 사용하면 꽤 복잡한 쿼리를 만들 수 있습니다. 제가 제공한 매우 구체적인 기준에 따라 사용자에게 점수를 매기는 쿼리를 만들었는데, 원하는 수준까지 만들기 위해 상당한 시행착오가 필요했지만, 결국 결과에 매우 만족하고 있습니다. 가장 어려운 부분은 사용할 기준을 정하는 것이었습니다.

이 작업에 OpenAI와 Gemini도 시도해 봤는데, Claude가 압도적으로 우수했습니다.

---

<div class="post-metadata">

### Author: ![ganncamp](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ganncamp/32/106199_2.png) [@ganncamp](https://meta.discourse.org/u/ganncamp)
#### Post date: [7월 22, 2024, 7:17오후 UTC](https://meta.discourse.org/t/identifying-up-and-coming-top-contributors/317633/4 "2024-07-22T19:17:27Z")

</div>

우리가 처음 시도한 것은 리더보드였지만, 이는 순수한 양(예: “수정됐어? 수정됐어? 수정됐어? 여보세요?”)을 품질보다 더 높게 평가하는 경향이 있습니다. 네, "품질"을 알고리즘으로 측정하는 것은 어렵지만 [명확하게 개선할 수 있는 부분들이 있습니다](https://meta.discourse.org/t/throttle-back-leaderboard-cheers-for-posts-on-own-topics/282822).

우리가 진정으로 도움이 되는 사용자를 식별하기 위해 시작한 작업은 다음과 같습니다.

> **다른 사용자가 첫 번째로 답변한 스레드를 찾는 것**
>
> ```plaintext
> -- Goal: Find topics where first non-OP reply is a non-SonarSourcer
> 
> WITH
> 
> SonarSourcers AS (
> SELECT u.id AS user_id
> FROM groups g
> INNER JOIN group_users gu ON g.id=gu.group_id
> INNER JOIN users u ON u.id = gu.user_id
> WHERE g.name='sonarsourcers'
> ),
> 
> tagged_topics AS (
> SELECT tt.topic_id
> FROM topic_tags tt
> JOIN tags t on t.id=tt.tag_id
> WHERE name = 'me-too'
> ),
> 
> -- find 'regular' topics created by normal users
> topic_user AS (
> SELECT id as topic_id, user_id, created_at
> FROM topics
> LEFT JOIN SonarSourcers ss USING(user_id)
> LEFT JOIN tagged_topics tt on topics.id = tt.topic_id
> WHERE ss.user_id IS NULL -- omit topics started by SonarSourcers
> AND tt.topic_id IS NULL -- omit topics tagged with me-too
> AND user_id > 0 -- omit DiscoBot's 'Welcome' PM/tutorial threads
> AND visible = TRUE
> AND archived = FALSE
> AND archetype='regular'
> AND created_at::DATE > '2023-07-01'
> ),
> 
> -- find first non-OP reply to user topics
> min_response AS (
> SELECT p.topic_id, tu.created_at, MIN(post_number) as post_number
> FROM posts p
> JOIN topic_user tu USING(topic_id)
> WHERE p.post_type = 1
> AND p.user_id != tu.user_id
> AND p.post_number > 1
> AND p.hidden = false
> AND p.deleted_at IS NULL
> GROUP BY topic_id, tu.created_at
> )
> 
> SELECT p.topic_id, p.user_id, mr.created_at::DATE as thread_date
> FROM posts p
> JOIN min_response mr ON p.topic_id = mr.topic_id AND p.post_number=mr.post_number
> LEFT JOIN SonarSourcers ss ON p.user_id=ss.user_id
> LEFT JOIN user_badges ub on p.id = ub.post_id and ub.badge_id=110
> WHERE ss.user_id IS NULL -- eliminate topics where SonarSourcer is first to respond
> AND ub.user_id IS NULL -- eliminate topics where a badge has already been granted
> ORDER BY mr.created_at DESC
> 
> ```

해당 스레드를 식별한 후에는 사용자 답변을 평가하고, 답변한 사용자에게 “사용자가 사용자를 돕다” 배지를 수여하거나 스레드에 (스태프가 아닌 사용자에게는 보이지 않는) “me-too” 태그를 붙입니다. (참고로, 이 사용자 응답 보고서는 클라우드 서비스에서 발생한 문제를 빠르게 발견하는 부수적인 장점이 있습니다. 😂)

그 이후에는 도움이 되는 사용자에게 [추가 보상을 제공](https://meta.discourse.org/t/a-silver-badge-for-each-5-bronze-badges/283284)하고, 이를 통해 해당 사용자를 식별하여 지속적인 관리(nurturing)를 할 수 있게 됩니다.

---

<div class="post-metadata">

### Author: ![noahl](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/noahl/32/552343_2.png) [@noahl](https://meta.discourse.org/u/noahl)
#### Post date: [7월 22, 2024, 7:52오후 UTC](https://meta.discourse.org/t/identifying-up-and-coming-top-contributors/317633/5 "2024-07-22T19:52:59Z")

</div>

지금까지의 답변들이 정말 마음에 들어요 🙌

가장 어려운 부분은 '최고 기여자’의 정의를 내리는 것, 그리고 정량적 데이터가 아닌 정성적 데이터를 측정하는 속성을 설정하는 것인 것 같아요.

예를 들어, 50번 답변하고 그중 90%가 해결책으로 표시된 멤버와 100번 답변하고 10%만 해결책으로 표시된 멤버 중 누가 더 '최고 기여자’라고 할 수 있을까요?

현재로서는 커뮤니티에서 가장 자주 보는 분들이라 최고 기여자를 식별하기가 꽤 쉽습니다. 하지만 더 구체적인 기준이 필요할 것 같아요. 그래야 최고 기여자에 근접하거나 그 경로를 밟고 있는 사람들을 식별할 수 있을 테니까요.

---

<div class="post-metadata">

### Author: ![Heliosurge](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/heliosurge/32/571810_2.png) [@Heliosurge](https://meta.discourse.org/u/Heliosurge)
#### Post date: [7월 22, 2024, 8:07오후 UTC](https://meta.discourse.org/t/identifying-up-and-coming-top-contributors/317633/6 "2024-07-22T20:07:13Z")

</div>

자체 호스팅을 하거나 해당 플러그인을 지원하는 플랜을 사용하고 있다면, 게임화 플러그인을 고려해 보셨나요?

> [@디스코urs 게이미피케이션](https://meta.discourse.org/t/discourse-gamification/225916):
>
> discourse2요약 Discourse Gamification 플러그인은 인스턴스에 커스터마이징 가능한 점수 시스템(카르마, 쿠폴, 포인트)과 리더보드를 추가합니다.open_book설치 가이드 이 플러그인은 Discourse 코어에 번들로 포함되어 있습니다. 별도로 설치할 필요가 없습니다.test_tube데모 [리더보드](https://meta.discourse.org/leaderboard/1)기능 Discourse는 기본적으로 게이미피케이션 기능(배지, 신뢰 수준)을 제공하지만, 일부 커뮤니티는 이를 한 단계 더 발전시키고 싶어합니다. 바로 여기서 [GitHub - discourse/discourse-gamification · GitHub](https://github.com/discourse/discourse-gamification) 이 등장합니다. 이 플러그인은 관리자가 커뮤니티 참여를 통해 포인트가 부여되는 커뮤니티 점수 경쟁을 쉽게 생성하고 조정할 수 있도록 합니다. 포인트는 당일 이벤트에 대해 매시간 자동으로 업데이트되며, 점수는 지난 10일간의 데이터를 기준으로 하…

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [7월 23, 2024, 2:57오전 UTC](https://meta.discourse.org/t/identifying-up-and-coming-top-contributors/317633/7 "2024-07-23T02:57:26Z")

</div>

네. 리더보드는 더 활발하게 활동하는 사용자를 확인하는 데 아주 좋은 방법입니다. 예를 들어, 대부분의 포럼에서 최상위 10위에는 가장 많이 게시한 사용자들이 자리 잡고 있습니다. 이 상위 10위권은 높은 활동량 덕분에 순위를 높게 올리고 승급된 사용자들, 즉 일반 회원(Regulars)과 리더(Leaders)로 구성되어 있습니다.

---

<div class="post-metadata">

### Author: ![Heliosurge](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/heliosurge/32/571810_2.png) [@Heliosurge](https://meta.discourse.org/u/Heliosurge)
#### Post date: [7월 23, 2024, 3:29오전 UTC](https://meta.discourse.org/t/identifying-up-and-coming-top-contributors/317633/8 "2024-07-23T03:29:28Z")

</div>

사실 리더보드에서 스태프가 제외되는지만 확인하면 됩니다. 😉

---

<div class="post-metadata">

### Author: ![Bas](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bas/32/294929_2.png) [@Bas](https://meta.discourse.org/u/Bas)
#### Post date: [7월 25, 2024, 11:29오전 UTC](https://meta.discourse.org/t/identifying-up-and-coming-top-contributors/317633/9 "2024-07-25T11:29:59Z")

</div>

> [@noahl](#):
>
> 가장 어려운 부분은 아마도 '최고의 기여자’를 어떻게 정의하느냐, 그리고 정량적 데이터가 아닌 정성적 데이터를 측정하는 속성을 어떻게 설정하느냐일 겁니다.

정말 핵심을 찌르는 말씀이네요. 이건 대부분 정량적인 문제라기보다 정성적인 문제입니다.

한 달에 몇 개의 게시글만 올려도 정말 유용한 기여자가 있었고, 일주일에 수십 개를 올려도 쓸모없는 기여자도 있었거든요. 리더보드는 밀과 쭉정을 가르는 데 좋은 출발점이 되지만, 결국 커뮤니티 매니저인 여러분의 판단에 달렸습니다 🙂

---

<div class="post-metadata">

### Author: ![alefattorini](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/alefattorini/32/119928_2.png) [@alefattorini](https://meta.discourse.org/u/alefattorini)
#### Post date: [8월 9, 2024, 2:55오후 UTC](https://meta.discourse.org/t/identifying-up-and-coming-top-contributors/317633/10 "2024-08-09T14:55:29Z")

</div>

보통 정량적 데이터 포인트 세 가지를 확인합니다:

- 지난 기간의 리더보드.
- 지난 기간의 사용자보드(게시물, 좋아요, 방문 수 순으로 정렬).
- 프로필을 확인하여 어떤 영역에서 가장 활발하게 기여하고 있는지 파악.

그리고 정성적 측면 세 가지:

- 게시물의 유형: 질문인가요? 답변인가요?
- 게시물의 품질: 짧은 댓글인가요? 가치 있는 기여인가요?
- 게시물의 분위기: 날카로운가요, 아니면 이해를 바탕으로 한 건가요? 우리 문화와 일치하나요, 아니면 어긋나나요?
