혜택온은 사용자 맞춤형 복지 추천과 커뮤니티 기반 정보 공유 기능을 중심으로 한 복지 정보 플랫폼입니다.
정보가 분산되어 접근이 어려운 복지 서비스를 누구나 쉽게 탐색하고, 필요한 정보를 공유할 수 있는 공간을 만들고자 프로젝트를 기획하게 되었습니다.
사용자의 지역, 관심 키워드, 가구 상황 등에 기반한 맞춤형 복지 혜택을 추천합니다.
필터 검색, 자동완성 검색어, 정렬 기능 등을 통해 원하는 복지 정보를 빠르게 탐색할 수 있습니다.
관심 있는 복지 혜택은 북마크 기능을 통해 쉽게 저장하고 확인할 수 있습니다.
사용자 간 정보 공유를 위한 커뮤니티 기능을 제공합니다.
질문, 자유, 인사 등 게시판 유형별로 구분되어 있으며, 각 게시글에는 이미지 첨부, 태그, 추천 기능 등이 포함됩니다.
댓글, 대댓글, 답변 채택 등 활발한 소통이 가능하며, 신고 및 삭제 기능도 포함되어 있습니다.
프로젝트 기간 : 2024.01.07 ~ 2024.05.30
고범석(팀장) : DB 설계 및 관리, 백엔드 구현
장욱 : 백엔드 구현
오채연 : UI 설계 및 웹 프론트 구현
백승은 : UI 설계 및 웹 프론트 구현
프로젝트는 React 기반 프론트엔드와 Spring Boot 기반 백엔드로 구성되어 있으며, 다음과 같은 데이터 흐름 구조를 따릅니다.
사용자는 Netlify에 배포된 React 웹사이트에 접속하여 게시글 작성, 복지 서비스 검색 등 다양한 기능을 사용합니다.
프론트는 Axios(httpClient)를 통해 Spring Boot API 서버로 HTTP 요청을 보냅니다.
요청은 Nginx를 거쳐 AWS EC2의 Docker 컨테이너(Spring Boot)로 전달됩니다.
요청 종류에 따라 백엔드는 다음과 같이 데이터를 처리합니다:
데이터 종류
저장소/처리 대상
게시글, 사용자 정보 등
🟦 MySQL (AWS RDS)
이미지, 파일 등 정적 리소스
🟨 AWS S3
키워드 기반 검색 데이터
🟩 MongoDB
북마크, 세션 등 임시 데이터
🟥 Redis
처리된 결과는 JSON으로 프론트에 응답되며, React가 이를 화면에 렌더링합니다.
👤 유저 API 명세서 보기
API URL
Method
설명
/signup
POST
회원가입
/login
POST
로그인
/logout
POST
로그아웃
/users/me
GET
내 정보 조회
/users/me/profile
PUT
프로필 수정
/users/me/password
PUT
비밀번호 변경
/users/me
DELETE
회원 탈퇴
/users/check-duplicate
GET
아이디/닉네임 중복 확인
/users/{userId}
GET
다른 사용자 정보 조회
/users/me/bookmarked/posts
GET
내가 북마크한 게시글 조회
/users/me/posts
GET
내가 작성한 게시글 조회
/users/me/recommended/posts
GET
내가 추천한 게시글 조회
📝 게시글/댓글/답변 API 명세서 보기
API URL
Method
설명
/posts
POST
게시글 작성
/posts/type
GET
게시글 목록 조회
/posts/{postId}
GET
게시글 상세 조회
/posts/{postId}
PUT
게시글 수정
/posts/{postId}/recommend
POST
게시글 추천
/posts/{postId}/recommend
DELETE
게시글 추천 해제
/posts/{postId}/comments
POST
댓글 작성
/posts/{postId}/comments
GET
댓글 목록 조회
/posts/{postId}/comments/{commentId}
DELETE
댓글 삭제
/posts/{postId}/comments/{commentId}/replies
POST
대댓글 작성
/posts/{postId}/comments/{commentId}/replies
GET
대댓글 목록 조회
/posts/{postId}/answers
POST
답변 작성
/posts/{postId}/answers
GET
답변 목록 조회
/posts/{postId}/answers/{answerId}/select
PUT
답변 채택
/posts/{postId}/answers/{answerId}
DELETE
답변 삭제
/mongo/search/posts
GET
게시글 검색
/mongo/search/posts?searchTerm=
GET
통합 게시글 검색
💡 복지 혜택 API 명세서 보기
API URL
Method
설명
/services
GET
복지 필터 검색
/services/detail/{serviceId}
GET
복지 상세 조회
/services/{id}/bookmark
POST
복지 북마크 추가
/services/{id}/bookmark
DELETE
복지 북마크 삭제
/services/filters
GET
복지 필터 항목 조회
/services/recent
GET
최근 복지 서비스
/services/popular
GET
인기 복지 서비스
/mongo/search/services
GET
복지 검색
/mongo/search/services/autocomplete
GET
복지 자동완성
/mongo/services/matched
GET
맞춤형 복지 추천
/interests
GET
관심사 목록 조회
/interests/me
GET
내 관심사 조회
/interests/me
POST
관심사 저장
/search/history
GET
검색 기록 조회
/search/history/{historyId}
DELETE
검색 기록 개별 삭제
/search/history
DELETE
검색 기록 전체 삭제
🚨 신고 API 명세서 보기
API URL
Method
설명
/users/reports
POST
사용자 신고
/admin/users/reports
GET
신고 내역 전체 조회
/admin/users/reports/status/{status}
GET
신고 상태별 조회
/admin/users/reports/{reportId}/resolve
POST
신고 승인 처리
/admin/users/reports/{reportId}/reject
POST
신고 거절 처리
🛠 관리자 API 명세서 보기
API URL
Method
설명
/admin/users
GET
전체 회원 목록 조회
/admin/users/withdrawn
GET
탈퇴 회원 목록 조회
/admin/users/suspended
GET
정지 회원 목록 조회
/admin/users/{userId}/suspend
POST
회원 정지
/admin/users/{userId}/unsuspend
PUT
회원 정지 해제
🤖 챗봇 API 명세서 보기
API URL
Method
설명
/chatbot
GET
챗봇 응답 요청
✅ 관리자페이지 : 관리자인 경우, 관리자페이지 이동후 신고된 유저관리
-.mp4