"Siriya"의 두 판 사이의 차이

cdc wiki
이동: 둘러보기, 검색
(특허 출원 내용)
(특허 출원 내용)
 
(같은 사용자의 중간 판 2개는 보이지 않습니다)
99번째 줄: 99번째 줄:
 
*경쟁제품 조사 비교
 
*경쟁제품 조사 비교
 
[[파일:SIRA 비교 공통점.png]]
 
[[파일:SIRA 비교 공통점.png]]
 +
 
[[파일:SIRA 비교 차이점(장점).png]]
 
[[파일:SIRA 비교 차이점(장점).png]]
 
[[파일:SIRA 비교 차이점(단점).png]]
 
[[파일:SIRA 비교 차이점(단점).png]]
197번째 줄: 198번째 줄:
  
 
===상세설계 내용===
 
===상세설계 내용===
 +
====개념 설계====
 
*프로젝트 관리
 
*프로젝트 관리
 
**프로젝트 설정
 
**프로젝트 설정
218번째 줄: 220번째 줄:
 
*애자일 방법론
 
*애자일 방법론
 
**애자일 프로세스란 소프트웨어 개발에 있어서 반복적이고 유연한 접근방식을 통해 여러 변경사항과 요구사항에 신속하게 대응할 수 있는 개발방법론을 말한다. 애자일 방법론은 특히 스프린트라는 개념을 통해 이루어진다. 스프린트는 어느 일정한 기간을 두고 전체의 요구사항을 만족하기 보다 당장 할 수 있는 것들의 범위를 정해놓고 해당 업무를 진행해나가는 방식을 의미한다. 애자일 프로세스는 전체 업무를 스프린트 단위로 쪼개고 스프린트를 반복함으로서 수행된다. 따라서 애자일 프로세스를 사용한다면 전체의 명세를 정해놓지 않기 때문에 여러 요구사항의 변경에 신속하게 대응할 수 있고 각각의 스프린트마다의 결과물을 확인하면서 일을 진행할 수 있게된다. 다만 애자일 방법론은 학교 등에서 익숙하지 않다거나 혹은 적용이 어렵다는 등의 이유로 잘 사용되지 않는다. 혹 사용된다고 하더라도 애자일의 장점을 잘 살리지 못한채로 진행되는 경우가 많다. 따라서 Sira는 애자일의 개념적인 측면들 즉 “스프린트”, “이슈”와 같은 것들을 시각적이고 단계적으로 구체화해 제공함으로서 사용자가 자연스럽게 애자일 프로세스를 학습하고 성공적으로 프로세스를 완수할 수 있도록 제작할 예정이다.
 
**애자일 프로세스란 소프트웨어 개발에 있어서 반복적이고 유연한 접근방식을 통해 여러 변경사항과 요구사항에 신속하게 대응할 수 있는 개발방법론을 말한다. 애자일 방법론은 특히 스프린트라는 개념을 통해 이루어진다. 스프린트는 어느 일정한 기간을 두고 전체의 요구사항을 만족하기 보다 당장 할 수 있는 것들의 범위를 정해놓고 해당 업무를 진행해나가는 방식을 의미한다. 애자일 프로세스는 전체 업무를 스프린트 단위로 쪼개고 스프린트를 반복함으로서 수행된다. 따라서 애자일 프로세스를 사용한다면 전체의 명세를 정해놓지 않기 때문에 여러 요구사항의 변경에 신속하게 대응할 수 있고 각각의 스프린트마다의 결과물을 확인하면서 일을 진행할 수 있게된다. 다만 애자일 방법론은 학교 등에서 익숙하지 않다거나 혹은 적용이 어렵다는 등의 이유로 잘 사용되지 않는다. 혹 사용된다고 하더라도 애자일의 장점을 잘 살리지 못한채로 진행되는 경우가 많다. 따라서 Sira는 애자일의 개념적인 측면들 즉 “스프린트”, “이슈”와 같은 것들을 시각적이고 단계적으로 구체화해 제공함으로서 사용자가 자연스럽게 애자일 프로세스를 학습하고 성공적으로 프로세스를 완수할 수 있도록 제작할 예정이다.
 +
====소프트웨어 설계====
 +
*인증 서비스
 +
**시나리오<br/>[[파일:SIRA 인증 시나리오.png]]
 +
**Sequence Diagram<br/>[[파일:SIRA 인증 다이어그램.png]]
 +
*프로필 서비스
 +
**시나리오<br/>[[파일:SIRA 프로필 시나리오1.png]]<br/>[[파일:SIRA 프로필 시나리오2.png]]
 +
**Sequence Diagram<br/>[[파일:SIRA 프로필 다이어그램.png]]
 +
*프로젝트 서비스
 +
**시나리오<br/>[[파일:SIRA 프로젝트 시나리오1.png]]<br/>[[파일:SIRA 프로젝트 시나리오2.png]]<br/>[[파일:SIRA 프로젝트 시나리오3.png]]
 +
**Sequence Diagram<br/>[[파일:SIRA 프로젝트 다이어그램.png]]
 +
*태그 서비스
 +
**시나리오<br/>[[파일:SIRA 태그 시나리오1.png]]<br/>[[파일:SIRA 태그 시나리오2.png]]
 +
**Sequence Diagram<br/>[[파일:SIRA 태그 다이어그램.png]]
 +
*스프린트 서비스
 +
**시나리오<br/>[[파일:SIRA 스프린트 시나리오1.png]]<br/>[[파일:SIRA 스프린트 시나리오2.png]]
 +
**Sequence Diagram<br/>[[파일:SIRA 스프린트 다이어그램.png]]
 +
*이슈 서비스
 +
**시나리오<br/>[[파일:SIRA 이슈 시나리오1.png]]<br/>[[파일:SIRA 이슈 시나리오2.png]]<br/>[[파일:SIRA 이슈 시나리오3.png]]
 +
**Sequence Diagram<br/>[[파일:SIRA 이슈 다이어그램.png]]
 +
*일정관리 서비스
 +
