# 이게 맞나요? 개발 버전 설치에 얼마나 걸리나요?

**URL:** https://meta.discourse.org/t/is-this-correct-how-long-to-install-dev-version/174337
**Category:** Self-hosting
**Created:** [12월 27, 2020, 12:46오후 UTC](https://meta.discourse.org/t/is-this-correct-how-long-to-install-dev-version/174337 "2020-12-27T12:46:47Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![epsteindidnt](https://avatars.discourse-cdn.com/v4/letter/e/c6cbf5/32.png) [@epsteindidnt](https://meta.discourse.org/u/epsteindidnt)
#### Post date: [12월 27, 2020, 12:46오후 UTC](https://meta.discourse.org/t/is-this-correct-how-long-to-install-dev-version/174337/1 "2020-12-27T12:46:47Z")

</div>

저는 FluxBB 포럼을 Discourse로 마이그레이션하기 위해, 내보낸 후 Discourse 프로덕션 버전으로 가져오기라는 목적으로만 DigitalOcean의 Ubuntu 20.04 드롭렛에 Discourse 개발 버전을 설치하려고 하고 있습니다.

FluxBB에서 마이그레이션하지 않고 테스트용으로 Docker 프로덕션 버전을 설치하는 데에는 문제가 없었습니다.

하지만 다음 가이드를 사용하여 Discourse 개발 버전을 설치하려고 하면:

> [@개발용 Ubuntu 또는 Debian에 Discourse 설치하기](https://meta.discourse.org/t/beginners-guide-to-install-discourse-on-ubuntu-for-development/14727):
>
> warning 이 가이드는 개발 환경에서의 설치 지침을 다룹니다. 프로덕션 환경 설치 가이드는 다음을 참조하세요: [Install Discourse in production with the official supported instructions](https://meta.discourse.org/t/how-to-install-discourse-in-production/142537) Discourse를 Ubuntu 또는 Debian에 설정하여 개발하고 해킹(개발 작업)을 하길 원하시나요? 로컬에서 작업하고 있으며, Ubuntu 또는 Debian 시스템에 Ruby/Rails/Postgres/Redis가 설치되어 있지 않은 것으로 가정합니다. 시작해 보겠습니다! 요구 사항 최소 4GB의 RAM과 2개의 CPU 코어를 권장합니다. 현재 호환성: OS 호환성 Debian 11white_check_markCrostini (Linux on ChromeOS)white_check_markUbuntu 22.04 또는 그 이상white_check_markDiscourse …

다음 명령을 실행하면 완료되지 않습니다:

> bundle exec rake autospec

약 30분 정도 기다리다 보면 원격 세션이 타임아웃됩니다.

또한 수많은 오류가 발생하는데, 아쉽게도 그 내용을 바로 확인할 수는 없지만 모두 특정 함수가 항상 "nil"을 반환한다는 유형의 오류입니다.

해당 명령이 무엇을 하는지, 그리고 필수적인지(설명서에는 "스펙을 실행해 보라"라고만 되어 있고 이것이 무엇을 하는지, 왜 해야 하는지에 대한 설명이 없습니다) 알지 못해서, 다음 명령을 시도해 보았습니다:

> bundle exec rails server --binding=0.0.0.0

이 명령도 끝없이 오래 걸리며 터미널에 이해할 수 없는 많은 내용을 출력합니다. 오류일 수도 있고 아닐 수도 있습니다.

따라서 제 질문은, 이것이 예상되는 동작인지 아니면 제가 무언가를 잘못하고 있는 것인지입니다. 이러한 명령이 완료되는 데 대략 얼마나 걸릴 것으로 예상됩니까?

그리고 개발 버전을 사용하지 않고 프로덕션/Docker 버전의 Discourse만으로 FluxBB 포럼을 마이그레이션하는 것이 가능한가요? 현재 프로덕션 사이트가 아직 없으므로 깨뜨려도 걱정하지 않으며, 필요하면 파괴하고 다시 만들 수 있습니다.

---

<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: [12월 27, 2020, 12:49오후 UTC](https://meta.discourse.org/t/is-this-correct-how-long-to-install-dev-version/174337/2 "2020-12-27T12:49:19Z")

</div>

> [@epsteindidnt](#):
>
> 그리고 이 과정이 정말 오래 걸리는 것 같고, 터미널에 이해할 수 없는 내용들이 쏟아져 나와요. 에러인 건지 아닌지도 모르겠네요.

이것은 서버가 실행 중이라는 뜻입니다. 그리고 컨트롤+C를 누르거나 터미널을 닫을 때까지 서버는 계속 실행됩니다.

> [@epsteindidnt](#):
>
> 이 명령어들이 완료되는 데 대략 얼마나 걸릴 것으로 예상하나요?

서버를 중지하지 않는 한 터미널에 정보가 끊임없이 출력됩니다.

실행 후 몇 초 안에 웹 페이지가 브라우저에서 접근 가능해집니다.

브라우저에서 올바른 포트에 연결하고 있나요? 보통은 3000입니다.

---

<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: [12월 27, 2020, 1:50오후 UTC](https://meta.discourse.org/t/is-this-correct-how-long-to-install-dev-version/174337/3 "2020-12-27T13:50:12Z")

</div>

프로덕션 서버에서 임포트를 실행하는 방법에 대한 여러 howto(사용법) 주제가 있습니다. 실행하려는 스크립트를 실행하는 데 그중 하나를 가이드로 사용할 수 있습니다.

개발 환경을 설치했고, 해당 환경에서 스크립트를 실행해야 하는 것으로 보입니다.

---

<div class="post-metadata">

### Author: ![epsteindidnt](https://avatars.discourse-cdn.com/v4/letter/e/c6cbf5/32.png) [@epsteindidnt](https://meta.discourse.org/u/epsteindidnt)
#### Post date: [12월 27, 2020, 2:10오후 UTC](https://meta.discourse.org/t/is-this-correct-how-long-to-install-dev-version/174337/4 "2020-12-27T14:10:34Z")

</div>

브라우저에서 아무것도 표시되지 않습니다. 터미널에서 'top’을 실행하면 ruby 프로세스가 실행 중인 것을 확인할 수 있습니다.

> bundle exec rails server --binding=0.0.0.0

을 실행한 후 터미널 출력이 계속 무한정 진행되는데, 이 점을 문서에 명시해야 하지 않을까요? 보통 튜토리얼을 따라 할 때는 명령어를 실행하면 무언가가 실행되고 완료되며, 설치가 끝났으니 준비가 되었다는 정보가 표시될 것으로 기대합니다.

---

<div class="post-metadata">

### Author: ![epsteindidnt](https://avatars.discourse-cdn.com/v4/letter/e/c6cbf5/32.png) [@epsteindidnt](https://meta.discourse.org/u/epsteindidnt)
#### Post date: [12월 27, 2020, 2:12오후 UTC](https://meta.discourse.org/t/is-this-correct-how-long-to-install-dev-version/174337/5 "2020-12-27T14:12:27Z")

</div>

> 프로덕션 서버에서 가져오기를 실행하는 방법에 대한 여러 가지 howto(사용법) 주제가 있습니다.

이 주제들은 어디에 있을까요? FluxBB에 대해서는 개발용 설치에서 실행하라고 명시적으로 적혀 있는 주제 하나만 보입니다:

> [@Migrate a FluxBB forum to Discourse](https://meta.discourse.org/t/importing-from-fluxbb/51322):
>
> I created a migration [script](https://github.com/discourse/discourse/blob/main/script/import_scripts/fluxbb.rb) to import FluxBB database into Discourse. Now I’m going to explain how to do the import process in a step-by-step tutorial. I tested this migration script with FluxBB v1.5.10 (which is current version now) What data can be imported? Users (including bios/signatures) Groups Categories warning Permissions won’t be imported and all categories will be public. Right permissions must be set manually after the import. Topics (including sticky/pinned status) Posts Sus…

---

<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: [12월 27, 2020, 2:37오후 UTC](https://meta.discourse.org/t/is-this-correct-how-long-to-install-dev-version/174337/6 "2020-12-27T14:37:28Z")

</div>

웹 서버를 시작하면, 관리자가 종료하도록 지시하지 않는 한 계속 실행되는 것이 일반적이라는 것은 상식이라고 생각합니다. 웹 서버는 기본적으로 매일, 또 매일, 그리고 또 매일 페이지를 서빙하도록 설계되어 있죠. 하지만 누군가가 그 부분을 명확히 해줄 수는 있겠네요. 누구나 PR을 통해 가이드에 대한 개선안을 제출할 수 있습니다.

---

<div class="post-metadata">

### Author: ![epsteindidnt](https://avatars.discourse-cdn.com/v4/letter/e/c6cbf5/32.png) [@epsteindidnt](https://meta.discourse.org/u/epsteindidnt)
#### Post date: [12월 27, 2020, 6:17오후 UTC](https://meta.discourse.org/t/is-this-correct-how-long-to-install-dev-version/174337/7 "2020-12-27T18:17:03Z")

</div>

하지만 그 명령어가 웹 서버를 시작한다는 것이 상식일까요? rails server라고만 되어 있을 뿐, 반드시 웹 서버일 필요는 없습니다. 아파치 웹 서버를 시작하면 즉시 명령 프롬프트로 돌아오며, 터미널에 끝없이 내용을 출력하지는 않잖아요…

---

<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: [12월 27, 2020, 6:50오후 UTC](https://meta.discourse.org/t/is-this-correct-how-long-to-install-dev-version/174337/8 "2020-12-27T18:50:59Z")

</div>

Rails는 웹 애플리케이션 프레임워크입니다. Apache와 직접 비교하는 것은 공정하지 않다고 생각합니다.

저는 작업 중인 상태를 눈으로 확인할 수 있는 점이 좋습니다. 멈추면 보통 문제가 생긴 것입니다. 출력 정보는 특히 개발 환경에서 유용할 수 있습니다. 환경 설정을 통해 표시되는 정보의 양을 변경할 수 있습니다.

참고로, 문서에 따르면 Rails는 `-d` 옵션을 사용하여 데몬화할 수 있습니다. 기본 설치 환경에서 이 기능이 작동하지 않는 이유를 조사해 보셔도 좋습니다. 이로 인해 발생하는 제한 사항이 있을 수 있습니다. 이 부분은 팀과 상의하는 것이 가장 좋습니다.

---

<div class="post-metadata">

### Author: ![neounix](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/neounix/32/215617_2.png) [@neounix](https://meta.discourse.org/u/neounix)
#### Post date: [12월 28, 2020, 3:59오전 UTC](https://meta.discourse.org/t/is-this-correct-how-long-to-install-dev-version/174337/9 "2020-12-28T03:59:46Z")

</div>

> [@epsteindidnt](#):
>
> 아파치 웹 서버를 시작하면 즉시 명령 프롬프트로 돌아오고, 터미널에 끝없이 정보를 출력하지 않습니다…

@epsteindidnt 님, 안녕하세요!

레일즈(Rails) 개발에 익숙해지면, 저처럼 "_터미널에 끝없이 정보를 출력하는 것_"을 여러분의 가장 큰 친구로 여기게 될 것입니다.

예를 들어, 저는 현재 클라이언트를 위해 레일즈 애플리케이션을 개발하고 있으며, 수십 년 전의 레거시 비즈니스 로직을 레일즈로 전환하는 작업을 하고 있습니다. 사실 저는 “_터미널에 끝없이 출력되는 정보_”(귀하의 표현)를 볼 수 있도록 새로운 모니터를 하나 더 구매했습니다. 이 정보는 개발자에게는 금과옥조와도 같으니까요.

세부적인 동작 원리를 알려주는 놀라운 레일즈 서버 로그 외에도, 또 다른 "개발자의 가장 큰 친구"인 레일즈 콘솔이 있습니다!

레일즈 코드를 작성할 때 저는 기본적으로 VSC에서 초안을 작성한 후, 모든 것이 예상대로 작동하는지 확인하기 위해 스니펫을 레일즈 콘솔에 복사하여 붙여넣습니다.

디버깅을 할 때는 Ruby의 print(와 유사한) 문구(p, puts)를 코드에 작성하여 화면의 "끝없는 금빛 레일즈 서버 로그 정보"를 관찰합니다. 거의 모든 오류를 이 방식으로 수정합니다! 말씀드린 것처럼, 저는 귀下が 짜증을 내시는 레일즈 서버 로그 정보를 보기 위해 최근 커브드 게이밍 모니터를 하나 더 구매했습니다 🙂

작성하신 게시글을 읽어보니, 올해 초와 같은 시기인 것 같습니다. 레일즈 개발 경험이 없는 상태에서 레일즈 애플리케이션으로 이관하는 과정에서 저와 비슷한 경험을 하고 계신 것 같습니다. 처음에는 저도 레일즈에 대해 (조금 이상으로) 짜증을 냈습니다. 하지만 9개월이 지난 지금은 매일 클라이언트를 위해 레일즈로만 개발하고 있습니다(반퇴직 상태이므로 클라이언트 작업은 반시간으로 제한하고 있으며), 이전의 PHP 개발 작업을 모두 중단했습니다. 솔직히 말씀드리자면, 레일즈(와 Ruby)에 대한 새로운 열정을 갖게 되었습니다. 정말로요. 말처럼, 늦더라도 없는 것보다는 낫습니다!

Apache2에 대해 말씀드리자면, Apache는 레일즈가 애플리케이션 내부에서 일어나는 세부적인 내용을 제공하는 것과 같은 수준의 정보를 제공하지 않습니다. 저는 모든 레일즈 애플리케이션 앞에 Apache2를 리버스 프록시로 실행하고 있지만, 솔직히 말하면 Apache 로그 파일을 마지막으로 본 시점을 기억할 수조차 없습니다. 현재 귀下が 짜증을 내시는 레일즈 서버 로그를 사용하여 모든 디버깅을 수행하기 때문입니다 🙂

마지막으로, "포럼을 레일즈로 이관한 사람"으로서의 다른 관점이 작은 도움이 되기를 진심으로 바랍니다. 저에게는 LAMP 웹 앱에서 레일즈 웹 앱으로 전환해야 했던 것이 2020년에 저에게(개인적으로) 일어난 가장 좋은 “기술적 사건” 중 하나였습니다.

즐거운 명절 되세요!

---

<div class="post-metadata">

### Author: ![harry-wood](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/harry-wood/32/280138_2.png) [@harry-wood](https://meta.discourse.org/u/harry-wood)
#### Post date: [11월 3, 2022, 6:17오후 UTC](https://meta.discourse.org/t/is-this-correct-how-long-to-install-dev-version/174337/10 "2022-11-03T18:17:48Z")

</div>

> [@epsteindidnt](#):
>
> 이 과정이 정말 오래 걸리고 터미널에一堆의 출력이 쏟아지는 걸 발견했어요.

나도 요즘 이 문제로 좀 불안했어요. 오늘 깨달은 내용은 이렇습니다:

`rails s` 터미널의 출력에는 시작 시 여러 쿼리가 표시되지만, **디스코urs의 사이드키큐(Sidekiq) 작업 출력**도 포함됩니다(적어도 도커 개발 환경에서는 그렇습니다). 따라서 정말 큰 규모로 가져오기를 실행했다면, 그 후로 오랜 시간 동안 실행될 수 있는 후처리 작업으로 이루어진 방대한 사이드키큐 큐가 생성됩니다. 캐시 로딩과 같은 이러한 작업들은 필수적이지 않으며, 완료되기 전에 사이트를 탐색하는 것을 방해하지 않는 것 같습니다.

이 부분이 나를 정말 혼란스럽게 했어요. 큰 가져오기를 실행한 뒤, 그걸 취소하고 데이터베이스를 초기화해서 작은 테스트용 가져오기를 했는데도, 더 이상 존재하지 않는 큰 데이터베이스와 관련된 쿼리를 끝없이 계속 돌리고 있었거든요. 해결책은 [레일스 콘솔을 사용하여 사이드키큐 큐를 비우는 것](https://gist.github.com/wakproductions/56482d9b8b00ec2378206f03327abcd1#empty-items-in-a-queue)이었습니다.

지금 도와드리기엔 늦었을 수도 있지만, 공유해 두려고 합니다.
