# 대규모 포럼 가져오기의 과거 읽기 시간 추정

**URL:** https://meta.discourse.org/t/estimating-historical-read-time-for-a-large-forum-import/148356
**Category:** Development
**Created:** [4월 17, 2020, 1:51오후 UTC](https://meta.discourse.org/t/estimating-historical-read-time-for-a-large-forum-import/148356 "2020-04-17T13:51:18Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![007](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/007/32/175794_2.png) [@007](https://meta.discourse.org/u/007)
#### Post date: [4월 17, 2020, 1:51오후 UTC](https://meta.discourse.org/t/estimating-historical-read-time-for-a-large-forum-import/148356/1 "2020-04-17T13:51:19Z")

</div>

약 130만 개의 게시물과 20년 간의 역사를 가진 레거시 포럼을 Discourse로 마이그레이션하는 작업을 진행 중입니다.

마이그레이션이 성공적으로 완료된 후 모든 사용자의 읽은 시간이 0으로 표시되는 것은 피하고 싶습니다. 많은 사용자가 5년, 10년, 심지어 15년 이상의 활동 이력을 가지고 있기 때문입니다.

Discourse는 읽은 시간을 강조하는 경향이 있는데(개인적으로는 매우 좋은 점이라고 생각합니다), 상당한 활동 이력을 가진 사용자들이 마이그레이션 후 그들의 기여도가 초기화된 것처럼 느끼지 않도록 이 통계에 대한 최선의 추정치를 계산할 수 있으면 좋겠습니다. (게임화는 큰 동기부여가 될 수 있지만, 사용자가 자부심을 느끼는 통계가 사라지면 오히려 의욕을 꺾을 수도 있습니다.)

이전에 추적되지 않았던 데이터를 완벽하게 표시하는 방법은 없음을 인지하고 있습니다. 하지만 현재 게시물 수를 기준으로 사용자의 과거 읽은 시간을 추정할 수 있는 스크립트를 실행하거나, 또는 가져오기(import) 스크립트에 추가할 수 있는 기능이 있을까요?

예를 들어 다음과 같은 방식입니다:

PostCount = SELECT posts\_count FROM posts WHERE id = (가져오기 중인 현재 사용자 ID)

ReadTimePerPost = 300 (초)

RetroactiveReadTime = PostCount \* ReadTimePerPost

이렇게 계산한 후 해당 수치를 데이터베이스에 각 사용자와 연결하여 삽입하는 것이 이론적으로 가능한가요?

가능하다면, 읽은 시간은 어디에, 어떻게 저장되어 있나요?

그리고 참고로, 게시물 하나당 읽은 시간을 300초로 계산한 것은 제 단순한 추정치일 뿐입니다. 사실 모든 상황을 고려하면 매우 낮은 수치일 수 있지만, 0보다는 훨씬 정확하다고 생각합니다.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [4월 17, 2020, 10:03오후 UTC](https://meta.discourse.org/t/estimating-historical-read-time-for-a-large-forum-import/148356/2 "2020-04-17T22:03:56Z")

</div>

아래와 같은 방식으로 구현하면 어떨까요?

```ruby
Post.where(user_id: user.id).where(some other stuff?).each do |post|
  PostTiming.create(topic_id: post.topic_id, post_number: post.post_number, user_id: user.id, msecs: READ_TIME_MSECS
end

```

> [@007](#):
>
> 각 게시글의 읽는 시간을 300초로 잡은 것은 제 추정치일 뿐입니다. 솔직히 말하면 이 수치는 아마도 매우 낮을 것입니다.

계산을 제대로 하고 있다면, 300초는 5분입니다. 이 게시글을 읽고 **답변까지** 작성하는 데 5분이 걸렸다고 생각하시나요?

---

<div class="post-metadata">

### Author: ![007](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/007/32/175794_2.png) [@007](https://meta.discourse.org/u/007)
#### Post date: [4월 17, 2020, 10:46오후 UTC](https://meta.discourse.org/t/estimating-historical-read-time-for-a-large-forum-import/148356/3 "2020-04-17T22:46:56Z")

</div>

아직 타이밍에 대해 충분히 생각해 보지는 않았습니다. 제가 생각한 것은, 읽기 시간이 단순히 게시글이 읽기에서 비롯된 경우의 시간만 고려하지는 않는다는 점입니다. 많은 사람들이 많이 읽으면서도 대충 훑어보는 데 많은 시간을 쓰는데, 읽기와 게시에 걸리는 시간만 기준으로 한다면 이런 시간은 전혀 반영되지 않습니다.

물론, 과대평가하기보다는 과소평가하는 편이 나을 것 같습니다.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [4월 18, 2020, 12:41오전 UTC](https://meta.discourse.org/t/estimating-historical-read-time-for-a-large-forum-import/148356/4 "2020-04-18T00:41:59Z")

</div>

수많은 가져오기를 진행해 왔습니다. 가짜 읽기 시간을 만들어 달라고 요청한 사람은 한 번도 없었습니다. 사람들이 디스코스로 전환한 시점부터 통계가 시작된다는 사실을 알아차릴 거라고 확신합니다.

---

<div class="post-metadata">

### Author: ![riking](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/riking/32/170938_2.png) [@riking](https://meta.discourse.org/u/riking)
#### Post date: [4월 18, 2020, 6:52오전 UTC](https://meta.discourse.org/t/estimating-historical-read-time-for-a-large-forum-import/148356/5 "2020-04-18T06:52:35Z")

</div>

시간을 훨씬 더 가치 있게 사용하는 방법은 아마도 가져온 사용자에게 TL2를 부여할 자동 임계값을 어떻게 설정할지 결정하고, _제목 및 분류에 대해 좋은 판단력을 가진_ 커뮤니티 구성원들을 직접 골라 처음부터 TL3로 시작하게 하는 것입니다.

TL 승진은 가져오기에서 실제로 중요할 수 있는 읽기 시간 통계의 주요 활용 사례입니다.