**시나리오<br/>[[파일:SIRA 일정관리 시나리오1.png]]<br/>[[파일:SIRA 일정관리 시나리오2.png]]<br/>[[파일:SIRA 일정관리 시나리오3.png]]
 +
**Sequence Diagram<br/>[[파일:SIRA 일정관리 다이어그램.png]]
  
 
==결과 및 평가==
 
==결과 및 평가==
253번째 줄: 277번째 줄:
 
**PATCH등 사용 시 변경 된 데이터를 GET 하는 것과 같은 불필요한 API 호출을 최소화 하도록 변경된 사항을 Response 하는 방식을 통해 서버를 최적화 할 수 있습니다.
 
**PATCH등 사용 시 변경 된 데이터를 GET 하는 것과 같은 불필요한 API 호출을 최소화 하도록 변경된 사항을 Response 하는 방식을 통해 서버를 최적화 할 수 있습니다.
  
===특허 출원 내용===
+
===배포된 사이트 url===
해당 없음
+
[http://www.sira.kr 시라 사이트]

2023년 6월 18일 (일) 03:58 기준 최신판

프로젝트 개요

기술개발 과제

국문 : Sira

영문 : Development Tool for Developer

과제 팀명

Siriya

지도교수

이*정 교수님

개발기간

2023년 3월 ~ 2023년 6월 (총 4개월)

구성원 소개

서울시립대학교 컴퓨터과학부 20179200** 김*중(팀장)

서울시립대학교 컴퓨터과학부 20189200** 김*석

서울시립대학교 컴퓨터과학부 20199200** 아***바 마***누

서울시립대학교 컴퓨터과학부 20189200** 이*영

서울시립대학교 컴퓨터과학부 20199200** 이*진

서론

개발 과제의 개요

개발 과제 요약

  • Sira는 소프트웨어 공학의 애자일 방법론을 토대로 프로젝트 관리를 도와주는 온라인 툴이다.
  • Sira의 예상 사용자는 서울시립대학교 컴퓨터과학부 학생으로 4명 내의 소규모 비전문가 조직이다.
  • Sira는 Jira Software를 참고하였으며, 학부생이 이용하기 어려운 프로젝트 관리 툴을 쉽게 접근할 수 있게 하는 것이 목표이다. 이를 위한 레벨/포인트 시스템과 튜토리얼 기능이 추가되었다.
  • Sira의 기능은 크게 3가지로 나눌 수 있다. 각각 프로젝트 관리, 회의 일정 관리, 프로젝트 커뮤니티이다.
  • 프로젝트 관리는 전체적인 로드맵을 상위/하위 태그를 통해 구상한 뒤 이루어지며, 스프린트 단위로 시간을 관리하고, 이슈 단위로 업무를 관리한다. 각 이슈에는 포인트를 부여하여 비중을 달리한다.
  • 회의 일정 관리는 팀 내에서 가장 효율적으로 회의할 수 있는 시간을 알려주고 일정을 잡는데 도움을 준다.
  • 프로젝트 커뮤니티의 주 기능은 프로필과 프로젝트의 검색을 바탕으로, 관심있는 개발자를 팔로우하거나 참여하고 싶은 프로젝트에 참가하는 것이다.

개발 과제의 배경

  • 서울시립대학교 컴퓨터과학부에서는 소프트웨어공학이라는 전공필수 과목에서 여러 유형의 협력방법론 예를 들어 “폭포수 모델”, “프로토타입 , “애자일 방법론” 과 같은 것들에 대해 배우고 적용해본다.
  • 이때 많은 학생들이 보통 “폭포수 모델”을 사용해서 협력을 진행하게 되는데 이는 “폭포수 모델”의 단순함과 익숙함 때문이라고 생각된다.
  • 하지만 실제 많은 현업에서는 “애자일 방법론”을 사용하거나 혹은 애자일스럽게와 같은말처럼 어느정도 “애자일 방법론”을 섞은 형태로 협업을 진행된다. 이러한 점에도 불구하고 많은 학생들이 “애자일 모델”을 기피하는 이유는 “애자일”이라는 개념에 대한 낯설음과 “애자일”특성상 구성원 모두의 적극적인 참여를 유도해야 하는데 실제 학생들에게 이러한 동기부여하는 것이 어렵기 때문이다.
  • “애자일 방법론”을 적용할 수 있는 툴로는 “Jira”와 같은 것들이 있으나 이 툴은 학생들이 사용하기에 복잡하고 소규모의 프로젝트를 하는 학생들 보다는 대규모의 프로젝트를 진행하는 대기업에 초점이 맞추어져 있다.
  • 따라서 게임적인 요소를 추가하여 학생들의 적극적인 참여를 유도하면서 쉽게 애자일 방법론을 적용시킬 수 있는 개발툴을 만들기로 하였다.
  • 이 개발툴은 기본적으로 학생들의 성공적인 프로젝트 협력을 돕는다.
  • 또한 애자일 방법론”에 기반하여 만들어져 프로젝트 구성원들이 프로젝트를 진행하면서 자연스럽게 애자일방법론이 무엇인지에 대해 학습할 수 있다.
  • 또한 시각적인 요소를 적극적으로 활용하여 사용자가 쉽게 사용할 수 있다.
  • 정보전달이 쉽고 긍정적 인상을 줄 수 있는 디자인을 선택하여, 프로젝트 진행도를 쉽게 확인할 수 있다.
  • 업무를 해결해 나갈때마다 경험치를 부여하고 자신이 획득한 총 경험치에 따라 자신의 성장도를 알 수 있도록 해 사용자가 스스로에게 동기부여 될 수 있도록 하며 프로젝트 구성원의 기여도 또한 알 수 있다.
  • 프로젝트를 시작하고 싶을 때 혹은 자신의 지식을 실전에서 적용하고 싶을 때 프로젝트를 검색하거나 현재 진행하고 있는 프로젝트에 적합한 사람을 쉽게 찾아 함께할 수 있도록 한다.

개발 과제의 목표 및 내용

  • 초보 개발자가 해당 협업 툴을 사용해 가이드를 따라가는 것 만으로도 성공적으로 프로젝트를 완수할 수 있다.
  • 프로젝트의 진행과 구인을 동시에 할 수 있다.
  • 자신의 프로필에 관심있는 영역과 기술스택을 등록하고 자신이 참여하고 싶은 프로젝트나 구인을 진행할 수 있도록 한다.
  • 애자일 방법론에 따라 각 프로젝트를 스프린트별로 구성할 수 있도록 하고 각 스프린트마다 진행되어야 할 이슈로 구분해 협력과정이 애자일스럽게 진행되도록 한다.
  • 각 이슈의 의존관계를 명확하게 확인할 수 있도록 하고 현재 진행전/진행중/완료와 같은 상태 값을 이용해 쉽게 현재 프로젝트 상황을 확인할 수 있도록 한다.
  • 각 이슈에 대해서 담당자가 누구인지, 현재 어떤 상태로 진행되고 있는지와 같은 정보들을 쉽게 확인할 수 있도록 하고 프로젝트 구성원이 댓글기능을 통해 서로 피드백할 수 있도록 한다.
  • 각 구성원이 한 업무를 해결할 때마다 경험치를 획득할 수 있도록 하고 자신이 얻은 총 경험치를 확인할 수 있도록 해 프로젝트에 더 적극적으로 임할 수 있도록 돕는 기능을 구현한다.
  • 회의와 같이 서로 시간을 내어야 할 때 각자 비는 시간을 입력하면 공통된 비는 시간을 알려주는 기능을 구현한다

관련 기술의 현황

관련 기술의 현황 및 분석(State of art)

  • 전 세계적인 기술현황
    • Jira
      • Atlassian에서 만든 이슈트래킹 제품이다. 버그추적, 이슈추적, 프로젝트 관리 기능을 제공하는 소프트웨어로 190개 국가에서 사용되고 있다. jira는 4가지 패키지로 제공된다.
        • Jira Work management : 일반적인 프로젝트 관리(소프트웨어 개발 외에도 적용될 수 있는 일반적인 과정)
        • Jira Software : 애자일 프로젝트 관리지능을 포함한 기본 소프트웨어
        • Jira Service Management : IT 운영 또는 비즈니스 서비스 데스크에서 사용하기 위한 것
        • Jira Align : 전략적 제품 및 포트폴리오 관리를 위한것
      • 위와 같이 Jira는 일반적인 소프트웨어 개발 프로세스뿐만 아니라 비즈니스 로직 전체에 관한 프로젝트 형상관리를 도울 수 있다.
    • Slack
      • Slack Technologies에서 개발한 클라우드 컴퓨팅 기반 인스턴트 메신저 및 프로젝트 관리용 협업툴이다.
      • 강력한 API를 제공하여 봇의 형태로 여러 업무를자동화하거나 자신만의 서비스를 개발이 가능하다.
      • workspace별로 인터페이스가 구분되며 이슈를 주제도 정보가 구분되기 보다는 스레드별로 정보가 구분된다.
    • Trello
      • 웹 기반의 프로젝트 관리 소프트웨어이다. 기본적인 일의 단위는 카드이며 보드 안에 리스트, 리스트 안에 카드가 들어간다. 카드 안에 체크리스트 등을 만들어 프로젝트를 관리할 수 있다.
      • 드래그&드랍으로 쉽게 관리가 가능하다.
    • Notion
      • 프로젝트 관리 및 기록 소프트웨어이다.
      • 칸반보드, 작업, 위키, 데이터베이스를 통합하는 수정된 마크다운 지원을 가진 협업 플랫폼이다.
      • 문서와 관련된 작업에 특화되어 있으며 문서 작성에 있어 여러가지 기능을 제공한다.
      • 문서작성외에도 여러 기능을 제공하긴하지만 일정 수준 이상의 전문성은 갖추고 있지 않은 것으로보인다.
  • 특허조사 및 특허 전략 분석
    • 주식회사 케이티프리텔. 소프트웨어의 유지보수 개발 규모 측정방법 및 그 시스템.KR20090000818A, filed April, 5, 2007, and issued June, 5, 2009
      • 본 발명은 소프트웨어의 유지보수에 대한 요청사항이 있을 때 이를 수행하기 위한 개발 규모 및/또는 개발 공수를 자동으로 산출하여 효율적인 규모 관리가 가능하도록 하는 소프트웨어의 유지보수 개발 규모 측정방법 및 그 시스템에 관한 것으로서, 소프트웨어의 유지보수에 대한 요청사항 발생 시, 상기 요청사항에 포함되는 하나 이상의 기능에 대한 기능유형 및 개선유형을 각각 분별하여 입력하는 단계; 및 입력된 상기 기능유형 및 개선유형 각각에 대해 소정 단위 기간동안 측정된 기능점수로부터 상기 요청 사항의 개발규모를 추정 산출하는 단계를 포함하여 이루어져, 소프트웨어의 유지보수 개발 규모를 용이하고 신속하게 추정할 수 있다. 또한, 개발 규모 및 자원 등을 산출하는 데 있어 기존에 이미 측정된 기능점수 및 투입 공수값을 활용함으로써 요구사항에 따른 소요자원의 예측에 있어서의 객관성 및 효율성을 향상시킬 수 있는 효과가 있다.
    • 주식회사 스트라토아이티. 소프트웨어 컴포넌트를 표현하는 각각의 그래픽 객체 간의 연결 조작을 이용한 소프트웨어 개발 어시스트 방법 및 그 시스템.KR102300005B1, filed March, 5, 2021, and issued September 8, 2021
      • 소프트웨어 컴포넌트 표현 그래픽 객체 간의 연결 조작을 고려하는 소프트웨어 개발 방법이 제공된다. 본 게시의 일 실시예에 따른 소프트웨어 개발 방법은 제1 소스 개체를 가리키는 제1 그래픽 객체와 제2 소스 개체를 가리키는 제2 그래픽 객체를 프로그램 개발 소프트웨어에 의하여 제공되는 복수의 뷰 중 유닛 설계 뷰에 디스플레이 하는 단계와, 상기 제1 그래픽 객체와 상기 제2 그래픽 객체를 연결하는 상기 유닛 설계 뷰에서의 사용자 입력이 입력되면, 상기 제2 소스 개체에 대한 레퍼런스가 상기 제1 소스 개체에 추가되도록 소스 코드를 자동으로 수정하는 단계를 포함할 수 있다.
    • 특허전략
      • 기존의 특허들은 개발툴의 기술적인 면과 소프트웨어 개발프로세스스의 전통적인 가치에 집중되어 등록되어 왔다. 특허조사를 통해 알아본 특허 중 전자와 같이 개발비용, 기간, 자원측정과 같이 프로젝트의 전체적인 비용을 조사하는 식의 특허거나 혹은 두번째 처럼 어떤 식으로 작동해야하는지와 같은 것들에 집중한 특허가 많았다.
      • 우리의 개발툴은 이러한 전통적인 가치에 치중하기 보다, 애자일 프로세스가 가지고 있는 사상적인 측면과 소프트웨어 공학에 대한 교육이라는 측면에서 개발될 것이다. 어떤 식으로 개발해야 애자일스럽게 할 수 있는 것인지 돕고 그 툴을 사용하는 것 만으로 공부가 될 수 있도록 할 것이다.


  • 기술 로드맵
    • 기존의 협력툴들은 대체로 여러가지 기능들을 제공하는데 학생들이나 소규모의 팀들이 상요하기에 너무 비대한 경우가 많다. 따라서 우리가 필요한 기능들을 간략하게 추리고 학생들에게 꼭 필요한 기능을 넣어 가볍고 효율적인 프로그램을 개발한다.
    • 서울시립대 학생들이 자연스럽게 접속하고 편하게 사용할 수 있도록 웹 기반 소프트웨어로 개발을 진행한다.
    • react를 사용해 보기 편한 디자인과 반응형 웹을 구현하여 사용자가 프로젝트를 자연스럽게 따라함으로서 관리프로세스에 대한 이해도를 높일 수 있도록 한다.


시장상황에 대한 분석

  • 경쟁제품 조사 비교

SIRA 비교 공통점.png

SIRA 비교 차이점(장점).png SIRA 비교 차이점(단점).png

  • 마케팅 전략 제시
    • 시라의 장점으로는 지라에 없는 여러 기능을 소개할 수 있다. 예를 들어 시라에는 일정관리 기능, 프로필 기능 그리고 툴의 사용방법을 튜토리얼 방식으로 가르쳐주면서 이런 툴을 처음 접해보는 학생들도 보다 간편하게 사용할 수 있도록 한다.
    • 시라의 약점을 분석하기 위해 실제로 사용자 경험과 피드백 또한 설문을 통해서 파악할 예정이다.
    • 시라가 많은 수요를 이끌어낼 수 있는 기회는 바로 초보 개발자를 위해 만들어진 개발 툴이라는 점이다. 기존에 존재하는 지라의 경우 해당 툴을 익히기 위해 공식 문서를 통해 사용법을 익혀야 하는 등 어려움이 존재하지만 시라는 튜토리얼 방식을 통해 사용자가 직접 사용법을 찾아보지 않더라도 안내에 따라 프로세스를 진행하는 것 만으로 성공적으로 프로젝트를 완수 할 수 있도록 도움을 줄 수 있다.
    • 기존에 존재하는 지라 경쟁 제품을 경쟁사 분석을 하면서 시라 툴의 경쟁적 마케팅 전략을 지속적으로 개선해 나간다.

개발과제의 기대효과

기술적 기대효과

  • 애자일 소프트웨어 개발 방법론을 잘 알지 못하거나 경험해보지 못한 학생들이 어려움이나 추가적인 노력 없이 애자일 방법론을 통해 개발을 진행할 수 있을 것이다.
  • 일정 관리 시스템을 통해 프로젝트 팀 회의 일정을 정할 수 있다.

경제적, 사회적 기대 및 파급효과

  • 프로젝트를 참여하고 싶은 학생과 팀원을 구하고 싶은 프로젝트 팀 간의 소통을 촉진하여 학생의 프로젝트 경험을 증대하고 교내 프로젝트 활성화를 기대할 수 있다.

기술개발 일정 및 추진체계

개발 일정

SIRA 개발 일정.png

구성원 및 추진체계

  • FrontEnd Team
    • 김건중, 이성진, 이서영
      • 서비스 기획
      • 프로토타입 제작
      • UX/UI 디자인
      • 페이지 제작
  • BackEnd & DataBase Team
    • 마디나, 김영석
      • 서비스 기획
      • 데이터베이스 설계
      • 서버 구축
      • API 설계

설계

설계사양

제품의 요구사항

SIRA 요구 사항.png

설계 사양

  • 각각의 기능들을 담고 있는 페이지가 모두 구현되었는가?
  • 각각의 페이지가 사용하기 편한 디자인으로 구성되어 있는가?
  • 프로필/프로젝트 검색 시에 검색 키워드에 대한 옳은 정보를 출력하는가?
  • 각각의 프로젝트 페이지에서 협업을 위한 기능이 막힘/오류 없이 작동되는가?
  • 일정 관리기능에 일정 추가/삭제/추천 기능이 오류 없이 작동되는가?
  • 튜토리얼 기능을 통해 사용자가 추가적인 학습 없이 Sira의 사용법을 익힐 수 있는가?
  • 사용자가 이슈 해결 시 얻을 수 있는 경험치를 통해 프로젝트에 몰입하고 동기부여 받을 수 있는가?
  • 사용자가 Sira를 사용함으로써 애자일 프로세스에 대한 경험을 얻을 수 있는가?
  • 사용자가 Sira를 사용해 프로젝트를 효과적으로 진행할 수 있는가?

개념설계안

  • 웹 아키텍쳐

SIRA 웹 아키텍쳐.png

  • 경험치 시스템

경험치 시스템은 보통 게임과 같은 시스템에 도입된다. 일반적인 RPG 게임에서 사용자는 자신의 캐릭터를 이용해 사냥 또는 퀘스트를 깨 경험치를 얻고 레벨을 성장시킨다. 사용자는 이 과정에서 성취감을 얻는데 이러한 과정을 반복함으로써 게임에 몰입하고 자신의 캐릭터를 더 성장시키고자 하는 자기동기부여를 얻을 수 있다. 우리가 sira에 경험치 시스템을 도입하는 이유도 정확히 같은 맥락이다. 사용자는 Sira에서 가장 작은 일의 단위인 이슈를 해결함으로써 경험치를 얻을 수 있다. 이 경험치 값이 특정 수치를 달성하면 레벨업을 할 수 있고 이 레벨이 성장함에 따라 사용자는 자기동기부여를 얻고 프로젝트에 더 몰입할 수 있다. 즉 경험치 시스템은 사용자가 현재 어떤 단계에 있는지 파악할 수 있게 하고, 사용자가 자신이 얼마나 경험치를 얻었는지를 알 수 있게 한다. 또한 이 경험치들은 한 프로젝트에 대한 진행도와 기여도로서 기능할 수 있다. 가장 작은 단위인 이슈에 할당된 경험치의 총합으로 현재 스프린트와 프로젝트의 규모가 결정될 수 있다. 이슈가 해결될 때마다 해당 양만큼의 진행도가 진행되었다고 판단될 수 있으며 사용자가 이를 통해 프로젝트에서 자신의 기여도와 프로젝트 전체의 진행도를 확인할 수 있다.

  • 커뮤니티 기능

링크드인(장점: 기술스택, 프로필 검색, 프로필 레이아웃, 인원 모집) 학교 커뮤니티(단점 보완, 조별과제 팀원 구인 등) 링크드인은 자신의 경력을 소개하고 기업에게 있어 적합한 인재를 찾을 수 있도록 해주는 플랫폼이다. 링크드인에서는 기술스택과 같은 것들을 통해 프로필 검색을 진행할 수 있고 자신의 여러 경력과 기술스택을 레이아웃에 잘 배치해 자기 pr을 효과적으로 할 수 있도록 해 놓았다. 우리는 이러한 링크드인의 여러 장점들을 가지고와 프로필 기능을 구현할 것이다. 사용자는 자신이 가지고 있는 기술스택을 등록할 수 있고 자신이 그동안 어떤 프로젝트에 소속되었는지나 자기소개를 프로필에 등록할 수 있다. 우리는 여기에 더불어서 프로젝트에 요구 기술스택을 등록해 사용자와 프로젝트가 서로 양방향으로 소통할 수 있는 구조를 만들 것이다. 사용자는 자기가 원하는 기술스택/주제를 가지고 있는 프로젝트를 찾아 참가할 수 있고 프로젝트는 적합한 인재를 찾을 수 있을 것이다. 기존의 학교에서 출시되었던 여러 커뮤니티 앱들은 전체적으로 그 대상이 전체 학생들로 되어 있었다. 따라서 프로그래밍과 관련된 학생들이 프로젝트의 팀원을 구하거나 학교 과제를 수행하려고 할 때 구인글을 올리면 그 글을 어디에 올려야 할지 애매하거나 올려도 글이 종종 묻히는 것을 자주 발견할 수 있었다. 또한 해당 글을 통해 구인에 성공하더라도 지원자가 어떤 스펙을 가지고 있는지 어느 정도의 실력을 가지고 있는지를 파악하기가 어려웠다. Sira는 이러한 단점을 기술스택을 통해서는 어떤 타입의 개발자인지와 구인된 개발자의 레벨/경험치/참가했던 프로젝트를 통해서는 실력을 확인할 수 있도록 도울 것이다. Sira는 일정관리 기능도 제공한다. 보통 프로젝트를 하다보면 여러 회의를 할 일이 많은데 서울시립대 학생들이라는 특성상 시간표가 각자 다 다르고 여러 활동을 하는 학생들인만큼 비는 공통된 시간을 찾기가 매우 어렵다. 따라서 Sira는 사용자가 일정을 등록해 놓고 시간추천 기능을 통해서 모두에게 공통되는 비는 시간 혹은 가장 가능성이 높은 시간을 알려줄 수 있는 기능을 알려줄 수 있다.

  • 에자일

애자일 프로세스란 소프트웨어 개발에 있어서 반복적이고 유연한 접근방식을 통해 여러 변경사항과 요구사항에 신속하게 대응할 수 있는 개발방법론을 말한다. 애자일 방법론은 특히 스프린트라는 개념을 통해 이루어진다. 스프린트는 어느 일정한 기간을 두고 전체의 요구사항을 만족하기 보다 당장 할 수 있는 것들의 범위를 정해놓고 해당 업무를 진행해나가는 방식을 의미한다. 애자일 프로세스는 전체 업무를 스프린트 단위로 쪼개고 스프린트를 반복함으로서 수행된다. 따라서 애자일 프로세스를 사용한다면 전체의 명세를 정해놓지 않기 때문에 여러 요구사항의 변경에 신속하게 대응할 수 있고 각각의 스프린트마다의 결과물을 확인하면서 일을 진행할 수 있게된다. 다만 애자일 방법론은 학교 등에서 익숙하지 않다거나 혹은 적용이 어렵다는 등의 이유로 잘 사용되지 않는다. 혹 사용된다고 하더라도 애자일의 장점을 잘 살리지 못한채로 진행되는 경우가 많다. 따라서 Sira는 애자일의 개념적인 측면들 즉 “스프린트”, “이슈”와 같은 것들을 시각적이고 단계적으로 구체화해 제공함으로서 사용자가 자연스럽게 애자일 프로세스를 학습하고 성공적으로 프로세스를 완수할 수 있도록 제작할 예정이다.

이론적 계산 및 시뮬레이션

  • 사용자 흐름도 (CJM)
    • case1 : 부족한 팀원 구하기 (프로젝트 난이도: 하)
      • 1. 로그인
      • 2. (홈페이지) 새 프로젝트 만들기, 프로젝트 기본 설정 - 인원수, 개발목표시간, 프로젝트 공개처리 및 팀원모집
      • 3. (프로젝트 검색 페이지) 모집한 프로젝트 팀원의 프로젝트 참가
      • 4. (스프린트 페이지) 프로젝트의 백로그 이슈 제작
      • 5. (스프린트 페이지) 스프린트 별로 백로그 이슈 할당
      • 6. (프로젝트 페이지) 프로젝트 시작
      • 7. 모든 이슈 완료 및 프로젝트 완료
      • 8. 개인 프로필에 기록 및 경험치 증가
    • case2 : 복잡한 프로젝트 진행하기 (프로젝트 난이도: 상)
      • 1. 로그인
      • 2. (홈페이지) 새 프로젝트 만들기, 프로젝트 기본 설정 - 인원수, 개발목표시간, 비공개처리
      • 3. (홈페이지) 수행할 프로젝트 태그 제작
      • 4. (스프린트 페이지) 프로젝트 백로그 이슈 제작
      • 5. (스프린트 페이지) 스프린트 별로 백로그 이슈 할당
      • 6. (스프린트 페이지) 프로젝트 시작 및 첫 스프린트 시작
      • 7. (스프린트 페이지) 다음 스프린트 시작 전 이월 이슈 재할당
      • 8. (스프린트 페이지) 백로그 이슈 수정, 추가 및 재할당
      • 9. (로드맵 페이지) 다음 스프린트 시작
      • 10. 7 ~ 9 반복
      • 11. 모든 이슈 완료 및 프로젝트 완료
      • 12. 개인 프로필에 기록 및 경험치 증가
    • case3 : 기존 프로젝트에 참여하기
      • 1. 로그인
      • 2. (홈페이지) 새 프로젝트에서 검색
      • 3. (프로젝트 검색 페이지) 원하는 프로젝트 검색
      • 4. (프로젝트 검색 페이지) 내용 확인 후 참가 신청 버튼 클릭
      • 5. 참가 완료 후
      • 6. (홈페이지) 기존 프로젝트에서 참가 된 프로젝트 확인후 진입
      • 7. 프로젝트 진행

상세설계 내용

개념 설계

  • 프로젝트 관리
    • 프로젝트 설정
      • 각각의 프로젝트에는 프로젝트 리더가 설정되어있다. 프로젝트 리더는 프로젝트의 정보를 수정할 수 있는 권한을 가진다. 프로젝트 검색 페이지에서 팀원 구인을 할 것인지, 프로젝트의 시작과 끝나는 날짜는 언제인지, 프로젝트의 깃허브 링크 및 프로젝트 소개글을 설정할 수 있다. 프로젝트 리더의 변경은 프로젝트 리더만이 할 수 있다
    • 스프린트
      SIRA 스프린트.png
      • 사용자가 새 프로젝트를 생성하면, 기본값이 7일 단위인 스프린트들이 프로젝트의 기간만큼 프로젝트에 추가된다. 애자일 방법론에서 스프린트는 유동적인 기간을 갖기 때문에, 사용자의 요구에 따라 여러 스프린트를 합치거나 나누어 7일 이상의 스프린트를 만드는 기능을 추가하였다. 사용자는 프로젝트 전체기간을 스프린트 단위로 나누어 시간을 관리하게 되며, 현재 진행되는 스프린트가 어느 정도의 완료율을 보여야 되는지 예상 할 수 있게 되어 계획과 업무가 유동적으로 변경되는 애자일 방법론에서 프로젝트를 관리 할 수 있게 된다. 모든 스프린트는 이슈(업무) 진행도와 완료율을 가지고 있고, 이는 로드맵 페이지와 스프린트 페이지에서 확인할 수 있다.
    • 이슈
      SIRA 이슈1.pngSIRA 이슈2.png
      • 이슈란 프로젝트를 진행하는데 가장 기본적인 업무 단위이다. 이름, 깃허브 링크, 이슈 설명의 정보를 입력 할 수 있고, 그 외 이슈 종료 날짜, 선행이슈, 태그, 포인트, 담당자를 설정할 수 있다. 이슈를 만들고, 이를 현재 스프린트에 할당하면 이슈에 해당하는 업무를 진행 할 수 있다. 이슈는 진행 상태에 따라 3가지 상태를 가지며, 각각 시작 전, 진행 중, 완료 상태이다. 이슈는 이슈 종료 날짜를 가지며 계획과 업무가 유동적으로 변경되는 애자일 방법론에서 스프린트 단위보다 세밀한 단위로 업무를 완료할 목표 날짜를 설정 할 수 있다. 스프린트에 할당된 이슈라면, 스프린트가 끝나는 날 이후로 이슈 종료 날짜를 설정 할 수는 없다. 선행이슈는 해당 이슈에 해당하는 업무를 완료하기 위해서 먼저 해결해야 하는 업무를 의미한다. 예시로 로그인하기 이슈의 선행 이슈로 회원가입하기를 만들 수 있다. 선행이슈가 설정되면 선행이슈가 완료 될 때까지 이슈는 빨간색 경고 테마를 갖게 되고 ‘n번 이슈를 해결해야합니다' 경고 메세지를 가진다. 이슈에는 태그를 할당할 수 있다. 프로젝트 전체 구조의 틀로 만들어진 태그를 할당하여 이슈가 프로젝트의 어떤 부분을 담당하고 있는지 알 수 있게 된다.
      • 스프린트에 할당되지 않은 이슈는 전부 백로그 공간에 할당 된다. 아직 언제 진행할지 결정하지 못한 이슈들을 백로그에 미리 만들어 놓을 수 있다. 또한 스프린트에 할당되었지만 해당 스프린트의 종료날짜가 지난 경우에, 스프린트에 할당된 완료되지 못한 모든 이슈는 이월 이슈 공간에 할당 된다. 이월 이슈는 계획대로 이슈 진행이 이루어지지 않았음을 의미하므로 사용자에게 계획 수정 및 이슈 재할당이 필요함을 알려준다.
    • 시각화
      SIRA 시각화1.pngSIRA 시각화2.png
      • 시라는 비전문가를 대상으로 간단한 프로젝트 관리를 목표로 가지고 있다. 그래서 사용자 입장에서 직관적이고 편리하게 관리를 할 수 있게 여러가지 시각적인 디자인을 포함하고 있다. 우선 바 형태의 컨테이너를 사용했다. 사용자의 레벨을 쉽게 알 수 있고, 프로젝트의 진행도 및 완료율을 파악할 수 있다. 둘째로, 물파이프 디자인을 사용하여 로드맵 페이지를 구성했다. 물파이프는 기본적으로 달력을 모방하고 있고, 오늘의 날짜만큼 물이 차오른다. 그리고 물파이프 중간에는 진행도 바가 존재하여, 현재 날짜만큼 지났을때 어느정도의 진행률을 보여야 성공적으로 스프린트를 완료 할 수 있는지 사용자가 알기 편하다. 물파이프는 스프린트의 개수만큼 존재하기 때문에 현재 스프린트가 전체에서 몇번째 순서인지 알 수도 있다. 사용자는 물파이프가 전부 찼을 때 프로젝트가 종료된다는 것을 직관적으로 알 수 있어, 남은 계획을 수정하는데 도움을 줄 수 있다. 세번째로 프로젝트 보드 디자인이다. 프로젝트 보드 페이지는 이슈의 시작 전, 진행 중, 완료 3가지 상태를 변경하는 UI이다. 상용하는 프로젝트 관리 툴들의 프로젝트 진행 관리는 대부분 해당 디자인을 채택했으며 직관적이고 진행도 변경이 간편하다는 장점이 있다. 마지막으로 색상 컨셉을 설정했다. 프로젝트 및 이슈에 색상 테마를 적용했고, 색상 테마는 사용자가 알기 편하게 시작 전은 주황, 진행 중은 녹색, 완료는 회색의 공통된 색상을 적용하였다. 그리고 경고의 의미를 가질때는 붉은색의 테마를 사용하여 사용자가 진행 상황을 한눈에 파악하도록 하였다. 처음 이용하는 사용자를 위해 색상 테마의 설명 또한 볼 수 있다.
    • 레벨/포인트 시스템
      SIRA 경험치.png
      • 프로젝트 내의 업무의 기본 단위는 이슈이며, 각각의 이슈에는 포인트가 할당 되어있다. 포인트의 역할은 각 이슈의 업무량을 표현하는 것이고, 해당 이슈를 완료했을 때 이슈 담당자가 업무량만큼의 포인트를 얻는 것이다. 포인트의 기준은 1스프린트(1주일)내에 1인이 할 수 있는 업무를 10포인트로 할당하는 것이다. 이슈에는 각각 5, 10, 20, 30 포인트를 할당 할 수 있으며, 각각 한 스프린트 에서의 간단한 업무, 1인, 2인, 3인 분량의 업무라고 할 수 있다. 모든 이슈에는 포인트를 할당해야만 하며, 이슈가 완료되면 3가지 처리가 된다. 우선 이슈 담당자 개인 페이지의 레벨/포인트가 증가하고, 이슈 담당자 프로필의 레벨/포인트가 증가하고, 프로젝트 및 스프린트 완료율이 이슈 비중만큼 증가한다. 이슈 담당자 개인 페이지의 레벨/포인트는 해당 프로젝트 내 사용자의 기여도를 의미하고, 이슈 담당자 프로필의 레벨/포인트는 사용자가 완료한 모든 프로젝트양을 의미한다. 레벨은 포인트를 얻게 되면 일정 단위로 오르는 수치이다. 포인트를 많이 얻을 수 록 높은 레벨을 가질 수 있으며, 자기동기부여가 가능한 게임 시스템의 장점을 참고하였다.
  • 회의 일정 관리
    • 일정 관리
      SIRA 일정관리1.pngSIRA 일정관리2.png
      • 프로젝트가 진행되는 동안 자신의 일정을 달력에 유지하는 기능이다. 일정을 추가하는 방법은 편의성을 위해 2가지로 만들었으며, 주 일정과 일 일정이다. 주 일정은 숙면, 출퇴근같이 주기적으로 가지는 일정을 추가하는 것이다. 일 일정은 친구와 약속 같이 해당 일에만 존재하는 일정을 추가하는 것이다. 이렇게 추가된 일정은 팀 캘린더 페이지에 종합되어 보기게 된다. 프로젝트마다 존재하는 팀 캘린더 페이지는 프로젝트 내 모든 팀원의 일정이 비는 시간만 종합해서 보여주게 된다. 모든 팀원이 비는 시간에 회의 시간을 설정할 수 있다. 애자일 방법론에서는 팀원간의 커뮤니케이션이 중요하게 작용하는데, 팀 회의 시간을 설정하는데 도움을 주는 것은 중요한 기능이라고 할 수 있다.
  • 프로젝트 커뮤니티
    SIRA 커뮤니티1.pngSIRA 커뮤니티2.png
    • 링크드인(장점: 기술스택, 프로필 검색, 프로필 레이아웃, 인원 모집) / 학교 커뮤니티(단점 보완, 조별과제 팀원 구인 등)
    • 링크드인은 자신의 경력을 소개하고 기업에게 있어 적합한 인재를 찾을 수 있도록 해주는 플랫폼이다. 링크드인에서는 기술스택과 같은 것들을 통해 프로필 검색을 진행할 수 있고 자신의 여러 경력과 기술스택을 레이아웃에 잘 배치해 자기 pr을 효과적으로 할 수 있도록 해 놓았다. 우리는 이러한 링크드인의 여러 장점들을 가지고와 프로필 기능을 구현할 것이다. 사용자는 자신이 가지고 있는 기술스택을 등록할 수 있고 자신이 그동안 어떤 프로젝트에 소속되었는지나 자기소개를 프로필에 등록할 수 있다. 우리는 여기에 더불어서 프로젝트에 요구 기술스택을 등록해 사용자와 프로젝트가 서로 양방향으로 소통할 수 있는 구조를 만들 것이다. 사용자는 자기가 원하는 기술스택/주제를 가지고 있는 프로젝트를 찾아 참가할 수 있고 프로젝트는 적합한 인재를 찾을 수 있을 것이다.
    • 기존의 학교에서 출시되었던 여러 커뮤니티 앱들은 전체적으로 그 대상이 전체 학생들로 되어 있었다. 따라서 프로그래밍과 관련된 학생들이 프로젝트의 팀원을 구하거나 학교 과제를 수행하려고 할 때 구인글을 올리면 그 글을 어디에 올려야 할지 애매하거나 올려도 글이 종종 묻히는 것을 자주 발견할 수 있었다. 또한 해당 글을 통해 구인에 성공하더라도 지원자가 어떤 스펙을 가지고 있는지 어느 정도의 실력을 가지고 있는지를 파악하기가 어려웠다. Sira는 이러한 단점을 기술스택을 통해서는 어떤 타입의 개발자인지와 구인된 개발자의 레벨/경험치/참가했던 프로젝트를 통해서는 실력을 확인할 수 있도록 도울 것이다.
  • 애자일 방법론
    • 애자일 프로세스란 소프트웨어 개발에 있어서 반복적이고 유연한 접근방식을 통해 여러 변경사항과 요구사항에 신속하게 대응할 수 있는 개발방법론을 말한다. 애자일 방법론은 특히 스프린트라는 개념을 통해 이루어진다. 스프린트는 어느 일정한 기간을 두고 전체의 요구사항을 만족하기 보다 당장 할 수 있는 것들의 범위를 정해놓고 해당 업무를 진행해나가는 방식을 의미한다. 애자일 프로세스는 전체 업무를 스프린트 단위로 쪼개고 스프린트를 반복함으로서 수행된다. 따라서 애자일 프로세스를 사용한다면 전체의 명세를 정해놓지 않기 때문에 여러 요구사항의 변경에 신속하게 대응할 수 있고 각각의 스프린트마다의 결과물을 확인하면서 일을 진행할 수 있게된다. 다만 애자일 방법론은 학교 등에서 익숙하지 않다거나 혹은 적용이 어렵다는 등의 이유로 잘 사용되지 않는다. 혹 사용된다고 하더라도 애자일의 장점을 잘 살리지 못한채로 진행되는 경우가 많다. 따라서 Sira는 애자일의 개념적인 측면들 즉 “스프린트”, “이슈”와 같은 것들을 시각적이고 단계적으로 구체화해 제공함으로서 사용자가 자연스럽게 애자일 프로세스를 학습하고 성공적으로 프로세스를 완수할 수 있도록 제작할 예정이다.

소프트웨어 설계

  • 인증 서비스
    • 시나리오
      SIRA 인증 시나리오.png
    • Sequence Diagram
      SIRA 인증 다이어그램.png
  • 프로필 서비스
    • 시나리오
      SIRA 프로필 시나리오1.png
      SIRA 프로필 시나리오2.png
    • Sequence Diagram
      SIRA 프로필 다이어그램.png
  • 프로젝트 서비스
    • 시나리오
      SIRA 프로젝트 시나리오1.png
      SIRA 프로젝트 시나리오2.png
      SIRA 프로젝트 시나리오3.png
    • Sequence Diagram
      SIRA 프로젝트 다이어그램.png
  • 태그 서비스
    • 시나리오
      SIRA 태그 시나리오1.png
      SIRA 태그 시나리오2.png
    • Sequence Diagram
      SIRA 태그 다이어그램.png
  • 스프린트 서비스
    • 시나리오
      SIRA 스프린트 시나리오1.png
      SIRA 스프린트 시나리오2.png
    • Sequence Diagram
      SIRA 스프린트 다이어그램.png
  • 이슈 서비스
    • 시나리오
      SIRA 이슈 시나리오1.png
      SIRA 이슈 시나리오2.png
      SIRA 이슈 시나리오3.png
    • Sequence Diagram
      SIRA 이슈 다이어그램.png
  • 일정관리 서비스
    • 시나리오
      SIRA 일정관리 시나리오1.png
      SIRA 일정관리 시나리오2.png
      SIRA 일정관리 시나리오3.png
    • Sequence Diagram
      SIRA 일정관리 다이어그램.png

결과 및 평가

완료 작품의 소개

프로토타입 사진 혹은 작동 장면

SIRA 작동1.png

SIRA 작동2.png

SIRA 작동3.png

SIRA 작동4.png

SIRA 작동5.png

SIRA 작동6.png

포스터

SIRA 소개.png

관련사업비 내역서

내용

완료작품의 평가

SIRA 평가.png

향후계획

  • Front
    • 디자인을 조금 더 통일성 있고 아름답게 바꿀 것입니다.
    • Sira 서비스 안에서 의사소통을 더 원활하게 하기 위해서 이슈 댓글뿐 아니라 메시지 주고 받기 기능을 넣을 것입니다.
    • 현재 팀원들의 일정을 추합하는 기능에서 한명이라도 일정이 안되면 팀일정을 잡을 수 없는 시간으로 나오는데 몇명이 안되는 지에 따라 다르게 표시해 좀더 유연성을 둘 수 있도록 하겠습니다.
    • 모바일 호환성을 위해 작은 페이지에서도 가독성이 좋게 페이지를 렌더링할 것입니다.
  • Back
    • 데이터베이스 역정규화를 통해 issue api 호출시 필요한 테이블 조인을 최소화 하여 api 응답 시간을 0.1초 이내로 구현 하도록 할 수 있습니다.
    • PATCH등 사용 시 변경 된 데이터를 GET 하는 것과 같은 불필요한 API 호출을 최소화 하도록 변경된 사항을 Response 하는 방식을 통해 서버를 최적화 할 수 있습니다.

배포된 사이트 url

시라 사이트