1. Teamkerbell
: 학생들을 위한 Project Manager Site
프로그램 목적 및 소개
『Teamkerbell』은 학생들의 프로젝트를 효율적으로 관리해주는 Project Manager Site이다.
오늘날 대학에서는 학생들에게 타인과의 협업을 강조하며 이를 얼마나 완벽하게 수행하는가를 평
가하고 있다. 대학생활에서 중요한 비중을 차지하고 있는 팀 프로젝트임에도 불구하고 프로젝트
진행을 도와주는 특화된 프로그램은 아직 부재상태이다. 팀 프로젝트는 온라인, 오프라인 등 다양
한 방법으로 진행되며 온라인 상에서 오프라인 일정을 잡는 것이 보편적이다. 팀 프로젝트를 진
행하기 위해 그룹채팅이 가능한 스마트폰 모바일 메신저 서비스를 사용하는 것이 일반적이지만
팀 프로젝트에 특화된 메신저 서비스가 아니기에 기능이 부족한 실정이며, 효율적인 팀 프로젝트
진행에 있어 다음과 같이 여러 한계점이 존재한다. 개인적인 사정이 있어 온라인 회의에 늦게 참
여했을 경우 요점을 파악하는 데 오랜 시간이 걸린다. 자료를 프로젝트 별로 분류할 수 없고, 다
운로드 가능 기간이 정해져 있고 다운받지 않은 파일은 파일목록에서 확인 할 수 없기 때문에 자
료 유실 등의 문제가 발생할 수 있다. 오프라인 회의 일정을 잡는 투표 역시 팀 프로젝트에서 중
요한 일정임에도 불구하고 모바일 메신저 서비스에서는 중심 기능이 아니기 때문에 제약이 많다.
팀원 개개인의 가능한 일정을 한 눈에 파악하기 어렵고 생성된 투표에 대한 알림이 존재하지 않
아 투표를 놓치는 경우도 있다. 우리는 이러한 문제점들을 해결하기 위해 『Teamkerbell』이라는 프
로젝트 관리 프로그램을 개발하였다.
이 프로젝트의 주요기능은 ‘과제 방’에서 이뤄지며 다음과 같다. 사용자가 자신이 참여한
프로젝트마다 독립적으로 관리할 수 있는 ‘과제 방’이 있다. 과제 방에 접속하면 프로젝트 진행을
도와주는 다양한 기능을 이용할 수 있다. 프로젝트를 보조해주는 다양한 기능에는 채팅과 회의록
마지막으로 달력서비스가 있다. 우선 사용자들은 과제 방에 접속 중인 팀원을 상시 확인할 수 있
으며 해당 멤버들과 ‘채팅’으로 회의를 진행한다. 회의 진행 중 필요한 파일을 업로드 할 수 있으
며 사진 파일 업로드 시 채팅 방 및 갤러리에서 열람 가능하다. 온라인 채팅 회의 중에 나온 중
요한 내용은 그 즉시 ‘회의록’에 기록할 수 있다. 회의록은 사용자의 편의를 위해 날짜 별로 저장
되며 이전 회의 기록도 쉽게 열람이 가능하다. 또한 회의록 작성 시 한 사람이 작성하고 있을 때,
다른 사용자들의 작성을 막아 내용 충돌을 방지하며 서기가 작성하는 내용은 모든 팀원들이 실시
간으로 볼 수 있다. 이를 통해 오프라인 회의와 같은 생동감을 제공한다. 마지막으로 ‘달력’에서는
그 동안 업로드 했던 파일을 직관적인 달력 UI를 통해 날짜 별로 확인할 수 있으며 미팅을 잡기
위한 일정을 등록할 수 있다. 한 사용자가 일정을 잡기 위한 기간을 등록하면, 일정등록 알림이
프로젝트 참여자에게 Broadcast되며 다른 사용자들이 그 기간 내에 가능한 날짜를 등록한다. 일정
2. 등록은 Dashboard나 Calendar에서 이루어지며 모든 사용자가 개개인의 일정을 등록하면 팀장이
주도하여 다수 또는 모든 사용자가 가능한 날짜들 중 한 날짜를 선택해 만날 날짜와 시간, 장소
를 등록할 수 있다. 프로젝트 팀원의 할 일을 등록 및 관리하는 To Do List, 오프라인 회의 참여율,
프로젝트의 진행상황 등을 문서화 시켜 사용자들의 프로젝트 참여현황 및 진행상황을 쉽게 알 수
있다. 문서화된 자료는 제출할 수 있도록 프린트 기능을 제공할 예정이다.
프로그램 구조
3. 적용된 주요 기술
Spring MVC Framework
Teamkerbell은 Spring MVC Framework를 기반으로 만든 웹 애플리케이션이다. AOP, DI같
은 개념이 신기하고 유용했다. 이후 Spring-Security를 사용하여 애플리케이션의 보안을 적용할 예
정이다.
Hibernate Framework
Spring framework에서 Mybatis Framework을 사용하는 것이 익숙하지만 ORM이라는 개
념에 흥미가 생겨 사용한 프레임워크. DB에서도 객체지향적인 개념을 적용할 수 있다. 개념이 생
소하여 JOIN을 적용하는데 많이 애를 먹었지만 익숙해진 뒤에는 Mybatis를 사용할 때 보다 프로
젝트 진행이 수월해졌다.
Vert.x Framework
서버와 클라이언트의 실시간 통신을 위해 사용한 프레임워크. 채팅, 회의록, 사용자 접속
확인 등의 기능에서 사용되었다. Mod-Socket-Io라는 라이브러리를 사용하여 Spring Framework에
쉽게 적용하였다.
Long Polling
알림을 사용자에게 refresh없이 알리기 위해 사용할 방식. Ajax를 사용해서 구현할 것이다.
Socket.IO을 사용하여 구현하려 했으나 페이지 이동하면서 Socket 유지가 불가능하여 이 방식을
사용할 예정이다.
문서 파싱후 태깅
APACHE의 POI, H2lib 라이브러리를 사용하여 사용자가 업로드한 문서파일을 파싱하여
조사를 제외한 Word를 나온 빈도수를 바탕으로 내용을 대표할 수 있는 태그를 생성하는 기술
(Github의 다른 프로젝트에 존재하는 기술, 이후 적용 예정)