그룹웨어 서비스
✏️기획 배경 및 동기
- 기획 배경: 회사에서 사용하는 사내 메신저(채팅), 결재 (문서 작성을 전산으로 관리), 일정관리, 투표, 영업관리 등 회사 사내, 사외에 필요한 서비스를 통합 제공하고 싶습니다.
- 동기: 메신저, 기안 작성후 업로드, 일정관리 등을 다른 App들을 여러가지 섞어서 쓰기보다 하나로 관리하고 싶습니다.
🗒️스토리 보드(시나리오)
- 회사에 막 입사한 신입 개발자 OOO씨. 업무 첫날부터 어떤 App을 설치하고, 어디서부터 어떤일을 해야할지 하나도 감이 오지 않는다. 선배가 다가와서 설치해야할 목록을 여러가지 주셨는데 여러가지 app을 익숙해지는데도 시간이 너무 오래걸린다. 그래서 사내에서 사용해야할 모든 기능들을 통합해둔 App을 하나 만들면 좋겠다고 생각한다. 그래서 직접 만들어보기로 한 신입 OOO씨.
- 이 앱은 가입 시 본인의 이름, 직급, 부서, 등을 가지고 있고 따라서 내가 작성한 기획서에 대해 다른 선배 개발자분들이 코멘트를 계속 답글형으로 달아서 한 주제에 대해 다양한 의견을 받을 수 있다(일일 업무에 대한 보고서 형식과 그에 대한 코멘트를 달 수 있다.). 또한, 채팅으로 바로 실시간 소통도 가능하다.
- 이를 위해 회사 서비스에 가입해야하는데 가입방법은 OAuth를 이용해서 기존에 가진 외부 계정으로 로그인도 가능하며, 직접 회원가입도가능하다. 현재는 session을 기반으로 로그인을 예정중이지만 jwt로 토큰기반으로 구현을 할 수도 있다.
- 또한 사내 일정을 전사적으로 공유를 할수도 있고, 개인 일정으로 관리하는 것도 관리할 수있다.
- 현재 매출관리 보고서를 만들 수 있다. (이건 사내에서 관리자만 확인이 가능하다.) 또한 통계차트로 보여줄 수 있고 다양한 통계 자료를 내보내 줌으로써 앞으로 어떻게 전략관리를 할지 매니저급 사원은 확인이 가능하다.
- 그동안 위에서 관리한 정보를 외부로 내보내거나, 외부에서 작성한 파일들을 내부로 가져올 수 있는 기능이있어서 그 기능으로 다양한 문서로 활용을 할 수 있다.
📚기능 구현(요구 리스트)
- 로그인/ 회원가입: session(혹은 jwt) , OAuth
- 일정관리
- Spring scheduler에 대해서 학습
- 캘린더 API를 연동해서 일정관리를 어떻게 서로 공유할지 고민해본다.
- 채팅창
- 실시간 메신저 보내기 (UDP 프로토콜을 사용해본다.)
- 사진 등을 보낼 수 있다.
- 채팅과 관련된 다양한 기능을 추가해본다.
- 답글형 게시판, 썸네일형
- 조회시 빠른 조회를 위해 index기능을 추가하고싶다.
- 답글형 구현을 할때 self join이 아닌 tree 형태로 구현을 해본다. (그이외에 안티패턴들에 대해 고민해본다.)
- WIZWIG에디터를 달고, 데이터가 큰 것을 처리해본다.
- 매출관리보고서
- 파일 관리를 CDN으로 한다.
- Chart API를 사용한다.