작업환경 계획

JaeGu Jeong·2022년 3월 27일
0
post-thumbnail

팀프로젝트을 시작 할 때

개발 일정 및 리소스 배분

개발목표와 개발범위를 확인한다.

  1. 클라이언트의 요구사항을 분석한다.
  2. 프로젝트 시작일과 종료일을 고려해서 개발범위를 조정한다.

작업을 여러개로 나눈다.

  • 학사관리시스템을 만들시, 수강신청, 과목조회, 개인정보수정 등.

각 작업들의 예상되는 산출물을 정한다.

  1. 수강신청 성공시 DB에 학번이 들어가고, 실패시 예외처리.
  2. 과목조회 성공시 시간순으로 요일별로 출력 되도록 한다.
  3. 개인정보 수정시 타계정과 중복된 이메일 금지, 특수문자 금지 등.

나눈 작업간의 의존성을 고려하여 우선순위를 정한다.

  • 수강신청내역을 구현하려면 로그인 기능이 먼저 구현되어야한다.

각 작업에 예상되는 시간을 추정한다.

  1. 팀원들 역량에 따라 가능한 각각의 구현시간을 추정한다.
  2. 디버깅을 고려해서 구현가능한 시간에 추가로 30%를 추가한다.
  3. 예) A팀원 과목조회 2일, 수강신청 5일, 개인정보 수정 4일.
    B팀원 과목조회 1일, 수강신청 3일, 개인정보 수정 2일.
    C팀원 과목조회 4일, 수강신청 8일, 개인정보 수정 7일.
  4. 만약 마감일 초과가 예상되면 개발범위를 클라이언트와 재조정한다.

팀원에게 계획된 작업을 할당한다.

  1. 예) 4인 기준 수강, 휴복학, 장학, 성적 part로 분할
  2. 할당이 끝나면 팀원간에 작업량과 예상되는 문제를 최종적으로 서로 확인 및 조율한다.

이슈 트래킹 방법

이슈 트래킹 시스템 “github issues” 사용한다.

  1. 누구나 별도의 설치나 회원가입없이 git project안에서 접근성이 좋다.
  2. 버전관리 도구로 선정한 git과 연동되어 높을 효율성이 기대된다.
  3. 템플릿을 이용해서 가독성을 향상시켜 업무의 효율성이 올라간다.
  4. 마크업 언어를 사용하기에 사용자가 구성을 변경하기 쉽다.

버그 발생 또는 신규 기능 추가시 “Open”한다.

  1. Assignees기능으로 필요시 책임자를 지정한다.
  2. Labels기능으로 이슈의 종류를 구별한다.
  3. milestone기능으로 비슷한 이슈끼리 그룹화 한다.

이슈가 해결되면 “Close”한다.

  • 바로 닫을 수도 있지만, 경우에 따라 comment란에 참고사항을 입력하고 닫을 수도 있다.

이슈가 중복되거나 재현불가, 해결불가능하면 보류 또는 닫는다.

  • 만약 닫았던 이슈가 재발한다면 reopen한다.

버전관리 도구 비교

Mercurial

  1. 파이썬으로 만들어서 리눅스 친화적인 다른 vsc보다 윈도우와 호환이 잘된다.
  2. 로컬저장소에 commit이 가능해서 push전에 문제 발견시 오프라인으로 버전관리가 가능하다.

SVN

  1. git이나 mercurial같은 dvcs와 다르게 commit을 하면 바로 온라인 저장소로 저장된다.
  2. 소규모팀이 항상 네트워크에 접속이 가능하다면 dvcs보다 나을 수 있다.
  3. 오프라인 상태에서 작업이 제한적이다.
  4. dvcs보다 충돌이 생길 확률이 높다.
  5. 잦은 커밋은 revision이 많아져서 로그가 복잡해 질 수 있다.

git

  1. 가장 대중적인 vcs로 지원하는 툴킷이 많아, 접근성이 쉽다.
  2. merge시 서버에서 data를 가져와서 로컬로 먼저 병합을 하고 올리는 방식으로 병합문제발생이 감소한다.
  3. dvcs방식으로 로컬저장소로 작업이 가능하다.
  4. 온라인 서버에 장애가 발생해도 다른 컴퓨터에서 코드를 복구가 가능하다.
  5. 리눅스개발팀이 오픈소스를 위해 직접만들 vcs라서 수천명의 개발자가 동시에 프로젝트를 작업하고 관리하는데 특화되어 있다.
  6. gitHub를 이용해서 개인포트폴리오 관리에 용이하다.
  7. github라는 강력한 레포지토리 호스팅서비스를 사용 할 수 있다.
  8. github에 git issues를 지원한다.
profile
BackEnd Developer

0개의 댓글