HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
프롤로그 과제 제출
프롤로그 과제 제출
/
💻
개발 과제
💻

개발 과제

notion image
notion image
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
notion image

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. 시스템 구성도

notion image

1-4. 데이터 플로우

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

notion image

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

notion image

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

notion image
  • 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으로 개발되어 모든 해상도 기기에 대응 가능