콘텐츠로 이동

새로운 기능 제안

새로운 기능을 구현하십시오

시작하기 전에

이미 구현하고 싶은 기능 목록은 매우 길지만, 자원은 매우 제한적입니다. BeeWare를 더 나아지게 할 아이디어가 있다면 기꺼이 듣고 싶습니다. 동일한 요청이 충분히 많이 접수되면 핵심 팀이 해당 아이디어를 구현할 수도 있습니다. 그러나 기능 요청 자체만으로는 가까운 시일 내에 해당 기능이 구현될 가능성은 낮습니다.

BeeWare는 오픈소스 커뮤니티입니다. 기능이 구현되도록 하는 가장 효과적인 방법은 직접 구현하는 것입니다. 기여자들이 원하는 기능을 구현할 수 있도록 우리는 최선을 다해 지원할 것입니다. 핵심 팀이 무료로 기능을 구현해 달라는 요구는 환영받기 어려울 것입니다.

특정 기능을 직접 구현할 수 없는 상황이라면, 개발을 가속화하는 다른 방법은 타인에게 구현을 의뢰하는 것입니다. 특정 기능 개발을 우선순위로 처리해 달라고 요청하시려면 BeeWare 팀에 문의해 주세요.

새로운 기능 제안

가장 먼저 제안할 만한 것은 새로운 API나 기능입니다. BeeWare가 현재 지원하지 않는 사용 사례가 있거나, BeeWare가 현재 활용할 수 없는 플랫폼 고유 기능이 있다면, 그 격차를 해소하기 위한 변경을 제안해 볼 수 있습니다.

새로운 기능을 제안할 때는 BeeWare 도구 모음이 여러 플랫폼을 지원한다는 점을 염두에 두십시오. 이는 모든 신규 기능이 다음을 충족해야 함을 의미합니다:

  • 모든 플랫폼에서 적합하고 구현 가능해야 합니다(예: 모든 GUI 툴킷에는 "버튼" 개념이 존재함); 또는
  • 동일한 "유형"의 플랫폼에 적합해야 하며, 다른 플랫폼에서는 무시하는 것이 적절해야 합니다(예: 모든 휴대폰에는 가속도계가 있지만, 데스크톱에는 거의 없습니다. 따라서 iOS 및 Android용 가속도계 API가 존재하는 것은 타당하지만, 데스크톱이나 웹 플랫폼용으로는 존재하지 않아야 합니다); 또는
  • 공개 API를 변경하지 않고 내부 플랫폼 기능에 대한 접근을 허용합니다(예: 명백히 Android 전용인 기능을 추가할 수는 없지만, 최종 사용자가 자신의 코드에서 Android 전용 기능에 더 쉽게 접근할 수 있도록 할 수는 있습니다).

이는 모든 플랫폼에서 기능을 구현할 책임이 있다는 뜻은 아닙니다. 애플 하드웨어에 접근할 수 없다면, macOS나 iOS용 기능 구현을 요구하는 것은 합리적이지 않습니다. 그러나 설계 과정의 일환으로, 귀하가 설명한 방식으로 기능 구현이 가능하다는 점을 확인해야 합니다.

새로운 문서 제안

문서 개선을 제안하는 것도 고려해볼 만한 사항입니다. BeeWare에 대한 문서 개선 아이디어가 있다면, 다음 사항들을 고려해 보세요:

  • 귀하의 제안은 기존 문서와 중복되나요? 새로운 가이드를 제안하시는 건가요, 아니면 기존 가이드에 추가 내용을 제안하시는 건가요?
  • 이 프로젝트는 BeeWare 생태계의 다른 부분과 어떻게 조화를 이루나요? 이 아이디어를 문서화하기에 이 프로젝트가 적합한 장소인가요? 아니면 다른 프로젝트에서 기능을 문서화하고 해당 문서로 링크를 연결해야 할까요?
  • 특정 지침을 이해하기 전에 설명이 필요한 상위 개념이 있습니까?
  • 해당 주제를 우리가 설명하는 것이 타당할까요, 아니면 이미 다른 곳에서 다뤄져 참고할 수 있을까요?

이 중 어떤 부분이든 확실하지 않다면 걱정하지 마세요! 아이디어를 제출하고 초기 논의 단계에서 불확실한 점을 알려주시면, 여러분의 아이디어를 BeeWare 문서에 적합한 형태로 다듬는 데 도움을 드릴 수 있습니다.

기능 제안 기여

새로운 기능 제안

가능한 한 많은 정보를 입력한 후 "생성"을 클릭하여 보고서를 제출하세요.

조사해 보세요

