Skip to content

beyond-sw-camp/be06-1st-Dopamines-BOOT_UP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 

Repository files navigation

📌 프로젝트 주제

BOOT_UP 시스템은 한화 시스템 BEYOND SW캠프를 수강하는 학생들만을 위한 커뮤니티 기능을 주 목적으로 삼는다. 부가적으로 공지사항, 출결 알림, 스터디룸 예약 등의 기능을 통해 과정 간 편의성을 증진시켜준다. 이를 통해 BOOT_UP 시스템은 실속있는 부트캠프 관리 서비스를 제공한다.



🖼 배경

Group 1410086963 (1)

자체적인 플랫폼이 부재한 한화시스템 BEYOND SW캠프는 소통의 창구로 디스코드를 사용하고 있다. 위 플랫폼을 통해 공지사항이 전달되고 스터디 모집과 소통이 이루어지고 있다. 현 플랫폼인 디스코드는 오로지 “해당 기수"만의 소통창구로 이용되고 있다. 이는 전 기수간 혹은 취업준비를 하는 수료자들 간 소통이 불가하다는 점에서 불편함을 야기시킨다. 이에, 원내에서 원활히 사용할 수 있는 소통 및 커뮤니티 플랫폼을 구축하여 BEYOND SW캠프 기수 전체적으로 활동할 수 있는 창구를 마련하고자 한다.

📋 요구사항 정의서 / ERD

요구사항 정의서

🔗 요구사항 정의서

ERD

be06-ERD 최종


📚 기술 스택

OS

Database


🖥️ 시스템 아키텍처

스크린샷 2024-05-21 오후 2 19 50


✨ DR(재난 복구)

재난 복구 계획

본 DRP는 데이터베이스의 고가용성과 무중단 서비스를 제공하기 위한 재난 복구 절차를 설명한다.

시스템 구성

  • Master Slave: 커뮤니티 프로젝트 특성 상 게시글을 조회하는 select작업이 글을 작성하는 insert작업보다 주요적으로 요구된다. 이러한 점을 감안하였을 때, 읽기 작업을 slave 서버에 위임하는 것이 효율성을 증대시킬 수 있다고 판단하여 Master - Slave 구성을 채택하였다.

  • HAProxy: 슬레이브가 추가 될 시, 로드 밸런서로서 HAProxy를 활용한다. 쓰기작업은 Master에게, 읽기 작업을 각 Slave에게 분배하여 부하를 분산시킨다.

  • Keepalived: 다중으로 Master 서버를 구성시켰을 때, 유휴 상태로 인한 종료를 방지하기 위해 사용될 수 있다.



재난 복구 시나리오

  • 장애 탐지 : HAProxy가 주기적으로 노드 상태를 체크하여 장애를 감지.
  • 장애 노드 격리: HAProxy는 자동으로 장애 노드를 로드 밸런싱 풀에서 제외.
  • 알림: 시스템 관리자에게 장애 발생 사실을 이메일/문자로 알림.


👨‍💻 SQL 실행 결과

회원 가입

회원가입을 할 때 이메일, 비밀번호 , 이름, 닉네임, 핸드폰번호, 주소, 기수정보를 기입해야 한다.(없으면 없음 선택이 가능하다.)
권한여부, 생성날짜, 소셜 로그인 여부의 정보들을 저장할 수 있다.

중고 마켓 게시판

- 제목,내용,이미지,상품 가격이 필수적으로 들어가야 한다.
- 판매자가 원하는 상품 정보들을 등록할 수 있다.
- 한번 올리면 수정은 불가하다. - 판매자와 1:1 채팅을 할 수 있다.

채팅방 생성

- 1:1 채팅방이 생성되었을때, 요청 user 와 수신 user 의 정보 저장한다.
- 최초 채팅방 생성 날짜와 최종 대화 날짜가 나온다.
- 최종 대화 기준 30일이 지나면 비활성화 상태가 된다.

채팅방 메세지

채팅방 안의 대화 내역들을 볼 수 있다.
대화를 보낸 사람, 보낸 시간, 텍스트 파일 외의 사진,영상 등 파일 형식들을 저장 할 수 있다.

스터디 예약 좌석 목록

3~5층 각 층별 좌석 목록들이 저장된다.

스터디 예약 정보

스터디 예약 목록들이 저장된다.
신청 회원, 신청 명수, 원하는 스터디 예약 시간 정보가 저장된다.

실시간 스터디 예약 정보

실시간으로 예약되어 있는 스터디 좌석 목록이 저장된다.

예비 수강생 게시판

회원가입을 했지만, 한화 부트캠프 수강생이 아닌 회원들에 대해서는 해당 예비 수강생 게시판만 이용 가능하다.
예비 수강생이 부트캠프를 다니고 있는 수강생들에게 여러 Q&A를 주고 받을 수 있다.

게시글 좋아요

유저가 어떤 게시글에 좋아요를 눌렀는지 확인할 수 있다.

댓글 작성, 조회

게시글에 대한 댓글을 저장한다.

댓글 좋아요

댓글에 대해서 좋아요 정보를 저장한다.

대댓글 작성, 조회

대댓글에 대한 정보를 저장한다.
단, 하나의 댓글 안에 대댓글의 깊이(depth)는 동일하다.

대댓글 좋아요

대댓글에 대한 좋아요 정보를 저장한다.

최종 프로젝트 게시판

최종 프로젝트를 끝내고 수료한 수강생들 프로젝트 정보를 저장한다.
시연 영상을 볼 수 있으며, 해당 프로젝트의 깃허브 링크가 추가적으로 기재된다.

관리자 정보

관리자는 테이블이 따로 명시되어 저장된다.


🔍 SQL 튜닝

월 별 게시글 조회


1. 인덱스 생성 전 → 전체 데이터(약 7만 개)에서 데이터 조회



2. 인덱스 생성 후 → 약 700개에서 데이터 조회

중고마켓 제목 키워드 검색


1. 인덱스 생성 전 → 전체 데이터에서 키워드 검색 조회 (0.047 sec)



2. 인덱스 생성 후 → 풀텍스트 인덱스에서 키워드 검색 조회 (0.015 sec)

🤼‍♂️팀원

Members

유송연 서시현 최승은 최수빈 곽동현

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published