# 나중에 Discourse 커뮤니티를 커스텀 웹앱으로 이식하는 것이 얼마나 쉬운가요?

**URL:** https://meta.discourse.org/t/how-easy-is-it-to-port-discourse-community-to-custom-webapp-later/257489
**Category:** Development
**Created:** [3월 8, 2023, 1:07오후 UTC](https://meta.discourse.org/t/how-easy-is-it-to-port-discourse-community-to-custom-webapp-later/257489 "2023-03-08T13:07:03Z")
**Posts on this page:** 16
**Page:** 1

<div class="post-metadata">

### Author: ![Paras\_Chopra](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/paras_chopra/32/296947_2.png) [@Paras\_Chopra](https://meta.discourse.org/u/Paras_Chopra)
#### Post date: [3월 8, 2023, 1:07오후 UTC](https://meta.discourse.org/t/how-easy-is-it-to-port-discourse-community-to-custom-webapp-later/257489/1 "2023-03-08T13:07:04Z")

</div>

커뮤니티 지향적인 프로젝트를 만들고 있는데, Discourse가 딱 맞는 것 같습니다.

다만 최종적으로는 나중에 커스텀 앱으로 커뮤니티를 이전할 계획입니다. 이전에 이 작업을 해보신 분이 있는지, 그리고 그 난이도가 어느 정도인지 궁금합니다. 특정 생태계에 종속되는 것은 피하고 싶습니다.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [3월 8, 2023, 1:17오후 UTC](https://meta.discourse.org/t/how-easy-is-it-to-port-discourse-community-to-custom-webapp-later/257489/2 "2023-03-08T13:17:23Z")

</div>

그것은 기본적으로 다른 데이터 마이그레이션과 크게 다르지 않을 것입니다.

테이블 이름은 스스로 설명이 되나요?

아니면, Discourse 데이터베이스 구조와 백엔드를 유지하면서 모든 것을 API를 통해 처리하고 프론트엔드를 직접 구축하는 방법도 있습니다…

---

<div class="post-metadata">

### Author: ![renato](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/renato/32/383632_2.png) [@renato](https://meta.discourse.org/u/renato)
#### Post date: [3월 8, 2023, 1:38오후 UTC](https://meta.discourse.org/t/how-easy-is-it-to-port-discourse-community-to-custom-webapp-later/257489/3 "2023-03-08T13:38:50Z")

</div>

“나중에 커뮤니티를 커스텀 앱으로 이전한다”는 것이 정확히 무엇을 의미하는지에 따라 달라집니다.

Discourse에서 완전히 벗어나 직접 만든 데이터베이스, 백엔드, 프론트엔드 등으로 이주하려는 것이라면 데이터 마이그레이션이 방법입니다.

Discourse의 데이터 및 백엔드 계층을 그대로 유지하면서 이를 헤드리스 서비스로 사용하고, 기존 API를 소비하는 새로운 프론트엔드를 작성하는 것도 가능하며, 실제로 이전에 이렇게 한 사례가 있습니다.

다만 고려해야 할 점은 Discourse가 방대하다는 것입니다. 정말로 엄청나게 큽니다. 예를 들어 채팅 기능 하나만 해도 큰 프로젝트인데, 이는 Discourse 전체의 아주 작은 일부에 불과합니다.

이러한 UI를 다시 작성하는 것은 분명 차를 다시 발명하는 것과 같을 것이며, 커뮤니티에서 이러한 기능들을 당연하게 여기게 되면, 해당 기능이 없는 커스텀 앱으로 이주하는 것은 어려울 것입니다.

---

<div class="post-metadata">

### Author: ![Paras\_Chopra](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/paras_chopra/32/296947_2.png) [@Paras\_Chopra](https://meta.discourse.org/u/Paras_Chopra)
#### Post date: [3월 9, 2023, 9:34오전 UTC](https://meta.discourse.org/t/how-easy-is-it-to-port-discourse-community-to-custom-webapp-later/257489/4 "2023-03-09T09:34:25Z")

</div>

> [@renato](#):
>
> Discourse의 데이터 및 백엔드 계층을 계속 사용하면서, 이를 헤드리스 서비스로 활용하고 기존 API를 소비하는 새로운 프론트엔드를 작성하는 것도 가능하며, 이전에 이러한 사례가 있었습니다.

답변 주셔서 감사합니다. 이 부분에 대한 예시나 사례 연구가 있을까요? 헤드리스 방식으로 Discourse를 사용하는 웹사이트나 앱이 있나요?

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [3월 9, 2023, 9:36오전 UTC](https://meta.discourse.org/t/how-easy-is-it-to-port-discourse-community-to-custom-webapp-later/257489/5 "2023-03-09T09:36:53Z")

</div>

> [@Lexicon: Discourse 사이트용 사용자 정의 네이티브 모바일 앱](https://meta.discourse.org/t/lexicon-a-customizable-native-mobile-app-for-your-discourse-site/201085):
>
> Hey everyone, I wanted to quickly drop in here and mention that I’ve just open-sourced a project called [Lexicon](https://lexicon.is) with some colleagues of mine. It’s a pre-built, customizable native mobile app built on top of the Discourse API. We built it to help quickly integrate discussion and messaging features into other native mobile projects. This project was really enjoyable to build, primarily due to all of the hard work done in advance by the Discourse core team and community over the years. Screensh…

> [@Fig - iOS용 네이티브 Discourse 클라이언트](https://meta.discourse.org/t/fig-native-discourse-client-for-ios/148352):
>
> Just wanted to introduce a project I have been working on. It is called Fig, and it is native Discourse client for iOS/iPadOS. Fig is available for [free](https://apps.apple.com/us/app/fig-for-discourse/id1485491193?ls=1) on the App Store. [[Screen Shot 2020-04-14 at 8.02.48 AM]](https://apps.apple.com/us/app/fig-for-discourse/id1485491193?ls=1) Most of the functions and features in Fig are free and will be plentiful for most users. Fig+ subscription allows access to private communities, unlimited number of posts and communities, free app icons, and future premium features. It will also help sustain the continuous development o…

---

<div class="post-metadata">

### Author: ![Paras\_Chopra](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/paras_chopra/32/296947_2.png) [@Paras\_Chopra](https://meta.discourse.org/u/Paras_Chopra)
#### Post date: [3월 9, 2023, 9:41오전 UTC](https://meta.discourse.org/t/how-easy-is-it-to-port-discourse-community-to-custom-webapp-later/257489/6 "2023-03-09T09:41:45Z")

</div>

정말 훌륭합니다! 이것들을 공유해 주셔서 진심으로 감사합니다.

디스코urses(discourse)를 이용해 완전한 소셜 네트워크를 구축하려는 사람들의 토론을 몇 가지 살펴보고 있습니다. 혹시 이와 관련된 예시가 있으시면 알려 주십시오. 아직까지 웹에서 포럼처럼 보이지 않는 진지한 디스코urses(discourse) 구현을 찾아보지 못했거든요.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [3월 9, 2023, 9:44오전 UTC](https://meta.discourse.org/t/how-easy-is-it-to-port-discourse-community-to-custom-webapp-later/257489/7 "2023-03-09T09:44:19Z")

</div>

연방(Federation)도 고려해 보시고 아래 링크를 확인해 보세요:

> [@Federation support for Discourse](https://meta.discourse.org/t/federation-support-for-discourse/90921?u=merefield):
>
> The mail goal of this feature is to connect all the Discourse communities like how [Mastodon](https://joinmastodon.org/) makes use of global and local feeds to maintain a healthy and decentralized network of Mastodon instances which allows a user from one instance to connect, follow, and discuss on topics of another instance. I think this will open up a lot of new features for Discourse. The benefit Imagine being able to just connect to your own local community and then be able to get news about other topics from other Di…

React Native와 Webview를 활용하는 iOS 및 Android용 화이트리스트 앱도 있습니다:

> [@Whitelisted Discourse app with Push Notifications via OneSignal](https://meta.discourse.org/t/whitelisted-discourse-app-with-push-notifications-via-onesignal/58247):
>
> Following up on the discussion [here](https://meta.discourse.org/t/what-if-i-want-to-white-label-the-discourse-mobile-apps/53063/9), I have successfully set up a fork of the official Discourse app that can send push notifications via the OneSignal API. There are two parts to this: [discourse-onesignal](https://github.com/pmusaraj/discourse-onesignal/) - a Discourse plugin that sends Push Notifications to OneSignal’s REST API and a [Discourse Mobile Single Site App](https://github.com/pmusaraj/discourse-mobile-single-site-app) built similarly to the official Discourse Mobile app (using React Native), but using OneSignal for notifications and a simplified interface to suit the needs of a single app. I…

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [3월 9, 2023, 9:50오전 UTC](https://meta.discourse.org/t/how-easy-is-it-to-port-discourse-community-to-custom-webapp-later/257489/8 "2023-03-09T09:50:13Z")

</div>

잘 말씀하셨습니다.

저도 _엄청난_ 비기술적 도전 과제들을 추가하고 싶습니다. 트래픽 확보, 사용자 유치, 홍보, 마케팅… 그리고 기능 세트는요? 주류 앱에서는 얻을 수 없는, 사람들에게 어떤 가치를 제공합니까? 아, 그리고 자금… 시간…

적어도 포럼은 작은 틈새 시장을 노려 청중을 끌어모을 수 있고… 거대한 스태프에 의존하지 않아도 됩니다.

그래도 한번 제대로 도전해 보는 것은 나쁘지 않습니다: 모험하지 않으면 얻는 것도 없으니까요! (아마 배울 것도 없겠지만요!)

---

<div class="post-metadata">

### Author: ![Paras\_Chopra](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/paras_chopra/32/296947_2.png) [@Paras\_Chopra](https://meta.discourse.org/u/Paras_Chopra)
#### Post date: [3월 9, 2023, 10:03오전 UTC](https://meta.discourse.org/t/how-easy-is-it-to-port-discourse-community-to-custom-webapp-later/257489/9 "2023-03-09T10:03:32Z")

</div>

답변 주셔서 감사합니다. 시간을 내주셔서 정말 감사드립니다.

비기술적 리스크를 줄이기 위해 Discourse를 사용하기로 했습니다.

---

<div class="post-metadata">

### Author: ![RyanKF](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ryankf/32/231027_2.png) [@RyanKF](https://meta.discourse.org/u/RyanKF)
#### Post date: [3월 9, 2023, 10:22오전 UTC](https://meta.discourse.org/t/how-easy-is-it-to-port-discourse-community-to-custom-webapp-later/257489/10 "2023-03-09T10:22:44Z")

</div>

연방제에 대한 제안이 있다는 걸 몰랐어요. 꽤 멋질 것 같네요. 공유해 주셔서 감사합니다.

---

<div class="post-metadata">

### Author: ![Michiel\_van\_Vliet](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/michiel_van_vliet/32/296957_2.png) [@Michiel\_van\_Vliet](https://meta.discourse.org/u/Michiel_van_Vliet)
#### Post date: [3월 15, 2023, 7:36오후 UTC](https://meta.discourse.org/t/how-easy-is-it-to-port-discourse-community-to-custom-webapp-later/257489/11 "2023-03-15T19:36:48Z")

</div>

파라스님,

혹시 발견하신 내용 중 몇 가지 공유해 주실 수 있을까요? 단순한 기능과 중간 수준의 복잡성을 가진 기능을 개발하는 것이 얼마나 어려운지 감이 잡히나요? 개발자들은 해당 스택에 대한 경험이 있어야 할 것 같습니다. 하지만 그 후에도 플랫폼의 작동 방식을 파악해야 하고, 그 다음에야 비로소 문제를 풀고 구축을 시작하게 되는 건가요? 댓글에 제시된 예외를 제외하고, 이런 방식으로 개발을 많이 하고 있나요? 그렇거나 그렇지 않은 이유는 무엇일까요?

감사합니다

---

<div class="post-metadata">

### Author: ![Paras\_Chopra](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/paras_chopra/32/296947_2.png) [@Paras\_Chopra](https://meta.discourse.org/u/Paras_Chopra)
#### Post date: [3월 18, 2023, 7:39오전 UTC](https://meta.discourse.org/t/how-easy-is-it-to-port-discourse-community-to-custom-webapp-later/257489/12 "2023-03-18T07:39:54Z")

</div>

아직 커스터마이징을 해보지 않았습니다.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [3월 18, 2023, 7:43오전 UTC](https://meta.discourse.org/t/how-easy-is-it-to-port-discourse-community-to-custom-webapp-later/257489/13 "2023-03-18T07:43:21Z")

</div>

> [@Michiel\_van\_Vliet](#):
>
> 이렇게 많이 하나요? 왜 그렇거나 아닌가요?

그럴 리가 없죠!

중복 구현 이후, 코어의 파괴적 변경 사항(breaking changes)을 수용해야 하는 유지보수 부담이 따릅니다.

게다가 생태계를 벗어나면 플러그인이나 테마 컴포넌트를 사용할 수 없게 되죠, 정말로!

대부분의 사용 사례에서 Discourse를 그대로 사용하면서 커뮤니티 로직을 구현하는 것이 훨씬 쉽습니다. 필요에 따라 테마와 플러그인으로 커스터마이징을 추가하면 됩니다.

증거가 필요하다면, 커뮤니티 관리를 위해 Discourse를 사용하는 수많은 기업들을 보면 알 수 있습니다.

---

<div class="post-metadata">

### Author: ![Michiel\_van\_Vliet](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/michiel_van_vliet/32/296957_2.png) [@Michiel\_van\_Vliet](https://meta.discourse.org/u/Michiel_van_Vliet)
#### Post date: [3월 18, 2023, 9:46오전 UTC](https://meta.discourse.org/t/how-easy-is-it-to-port-discourse-community-to-custom-webapp-later/257489/14 "2023-03-18T09:46:51Z")

</div>

로버트, 감사합니다!

쉽지 않아 보였지만, 그래도 확인해 보고 싶었습니다.

감사합니다,

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [3월 18, 2023, 9:56오전 UTC](https://meta.discourse.org/t/how-easy-is-it-to-port-discourse-community-to-custom-webapp-later/257489/15 "2023-03-18T09:56:03Z")

</div>

잘못 이해하지 마세요. 여기에는 완벽한 정답이 없습니다. 작동하게 만들 수도 있지만, 위험, 트레이드오프, 비용을 인지해 두시기 바랍니다.

---

<div class="post-metadata">

### Author: ![Michiel\_van\_Vliet](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/michiel_van_vliet/32/296957_2.png) [@Michiel\_van\_Vliet](https://meta.discourse.org/u/Michiel_van_Vliet)
#### Post date: [3월 20, 2023, 2:34오후 UTC](https://meta.discourse.org/t/how-easy-is-it-to-port-discourse-community-to-custom-webapp-later/257489/16 "2023-03-20T14:34:57Z")

</div>

로버트 씨, 네, 이해했어요. 복잡한 결정인 건 알지만, 지금은 이 일이 얼마나 복잡할 수 있는지 정도만 파악하면 충분해요.
