7. 시스템 구조 및 기
술 역할 분담
라즈베리 파이를
이용한 단말 구성
및 단말 프로그램
작성
바코드를 데이터로
바꾸는 영상처리
모바일 앱 제작
모바일, 단말, 관리
자 클라이언트와
통신하는 서버 구
현
데이터 베이스 설
계및 구축
관리자용 클라이언
트 개발
강진구 서준영 박성호
8. Agile
-1.User Stories
기능 User Story
어플리케이션 사용자는 회원가입을 할 수 있어야 한다.
사용자는 로그인을 해야 한다.
사용자는 자신의 대출 현황을 볼 수 있어야 한다.
사용자는 도서 정보와 대출여부를 확인 할 수 있어야 한다.
사용자는 반납 예정일에 대한 알림을 받을 수 있어야 한다.
사용자는 다른 사용자에게 도서를 권유할 수 있어야 한다.
사용자는 읽은 책에 대하여 평점을 매길 수 있어야 한다.
사용자는 새로운 도서를 신청 할 수 있어야 한다.
클라이언트 관리자는 책을 추가/삭제/수정 할 수 있어야 한다.
관리자는 책 정보를 웹에서 받을 수 있어야 한다.
관리자는 바코드를 생성 할 수 있어야 한다.
관리자는 회원정보 및 책 대여 현황을 볼 수 있어야 한다.
관리자는 공지사항을 앱으로 띄워 줄 수 있어야 한다.
관리자는 사용자의 모든 권한을 가질 수 있어야 한다.
단말기 사용자는 자신의 고유 바코드 혹은 고유번호로 신원 확인을 할 수 있어야 한다.
사용자는 책의 바코드를 찍고 대출을 할 수 있어야 한다.
사용자는 LCD를 통해 카메라영상을 확인 할 수 있어야 한다.
사용자는 LCD를 통해 GUI환경을 제공받을 수 있어야 한다.
9. Agile
-2.Estimate(1)
기능 Point
앱 로그인환경 구성 1
모바일과 서버 사이의 통신 3
앱 부가기능 구현 5
앱 GUI 구성 3
클라이언트 웹 파싱 구현 2
클라이언트 GUI 구성 2
클라이언트와 서버 사이의 통신 2
DB 설계 1
서버 구현 4
하드웨어 구성 1
영상처리 6
단말 GUI 구성 3
단말과 서버의 통신 2
합병 및 테스트 5
합계 40
11. Agile
-4.Estimate(2)
Iteration length
1
서버 구현(4)
앱 로그인환경 구성(1)
DB 설계(1)
하드웨어 구성(1)
영상처리(6)
클라이언트 웹 파싱 구현(2)
15
2
앱 GUI 구성(3)
클라이언트 GUI 구성(2)
모바일과 서버 사이의 통신(3)
클라이언트 와 서버 사이의 통신(2)
단말 GUI 구성(3)
단말과 서버 사이의 통신(2)
15
3
앱 부가기능 구현(5)
합병 및 테스트(5)
10
12. 서버 구성
라즈베리파이를 이용한 단말 구성
LCD,CAM 구성 및 바코드 판독
데이터 베이스 설계, 구축
모바일 앱 개발(사용자)
PC 용 클라이언트 개발(관리자)
Agile
-5. Theme
데이터 베이스 서버 구성 하드웨어 모듈 구성
#2:안녕하십니까? 25-1기 신입 단기과제 발표를 맡게된 버니니 팀 프로젝트 리더 강진구 입니다.
저희 팀의 프로젝트는 책이있는 어디든 도서관 입니다. 그러면 발표를 시작하겠습니다.
#3:목차입니다.(클릭)
먼저 저희 조가 수행할 과제의 아이디어에 대하여 소개를 한뒤,(클릭)
저희 조가 사용한 시스템 플랫 폼 및 기술(클릭)
그다음으로는 저희가 저번주에 배운 프로젝트 진행 방법론중 하나인 애자일 프로세스 라는것을 배웠는데요, 이번 과제를 애자일 프로세스에 접목시켜 어떻게 진행 할지 발표하겠습니다.(클릭)
그리고 마지막 Q&A 순서로 발표를 진행하도록 하겠습니다.(클릭)
#4:먼저 저희 팀의 프로젝트 아이디어에 대해 소개하겠습니다.
작은 규모의 도서관에서 대출?
시립 도서관이나 학교의 도서관 등에서 책을 대출하는것은 매우 간단합니다. 원하는 책을 찾아서 도서관 내에 항상 자리를 지키고 있는 직원에게 대출 신청을 하면 됩니다.
하지만 회사나 도서관 업무가 주가 아닌 곳에도 소규모로 도서관을 운영하는곳이 많이 있습니다.
이런 곳에서는 도서관을 관리하는 사람이 계속해서 자리를 지키고 있지 않은 경우가 많으므로 이런 소규모 도서관에서 책을 빌리려 한다면,
(클릭)관리자를 찾아가 직접 대출 신청을 하거나,(클릭) 내부망에 접속하여 도서 대출 신청을 직접 해야 하는 등의 번거로움이 있습니다.
저희 팀은 이러한 소규모 도서관에서의 대출에 있어서 불편함을 해소하고자 개인이 직접 도서를 간단히 대출 할 수 있는 시스템을 만들고자 생각 하였습니다.
#5:대부분의 책에는 위의 그림과 같이 바코드가 인쇄되어있습니다.
이 바코드로 책을 구분하여 개인이 쉽게 책을 대출할 수 있도록 하는 시스템 입니다.
#6:다음으로는 저희 프로젝트의 시스템 구조 및 기술 입니다.
서버를 두어 도서및 대출 정보, 개인 정보 등을 저장합니다.
서버는 클라이언트와 단말 등과 통신하게 됩니다.(클릭) 먼저 일반 사용자가 쓰는 모바일 앱 입니다.
일반 사용자는 모바일 앱으로 회원 가입 후 도서 정보 확인, 대출 현황, 후기 장성 등을 수행 할 수 있습니다.(클릭)
두번째로는 관리자가 사용 할 PC 용 클라이언트 입니다. 관리자는 구입한 도서 등록 하거나 분실, 파손된 도서를 삭제 할 수 있고, 전체적 대출 현황 확인, 일반 사용자의 도서 이용정보 변경 등의 일을 할 수 있습니다.(클릭)
그리고 일반 사용자가 도서관 내에서 사용할 단말이 있습니다. 단말은 도서 및 사용자의 바코드를 읽어 사용자의 대출을 도와줍니다.
#7:저희 팀이 프로젝트에서 사용할 장비 및 플랫폼 입니다.
도서의 바코드를 읽어 사용자의 대출을 도와줄 단말 역할로 라즈베리 파이와 카메라를 이용할 것 입니다.
모바일 앱의 경우, 안드로이드 용 앱을 만들게획입니다.
서버 및 관리자용 클라이언트의 경우, 윈도우 PC 에서 자바를 이용하여 개발 할 계획 입니다.
#8:저희 팀의 역할 분담 입니다.
저는 단말의 하드웨어 구성 및 단말기 프로그램 작성, 그리고 사용자가 찍은 바코드를 데이터로 바꾸어 주는 알고리즘 구현을 맡았습니다.
서준영 회원은 일반 사용자를 위한 모바일 앱 구현 및 클라이언트와 단말과 통신 및 데이터 저장을 위한 서버 구현을 맡았습니다.
박성호 회원은 데이터 베이스 설계 및 구축 , 그리고 관리자가 사용할 클라이언트 개발을 맡았습니다.
#9:저희는 프로젝트 진행을 agile방식으로 진행하게 되었습니다.
User story를 어플리케이션,클라이언트,단말기 세가지 기능을 기준으로 나누어보았습니다.
어플리케이션에는 회원이 자신의 정보와 여러가지 부가기능을 활용 할 수 있어야 한다는 생각으로 다음과 같은 유저스토리를 생각 해보았습니다.
클라이언트에는 관리자가 여러 데이터를 관리하는 기능을 중점적으로 다음과 같은 유저스토리를 생각 해보았습니다.
단말기에는 책 인식을 하고 정해진 루틴을 잘 진행할 수 있도록 다음과 같은 유저스토리를 생각 해보았습니다.
#10:유저 스토리를 기반으로 하여 각 기능을 병합, 조절하여 점수를 매겨보았습니다.
가장 쉬운 항목으로 앱 로그인 및 하드웨어 구성 등을 1점으로 하고, 가장 구현 시간이 오래 걸릴것 같은 영상 처리를 6점으로 상대적인 점수를 매겨보았습니다.
#11:저희는 위험성 사분면 다이어그램을 사용하여 위험성과 가치를 고려해서 우선순위를 선정하였습니다.
바코드 인식은 직접 영상처리를 해서 인식을 할 것이기 때문에 위험성이 높지만 핵심기능인 만큼 가치도 높습니다.
그다음은 앱 개발인데 앱을 통해 쉽고 간편하게 대출정보를 관리할 수 있기 때문에 가치가 높지만 개발 난이도로 볼때 위험성은 낮다고 할 수 있습니다.
바코드 생성도 기존의 바코드 생성 방법이 있기때문에 저위험 저가치로 선정하였고
도서추천 알고리즘 같은 경우는 추천을 어떤 알고리즘을 적용하여 하는가에 따라서 난이도가 많이 변할 것이기 때문에 고위험 저가치에 넣었습니다
#12:다음으로 점수와 중요도에 따라서 각 이터레이션에서 구현 할 내용을 선정해 보았습니다.
애자일 이론으로는 각 이터레이션에 점수를 동일하게 하는것이 맞지만, 마지막 병합 및 테스트 부분에서 지연될 수 있는 부분 혹은 가치가 낮고 위험도가 높은 기능을 구현하는 등의 작업을 위해서 첫주와 둘째주 이터레이션에 점수를 조금 더 많이 할당하였습니다.
#13:앞에서의 애자일 기법을 바탕으로 저희가 구현할 항목을 생각해 보았습니다.
서버를 구성해야 하고
라즈베리 파이를 이용해 단말기를 구성합니다.
단말기에 LCD를 장착하여 GUI 표현을 하고 카메라를 장착하여 이미지 스캔 및 바코드 분석을 해야 합니다.
데이터 베이스를 설계해야 하고,
일반 사용자가 쓸 모바일 앱 개발,
그리고 관리자가 사용할 클라이언트 개발을 해야 합니다.
여기서 첫번째 이터레이션에서는 데이터 베이스 및 서버 구성을 완료하고 하드웨어 설계 및 영상처리를 통한 바코드 데이터 처리 부분을 수행 할 계획입니다.