Skip to content

Instantly share code, notes, and snippets.

@raccoonyy
Last active January 19, 2021 12:18
Show Gist options
  • Save raccoonyy/d28a3666489acb98f6059c3ee56fb4cf to your computer and use it in GitHub Desktop.
Save raccoonyy/d28a3666489acb98f6059c3ee56fb4cf to your computer and use it in GitHub Desktop.

제안 제목

  • 제안자 : <주요 제안자 이름>[, <공동 제안자 이름> ...]
  • 제안일 : <제안한 날짜 YYYY-mm-dd>
  • 수정일 : <수정한 날짜 YYYY-mm-dd>
  • 상태 : <제안됨|진행중|반영됨|반려됨|폐기됨>
  • PR: <PR 번호>
  • Issue: <관련 이슈 번호, 저장소/이슈 포맷 사용>

요약

rfcs 저장소는 인프라 관리 및 사내 시스템 전반에 대한 현재 상태와 장기적인 제안 및 논의를 하는 공간이다. 여기서는 단기적으로 처리되는 각 저장소의 이슈와 달리 특정한 저장소에 속하지 않거나, 팀 내에서 장기적으로 고민해야 할 제안들을 토론하고 적용한다.

동기

rfcs는 장기적인 개선과 팀원들의 자유로운 제안과 토론을 위해서 만들어졌다. 여기서 장기적인 개선의 대상이란, 프로그래밍 스타일 가이드나 SSL에 대한 관리 정책과 같이, 단번에 처리할 수 없고 장기적인 논의를 통해 해결해나갈 문제를 가리킨다. 특히 지엽적으로 이루어지는 결정들은 팀원 간에 공유가 되지 않을 뿐만 아니라, 최악의 경우 시간이 지나면서 그 결정이 어떤 맥락에서 이루어졌는지 잊혀지기 쉽다. rfcs를 통해서 해결해야 할 문제를 좀더 구체적으로 정의하고 토론할 수 있을 뿐만 아니라, 어떤 맥락에서 결정이 이루어졌는지에 대해 물리적/시간적으로 멀리 떨어진 다른 팀원에게 전달할 수 있다.

이는 rfc, Python PEPs, Rust rfcs 등을 본받아 만들어졌다. 기본적으로 현재 문서의 포맷을 따르되, 이러한 문서를 참조해서 작성하면 된다.

설계

제안의 진행 과정

rfcs는 git 저장소로 github에서 관리된다. 제안자는 [rfcs 저장소]를 포크하고 제안 문서를 작성한다. 제안 문서를 작성한 후 풀 리퀘스트를 원본 저장소에 보낸다. 이때 부여되는 풀 리퀘스트 번호가 rfc 번호가 되며, 풀 리퀘스트 상에서 수정해서 이 번호를 파일 이름에 반영한다. 팀원들은 풀 리퀘스트 상에서 자유롭게 논의하고 제안을 다듬어 간다. 최종적으로 제안이 머지되면 이는 '진행 중' 상태가 되며, 제안에 대한 모든 내용이 반영되면 '반영됨' 상태로 전환된다.

[rfcs 저장소]:

제안의 상태

제안의 상태는 다음과 같이 다섯 가지로 정의한다.

  • 제안됨 - 작성자가 제안한 상태다. 머지 전후로 토론이 진행될 수 있다.
  • 진행 중 - 관련된 사람들이 제안을 승인하고, 작업이 진행되고 있는 상태다.
  • 반영됨 - 제안이 모두(혹은 거의 모두) 시스템에 반영된 상태다.
  • 반려됨 - 제안에 대한 토론 과정에서 문제점을 발견했거나, 다른 이유로 적용하기 어려운 경우 제안은 반려된다.
  • 폐기됨 - 제안이 과거에 반영되었으나, 이후에 다른 이유로 시스템에서 더이상 사용하지 않는 경우에 제안은 폐기된다.

문제점

제안에 대해 예상되는 문제점을 작성한다.

대안

제안에 대해 대안이 될 만한 방법과 대안을 선택하지 않은 이유를 작성한다.

개별 프로젝트의 이슈

개별 프로젝트의 이슈는 rfcs에서 다루지 않는다. 기본적으로 각 이슈는 이슈가 속한 프로젝트에서 다룬다. rfcs에서 다루는 제안은 일반적으로 전체 업무에 영향을 주는 부분을 다룬다. 예외적으로 개별 프로젝트에 관련된 문제라도 아주 중요한 사안이라면 rfcs에서 다룰 수 있다.

레퍼런스

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment