2023.01.09(월) ~ 2023.02.17(금) (40일간 진행)
- 온라인 소모임, 취미 활동에 대한 수요 증가
- 비대면 문화와 시장 확대
- 비용과 사용자 경험을 동시에 만족시킬 수 있는 서비스 필요
- Naver BAND
- 중장년층에 인기
- 커뮤니티 기능이 있음
- 오프라인 모임 위주의 성향
- 화상 회의를 즐길 수 있는 감성과 흥미 컨텐츠가 부족
- Discord
- 비용 발생이 적음
- 기능이 너무 많고, 버그 발생이 잦음
- 소모임 관리의 어려움
- 어려운 UI 특징
- Webex
- 안정적인 회의 진행 기능 지원
- 시간 및 참여 인원에 제한이 있고, 과금이 필요함
- 커뮤니티 기능이 없음
- 화상 회의 이외의 컨텐츠가 없음
- ZOOM
- 원격 제어와 투표 기능이 지원됨
- 시간 및 참여 인원에 제한이 있고, 과금이 필요함
- 흥미 요소가 적거나 많은 비용이 발생함
혼자보단 둘, 둘보단 다 같이! 👪
관심 있는 모임에 들어가거나,
동료들을 구해보는 건 어떨까요?
다함께 취미생활을 기록하고 공유하세요.
혼자보단 분명 더욱 즐거울 겁니다!
24/7 즐기는 취미생활 사진 공유, 방명록, 화상채팅까지! 언제 어디서든 추억을 쌓아갈 수 있습니다.
내가 속한 모임별로 특별한 추억들로 채워 가보세요 :)
호방한 사람들이 될 유쾌한 반란 팀
- 박귀렬 - BackEnd, 팀장
- 이인재 - BackEnd
- 강은진 - BackEnd
- 김수빈 - FrontEnd
- 이정범 - FrontEnd
- 서철원 - FrontEnd
- WebRTC 기술을 사용하여, 웹상에서 빠른 속도로 화상 통화와 채팅이 가능
- 개인 카메라와 오디오 설정
- 화상 통화 도중에도 캔버스 페인팅 가능
- 채팅에 '다이나믹 스크롤'을 통한 UX 제공
- Redis 저장소를 활용해 메모리상에서 빠르게 토큰을 검사하여 회원 정보를 조회
- 모임을 처음 생성한 사람은 해당 모임의 소유자가 됨
- 모임 소유자는 새로 가입 신청한 회원들을 관리(관리자 권한 부여 등)
- 최대 10장의 사진과 512글자의 내용을 작성할 수 있는 모임 게시판
- '무한 스크롤'을 통한 UX 제공
- P2P(Peer-to-Peer Network)로 브라우저나 단말 간에 데이터를 주고받는 기술의 웹 표준
- 웹에서 실시간 미디어 스트림을 송수신할 수 있는 유일한 표준이고 또 유일한 P2P 표준
- JWT 토큰을 통해 사용자 정보를 암호화하여 보안성을 높임
- Spring Security를 통해 로그인한 사용자의 정보를 편하게 인가 받음
- Redis 저장소에 key-value 형태로 memberId-RefreshToken 정보를 저장함
- 메모리상에서 빠르게 토큰을 검사하여 회원 정보를 조회
- Canvas 태그와 바닐라 JS를 이용한 페인팅 기능
- 웹 소켓 기술을 활용하여 같은 세션에 있는 사용자에게 그림판을 공유할 수 있는 기능
Repository
├─ README.md
│
├─ docs
│ │
│ ├── DB
│ │ ├── ...
│ │
│ ├── Jira
│ │ ├── ...
│ │
│ ├── img
│ ├── ...
│
│
├─ backend
│ │
│ ├── gradle
│ │ ├──wrapper
│ │ ├── gradle-wrapper.jar
│ │ ├── gradle-wrapper.properties
│ │
│ ├── src
│ │ ├── main
│ │ ├── generated
│ │ ├── resources
│ │ │ ├── static
│ │ │ ├── img
│ │ │ ├── ...
│ │ ├── java
│ │ ├── com
│ │ ├── a505
│ │ ├── hobby
│ │ ├── article
│ │ ├── common
│ │ ├── hobby
│ │ ├── hobbyarticle
│ │ ├── hobbyarticlecomment
│ │ ├── hobbyarticleimg
│ │ ├── hobbyarticlelike
│ │ ├── hobbymember
│ │ ├── hobbypostit
│ │ ├── hobbypostitrecord
│ │ ├── item
│ │ ├── jwt
│ │ ├── member
│ │ ├── pending
│ │ ├── security
│ │ ├── HobbyitApplication.java
│ │
│ ├── .gitignore
│ ├── build.gradle
│ ├── gradlew
│ ├── gradlew.bat
│ ├── settings.gradle
│
│
├─ HobbyIT(FE)
│ ├─ README.md
│ │
│ ├─ public
│ │ ├─ assets
│ │ ├─ fonts
│ │ │ ├─ ...
│ │ │
│ │ ├─ gif
│ │ │ ├─ ...
│ │ │
│ │ ├─ postit
│ │ │ ├─ ...
│ │ │
│ │ ├─ ...
│ │
│ ├── src
│ │ ├── api
│ │ │ ├── common
│ │ │ │ ├── ...
│ │ │ │
│ │ │ ├── ...
│ │ │
│ │ ├── components
│ │ │ ├── VideoChat
│ │ │ │ ├── ...
│ │ │ │
│ │ │ ├── modals
│ │ │ │ ├── ...
│ │ │ │
│ │ │ ├── no-content
│ │ │ │ ├── ...
│ │ │ │
│ │ │ ├── ...
│ │ │
│ │ ├── layouts
│ │ │ ├── default
│ │ │ ├── ...
│ │ │
│ │ ├── plugins
│ │ │ ├── index.js
│ │ │ ├── vuetify.js
│ │ │ ├── webfontloader.js
│ │ │
│ │ ├── router
│ │ │ ├── index.js
│ │ │
│ │ ├── store
│ │ │ ├── app.js
│ │ │ ├── index.js
│ │ │ ├── message.js
│ │ │ ├── user.js
│ │ │
│ │ ├── styles
│ │ │ ├── settings.scss
│ │ │
│ │ ├── views
│ │ │ ├── ...
│ │ │
│ │ ├── App.vue
│ │ ├── main.js
│ │
│ ├── ...
│ │
- GitLab
- Notion
- Figma
- JIRA
- MatterMost
- Webex
-
GitLab
- 코드의 버전 관리
- 개발 이슈 관리 및 해결을 위한 회의
- MR과 팀원의 코드리뷰
-
Notion
- 기획 단계에서 도출된 아이디어 정리
- 회의록과 팀미팅을 기록하여 의견과 해결사항을 정리
- 팀 그라운드 룰을 정리
- Jira 일정 계획 수립
- Git Commit 컨벤션 정리
- 참고자료 정리
- Back-end, Front-end별 개발 이슈 정리
- API 상태 코드 정리
- 유쾌한 반란의 NOTION
-
Figma
- UI/UX에 초점을 둔 실시간 협업
- HOBBY'IT 만의 디자인과 메인 컬러 지정
- 애니메이션, gif 이미지 활용
- 목업과 와이어프레임 정리
- 유쾌한 반란의 FIGMA
-
Jira
- 일주일 단위로 프로젝트 일정 관리
- 23.01.10 ~ 23.02.17 기간의 일정 관리
- 기획, 설계, 개발, 발표, 회의 등
유쾌한 반란의 Google Docs - 요구사항 정의서, 기능 정의서, API 명세서
- 요구사항 정의서
- 기능 정의서
- API 명세서
- 와이어 프레임
- ER-Diagram
- 포팅메뉴얼
- 중간발표 자료
- 최종 발표 자료
- API Docs의 부재로 인한 백엔드-프론트엔드 간의 불필요한 소통
- 각 API마다 다른 변수 및 전송 형태에 대해 질문을 하는 경우 다수
- 프론트엔드 디렉토리 정리
- 많은 컴포넌트로 인해 개발이 진행될 수록 원하는 파일을 찾는데 걸리는 시간이 증가함
- 일부에만 적용된 반응형 & 기기(데스크탑, 태블릿, 모바일)마다 다른 UI/UX 구현 실패
- 익숙하지 않은 JIRA 사용에 의한 관리 미숙
- 프론트엔드 Axios 연결을 위한 interceptor 파일을 따로 구현
- 헤더와 같이 중복될 수 있는 axios 내의 코드를 생략가능
- 더욱 세분화 된 프로젝트 기획 과정
- 브라우저 렌더링 및 lazy loading