Repository files navigation
통합화된 서비스의 부재
과거에도 다양한 온라인 스터디 서비스가 있었지만, 하나로 통합 관리하는 서비스는 찾기 어려웠습니다.
공부 효율성 유지
집에서 혼자 공부를 하더라도, 그룹 스터디 서비스로 밖에서 공부하는 것과 같은 효과를 얻을 수 있습니다.
게이미피케이션
사용자의 동기부여를 위한 주요 기능들과 게이미피케이션 서비스를 결합했습니다.
AI 기반 맞춤형 학습 지원
개인화된 학습 플래너: 사용자의 성적 및 오답 유형을 분석하여 AI가 최적화된 학습 계획을 자동으로 생성합니다.
AI 조언 시스템: 최근 성적 추이를 기반으로 개인별 맞춤 학습 조언을 제공합니다.
AI 손 인식 기반 집중도 관리: 그룹 화상 스터디에서 AI가 사용자의 손 동작을 감지하여 자동으로 집중 시간을 측정합니다.
Studycow 는 여러 서비스를 찾아다닐 필요 없이, 하나의 서비스 안에서 통합 및 자동화 기능 들을 제공합니다.
성적 관리 및 동기 부여 가 필요한 학생을 위한 통합 서비스
온라인 그룹 스터디를 위한 캠 스터디 및 손 감지 타이머 기능
자율 학습 관리를 위한 플래너 및 성적 기반 자동 생성 기능
학생 동기부여를 위한 성적관리 및 게이미피케이션 & 랭킹 기능
개인 맞춤형 학습 플랜 추천 기능
Figma
캠 스터디 방: 사용자들이 화면을 공유하며 함께 공부할 수 있는 온라인 스터디 룸 생성 및 관리
스터디 플래너: 개인 및 그룹 학습 계획 수립, 성적 기반 AI학습 전략 추천
성적 관리: 성적 입력, 분석 및 조언
타임 트래킹: AI 손 인식 기반 공부 시간 측정 및 랭킹 시스템
사용자 관리: 회원가입, 로그인, 프로필 관리
커뮤니티 기능: 친구 추가, 친구 대시보드 확인
향후 서비스 확장시 유연하게 대처하기 위한 Java 기반 Spring Framework
record 기능을 사용한 Dto 및 instancof 패턴 매칭을 위한 JDK17버전 채택
Vue.js 보다 자유로운 편집 및 커스텀을 위한 React 선택
기본적인 역할분담은 Jira 및 WBS를 통해 세분화
각 세분화된 기능들을 branch로 생성해 main에 merge 하는 방식으로 협업을 진행
dev 와 master branch를 분리하고, master는 자동 배포용 dev는 개발용으로 branch를 분리
ERD
객체 다이어그램
역할
구현 기능
인프라 CI/CD 자동화, 회원 API, 실시간 채팅 API, 신체 인식 AI, 플래너 API, Custom 예외처리 구현, 서버 모니터링
세부 기술 & 라이브러리
전체 개발 기간 : 2024-07-01 ~ 2024-08-15
기획 및 설계 : 2024-07-01 ~ 2024-07-12
기능 구현 : 2024-07-15 ~ 2024-08-09
UI 구현 : 2024-07-15 ~ 2024-08-13
Jira + WBS 를 사용하여 업무를 세부적으로 분담
Notion 및 Swagger를 사용하여 API 명세서를 작성
Gitlab branch를 사용하여 협업을 진행
코드 및 커밋 컨벤션을 지정해 코드 품질 관리와 의사소통에 집중
7. 페이지별 기능 // 용량 문제로 이미지 다수 생략되었습니다.
메인페이지/비로그인
공부했소?의 서비스를 간단히 소개합니다.
Start를 누르면 회원가입으로 바로 이동합니다.
메인페이지/로그인
사용자의 프로필 및 활동 내역을 요약해서 보여줍니다.
과목별 성적 현황 / 최근 입장한 그룹 스터디방 / 오늘의 할일 / 플래너 잔디 현황
잔디의 색깔은 일일 플래너의 개수 0/2/4/5~ 별로 달라집니다.
오늘의 할일은 현재 날짜 기준 등록된 플래너의 요약을 보여줍니다.
네비게이션 바
각각의 기능을 담당하는 페이지로 이동시켜줍니다.
로그인/회원가입
사용자의 정보를 받고 로그인을 성공하면 메인페이지로 리다이렉트합니다.
닉네임, 이메일, 비밀번호를 입력하면 회원가입을 시켜줍니다.
이메일은 중복 불가능합니다.
닉네임은 2~20자 사이의 단어만 가능합니다.
목록리스트
캠스터디의 전체 방 목록을 보여줍니다.
자신이 최근에 들어간 방을 보여줍니다.
입장하기 버튼을 누르면 방의 상세 정보를 보여줍니다.
공부의 전체 랭킹시간을 보여주고, 매일 06시에 일일 랭킹 기준으로 경험치 정산 후 초기화됩니다.
방 상세 정보
방의 상세 정보를 표시하고, 카메라와 마이크를 테스트합니다.
방의 설명을 확인하고, 방장이 정한 규칙들을 미리 확인 할 수 있습니다.
입장버튼을 누르게 되면, 해당 방으로 입장합니다.
⭐
손 감지 & 타이밍 기능
현재 입장해 있는 유저들의 캠을 확인 할 수 있습니다.
캠에 손이 검출된다면, 자동으로 타이머가 시작되고 1분단위로 랭킹이 기록됩니다.
⭐
실시간 채팅 & 랭킹 플래너
채팅방 아이콘을 통해 채팅에 참가한 유저들과 실시간 채팅을 할 수 있습니다.
채팅방에 입장 및 퇴장시, 다른 사람들에게 알림 채팅이 나오게 됩니다.
마이크 & 스피커 설정
설정 버튼을 클릭시, 마이크와 스피커를 조절 할 수 있습니다.
마이크,스피커,캠 아이콘 클릭으로 ON,OFF를 설정 할 수 있습니다.
랭킹,채팅창,플래너 아이콘 클릭으로 화면에 띄울 수 있습니다.
플래너 메인페이지
달력을 클릭하면 해당 날짜의 플래너를 작성 & 조회 할 수 있습니다.
플래너를 과목별로 정렬해서 확인 할 수 있습니다.
플래너 생성 & 수정 & 삭제
플래너의 과목을 정하고 세부사항과 시간을 기입하면 등록 할 수 있습니다.
플래너를 수정 및 삭제 할 수 있습니다.
⭐
플래너 자동화
사용자가 등록한 성적과 학습시간 기반으로 플래너를 자동 생성 해줍니다.
해당 플랜을 추천해준 이유를 확인 할 수 있고, 세부 사항은 사용자가 직접 수정 후 등록 할 수 있습니다.
메인 페이지
사용자 캐릭터의 등급과 성적 현황을 보여줍니다.
최근 성적의 변화와 자신의 취약점을 그래프로 확인 할 수 있습니다.
공개 비공개 여부를 설정 할 수 있습니다.
조언
사용자의 최근 성적과 유형형에 기반한 조언을 해줍니다.
회원정보 수정
회원의 개인 정보(이메일, 닉네임, 썸네일 사진)를 수정 할 수 있습니다.
회원 정보 변경 후 재 로그인 하도록 메인 페이지로 이동합니다.
친구 페이지
친구 요청을 원하는 사람의 이름을 검색 할 수 있습니다.
검색시에 글자를 포함하는 모든 사람의 이름을 반환합니다.
친구 요청 및 거절을 할 수 있습니다.
친구 요청이 수락 된 이후에 친구의 성적 관리 대시보드의 공개 여부에 따라 볼 수 있습니다.
채기훈
더 자세한 테스트 코드 (단위, 통합 구분)
서버 과부하 테스트 및 최적화
채팅 관련 로그 Redis에서 관리
백엔드와 인프라를 담당하면서, 새로운 기술들을 적용해볼 수 있어 매우 유익한 경험이었습니다. 특히 CI/CD 자동화, 실시간 채팅 API 구현, 신체 인식 AI 적용 등 다양한 기술을 실제 프로젝트에 적용해볼 수 있어 기술적으로 많은 성장을 이루었습니다.
팀원들과의 협업 과정에서 의사소통의 중요성을 다시 한 번 깨달았습니다. Jira와 WBS를 활용한 업무 분담, Notion을 통한 API 명세 공유 등 체계적인 프로젝트 관리 방법을 익힐 수 있었습니다.
프로젝트 진행 중 여러 기술적 난관에 부딪혔지만, 이를 해결해 나가는 과정에서 문제 해결 능력이 크게 향상되었습니다. 특히 트러블 슈팅 경험을 블로그에 정리하면서 지식을 체계화할 수 있었습니다.
You can’t perform that action at this time.