martin
(Martin Brennan)
6월 9, 2026, 2:56오전
1
The "new new" has been enabled on Meta 를 이어서, 모든 Discourse 사이트에서 토픽 목록의 기본값으로 통합된 새 글(unified new) 뷰를 설정하기 위한 예정된 변경 사항을 도입합니다.
통합된 새 글(unified new)이란?
이 변경 사항은 토픽 목록의 ‘새 글’ 탭을 다음과 같은 하위 탭으로 구성하도록 수정합니다:
토픽 : 사용자에게 새로운 토픽
답글 : 읽지 않은 토픽
전체 : 위 두 가지를 결합한 것
통합된 새 글이 대체하는 것은?
기존의 기본 설정은 /new와 /unread 라우트와 관련 상단 메뉴 탐색 항목을 별도로 두는 것이었습니다. 이는 Discourse를 처음 사용하는 회원들에게 설명하기가 다소 어려웠습니다:
커뮤니티에서 통합된 새 글 활성화하기
활성화하려면 관리자 영역(/admin/config/upcoming-changes)의 예정된 변경 사항 페이지로 이동하여 Enable unified new 항목을 찾으세요. Enabled for … 필드를 업데이트하여 사이트에 이 새로운 디자인을 적용하세요:
15개의 좋아요
새로움 (New)과 읽지 않음 (Unread), 미확인 (Unseen)의 차이를 아무리 생각해봐도 도무지 이해가 안 됩니다. 잠깐, 핫 (Hot)이라는 것도 따로 있죠?
3개의 좋아요
저는 통합된 새로운 기능이 활성화되어 있지 않습니다. 활성화하려고 했지만 찾을 수 없었어요. 업데이트를 활성화하고 테스트하는 것은 항상 준비되어 있습니다
Moin
6월 9, 2026, 12:57오후
7
마지막으로 포럼을 업데이트한 지 약 2주가 지난 것 같습니다. Discourse 팀은 하루에 여러 번 새로운 내용을 병합(merge)하기 때문에, 업데이트 직후에만 실제로 최신 버전을 사용하는 시간이 매우 짧습니다.
최신 상태임을 알려주는 이모지는 각 커밋을 개별적으로 참조하지 않습니다. 그렇게 하면 이모지가 거의 항상 불행한 표정을 짓고 있을 테니까요. 대신 버전 번호가 증가할 때마다 업데이트를 권고하며, 보안 업데이트는 보통 버전 번호가 증가하기 직전에 병합됩니다. 보안 업데이트를 받기 위해 업데이트해야 하는 시점이자, 업데이트가 없더라도 한 달에 한 번은 업데이트하도록提醒하는 역할도 합니다.
하지만 새로 발표된 기능을 테스트해보고 싶다면, 이모지가 만족하는 표정(최신 상태)을 보여주고 있더라도 업데이트가 필요할 수 있습니다. 아직 버전 번호가 변경되지 않았을 수 있기 때문입니다.
포럼을 업데이트한 이후에 병합된 모든 커밋은 Changelog | Discourse releases | d55ea4fd0f → latest 에서 확인할 수 있습니다.
통합된 새 뷰(unified new view)에 대한 예정된 변경 사항은 해당 목록의 상단에 거의 위치해 있으므로, 아주 새로운 내용입니다.
5개의 좋아요
"절대"라고 말하지 마세요! 사이트나 계정별로 이 설정을 변경할 수 있지만, 기본값은 다음과 같습니다:
New: 지난 2일 이내에 생성되었지만 아직 열지 않은 주제
Unread: 이미 읽은 주제 중 새로운 답변이 달린 것
Unseen: 한 번도 읽지 않은 주제 (기본적으로 숨겨져 있으며, 다소 특수한 경우입니다)
통합된 ‘새로움’ 기능을 통해 주제/답변 라벨이 new/unread 차이를 파악하는 것보다 직관적이기를 바랍니다.
5개의 좋아요
Moin
6월 9, 2026, 8:30오후
9
awesomerobot:
New: 지난 2일 이내에 생성되었지만 아직 열지 않은 주제
Unread: 이미 읽었지만 새 답글이 있는 주제
"new"가 반드시 지난 2일 이내의 주제만은 아니라고 생각합니다. 새 목록에 어떤 주제가 표시될지 설정할 수 있는 사용자 설정이 있습니다.
마찬가지로, unread에는 새 답글이 있는 추적(tracking)하거나 관찰(watching) 중인 주제만 표시됩니다. (읽은 후 일정 시간이 지나면 주제를 자동으로 추적하는 설정이 있고, 답글을 달거나 주제를 만들 때 태그나 카테고리 기반의 모든 주제를 추적/관찰할 수 있으며, 각 주제의 추적 상태를 수동으로 편집할 수도 있습니다.)
따라서 왜 복잡한지 이해합니다. 특히 모든 새 답글이 unread에 표시되지 않는다는 점이 그렇습니다.
/new와 /unread 페이지에서 이 내용이 설명되어 있었다는 점도 도움이 되었습니다. 빈 상태일 때에도 새 사용자에게 숨겨지지 않기 때문에, 이 목록들이 어떻게 작동하는지 배우기에 아주 좋은 장소였습니다.
Moin:
3개의 좋아요
martin
(Martin Brennan)
6월 10, 2026, 5:18오전
10
사용자가 빈 목록을 가지고 있을 때, 계정이 1일밖에 안 됐든 10년이 됐든 상관없이 항상 이렇게 많은 텍스트를 보여주는 것은 좀 부담스러웠습니다… 현재는 다음과 같이 표시하고 있습니다:
하지만 중간 정도가 좋을 것 같습니다. 예를 들어 사용자 계정이 오래되지 않았다면 더 많은 정보를 표시하거나, 툴팁에 추가 정보를 넣는 식으로요. @awesomerobot 어떻게 생각하세요?
전반적으로 사용자 팁/신규 사용자 교육에 대해 아직 더 많은 작업을 해야 합니다. 언젠가 이 부분까지 다룰 수 있기를 바랍니다.
2개의 좋아요
Moin
6월 10, 2026, 6:05오전
11
귀하의 게시물은 이 주제보다는 제가 인용한 주제에 더 잘 어울릴 것 같습니다.
/new와 /unread가 비어 있을 경우 내비게이션에서 숨겨지기 때문에, 이들을 항상 표시하고 싶다는 느낌을 받은 적이 없습니다.
Heliosurge
(Dan DeMontmorency)
6월 19, 2026, 4:10오후
12
이 링크는 새 주제 탭이 아니라 새 전체 탭을 엽니다.
UI 일관성을 위해 '전체 새’의 숫자는 '주제’와 마찬가지로 ‘전체’ 탭 옆에 있어야 합니다.
3개의 좋아요
martin
(Martin Brennan)
6월 21, 2026, 11:36오후
13
오, 잘 지적해 주셨네요. 감사합니다. 수정하겠습니다
3개의 좋아요
Moin
6월 26, 2026, 8:44오후
17
DiscourseHub에서 이전과 동일한 정보를 얻을 수 있도록 토픽과 답변의 개별 개수를 표시할 수 있을까요?
그리고 "활동"을 두 번 클릭하지 않고도, 이전의 새 글 및 읽지 않은 탭처럼 날짜순으로 정렬된 /new를 더 쉽게 볼 수 있는 방법이 있을까요?
martin
(Martin Brennan)
6월 28, 2026, 11:23오후
18
음, 이건 좀 이상하네요. 제 Meta에서 이 목록은 기본적으로 활동 순으로 정렬되어 있습니다:
따라서 이는 의도적인 변경이 아닙니다… 왜 당신에게는 “이미지 없음” 항목이 위로 올라와 있는지 확실하지 않습니다.
저는 DiscourseHub에 대해 아주 익숙하지 않습니다… @pmusaraj , 이게 얼마나 쉬운지 아시나요? 기본적으로 enable_unified_new가 활성화되면, 새 게시물 탭에는 전체, 주제(이전 /new에 있던 내용), 답변(읽지 않은 항목)이라는 하위 탭이 표시됩니다. 아마도 DiscourseHub에서 이 부분에 대해 변경하지 않은 것이 있어서 전체 하위 탭처럼 합산된 카운트만 표시되고 있는 것 같습니다. 어떻게 수정할 수 있을까요?
Moin
6월 28, 2026, 11:34오후
19
제가 해당 주제를 생성했기 때문일까요? 제가 만든 다른 주제에서 “읽지 않음으로 표시” 기능을 사용했는데, 그 주제도 상단에 표시됩니다.
내가 만든 주제를 읽지 않음으로 표시하면, 그 주제가 상단에 나타납니까?
현재 Discourse 허브에서 보이는 모습입니다.
제 포럼에서는 변경 사항이 활성화되지 않아서 두 숫자를 모두 볼 수 있습니다. Meta에서는 개별 숫자 대신 총합만 보입니다.
2개의 좋아요
martin
(Martin Brennan)
6월 29, 2026, 3:53오전
20
네, 확인했습니다. 실제로 그렇습니다:
코드에서 이 동작의 원인을 찾았습니다:
new_results = remove_muted(new_results, @user, options)
new_results = remove_dismissed(new_results, @user)
unread_results =
apply_max_age_limit(TopicQuery.unread_filter(base, whisperer: @user&.whisperer?), options)
base.joins_values.concat(new_results.joins_values, unread_results.joins_values)
base.joins_values.uniq!
results = base.merge(new_results.or(unread_results))
results = results.order("CASE WHEN topics.user_id = tu.user_id THEN 1 ELSE 2 END")
suggested_ordering(results, options)
end
def unseen_filter(list, user_first_seen_at, whisperer)
list = list.where("topics.bumped_at >= ?", user_first_seen_at)
col_name = whisperer ? "highest_staff_post_number" : "highest_post_number"
list.where("tu.last_read_post_number IS NULL OR tu.last_read_post_number < topics.#{col_name}")
end
독립적인 읽지 않음(Unread) 목록이 사용하는 로직입니다:
def unread_results(options = {})
result =
TopicQuery.unread_filter(
default_results(options.reverse_merge(unordered: true)),
whisperer: @user&.whisperer?,
).order("CASE WHEN topics.user_id = tu.user_id THEN 1 ELSE 2 END")
새로움(New)과 읽지 않음(Unread)을 하나의 목록으로 통합하고 있으므로, 동일한 규칙을 따르는 것이 타당하다고 생각합니다… 하지만 다른 의견도 들을 수 있습니다. 저에게는 선호하는 방식이 없습니다.
@sam 와 @osama 님, 이 목록을 처음 구현하신 분들이시죠. 어떻게 생각하시나요? “전체(All)” 목록에서 읽지 않은 상태인 현재 사용자의 주제를 맨 위로 올리는 규칙을 따라야 할까요? 아니면 “전체” 목록에서는 단순히 활동(Activity) 기준으로 정렬하고, 특별한 읽지 않음 정렬은 답글(Replies) 탭에만 적용하는 것이 좋을까요?
1개의 좋아요
sam
(Sam Saffron)
6월 29, 2026, 4:00오전
21
같은 규칙을 따르는 것이 괜찮다고 생각합니다. 다소 이례적으로 보일 수 있지만, 해당 기능을 의존하는 사용자에게 도움이 될 것입니다.
1개의 좋아요
martin
(Martin Brennan)
7월 1, 2026, 6:01오전
22
이를 수정하는 방법을 찾았습니다. 코어와 Discourse 허브 모두 업데이트가 필요합니다:
main ← issue/split-new-unread-counts-notification-totals
closed 06:36AM - 03 Jul 26 UTC
If unified new was enabled, the notification/totals route used
by the Discourse… Mobile app would return the sum of new and unread counts,
but it would be more ideal to still show a separate link for
new (topics) and unread (replies) counts in the app. So we split the
numbers even if unified new is enabled.
main ← ux/unified-new-topic-count-split
closed 06:36AM - 03 Jul 26 UTC
Show a "Topics (N)" and "Replies (N)" count instead of new/unread
counts when u… nified new is enabled for a site, which also takes
the user to the /new?subset=X routes for each link.
Needs https://github.com/discourse/discourse/pull/41316 to work
<img width="445" height="912" alt="image" src="https://github.com/user-attachments/assets/443b2908-e87a-48ec-a89a-10a10963f1b7" />
4개의 좋아요