# Discourse는 내가 몰랐던 피로를 서서히 해결해 주었습니다

**URL:** https://meta.discourse.org/t/discourse-has-slowly-been-solving-a-fatigue-i-didnt-realize-i-had/308520
**Category:** Community Building
**Created:** [5월 18, 2024, 5:12오전 UTC](https://meta.discourse.org/t/discourse-has-slowly-been-solving-a-fatigue-i-didnt-realize-i-had/308520 "2024-05-18T05:12:56Z")
**Posts on this page:** 12
**Page:** 1

<div class="post-metadata">

### Author: ![jordan-violet](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jordan-violet/32/281428_2.png) [@jordan-violet](https://meta.discourse.org/u/jordan-violet)
#### Post date: [5월 18, 2024, 5:12오전 UTC](https://meta.discourse.org/t/discourse-has-slowly-been-solving-a-fatigue-i-didnt-realize-i-had/308520/1 "2024-05-18T05:12:56Z")

</div>

수천 개의 (때로는 문자 그대로) 엔터프라이즈 애플리케이션으로 인한 죽음. 오늘날 엔터프라이즈 환경에서 모든 것에 1,000개의 서로 다른 애플리케이션이 존재하는 현실에 지쳐 있습니다 (저뿐만 아니라 많은 분들이 그러하신 것 같습니다). UX/UI, 접근 제어, 통신 프로토콜 등 일관성이 없는 부분들이 끝없이 이어집니다. 이는 우리 내부 비즈니스에만 국한된 문제가 아니며, 사용자들도 이를 체감하고 있습니다.

> _이것은 우리의 메모 앱이고, 이것은 파일 앱이고, 이것은 메시지 앱이고, 이것은 a/b/c/1/2/3/x/y/z 앱입니다. **정말 지치네요**._

그런데 애플리케이션 레벨에서 이들을 연결하기 위해 더 많은 엔터프라이즈 애플리케이션을 도입해야 하고, 이 모든 것을 하나로 묶어두기 위한 또 다른 애플리케이션도 필요합니다. 이는 [넷플릭스가 케이블 번들을 재구축하는 것과 같습니다](https://www.cnn.com/2024/05/16/media/netflix-cable-bundle-news/index.html), 다만 대상이 엔터프라이즈 애플리케이션일 뿐이죠.

아이러니하게도, 이러한 엔터프라이즈의 파편화 때문에 전체는 부분의 합보다 확실히 **크지** 않습니다—오히려 훨씬 나빠집니다. 오늘날 데이터가 왕이므로 _그리고 아무도 데이터를 다른 곳으로 가져가길 원하지 않으므로_, 각 애플리케이션은 결국 실로(silo)에서 독립적으로 운영됩니다.

Discourse는 다른 모든 것(예: 티켓 시스템, 블로그, 마켓플레이스 등)에서 업계 최고(best in class)로 평가받지는 않을 수 있지만, 저에게는 _그것이_ 업계 최고입니다. 왜냐하면 이 플랫폼은 다른 애플리케이션들이 수행하는 작업의 99%를 수행하면서도 사용자 경험과 기반 아키텍처의 조화를 유지할 수 있기 때문입니다. 블로그, 공지사항, 사용자 관리, 토론 포럼, 이벤트 등이 모두 잘 어우러져 작동한다는 점은 저에게 기하급수적으로 더 큰 가치를 지닙니다.

이러한 단일 애플리케이션의 범위(fall application footprint)를 통해, 서로 다른 비즈니스에 의해 소유되고 우선순위가 다른 개별 애플리케이션을 각각 개선하는 것보다, 모든 경험을 동등하게 개선할 수 있는 경우가 많습니다.

_ **모든 것** _을 이 플랫폼으로 구축할 수 있습니다. 이들은 단순히 '토픽’이 아니라 다음과 같은 것들입니다:

- 블로그
- 공지사항
- 마켓플레이스 상품
- 토론
- 지원 티켓
- 비디오
- 이벤트
- 스프린트 보드
- 버그/이슈
- 아이디어
- CFP (Call for Proposals)
- 가이드
- 목록은 계속됩니다…

서로 다른 그룹을 위해 다양한 경험을 구축해야 할 때, 그리고 거의 항상 위 항목들의 조합이 필요할 때 이는 큰 안도감을 줍니다.

* * *

Discourse에는 독특한 점들이 있다는 사실을 결코 회피하지 않겠습니다 (저는 [문서 플러그인](https://meta.discourse.org/t/discourse-docs-plugin-documentation-management/130172)을 혐오하지만, 아직 매트릭스를 보지 못한 것일 수도 있습니다). 그러나 유연하게 이렇게 조화로운 생태계를 구축하는 데 있어 Discourse가 가진 가치는 어떤 결점보다 훨씬 큽니다.

> 🗒 우리는 B2B 엔터프라이즈 커뮤니티에 Discourse를 사용하고 있습니다. 이러한 생각들은 최근 회사 행사에서 Discourse가 무엇을 할 수 있는지 본 후, 우리 비즈니스 내 다른 팀들이 고객 대상 경험을 커뮤니티에 구축할 수 있도록 도와줄 수 있느냐고 빠르게 문의해 오면서 생겨났습니다. 우리는 운영을 확장하고 사용 사례를 빠르게 늘리고 있습니다 (우리에게는 좋은 문제입니다).

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [5월 18, 2024, 7:32오전 UTC](https://meta.discourse.org/t/discourse-has-slowly-been-solving-a-fatigue-i-didnt-realize-i-had/308520/2 "2024-05-18T07:32:36Z")

</div>

전혀 동의하지 않는 것이 아닙니다. 하지만 Discourse는 상당 부분 타협이나 트레이드오프의 결과물입니다. WordPress를 사용하면 훨씬 더 나은 블로그 플랫폼을 구축할 수 있지만, 기능적인 포럼을 제공하지는 못합니다.

물건을 판매할 수 있는 선택지는 몇 가지뿐인데, Discourse는 그 목록에 없습니다.

Discourse를 사용해 팟캐스트를 호스팅한다? 그런 건 꿈도 꾸지 마세요.

그리고 이 세 가지 예시에서 제가 가진 모든 선택지는 데이터가 새어나가지 않고, 데이터를 과도하게 수집하지 않는 솔루션들입니다.

우리는 다음 사항들을 구분해야 합니다:

- 사용자가 필요로 하는 것
- 관리자/소유자가 필요로 하는 것

제 관점에서 보면 두 가지 의문점이 있습니다:

- 관리자/소유자로서는 모든 솔루션이 각자의 영역에서는 매우 잘 작동하지만 부수적인 기능은 그렇지 않기 때문에, 별도의 솔루션을 사용해야 합니다.
- 사용자들은 (사회) 미디어 기업들이 데이터를 위해 그렇게 원했기 때문에, 이러한 서비스를 위해 별도의 앱을 사용하기를 원합니다.

제가 사람들이 무지한 가축이라고 말했나요? 거의 그렇습니다. 혹은 더 예의 바르게 표현하자면: 대부분의 사람들은 모르고 더 쉬운 해결책을 원합니다. 또한 Jobs(또는 Nokia, Blueberry 등도 가능했을 것입니다)가 앱 레벨에서 작동하는 최초의 진정한 스마트폰을 도입하면서 모든 것이 변했습니다.

오늘은 좀 부정적인 편입니다. 저는 최종 사용자로도, 관리자로도 Discourse를 매우 만족스럽게 사용하고 있습니다. 이는 훌륭한 포럼 소프트웨어입니다. 하지만 모든 사용자—콘텐츠를 만드는 사람, 소비하는 사람, 그리고 모든 혜택을 수취하는 사람—가 다른 것을 원할 때, 우리는 개별 앱의 세계와 수조 달러 규모의 기업들을 이길 수 없습니다.

---

<div class="post-metadata">

### Author: ![jordan-violet](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jordan-violet/32/281428_2.png) [@jordan-violet](https://meta.discourse.org/u/jordan-violet)
#### Post date: [5월 18, 2024, 5:47오후 UTC](https://meta.discourse.org/t/discourse-has-slowly-been-solving-a-fatigue-i-didnt-realize-i-had/308520/3 "2024-05-18T17:47:12Z")

</div>

전적으로 동의합니다—훌륭한 답변이네요! 위 게시물의 정서에 그런 의미를 담으려 했습니다. 이슈 및 프로젝트 추적에서 Discourse가 Jira보다 낫나요? 물론 아닙니다. 가격 대비 성능으로 보면요. 파일 호스팅에서 Google Drive/OneDrive 등보다 낫나요? 당연히 아닙니다.

_(온라인 커뮤니티에는 가장 좋나요? 물론이죠, 당연히!)_

하지만 다른 측면에서의 가치는, Discourse가 매우 다재다능하기 때문에, 그 도구들이 할 수 있는 것의 99%를 수행할 수 있다는 점입니다. 물론, 당신이 암시하는 것처럼 몇 가지 특이한 점이 있긴 합니다. 저는 기업용 애플리케이션 지옥이라 불리는 오늘날의 상황보다는, 몇 가지 특이한 점이 있더라도 대부분의 일을 99% 처리할 수 있는 단일 플랫폼을 사용하는 편이 좋습니다.

하지만, 인생의 모든 것과 마찬가지로…항상 상황에 따라 다릅니다!

> [@Jagster](#):
>
> 정말 멋진 포럼 소프트웨어입니다. 하지만 모든 사용자, 즉 콘텐츠를 만드는 사람, 소비하는 사람, 그리고 모든 혜택을 받는 사람들이 각기 다른 것을 원할 때, 우리는 개별 앱 세계와 수십 조 원 규모의 기업들을 이길 수 없습니다.

말씀이 맞습니다. 모든 사용 사례를 해결하거나, 모든 기능을 만들거나, 모든 사람을 만족시킬 수는 없습니다. 저 역시 조직에서 기업용 애플리케이션을 구축하는 업무를 하고 있는데, 그 균형을 맞추는 것은 영원한 여정입니다!

> [@Jagster](#):
>
> 오늘은 좀 부정적인 기분이네요.

그렇게 들었습니다. 오늘 하루가 더 나아지기를 바랍니다 🤗

---

<div class="post-metadata">

### Author: ![Tris20](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tris20/32/264639_2.png) [@Tris20](https://meta.discourse.org/u/Tris20)
#### Post date: [5월 18, 2024, 6:10오후 UTC](https://meta.discourse.org/t/discourse-has-slowly-been-solving-a-fatigue-i-didnt-realize-i-had/308520/4 "2024-05-18T18:10:11Z")

</div>

> [@jordan-violet](#):
>
> …수천 개의 (때로는 문자 그대로) 엔터프라이즈 애플리케이션에 의한 죽음. … 각 애플리케이션은 결국 실로(silo) 안에서 독립적으로 운영됩니다.

이것은 우리도 직면했던 핵심 문제 중 하나였습니다. 동일한 기능을 수행하는 플랫폼이 과도하게 많았고, Discourse는 올바르게 설정하면 이러한 모든 것을 하나로 묶는 데 탁월합니다.

특히 단일 검색 지점이 부족했습니다. 이를 (매우) 낮은 비용으로 달성하기 위해 Discourse 팀을 후원하여 [헤더 검색](https://meta.discourse.org/t/header-search/194093)을 수정하도록 요청했습니다. 이제 Discourse 검색창에서 다른 플랫폼도 검색할 수 있습니다. 이제 Confluence 등을 Discourse에서 검색할 수 있게 되었습니다. 🙂

참고: 이것은 Discourse에서 네이티브로 검색하는 것이 아니라, 검색어를 쿼리 인자로 전달하여 사용자를 해당 플랫폼의 결과 페이지로 직접 리디렉션합니다.

이러한 방식은 지속적인 비용이 들지 않으며, 전체 검색 엔진을 구축할 필요도 없습니다. 테마 컴포넌트를 설치하고 설정하기만 하면 됩니다. 🙂

아래는 인스턴스의 검색창에서 Meta를 검색하는 예시입니다:

1. `fab-discourse`를 SVG 아이콘 하위 집합에 추가합니다.  
 ![image](https://global.discourse-cdn.com/meta/original/4X/d/9/0/d9025f740b354e11b8653545d94d457d59616cfc.png)
2. 헤더 검색 테마 컴포넌트에서 에디터 `extra search icons`를 엽니다:  
 ![image](https://global.discourse-cdn.com/meta/original/4X/7/6/7/767d59277cf8a6dae94f3f4e6a35d8f898526660.png)
3. Meta에 대한 항목을 추가합니다.  
 ![image](https://global.discourse-cdn.com/meta/original/4X/4/6/e/46e6a9ad631e6225810d45404bb9913aad1738b7.png)  
참고: excludeFrom은 이 아이콘이 표시되지 _않게_ 하려는 카테고리의 카테고리 ID 목록입니다. 이 경우 카테고리 ID 1에서 제외하고 있습니다.
4. 변경 사항을 저장합니다.

브라우저를 새로고침하면 검색어를 입력할 때 검색창에 Meta 심볼이 표시되어야 합니다. 해당 아이콘을 클릭하면 Meta에서 해당 검색어에 대한 결과가 열립니다. 🙂

아래 비디오에서는 개인 인스턴스의 검색창에서 "fatigue"를 검색한 후, Meta에서 fatigue에 대한 결과를 보기 위해 Meta 아이콘을 클릭하는 모습을 보여줍니다:

---

<div class="post-metadata">

### Author: ![jordan-violet](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jordan-violet/32/281428_2.png) [@jordan-violet](https://meta.discourse.org/u/jordan-violet)
#### Post date: [5월 18, 2024, 6:21오후 UTC](https://meta.discourse.org/t/discourse-has-slowly-been-solving-a-fatigue-i-didnt-realize-i-had/308520/5 "2024-05-18T18:21:20Z")

</div>

@Tris20 이건 정말 대단하네요! 저는 위에서 언급한 일반적인 사용 사례에 대해서만 이야기한 것 같습니다. 제가 아직 작성하거나 언급하지 않았고, 다른 곳에서도 본 적 없는, 그 수준의 사용 사례는 딱 두 가지입니다:

# 상태 페이지 통합

저희는 상태 페이지의 이벤트를 1:1로 Discourse 카테고리로 동기화합니다. 이때 각 상태는 독립적인 토픽이 됩니다. 상태 이벤트는 원래 게시물에 최신순으로 거꾸로(오름차순)로 게시되며, 저희 사용자(내부 및 외부)들이 좋아하는 작은 디테일들을 적용합니다. 예를 들어, Discourse의 datetime 객체를 사용하여 항상 사용자의 로컬 시간대로 표시되도록 하고, 해당 토픽에 태그를 붙여 최신 상태를 미러링하는 등 저희가 고안한 멋진 아이디어들이 있습니다. 사실 Meta에도 이 기능이 있었으면 좋겠습니다.

정말 전체 통합 과정에 대해 더 자세히 써야 할 것 같습니다. 정말 놀라운 기능이기 때문입니다. 저희는 이를 채팅 통합과 Slack(저희 회사의 채팅 도구)과 연동하여 마무리합니다. 플랫폼 상태 이벤트가 발생하면, 해당 Discourse 토픽이 모든 사람이 팔로우할 수 있는 내부 상태 채널에 게시됩니다. 하지만 결국 대화는 저희의 단일 진실 공급원(Single Source of Truth)인 Discourse로 돌아오게 됩니다!

# Airtable 동기화

저희는 Airtable에서 커뮤니티 프로그램 관리, 프로젝트 관리, 자동화 작업을 매우 많이 수행합니다. Discourse의 사용자 및 사용자 그룹 테이블을 Airtable로 동기화하는 놀라운 일방적(One-way) 동기화를 고안하여, Airtable에서 실시간 업데이트되는 1:1 사본을 확보했습니다.

Airtable에서는 이러한 이벤트(사용자 라이프사이클 변경, 위치 변경, 프로필 업데이트 등)에 대해 고급 자동화를 생성할 수 있습니다. Airtable은 이러한 테이블을 _다른_ Airtable 베이스와도 동기화할 수 있게 해주는데, 여기서 진정한 마법이 일어납니다. 저희는 이벤트 프로그램을 관리하는 Airtable 베이스가 있으며, 베이스 레벨의 사용자 테이블을 사용하는 것 외에도, 해당 이벤트 프로그램 관리에 특화된 추가 값으로 이를 확장하고 있습니다.

이 통합에서 얻는 가치와 규모는, 제가 커뮤니티 전담 인력을 처음 채용하기 전 3.5년 동안 커뮤니티 활동을 이렇게 크게 확장할 수 있었던 이유라고 해도 과언이 아닙니다 (@putty 👋).

* * *

이것들은 꽤 고급스러운 사용 사례들이라, 만약 엔터프라이즈의 다른 사람들이 이걸 본다면 아마 이런 반응을 보일 것 같습니다:

![](https://media.tenor.com/9CJaHEmyKPAAAAAC/chris-pratt-andy-dwyer.gif)

---

<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: [5월 22, 2024, 1:33오후 UTC](https://meta.discourse.org/t/discourse-has-slowly-been-solving-a-fatigue-i-didnt-realize-i-had/308520/6 "2024-05-22T13:33:34Z")

</div>

> [@jordan-violet](#):
>
> 이것들은 꽤 고급스러운 사용 사례라고 생각하는데, 만약 기업 내 다른 사람들이 이것을 본다면 아마 이렇게 반응할 것 같습니다:

어디서든 (가상) 무대에 올려야 할 것 같네요 😃

작품이 궁금합니다. Airtable이나 Zapier 같은 도구를 활용해 급하게 뭔가를 만들어내는 그 ‘허드렛일’ 같은 자세를 정말 좋아하거든요 🙂  
모든 것이 100% 단위 테스트로 커버되고, 완전히 명세된 솔루션일 필요는 없습니다. 제품 소유자가 직접 쉽게 수정할 수 있는 간단한 것이 훨씬 더 유용한 경우가 많으니까요!

---

<div class="post-metadata">

### Author: ![jordan-violet](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jordan-violet/32/281428_2.png) [@jordan-violet](https://meta.discourse.org/u/jordan-violet)
#### Post date: [5월 22, 2024, 1:35오후 UTC](https://meta.discourse.org/t/discourse-has-slowly-been-solving-a-fatigue-i-didnt-realize-i-had/308520/7 "2024-05-22T13:35:53Z")

</div>

잘못 이해하지 마세요. 저도 Discourse에 해당 기능들이 추가되길 바라고 있잖아요? 우리 모두 자기 기능들이 우선순위로 처리되길 원하지 않나요? 😅

하지만 바로 이것이 확장 가능한 제품의 가치입니다. 그리고 우리 팀이 이 제품을 이렇게 잘 받아들이는 이유이기도 합니다. 어떤 방향으로 나아가더라도 끝이 없는 길이 없기 때문이죠.

---

<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: [5월 22, 2024, 2:03오후 UTC](https://meta.discourse.org/t/discourse-has-slowly-been-solving-a-fatigue-i-didnt-realize-i-had/308520/8 "2024-05-22T14:03:46Z")

</div>

> [@jordan-violet](#):
>
> 오해하지 마세요, 저는 Discourse에 해당 기능이 추가되는 걸 정말 원하잖아요, 그렇죠? 우리 모두 자기가 원하는 기능이 우선순위에 오르는 걸 바랄 테니까요 😅

물론이죠!  
하지만 우리 모두 알다시피, 소프트웨어의 20%만 사용한다고 해도 각자가 사용하는 20%는 같지 않거든요 😃

Airtable로 패치하는 게 정말 많은 문제를 해결해 줍니다! Airtable에서 2시간 만에 만들 수 있는 것이 개발 단계에 들어가기 전까지 며칠간의 논의를 거칠 테니까요 🤷‍♂️

---

<div class="post-metadata">

### Author: ![jordan-violet](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jordan-violet/32/281428_2.png) [@jordan-violet](https://meta.discourse.org/u/jordan-violet)
#### Post date: [5월 22, 2024, 2:19오후 UTC](https://meta.discourse.org/t/discourse-has-slowly-been-solving-a-fatigue-i-didnt-realize-i-had/308520/9 "2024-05-22T14:19:52Z")

</div>

110%! API-first는 구현자에게 축복입니다!

---

<div class="post-metadata">

### Author: ![saurabhmithal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/saurabhmithal/32/378295_2.png) [@saurabhmithal](https://meta.discourse.org/u/saurabhmithal)
#### Post date: [6월 19, 2024, 5:45오전 UTC](https://meta.discourse.org/t/discourse-has-slowly-been-solving-a-fatigue-i-didnt-realize-i-had/308520/10 "2024-06-19T05:45:50Z")

</div>

> [@jordan-violet](#):
>
> 저희는 Discourse의 사용자 및 사용자 그룹 테이블을 Airtable로 실시간 업데이트되는 1:1 사본을 생성할 수 있도록, Discourse에서 Airtable로의 놀라운 일방적 동기화(one-way sync) 방식을 마련했습니다.

우리 커뮤니티에도 이걸 설정해 주실 수 있을까요?

Zapier 같은 도구를 사용하시나요, 아니면 직접 통합 기능이 있나요?

---

<div class="post-metadata">

### Author: ![jordan-violet](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jordan-violet/32/281428_2.png) [@jordan-violet](https://meta.discourse.org/u/jordan-violet)
#### Post date: [6월 19, 2024, 2:28오후 UTC](https://meta.discourse.org/t/discourse-has-slowly-been-solving-a-fatigue-i-didnt-realize-i-had/308520/11 "2024-06-19T14:28:27Z")

</div>

안타깝게도 이 문제를 도와줄 여유 시간이 없습니다. 다만 언젠가 통합에 대해 더 자세히 글을 올리기를 희망합니다.

모든 작업은 Discourse 웹훅/API를 사용하고, Airtable 자동화로 이를 감지 및 호출하는 방식으로 이루어졌습니다.

---

<div class="post-metadata">

### Author: ![saurabhmithal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/saurabhmithal/32/378295_2.png) [@saurabhmithal](https://meta.discourse.org/u/saurabhmithal)
#### Post date: [6월 20, 2024, 3:48오전 UTC](https://meta.discourse.org/t/discourse-has-slowly-been-solving-a-fatigue-i-didnt-realize-i-had/308520/12 "2024-06-20T03:48:26Z")

</div>

> [@jordan-violet](#):
>
> Discourse 웹훅/API를 사용하여 모든 작업을 완료하고, Airtable 자동화로 이를 수신/호출하는 방식입니다.

감사합니다. 유용한 정보네요. 방법을 찾아보겠습니다.
