Skip to content

99-Moa/99-Moa-B

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Moa 모아

Moa_banner

🌟 프로젝트 소개

⏰모아(Moa)는 간편한 일정 작성을 도와주는 실시간 일정 등록, 관리 서비스입니다.⏰

친구 및 지인 등 함께하고자 하는사람들과 그룹을 만들고, 실시간으로 채팅을 하며 일정을 작성해보세요!

  • 다음 일정까지의 시간을 한 눈에 보여줘요
  • 채팅으로 친구들과 함께 일정을 정해요
  • 지도 검색으로 간편하게 장소를 찾아요

🚀 주요 기능

⏰캘린더 일정 목록 확인 1_Moa_Calender

🙋친구 추가, 친구 그룹 생성 2_Moa_Group

💬실시간 채팅, 실시간 일정 작성 3_Moa_Chat

🧑‍🤝‍🧑그룹, 친구 추가 시 알림 기능 4_Moa_Alert

페이지 기능
로그인 Spring Security + JWT 토큰 발급을 통한 로그인
소셜 로그인(카카오)
메인페이지 캘린더, 일정 목록 확인(제일 시간이 가까운 일정이 최상단)
제일 시간이 가까운 일정 카운트(d-day)
일정 클릭시 확장하며 상세 내용 표시
로그인 한 회원만 접근 가능
일정 추가하기(메인페이지) 일정 정보 입력(날짜, 모임내용, 목적지 등)
카카오지도 api 연동
참가자 선택(그룹생성)
그룹 및 친구 목록 페이지 유저 검색 및 친구 추가 기능
일정 추가시 친구(모임) 그룹 생성 및 확인
친구 목록 확인
그룹 채팅방 웹소켓 + 스톰프를 이용한 모임끼리 실시간 채팅 구현
실시간 일정 변경
현재 참여중인 참가자 표시
모임 정보 요약 표시
카카오지도 api 연동
나가기 버튼 클릭시 그룹 및 친구 목록 페이지로 이동
공통 상단 nav바 내 프로필이미지 클릭시 내정보 수정 가능
sse를 이용한 친구, 그룹 추가 알림 보내기

⚙️ 기술 스택

🛠️ 서비스 아키텍처

스크린샷 2022-12-10 13 49 34

⚡ 트러블슈팅

MySQL 연동 후 기능 작동 에러

📌 문제 상황

  • MySQL 연동 후 api테스트 시 500에러가 나며 실행되지 않음

💡 해결

  • 테이블, 컬럼에 예약어를 사용하는지 확인 : group, check 등의 예약어를 사용하고 있었으나, 에러는 user테이블에서 발생하고 있었으며 globally_quoted_identifiers로 예약어 이름도 허용할 수 있게 해놓은 상태
  • MySQL workbench에 연결해보니 DB에 테이블이 아예 생성이 되지 않는 것을 발견 : JPA 설정에서 database-platform을 h2에서 mySQL로 변경 후 정상 작동
SSE 연결 시 hikariCP connection 에러

📌 문제 상황

  • SSE 연결 한 뒤 다른 요청을 보냈을 때 30초간 지연이 되다 connection timeout에러가 발생

💡 해결

  • hikari timeout 설정으로 시간 늘리기 : 늘린 시간만큼 지연되다 다시 에러 발생
  • OSIV 설정을 false로 변경하여 트랜잭션을 종료한 뒤 DB 커넥션을 반환하게 함
web socket 유저 정보 요청

📌 문제 상황

  • MessageMapping으로 소켓 메시지 전송 시 로그인한 유저의 정보를 받아오는 @AuthenticationPrincipal을 사용할 수 없음

💡 해결

  • 소켓 통신은 http 와 다르게 header가 존재하지 않아 payload에 token을 포함시켜 보내서 유저 정보를 받음
채팅방 null 에러

📌 문제 상황

  • 채팅방에 접속중인 유저를 List 형식으로 받는데, 모든 유저가 나갈경우 List 값이 null이 되어 리스트 관련 함수(contains, isEmpty, size 등) 사용불가 (NullpointerException)

💡 해결

  • 유저 리스트안에 모든 유저가 나가도 남아있는 값(chatRommId)을 default로 저장해둠
카카오 로그인 유저 정보

📌 문제 상황

  • 카카오 로그인시 일반 로그인과 다르게 DB에 유저정보를 저장하지 않아, 다른 서비스 이용시 유저정보를 사용할 수 없음

💡 해결

  • 카카오에서 임의로 부여하는 ID가 있다는 것을 발견, 그것을 기본값으로 가지고 와서 유저 정보 생성

👨‍👩‍👧 팀원소개

이름 깃허브 주소 포지션
박종원 https://github.com/ParkBig FE
윤상민 https://github.com/nimgnas FE
이진호 https://github.com/Jino0403 FE
윤시원 https://github.com/yuns8708 BE
신현재 https://github.com/tmpanmitw BE
이동진 https://github.com/acutecritic BE

About

모아(Moa) 백엔드

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages