

1. 개발 명세서1-1. 사용 기술 스택1-2. 외부 라이브러리1-3. 시스템 구성도1-4. 데이터 플로우사용자의 로그인/인증, 그룹생성과 입장에 대한 데이터 플로우사용자의 자기소개와 댓글 작성에 대한 데이터 플로우1-5. 데이터 모델링 - ERD 설계2. 결과물 동작 명세서2-1. 결과물이 동작하는 OS2-2. 데모버전이 시행될 환경
1. 개발 명세서
1-1. 사용 기술 스택
- 클라이언트(FE)
- ReactJS, Redux
- PWA
- 백엔드
- Python3
- Django
- Nginx
- MySQL
- 인프라
- AWS
- EC2
- Elastic Load Balancer
- Route53
- RDS
- CloudFront

1-2. 외부 라이브러리
- 클라이언트(FE)
- React
- react-transition-group
- react-hook-form
- react-router
- Style/UI
- material-Icon
- styled-component
- ESLint
- Prettier
- 상태 관리 / 비동기 통신
- redux, redux-thunk, redux-devtools-extension
- axios
- Webpack/Babel
- Craco
- 백엔드
- djangorestframework
- djangorestframework-simplejwt
- django-allauth
- dj-rest-auth
1-3. 시스템 구성도

1-4. 데이터 플로우
사용자의 로그인/인증, 그룹생성과 입장에 대한 데이터 플로우

사용자의 자기소개와 댓글 작성에 대한 데이터 플로우

1-5. 데이터 모델링 - ERD 설계

user
는 이름, 이메일, 비밀번호 등 개인정보를 가지고 있습니다.
- 사용자가 가입할 수 있는
group
은 그룹 초대 코드를 기본키로 가지며, 그룹이름과 대표사진, 생성일자를 가지고 있습니다.
user
와group
의 N:M 관계를 관계 테이블로 분리하여 1:N 관계로 풀어내었습니다.- 이에 해당하는
groupUserList
는 그룹 코드, 사용자 ID를 외래키로 가집니다.
group
의 운영진을 파악하기 위한groupOrganizerUserList
는 그룹 코드, 사용자 ID를 외래키로 가집니다.
group
마다 다른 자기소개 질문인introduceQuestion
은 그룹 코드를 외래키로 가지며, 질문과 생성/수정일자를 가지고 있습니다.
- 사용자가 작성하게 될 자기소개 질문에 해당하는 답변인
introduction
은 사용자의 ID, 그룹 코드, 질문 ID를 외래키로 가지며, 답변과 생성/수정 일자를 가지고 있습니다.
2. 결과물 동작 명세서
2-1. 결과물이 동작하는 OS
- Android / iOS
- Progressive Web Application을 활용 (WebView)
- WebApp/Web
2-2. 데모버전이 시행될 환경
- Web으로 개발되어 모든 해상도 기기에 대응 가능