일상에는 누군가에게는 사소하지만, 누군가에게는 어려운 문제들이 있습니다. 용감한 원정대는 이런 문제들을 내 이웃에게 부탁할 수 있는 지역 커뮤니티 플랫폼 입니다. 게시글을 올리고, 채팅을 통해 소통하며 원정대 또는 의뢰인이 되어 문제를 해결할 수 있습니다.
🕐 개발 기간 : 2023.12.21 ~ 2024.02.29 (2개월) WBS
-
Front-End : 김한수, 장현지 FrontEnd Github
- 빠른 개발과 이슈 대응을 위해 Server CI/CD 구축 Details
- Back-End 배포 (AWS EC2), Front-End 배포 (AWS CloudFront)
- Sever의 부담이 적고, Rest 서비스가 가능한 JWT Token을 사용하여 사용자 인증, 인가 구현 Details
- 실시간 채팅 기능 개발을 위해 양방향 통신 프로토콜인 Web Socket, STOMP를 사용하여 채팅 서비스 개발 Details
- 프로젝트 전반적인 예외 관리와 Client에 전송할 에러 메시지 규격화를 위해 프로젝트 전역에서 사용하는 예외처리 Class 개발
- 서버 로그를 팀원들과 공유하고 로그를 빠르게 추적하기 위해 Logback 설정 및 AWS CloudWatch로 로그 전송
- 사용자의 이미지 업로드 서비스 제공을 위해 API 개발 및 AWS S3에 정적 이미지 파일 배포
- 그외 회원가입, 로그인, 토큰 재발급, 로그아웃, 채팅방 나가기 API 개발
- 트러블 슈팅 : 채팅 읽음 여부 처리 , 독립적인 사용자 채팅 관리
- DB 접속 정보, JWT 비밀키, AWS 키와 같은 민감한 정보를 별도의 환경변수 파일로 분리
- 게시글의 위치정보를 활용한 거리기반 게시글 조회기능 개발
- Gmail 활용 SMTP 프로토콜을 이용하여 이메일 전송 및 인증 로직 개발
- 스프링 스케줄러 활용, 매시 정각마다 필요한 로직 실행되도록 셋팅
- 채팅 데이터를 저장을 위한 몽고DB 커넥션 설정 및 채팅 데이터 도큐먼트 생성
- 도메인 주소 구입(Route53) 및 백엔드, 프론트엔드 서버와 연결
- 도메인 – SSL 인증서 발급(ACM) 및 HTTPS 배포(ALB)
- 그 외 프로필 페이지, 비밀번호 찾기, 채팅방 리스트, 채팅 내역, 리뷰 관련 API 개발
- SSE(Server-Sent Events) 단방향 통신을 사용하여 Client에 채팅 메시지, 의뢰 관련 알림 전송
- 채팅 메시지 DB로 사용하는 MongoDB를 AWS EC2에 원격 개발 환경 구축
- 의뢰 기능 핵심 API 개발 (의뢰 생성, 수락, 취소)
- 게시판 기능 CRUD 개발 (작성, 수정, 삭제)
- 회원 서비스 개발 (아이디 찾기, 위치 재설정, 비밀번호 인증, 재설정, 마이페이지 수정)
- 빠른 개발과 이슈 대응을 위해 Git Actions, AWS CodeDeploy로 Server CI/CD 구축
- DB의 원격 개발 환경 구축을 위해 AWS RDS에 MySQL 설치, EC2에 MongoDB 설치
- AWS Application Load Balancer를 통해 HTTPS(:443)를 HTTP(:8080)로 라우팅하여 HTTPS 보안 프로토콜 구축
(* 현재 IPv4 주소 사용이 유료화 되어 배포 서버는 유지하지 않고 있습니다.)
- 정적 콘텐츠를 안전하게 배포하기 위해, https를 지원하는 AWS CloudFront로 Front-End 배포
- AWS CloudFront에 대체도메인(CNAME)을 Route53에 연결하여 도메인 구축
(* 현재 IPv4 주소 사용이 유료화 되어 배포 서버는 유지하지 않고 있습니다.)
- Project의 주 개체인 회원, 게시글, 의뢰, 채팅방의 관계를 정의하기 위해 RDBMS인 MySQL을 DB로 사용
- 채팅 메시지는 빈번한 DB 접근과 빠른 검색 속도가 필요해 NoSQL인 MongoDB를 DB로 사용
👉 API 명세서 : Notion 링크
회원가입 -> 이메일 인증 -> 로그인 -> 아이디, 비밀번호 찾기 -> 비밀번호 재설정 -> 마이페이지 수정 -> 위치 재설정
Member.mp4
게시판 목록 -> 글쓰기 -> 글 수정 -> 글 삭제
Board.mp4
의뢰 신청 -> 채팅 -> 의뢰 수락,완료 -> 후기 작성