doortts doortts 2013-10-13
docs: add old spec docs
@8355a66144f70156ae84f546a6163e74dd461539
 
docs/old/nforge4기능목록.md (added)
+++ docs/old/nforge4기능목록.md
@@ -0,0 +1,278 @@
+식별된 ROLE
+-----------
+* 사이트 관리자
+* 프로젝트 관리자
+* 프로젝트 멤버
+* 로그인 유저
+* 사용자
+
+
+소프트웨어맵
+------------
+* 사용자는 관심있는 프로젝트를 찾기 위해 소프트웨어맵에서 특정 분류에 속한 프로젝트 목록을 볼 수 있다.
+* 사용자는 활성화된 프로젝트를 찾기 위해 소프트웨어맵에서 프로젝트를 특정기준(랭킹 유저수, 게시물 수)으로 정렬하여 볼 수 있다.
+
+
+nFORGE 홈
+---------
+* 사이트 관리자는 nFORGE 홈을 커스터마이징 할 수 있다. (8-20)
+
+
+게시판(새소식 포함)
+-------------------
+* 사용자는 게시물의 내용을 볼 수 있다. (1)
+* 사용자는 게시물 목록을 볼 수 있다. (1)
+	* 페이징은 고려 안함
+* 로그인 유저는 게시물을 등록할 수 있다. (1)
+* 로그인 유저는 자신의 게시물을 삭제/편집 할 수 있다. (2)
+* 로그인 유저는 게시물에 댓글을 남길 수 있다.(2)
+* 사용자는 게시물의 댓글을 볼 수 있다.(1)
+* 로그인 유저는 자신이 남긴 댓글을 삭제할 수 있다.(0.5)
+* 프로젝트 관리자는 댓글을 삭제할 수 있다. (0.5)
+* 프로젝트 관리자는 게시물을 편집/삭제 할 수 있다.(2)
+* 프로젝트 멤버는 게시물을 새소식으로 게시하도록 요청할 수 있다. (0.5)
+* 사이트 관리자는 새소식 게시 요청을 승인 또는 거절할 수 있다. (0.5)
+* 사용자는 전체 프로젝트의 새소식 목록을 볼 수 있다. (1)
+	* 제목과 프로젝트 이름이나오는 수준
+
+위키
+----
+* git-based storage 구현
+	* 위키 생성 (1)
+	* 위키 페이지 작성 (3)
+	* 위키 페이지 삭제 (1)
+	* 위키 페이지 편집 (0)
+	* 위키 페이지 열람 (1)
+	* 위키 페이지 히스토리 출력 (2)
+	* 위키 페이지를 특정 시점(commit)으로 되돌리기 (1)
+* 프로젝트 멤버는 위키 페이지를 등록할 수 있다.
+	* 마크다운 렌더링 (2)
+	* 실시간 preview (2)
+* 프로젝트 멤버는 위키 페이지를 편집 할 수 있다. (3)
+	* 동시 편집 고려 (5)
+		* 최신페이지에 시작한 상황이 아니면 경고
+* 프로젝트 멤버는 위키 페이지를 삭제할 수 있다.(2)
+* 프로젝트 멤버는 위키 페이지에 관련 자료를 다운받을 수 있도록 파일을 첨부할 수 있다. (3)
+* 프로젝트 멤버는 위키 페이지에 그림을 삽임할 수 있다. (2)
+	* 커서가 위치한 곳에 이미지 태그 표시
+	* 이미지 크기를 조정하는 기능 고려
+* 프로젝트 멤버는 현재 위키 페이지를 과거 버전으로 되돌릴 수 있다. (1)
+	* 가정: 온라인 커밋이 먼저 구현되어 있다
+* 사용자는 위키 페이지의 변경 히스토리를 볼 수 있다. (5)
+	* 버전별 diff 까지 표시되어야.
+	* diff 렌더러 구현까지 포함
+* 로그인 유저는 특정 페이지에서 자신이 마지막으로 열람 한 이후의 변경사항을 확인할 수 있다. (3)
+	* recent changes
++ 로그인 유저는 특정 위키의 변경사항을 빠르게 받아볼 수 있도록 '자동알림'기능으로 지정할 수 있다. (2)
++ 사용자는 이름을 아는 위키페이지로 한 번에 이동할 수 있다. (1)
++ 사용자는 모든 위키페이지의 목록을 볼 수 있다. (1)
+	+ 페이징 (3)
++ 사용자는 위키페이지를 제목과 본문 내용으로 검색할 수 있다. (5)
+	+ 제목과 검색어가 처음 등장한 위치의 본문 일부가 보인다.
+	+ 제목만 매칭된 경우, 제목과 본문 시작부분 일부가 보인다.
+
+
+마일스톤
+--------
+* 사용자는 프로젝트의 마일스톤을 열람할 수 있다. (2)
+* 프로젝트 멤버는 마일스톤을 등록/편집/삭제 할 수 있다. (3)
+* 프로젝트 멤버는 마일스톤에 이슈를 할당할 수 있다. (2)
+* 프로젝트 멤버는 해당 마일스톤에 할당된 이슈 목록을 볼 수 있다.(1)
++ 프로젝트 멤버는 마일스톤에서 특정 이슈를 제거할 수 있다.(1)
+
+
+이슈트래커
+----------
+* 사용자는 해당 프로젝트에 등록된 이슈 목록을 볼 수 있다.(5)
+	* 페이징 처리 포함
+* 사용자는 이슈트래커의 특정 이슈의 내용을 볼 수 있다.(1)
+* 로그인 유저는 이슈트래커에 글을 등록할 수 있다.(3)
+* 로그인 유저는 자신이 남긴 이슈트래커 글을 편집/삭제 할 수 있다.(2)
+* 로그인 유저는 특정 이슈에 댓글을 남길 수 있다.(2)
+* 사용자는 특정 이슈의 댓글을 볼 수 있다.(1)
+* 로그인 유저는 자신이 남긴 이슈트래커 댓글을 삭제할 수 있다.(0.5)
+* 프로젝트 관리자는 유저가 남긴 댓글을 삭제할 수 있다. (0.5)
+* 프로젝트 관리자는 이슈트래커의 모든 글을 편집/삭제 할 수 있다.(2)
+* 프로젝트 관리자는 효율적으로 이슈들을 관리하기 위해 여러개의 이슈트래커 게시판을 만들 수 있다.(3)
+* 프로젝트 관리자는 이슈트래커의 이름을 변경 할 수 있다. (1)
+* 프로젝트 관리자는 이슈트래커의 세부 항목(필드)을 편집 할 수 있다. (3)
+* 사용자는 본인에게 필요한 이슈를 다양한 조건으로 검색할 수 있다. (10)
+	* 스마트 검색기능(ex.사내 이메일 검색) - (5)
+	* 상세 검색기능 - (5)
+* 로그인 유저는 자주 사용하는 검색조건을 저장할 수 있다. (2)
+	* 상세 검색 후
+* 로그인 유저는 엑셀등의 외부 도구를 이용하기 위해 검색된 이슈트래커의 목록을 파일로 저장할 수 있다.(2)
+	* CSV파일 등
+* 로그인 유저는 특정 이슈에 대한 해결안 등 의견을 제시하기 위해 패치 파일을 댓글로 첨부할 수 있다.(2)
+* 사용자는 이슈트래커 게시글에 첨부된 패치파일의 내용을 볼 수 있다. (3)
+* 프로젝트 멤버가 특정 이슈번호를 참조로 커밋한 내용은 이슈에 관심있는 사람들이 알 수 있도록 커밋로그와 변경내역(패치파일)이 댓글로 남는다.(3)
+* 이슈트래커 게시글의 변경 사항은 자동으로 '자동알림등록'한 사람들에게 메일로 통지된다.(2)
+* 프로젝트 멤버는 다량의 이슈를 할당하거나 상태를 수정하기 위해 여러개의 이슈들을 일괄로 처리할 수 있다.(3)
++ 로그인 유저는 이슈 등록시 본문에 첨부파일의 이미지를 표시할 수 있다. (3)
+	* 이미지 본문 표시 방법에 대한 고민 시간 포함
++ 프로젝트 멤버는 이슈에 대해 참조자를 지정 및 해지 할 수 있다.(2)
++ 사용자는 게시물에 찬반 투표를 할 수 있다.(2)
++ 사용자는 특정 게시물을 자동통보로 설정한 사용자를 볼 수 있다.(1)
++ 프로젝트 관리자는 사용자가 일관된 포맷에 맞춰 이슈를 등록하도록 이슈 템플릿을 정의할 수 있다. (2)
+	* 버그, 기능개선 등등에 대해서
++ 프로젝트 관리자는 이슈의 특정 세부항목을 사용자가 항상 기입하도록 필수항목으로 지정할 수 있다. (3)
+	* 이슈 상태별로 고민할 필요가 있음
++ 로그인 유저는 자신이 작성한 게시물을 찾기 쉽도록 태그를 붙일 수 있다.(3)
+	* 자동완성 기능 포함
++ 프로젝트 멤버는 의존 관계가 있는 이슈들을 표시하기 위해 다른 이슈를 연결할 수 있다. (3)
+	* 한쪽에서만 걸어도 상호링크
++ 로그인 유저는 아직 읽지 않은 게시물을 구별할 수 있다. (3)
++ 로그인 유저는 한 프로젝트에서 저장했던 검색 조건을 다른 프로젝트에서도 검색할 때 사용할 수 있다. (2)
++ 로그인 유저는 자동알림으로 지정된 이슈가 의존하는 다른 이슈의 상태 변경시에 통보받을 수 있다. (2)
+	* 단, 의존 이슈의 경우 닫힘에 대해서만 통보받는게 좋을 것 같음
++ 프로젝트 멤버는 어떤 이슈와 어떤 이슈가 중복인지 표시할 수 있다. (2)
++ 사용자는 중복 이슈에 대해 어떤 이슈와 중복인지 확인 할 수 있다. (1)
+
+
+
+코드저장소
+----------
+* 프로젝트 멤버는 코드를 보관, 수정하기 위해 코드저장소를 이용할 수 있다.  (3)
+	* SVN/GIT
+* 프로젝트 관리자는 사용자의 코드 저장소 접근을 제한 할 수 있다.(8)
+	* 현재 SCM매니저에는 권한처리 플러그인이 없음
+	* SCM 매니저에 대한 지식 부족
+* 사용자는 웹으로 코드저장소의 코드를 볼 수 있다.(8)
+	* 코드 네비게이션 포함
+	* syntax highlighting 포함
+* 사용자는 코드 변경 이력을 보기 위해 커밋 로그를 볼 수 있다. (3)
+	* older, newer 식의 네비게이션 포함
+	* 폴더나 파일 기준의 로그도 포함
+* 사용자는 커밋들 간의 코드 변경 사항을 확인할 수 있다. (3)
+	* diff rendering 포함
+	* 폴더나 파일 기준의 변경 사항도 포함
+* 사용자는 프로젝트 통계를 볼 수 있다. (3)
+	* 전체 커밋 추이, 개발자별 커밋 현황 등
+* 사용자는 코드 변경을 빠르게 인지하기 위해 자동알림 기능을 이용할 수 있다. (2)
+	* 이메일
++ 사용자가 코드 네이게이션 상태에서 코드의 일부를 복사하면 출처도 복사된다.(2)
+	* 언어에 맞는 주석표시가 함께 붙어서
++ 프로젝트 관리자는 한 프로젝트내에서 여러 개의 저장소를 만들 수 있다.(2)
++ 프로젝트 관리자는 저장소를 생성할 때 github 코드를 가져올 수 있다. (2)
++ 로그인 유저는 자신만의 코드조각(snippet)을 생성/편집/삭제 할 수 있다. (3)
++ 로그인 유저는 코드의 특정 라인에 의견을 남길 수 있다.(5)
+
+다운로드
+--------
+* 사용자는 해당 프로젝트에 등록된 다운로드 목록을 볼 수 있다.(2)
+	* 페이징 포함
+* 사용자는 해당 프로젝트에서 파일을 다운로드 받을 수 있다.(1)
+* 프로젝트 멤버는 파일 배포를 위해 릴리즈 게시물을 등록할 수 있다.(2)
+	* 컬럼: 파일명, 제목, 날짜, 크기, 다운로드 횟수
+	* 파일 업로드 포함
+* 프로젝트 멤버는 다운로드 목록을 보기좋게 정리하기 위해 목록 순서를 변경할 수 있다.(2)
+	* 컬럼 정렬 기능을 제공
+* 프로젝트 멤버는 특정 다운로드 게시물을 활성/비활성을 할 수 있다. (1)
+* 사용자는 다운로드 파일의 대한 의견을 남기기 위해 댓글을 등록/삭제 할 수 있다.(2)
+* 프로젝트 관리자는 스팸성 댓글을 삭제할 수 있다.(1)
+* 사용자는 다운로드 게시물을 빠르게 인지하기 위해 자동알림을 이용할 수 있다.(2)
+
+
+
+프로젝트 관리
+-------------
+* 로그인 유저는 프로젝트를 생성할 수 있다. (2)
+* 프로젝트 관리자는 모든 사용자에게 공개되는 프로젝트 정보를 편집할 수 있다. (1)
+* 프로젝트 관리자는 프로젝트 로고 이미지를 등록/삭제할 수 있다.(1)
+* 프로젝트 관리자는 사용자의 권한을 조절하기 위해 사용자 등급을 변경할 수 있다. (8)
+	* 프로젝트관리자, 프로젝트 멤버, 프로젝트 서포터
+	* 권한기능 포함 (게시물, 다운로드, 코드저장소, 위키, 이슈트래커, 프로젝트 관리)
+	* 사용자를 검색해서 특정 등급으로 추가 가능
+* 프로젝트 관리자는 해당 프로젝트를 알기 쉽게 분류할 수 있다. (2)
+	* 라이선스, 언어 등
+* 프로젝트 관리자는 프로젝트를 비공개로 설정할 수 있다. (2)
+	* 프로젝트 기본정보는 공개되나 메뉴나 기능에는 접근할 수 없다.
+* 프로젝트 관리자는 더 이상 필요하지 않은 프로젝트를 삭제할 수 있다.(3)
+* 프로젝트 관리자는 권한 관리를 편하게 하기 위해 권한 등급을 추가/삭제/권한 변경을 이용할 수 있다. (later)
++ 사용자가 프로젝트를 생성하면 다음에 무엇을 해야 할지 알 수 있는 안내문구를 볼 수 있다. (5)
+	* 영어/한국어
+
+
+검색
+----
+* 사용자는 특정 프로젝트 내의 컨텐츠를 검색할 수 있다. (5)
+	* 게시판, 이슈트래커, 다운로드, 위키
+	* 페이징 처리 (항목별에서)
+* 사용자는 전체 프로젝트를 대상으로 검색을 할 수 있다. (1)
+	* 게시판, 이슈트래커, 다운로드, 위키
+	* 프로젝트 내 검색 먼저 구현
+* 사용자는 아이디나 이름으로 특정 사용자를 찾을 수 있다.(2)
+
+
+활동내역
+--------
+* 로그인 유저는 자신이 속한 프로젝트들의 활동상황을 보기 위해 프로젝트 변경사항들을 확인할 수 있다. (3)
+
+개인화 기능
+-------------
+* 로그인 유저는 자신이 할 일과 한 일을 파악하기 위해 자신과 관련된 프로젝트/게시물을 대시보드에서 열람할 수 있다.(2)
+	* 페이징 기능 포함
+* 로그인 유저는 자동알림 설정된 항목을 열람할 수 있다.(2)
+* 로그인 유저는 필요하지 않은 자동알림을 받아보지 않기 위해 자동알림을 삭제할 수 있다.(1)
+* 로그인 유저는 잦은 자동알림으로 고통받지 않기 위해 자동알림 지정된 항목들을 모아보기로 설정을 할 수 있다. (3)
+
++ 로그인 유저는 자신의 유저페이지를 꾸밀 수 있다. (7)
+	* 이슈번호 #6043
+	* 아바타 설정(이미지나 gravatar) (3)
+	* 자기소개 (1)
+	* 페이스북 연동 (2)
+	* 스킬셋 표시 (1)
+
++ 사용자는 다른 사용자의 유저페이지에서 소개, 활동내역을 열람할 수 있다. (9)
+	* 최근 활동내역(trello) (1)
+	* 레벨과 경험치 (지식인 미니) (8)
+
+
+링크 만들기
+-----------
+* 게시물 작성자(로그인 유저)는 추가정보를 제공하기 위해 미리 정의된 태그를 써서 이슈/리비전/위키에 대한 링크를 만들 수 있다. (2)
+	* # => 이슈, r => 리비전, [] => 위키
+
+사이트 관리
+------------
++ 사이트 관리자는 웹에서 nFORGE를 쉽게 업그레이드 할 수 있다. (8)
+	* 원격 업그레이드 기능
++ nFORGE 팀은 nFORGE를 설치하거나 원격 업그레이드 기능을 사용한 사이트 목록을 알 수 있다.(2)
++ 사이트 관리자는 특정 메일주소를 가진 사용자의 가입신청을 자동으로 승인할 수 있다.(1)
++ 사이트 관리자는 보안을 위해 로그인 과정이 HTTPS로 처리되도록 설정할 수 있다.(later)
+
+
+설치
+----
++ 사이트 관리자는 특정 Prefix가 붙은 URL로 접근할 수 있도록 설치시에 nFORGE의 URL Prefix를 지정할 수 있다. (1)
+	* 지정하는 방법 가이드로 제공
++ 사이트 관리자는 nFORGE 설치시에 생긴 문제를 해결하기 위해 DB만 따로 생성할 수 있다.(1)
++ 사이트 관리자는 nFORGE 설치를 위해 설치 가이드를 볼 수 있다. (2)
+	* 설치 가이드 작성
+
+프로젝트 그룹
+-------------
++ 사이트 관리자는 프로젝트 그룹을 만들 수 있다.
++ 사이트 관리자는 프로젝트 그룹페이지를 만들 수 있다.
++ 사이트 관리자는 그룹에 맴버를 추가할 수 있다.
++ 특정 그룹에 속한 로그인 유저는 해당 그룹에 속하는 프로젝트를 생성할 수 있다.
++ 사이트 관리자는 관련있는 프로젝트들을 하나의 그룹으로 지정할 수 있다.
+
+
+기타
+----
+* 사용자는 선호하는 언어로 nFORGE를 이용할 수 있다. (영어/한국어 등. guess system)
++ 사용자는 단축키를 통해 nFORGE를 이용할 수 있다.
++ 로그인 유저는 모든 게시물에 특정 문법을 사용할 수 있다. (wiki문법, markdown문법 등)
+
+
+사이트 관리
+-----------
+* 사이트 관리자는 등록된 사용자를 삭제할 수 있다.
+* 사이트 관리자는 등록된 사용자를 활성화 혹은 비활성화 할 수있다.
+* 사이트 관리자는 등록된 사용자의 메일주소를 변경할 수 있다.
+* 사이트 관리자는 프로젝트를 삭제할 수 있다.
+* 사이트 관리자는 전체 프로젝트에 대한 통계를 볼 수 있다.
+* 사이트 관리자는 소프트웨어 맵을 관리할 수 있다.
+* 사이트 관리자는 등록된 사용자에게 메일을 발송할 수 있다.
+	* 메일발송 기능
 
