시작하는 방법 중 하나는 기존 플러그인 지원에 기여하는 것입니다. PR(풀 리퀘스트)을 제출하면서 시작하면 됩니다(저도 그렇게 시작했습니다). 처음에는 사소한 문제부터 시작해 점차 더 큰 문제를 해결하고, 새로운 기능을 추가하는 방향으로 나아가면 됩니다.
합리적으로 단순한 플러그인이나 테마 컴포넌트에 대한 아이디어가 있다면 그것부터 시작해 보세요. 개인적인 창의적 목표는 큰 동기부여가 될 수 있습니다.
처음부터 너무 많은 것을 시도하려 하지 말고 단순하게 시작하세요. 동기를 잃는 것은 가장 피해야 할 일이기 때문입니다. 특히 근본적인 변경을 시도할 때 이 작업은 어려울 수 있습니다.
인내심을 가지세요. EmberJS는 특히 이해하기가 까다로운 프레임워크입니다.
제 조언은 테마 컴포넌트부터 시작하고, 조금 나중에 플러그인으로 넘어가라는 것입니다.
항상 방대한 기존 플러그인과 TC(테마 컴포넌트) 라이브러리를 참고 자료로 활용하세요. 누군가 이미 비슷한 문제를 해결했을 수도 있습니다. 그들은 어떻게 했을까요? 코드를 살펴보세요. 항상 Discourse 코어가 설정한 표준을 따르세요. Discourse 소스 코드도 무한히 가치 있는 자료입니다.
아마도 가장 좋은 조언은 이겁니다: 그냥 해보세요! 배울 수 있는 유일한 방법은 실제로 직접 해보는 것입니다. 실수를 두려워하지 마시고, 좌절에 막히지 마세요. 계속 노력하다 보면 결국 해낼 수 있습니다. 가능한 한 스스로 해결하려고 노력하되, 정말 필요할 때는 언제든 다른 사람에게 도움을 요청할 수 있습니다.
레일즈(Rails)를 배우는 데 오랜 시간을 보냈습니다. 하지만 실제로는 Ember/JavaScript 쪽에서 많은 일이 일어나고 있습니다. 제 조언은 테마 컴포넌트(theme components)로 할 수 있는 것들부터 그쪽에서 시작해 보라는 것입니다. 훨씬 안전하고, 사용하기가 쉬우며, 할 수 있는 것들이 훨씬 많습니다.
이 주제에서 이미 언급된 훌륭한 추천들 외에도, 제 최고의 조언은 Discourse · GitHub 의 수많은 테마/컴포넌트 코드를 살펴보고 그 원리를 이해해 보라는 것입니다. 클론을 만들어 보고, 고쳐 보고, 어떻게 동작하는지 파악해 보세요. 저도 여기저기서 작은 프로젝트들을 하면서 그렇게 많이 배웠습니다.
무엇을 하려는 건지 잘 알겠어요, @pfaffman. 그렇긴 하지만, 아직 제게 코드를 정리해 달라고 하기엔 이르다고 생각해요. 다만, PR을 제출하는 것이 좋은 시작점이 될 수 있다는 데는 동의합니다. 먼저 이 스레드에서 이미 공유된 자료들을 좀 더 자세히 살펴봐야 할 것 같아요.
지금 제가 직면한 가장 큰 과제는 LAMP 배경에서 Discourse 스택이 무엇으로 불리는지 이해하는 것이 될 거예요. LNPR(Linux, Nginx, Postgres, Ruby/Rails)? 하하.
하지만 진지하게 말하자면, 그 테마는 테마가 할 수 있는 일들에 대한 아이디어를 얻을 수 있는 다양한 기능을 제공합니다. 완전히 새로운 주제 목록을 만들 수 있다는 점은 정말 놀라운데요. 코드를 정리하는 것(아무런 쓸모도 없는 코드가 너무 많지만, 제거하려고 시도했을 때 여러 가지가 깨져서 결국 괄호를 닫는 위치를 어긋나게 만들었거나… 혹은 그 비슷한 문제를 찾지 못한 채 그대로 두었습니다)은 비록 나 자신을 위해서만이라도 꽤 좋은 연습이 될 것입니다. 제 조언이 여러분에게 도움이 될지 판단할 수 있도록 더 많은 맥락을 드리자면, 저는 CS(컴퓨터 과학) 학위를 받았지만 1998년경에 HTML 학습을 중단한 사람입니다. CSS가 이론적으로 무엇을 할 수 있는지는 이해하지만, JavaScript는 여전히 완전히 혼란스러우며, JavaScript가 어디서 끝나고 Ember가 어디서 시작되는지 이해하지 못합니다. 저는 종종 사소한 변경이 될 것이라고 생각하며 수정을 시도하다가 결국 모든 것을 망치곤 합니다.