Pre-Project 3일차(요구사항 정의서 & Git 협업)

PYM·2023년 6월 14일
0

(SEB_FE) PROJECT_SECTION

목록 보기
2/2
post-thumbnail

🐳소프트웨어 개발 단계

소프트웨어를 개발할때도 정해진 단계가 존재한다.
매우매우 간단하게 말하면,
분석 ➡ 설계 ➡ 구현 ➡ 테스트

이 네단계로 이루어져 있다고 할 수 있다.
오늘 진행한 요구사항 정의서는 이 중 '분석' 단계에 속한다.

🐳분석

💙작성 목적

시스템의 요구사항을 도출하여 발주자와 내용을 합의하고, 하나의 업무 단위로서 가치를 가지고 수행될 수 있는 업무를 도출하여 업무 내용을 기술합니다.
- NIA(한국정보화진흥원)가 정의한 사용자 요구사항 정의서 작성 목적

➡ 즉, 고객의 요청 사항을 기반으로 SRS의 협의 내용을 적용하고 실제 개발에 적용할 수 있는 수준으로 요구사항을 재정의 하라는 의미!

💙작성 방법

산출물 양식의 표를 이용하여 해당 항목에 기술하며 이해하기 쉽고 구체적인 언어표현을 사용합니다. 기능적 요구사항과 비기능 요구사항을 그룹핑하여 별도의 표로 작성합니다.

이때, 기능적 요구사항이란 ‘현금 입출금 시스템'을 만든다고 가정했을 때 ‘현금 출금 기능'과 같은 동작을 수행하는 모든 행위를 의미.

반대로 비기능 요구사항이란 ‘시스템 관리자가 조직 변경에 따른 권한 변경이 있을 경우, 이를 1분 이내에 적용할 수 있어야 한다’와 같은 성능적인 측면이나 다른 의미의 비기능적인 항목의 모두를 의미한다.

🐳취업9조대의 사용자 요구사항 정의서

오늘은 팀원분들과 아이스 브레이킹 후 요구사항 정의서를 작성했다.
클론 코딩할 사이트는 그 유명한 스택 오버플로우!

작성한 요구사항 정의서는 아래와 같다.

  • 이번 프로젝트는 순수 개발 일수는 8일 정도되는 짧은 프로젝트이기 때문에, 스택 오버플로우의 모든 기능을 전부 구현하기에는 무리가 있을 거라고 판단했다.

  • 따라서 우리는 회원가입, 로그인, 회원 정보 조회 등과 같은 멤버 관련 기능과 대표 기능인 질문 관련 CRUD & 답변 관련 CRUD을 최우선으로 개발하는 것으로 정해서 중요도 '상'으로 정의 하고,

  • 그 이외에 좀 더 Advanced한 평판, 검색, 태그, 투표 등등은 중요도를 '하'로 측정해서 중요도 상의 기능들을 전부 개발하고 시간이 남는다면 구현 하기로 했다.

팀원 모두가 요구사항 정의서는 처음 작성해 보는 거라 이렇게 작성하는 게 맞겠죠..? 하면서 작성했다. (ㅋㅋㅋ)

그래도 완벽하고 깔끔한 요구사항 정의서는 아닐지라도, 같이 머리를 맞대고 작성해내면서 한 웹사이트의 기능들을 파헤쳐 본다는 게 얼마나 그 사이트를 구현할 때 도움이 될 지 느껴볼 수 있었다.

지피지기면, 백전백승!
내가, 우리가 구현할 걸 잘 알면, 구현 시에 들여야 할 노력과 시간은 훨씬 줄어들 것이고, 탄탄한 결과물이 도출될 것이다!

개발자라고 해서 결코 분석, 설계 단계를 소홀히 하면 안될 것이다.
그렇게 되면 이후에 구현 단계에서 오히려 더 긴 시간을 허비하게 되고, 결과적으로 비효율적으로 개발이 진행되게 된다.

분석, 설계는 꼼꼼하고 자세할 수록 좋다! 여기에 들이는 시간은 깔꼼하고 수월한 구현 단계를 위한 '투자'임을... 기억하자!

Git 협업

이번 프리 프로젝트를 위한 Git 협업의 준비를 다졌다.

Issue

GitHub Issue는 말 그대로 프로젝트에 새로운 기능을 제안하거나, 버그를 찾아 제보하는 등 프로젝트의 이슈를 의미

이번 프리 프로젝트에서는 이슈를 하나의 칸반 티켓처럼 사용할 것이라 정하고 작성한 사용자 요구사항 정의서를 바탕으로 Issue를 작성해 주었다.

아래는 '질문글 상세화면' 페이지에 대한 Issue이다.
우측 상세 설정 부분에서 이 Issue를 누가 구현할지도 정할 수 있고, Project나 Milestone에도 부여할 수 있다.

Milestone

GitHub Milestone은 이정표 역할을 하며, 태스크 카드(Issue)를 그룹화하는 데 사용한다. GitHub Milestone에 연결된 태스크 카드(Issue)가 종료되면 GitHub Milestone마다 진행 상황이 업데이트되는 것을 볼 수 있다. 이 GitHub Milestone 기능을 통해 연관된 이슈의 추적과 진행 상황을 한눈에 파악할 수 있는 장점이 있다.

이번 프리 프로젝트는 일주일의 짧은 프로젝트이기 때문에, 스프린트가 한번 밖에 없어, Milestone은 하나만 작성했다.

Project - Kanban

GitHub Project는 GitHub 내에서 업무 관리를 해줄 수 있게 돕는 새로운 기능이다.

Pre-Project에서는 GitHub Project 기능을 이용하여 칸반 보드를 생성하고, 칸반으로 Pre-Project의 업무 흐름을 관리하기로 했다.

아래처럼 백엔드와 프론트엔드를 나눠서 Project를 생성해 주었다.

프로젝트에는 Backlog, Todo, In Progress, Done 으로 나눠져 있는데, Backlog는 할 일 총 집합! Todo는 이번 스프린트안에 할 일, In Progress는 지금 하고 있는 구현, Done은 구현 완료된 이슈를 넣는다.

참고로 작성된 이슈를 한번에 프로젝트의 칸반 티켓으로 불러올 수 있다.
Backlog의 아래의 +Add Item 버튼을 누르면 뜨는 검색창이 뜬다.

#을 입력하면 나의 레포지토리가 쭉 뜨는데, 이 중 이번 플젝 레포를 클릭하면

위와 같이 이슈들이 쭉 뜬다. Add items from 레포명 부분을 클릭해 보자.

그럼 위와 같은 화면이 뜨고 전체 선택으로 쭉 들고올 수 있다! 각 이슈 앞에 이슈 템플릿으로 [FE]를 붙여주면 취사 선택하기 더 수월하다.

profile
목표는 "함께 일하고 싶은, 함께 일해서 좋은" Front-end 개발자

0개의 댓글