docs/old/nforge_vision_doc.md (added)
+++ docs/old/nforge_vision_doc.md
@@ -0,0 +1,105 @@
+=========================================================================
+nFORGE Vision Document 1.0
+=========================================================================
+"우리의 모든 활동은 지속적으로 발전하며 꾸준하게 진행될 겁니다."
+
+nFORGE?
+=======
+
+협업 개발 플랫폼
+
+nFORGE는 무엇을 하는 SW인가?
+---------------------------
+
+- 제품을 사용하는 사람들에게 있어서는
+    - SW개발을 위한 프로젝트 관리도구
+    - 협업개발환경
+    - 사내에서 쓸 수 있는 개발도구
+
+nFORGE 개발팀에게 있어서는
+-------------------------
+- nhn의 기업가치를 높일 수 있는 소프트웨어
+
+우리의 현재 고객은 누구인가?
+---------------------------
+
+특정 조직에서 직접 설치해서 사용하는 형태로 프로젝트 저장소(프로젝트 관리기능포함)를 갖고 싶어하는 개발자/조직.
+그들은 무엇을 원하는가? (nFORGE 선택이유)
+
+- 로컬 소스코드 저장소
+- 쉽게 설치되는 SVN 서버
+- 보안이 필요한 사내 협업개발, 문서축적 기능
+- 커스터마이징 기능
+- 무료
+
+우리의 미래 고객은 누구인가? 누가 nFORGE를 사용했으면 좋겠는가?
+-------------------------------------------------------------
+
+- 현재 고객 + NHN 모든 개발자 + 외국사람들 + 비 개발자들
+
+목표로한 미래의 고객을 만들기 위한 활동은?
+----------------------------------------
+
+- 대상 고객별 필요 기능 제공
+- 홍보 활동
+- 외부 사람들을 개발에 참여시킬 것인가?
+
+개발에 참여할 수 있도록 준비하고 향후 버전 기능 선정시에도 참여를 유도할 예정이다.
+
+nFORGE 프로젝트 개발이 현재 어디쯤에 있는지 어떻게 하면 알 수 있을까? (진척, 진행)
+-------------------
+
+- 제품의 Feature List(기능목록)를 먼저 만들고, 피처리스트를 기준으로 완료/미완료를 판단한다. (Feature 갯수 , 남은건수로 확인 가능)
+- 피처리스트중 Pass한 테스트 목록으로 개발 진척을 판단한다. (우선은 수동테스트로 진행하고 ATDD는 개인역량에 맡긴다.)
+- 피처는 플래닝을 통해서 추정치를 산정한다.
+
+nFORGE팀
+========
+
+우리의 목표는 무엇인가?
+
+4.0릴리즈 시점까지
+- 우리가 사용하고 싶은 nFORGE 만들기
+- 출시 일정 준수
+
+올해는
+- nFORGE를 nhn 개발자들이 가장 쓰고 싶어하는 협업 개발환경으로 만들기
+
+장기적으로 우리는
+- 1억명이 사용하는 유명한 프로젝트 관리도구를 즐겁게 개발하는 팀
+
+우리의 개발 및 작업방식
+----------------------
+
+- 제품책임자 . 제품 기능 및 팀 관리
+- 아키텍트 . 기술적인 이슈의 해결 및 결정
+- 개발방식 . 이터레이션 2주 간격, 마일스톤 6주 간격
+- Feature 선정기준 . 마일스톤 결정시점 . nFORGE팀 내에서 제안한 피처와 유저 제안 중 투표점수가 높은 것을 발췌한다. . nFORGE팀 맴버들이 협의해서 결정. 이때, 논의 시간을 정해놓고 해당 시간을 넘길 경우 제품책임자가 결정한다. . 마일스톤 구현 예정 목록에 추가한다. . 이터레이션 시작시점 . 마일스톤 중 우선순위와 가용 Working Day를 고려해서 선정한다. . 이터레이션 종료시점에 데모가 가능하도록 사용자스토리와 planning을 한다.
+이터레이션 종료 . 데모시연과 회고를 진행한다.
+우리가 nFORGE개발에 있어 중요하다고 생각하는 것은 무엇인가?
+
+(우선순위 순)
+- 필요한 기능이 들어있고 해당 기능이 완결성을 갖도록
+- 문서화 (+쉬운 코드 샘플이나 데모사이트)
+- 프로젝트 활동성과 지속성이 유지되어야 한다.
+- 디자인
+- 편의성 (설치)
+- 커뮤니티
+
+Team Ground Rule
+----------------
+
+- 매주 코드리뷰 시간을 갖기
+- 코딩 컨벤션을 같이 만들고 지키기
+- 코드와 기술에 대한 비평이 사람에 대한 비평이 아님을 이해하기. (코드와 인격을 분리하기)
+- 외부 커뮤니케이션
+
+공지(긴급패치, 릴리즈예고)와 유저 피드백
+- 사용자들의 이슈 등록 및 질문은 nFORGE3, nFORGE4 사이트에서 각각 관리
+
+- 대표 문의 창구는 nforge@nhn.com 메일
+
+- 커뮤니케이션 창구로는
+    - 메일링 리스트 지원
+    - nFORGE 블로그/미투데이
+    - 트위터(No newline at end of file)
Add a comment
List