첫 번째 단계는 BeeWare 이슈 트래커에서 기존 기능 관련 이슈(‘enhancement’ 태그가 지정된 이슈), 문서 관련 이슈(‘documentation’ 태그가 지정된 이슈), 또는 토론 스레드를 검색하여 해당 아이디어가 이전에 제안된 적이 있는지 확인하는 것입니다. 이미 제안된 경우, 새로운 맥락이나 아이디어가 있다면 기존 스레드에 추가하세요. 조사에 도움이 필요하면 BeeWare Discord의 #dev 채널에서 문의할 수 있습니다. 기존 스레드를 안내하거나, 여러분이 알지 못할 수 있는 맥락을 제공하거나, 당장 관련이 없어 보이는 다른 아이디어와 여러분의 아이디어를 연결해 드릴 수 있습니다.

아이디어를 논의하다

기존에 해당 아이디어에 대한 언급을 찾지 못하셨다면, 토론 스레드를 시작하세요. 아이디어의 목적과 사용 사례에 대한 개요를 제공하십시오. 구현 시 기능의 형태(예: API의 일반적인 구조, 기능의 시각적 외관, 추가될 문서 등)에 대한 생각도 포함시키세요. 해당되는 경우, 아이디어가 다양한 플랫폼에서 어떻게 구현될지에 대한 연구 결과도 포함해야 합니다.

토론 스레드가 개설되면 BeeWare 팀과 커뮤니티 구성원들이 답변을 드릴 것입니다. 핵심 팀은 귀하의 아이디어에 대해 최소한 초기 의견을 업무일 기준 2일 이내에 제공하기 위해 노력할 것입니다. 아이디어가 특히 복잡한 경우, 보다 상세한 분석에는 최대 일주일이 소요될 수 있습니다. 휴일이나 컨퍼런스 같은 행사로 인해 해당 일정이 다소 지연될 수 있습니다.

여러분의 아이디어에 대한 대화에 참여할 수 있는 기회입니다. 저희가 추가적인 세부사항이나 배경 정보를 요청할 수 있습니다. 커뮤니티의 다른 구성원들도 토론에 참여하여 다른 관점, 제안 또는 대안을 제시할 수 있습니다. 이 논의의 결과가 향후 진행 방향을 결정하게 됩니다.

모든 아이디어가 받아들여지는 것은 아니라는 점을 이해하는 것이 중요합니다. 이 과정이 제안서 제출로 시작되는 이유는, 여러분이 모든 작업을 마친 후에야 변경 사항이 받아들여지지 않는 이유가 있다는 사실을 알게 되는 상황을 피하기 위함입니다.

그렇다고 해서 좋은 아이디어가 아니었다는 뜻은 아닙니다! 기술적인 이유로 구현이 불가능할 수도 있습니다. 예를 들어, 다음과 같은 경우에는 아이디어를 거부할 수 있습니다:

  • 모든 지원 플랫폼에서 안정적으로 구현하기 어렵거나 불가능할 수 있습니다; 또는
  • 유지 관리가 어려울 수 있거나, 유지 관리를 위해서는 널리 보급되지 않은 기술이나 소프트웨어에 대한 접근이 필요할 수 있습니다; 또는
  • 특정 사용자층을 대상으로 하지만, 다른 사용자에게 상당한 부담을 가중시킵니다.

만약 귀하의 아이디어가 적합하지 않다고 판단되더라도, 반드시 포기해야 한다는 의미는 아닙니다. 특정 아이디어를 거절할 수는 있지만, 플러그인 인터페이스나 기타 확장 지점을 추가하여 동일한 기능을 외부 라이브러리로 유지할 수 있도록 하는 방안에는 훨씬 더 개방적일 수 있습니다. 이렇게 하면 해당 기능을 유지하면서도, 기능 자체의 유지보수 문제나 제약이 프로젝트에 부담이 되는 상황을 피할 수 있습니다.

공식 기능 요청으로 전환

특징의 형태에 대한 논의가 합의에 도달하면, beeware 이슈 트래커에서 논의 내용을 요약하고 맥락을 위해 해당 논의로 연결되는 링크를 포함하는 새로운 기능 요청 이슈를 생성할 수 있습니다.

기능 제안 사항을 직접 구현할 필요는 없습니다. 제안 내용의 세부 사항을 담은 이슈를 생성하면 됩니다. 다만, 단순히 이슈를 게시한다고 해서 해당 기능이 반드시 구현되는 것은 아닙니다. 동일한 기능에 관심 있는 다른 커뮤니티 구성원이나 핵심 팀원이 이를 채택할 가능성을 기다려야 합니다. 다만 이는 보장되지 않습니다. 확실한 구현을 원한다면 직접 구현하거나, 다른 사람에게 구현을 의뢰해야 합니다.