술렁술렁 프로젝트
- 전통주 정보공유 웹 플랫폼
- 팀명 : Just one more drink
- Github : 술렁술렁 깃 허브 페이지
- 주소 : 술렁술렁 프로젝트 홈페이지 (정상 배포 중)
술렁술렁 - 프로젝트 목차
프로젝트 소개
1. 술렁술렁 소개
우리술 웹 커뮤니티 플랫폼
우리술에 관심있고 우리술을 좋아하는 모든 사람들이 모인 커뮤니티
소주 맥주 말고도 더 맛있고 다양한 전통주에 대한 정보와 술꾼들의 집합소
취향에 맞는 전통주도 추천 및 국내 여행할 때 마시면 좋을 지역별 전통주도 추천해드립니다.
2. Collaborators : 팀원 소개
이름 | 역할 | GitHub 프로필 | |
---|---|---|---|
원영호 | 팀장, 서버관리자, 풀스택 | roalwh | nmnmnmlk6248@gmail.com, roalwh1@naver.com |
김세은 | 프론트엔드 | senique-dev | minirose42@gmail.com |
문상혁 | 풀스택 | m960626 | m960626@naver.com |
서영은 | 풀스택 | YOUNGEUN100 | westzerosilver@gmail.com |
최진주 | 프론트엔드 | pearl1233333 | ddch4747@naver.com |
3. 프로젝트 수행기간
- 총 개발기간 8/1 ~ 9/1
- 8/1 ~ 8/3 프로젝트 기획 및 주제선정
- 8/4 ~ 8/7 화면설계, DB설계, 데이터 수집
- 8/7 ~ 8/27 서비스 구축, 테스트
- 8/27 ~ 9/1 서버 배포
4. 사용기술
4-1. 백엔드
주요 프레임워크 / 라이브러리
- Python 3.11.4
- JDK 17
- Spring Boot 3.1.2
- Spring Security
- Oauth 2.0
- jsonwebtoken(JWT) 0.9.1
Build Tool
- Gradle-8.2.1
DataBase
- MariaDB 10.3.38
4-2. 프론트엔드
주요 프레임워크 / 라이브러리
- JavaScript
- HTML/CSS
- REACT
- Bootstrap 4.3.1
- axios
Build Tool
- Node.js 18.16.0
5. 프로젝트 시연 화면
5-1. 메인화면
5-2. 시연 영상
구조 및 설계
1. 화면 설계
1-1. 주요 화면 설계 이미지
Figma https://url.kr/6t7ejs
2. DB 설계
2-1. ERD 이미지
2-2. DB 테이블
DB 테이블 (클릭시 리스트)
3. 기능 설계
3-1. 사용자 관리
- JWT 기반 로그인
- 패스워드 암호화(BCrypt)
- 이메일 인증
- 관리자/일반사용자 권한 분리
- 마이페이지
3-2. 정보 제공
- 전통주 검색
- 전통주 정보 제공
- 검색 정렬 기능
- 리뷰 작성, 수정, 삭제
3-3. 취향 파악
- 5가지 질문을 통해 취향 검색
- 질문 기준으로 전통주 추천
3-4. 지역별 안내
- 지도를 이용한 지역 검색
- 지역별 전통주 표시
3-5. 커뮤니티
- 공지글, 자유글, 맛집 추천 글 작성, 수정, 삭제
- 검색 정렬 기능
- 댓글 작성, 수정, 삭제
4. API
4-1. 관리자(admin) API
기능 | Method | URL |
---|---|---|
관리자 리스트 조회 | GET | /admin/adminlist |
사용자 리스트 조회 | GET | /admin/userlist |
userFlag 수정 | PUT | /admin/userset |
관리자 등록 | POST | /admin/signup |
처음 관리자 등록 | POST | /admin/signup/new |
4-2. 게시글(board) + 댓글(comment) API
기능 | Method | URL |
---|---|---|
게시글등록 + 파일등록 add | POST | /board/add |
게시글 파일 가져오기 | GET | /board/files/{board_id} |
게시글수정 update | PUT | /board/update/{board_id} |
게시글삭제 inactive board | PUT | /board/inactive/{board_id} |
전체 게시글 보기 all view | GET | /board/view/all |
게시판 종류별 글보기 이름 검색 kind title orderby | GET | /board/view?kind={kind_no}&orderby={정렬할 컬럼} |
게시글 상세보기 + 댓글 보기 | GET | /board/view/{board_id} |
댓글 조회 view | GET | /board/comment/no/{comment_id} |
댓글 수정 update | PUT | /board/comment/update/{comment_id} |
댓글 삭제 inactive | PUT | /board/comment/inactive/{comment_id} |
댓글 등록 add | POST | /board/comment/add |
4-2, 전통주 검색(cate) + 전통주 상세 리뷰(review) API
기능 | Method | URL |
---|---|---|
전통주 검색 | GET | /cate/search?name={drink_name} |
전통주 정보 | GET | /cate/info/{drink_id} |
전통주 정보 리뷰조회 | GET | /cate/review/{drink_id} |
전체 전통주 정보 | GET | /cate/all |
리뷰 이미지 호출 | GET | /rimg/{dirnk_id}/{rimg_id}/review_{dirnk_id}_{rimg_id}.png |
리뷰 등록 | POST | /cate/reviewin |
리뷰 수정 | PUT | /cate/reviewedit/{review_id} |
리뷰 삭제 | DEL | /admin/reviewdel/{review_id} |
4-3. 전통주(drink) 정보
기능 | Method | URL |
---|---|---|
전통주 정보 검색 | GET | /dri/{drink_id} |
카테고리 or 이름 검색 | GET | /dri/search?name={drink_name} |
전통주 이미지 호출 | GET | /dimg/{drink_id}/drink_{dimg_id}.png |
전통주 좋아요 조회 | GET | /dlike/userList?uid={user_id} |
술정보 등록 | POST | /dri/drinkIn |
술정보 수정 | PUT | /dri/drinkedit/{drink_id} |
전통주 좋아요 등록 | POST | /dlike/add |
4-4. 회원(member) API
기능 | Method | URL |
---|---|---|
회원가입 | POST | /auth/signup |
로그인 | POT | /auth/login |
회원정보 가져오기 | GET | /member/me |
아이디 찾기 | POST | /auth/find-id |
비밀번호 찾기 전 계정 확인 | POST | /auth/find-pw |
비밀번호 변경 | PUT | /auth/change-pw/{user_id} |
회원정보 수정 | PUT | /member/change-info |
회원 탈퇴 | PUT | /auth/change-pw/{user_id} |
이메일 발송 | POST | /auth/email |
이메일 번호 확인 | GET | /auth/check-email/{number} |
4-5. 마이페이지(myPage) API
기능 | Method | URL |
---|---|---|
회원 게시글 가져오기 | GET | /member/board/{user_id} |
회원 댓글 가져오기 | GET | /member/comment/{user_id} |
회원 리뷰 가져오기 | GET | /member/review/{user_id} |
개발 내용
- 술렁술렁 프로젝트 - 개인 백엔드 작업, 전통주 데이터 크롤링,DB 데이터 삽입
- 술렁술렁 프로젝트 - 개인 백엔드 작업, 카테고리API
- 술렁술렁 프로젝트 - 개인 백엔드 작업, 이미지 호출 API
- 술렁술렁 프로젝트 - 개인 백엔드 작업, 메인 검색 API
- 술렁술렁 프로젝트 - DB 구축, 벡엔드 배포, 프론트 배포
후기
1.프로젝트 보완사항
- 중복된 API 정리 필요
- 테스트로 작성한 불필요 print문 제거
- 파일 업로드 좀더 나은 방법이 있는지 찾아보기
- 구글 로그인시 사용자 정보 추가 입력 처리
- 회원가입 이메일 중복체크(구글로그인과 기존등록된 이메일 충돌로인한 에러)
- 비밀번호 변경 시 기존 비밀번호 재사용 불가 처리
- yml, env 파일 등을 암호화나 spring cloud 를 이용한 암호화 처리
- 공유기 사용으로 인한 https 미적용 -> 개인서버 os재설치가 필요한 부분이라 진행 못함
2.후기
팀장으로 진행하였으며 팀원이 정해지고 Spring boot 강의 및 AWS 등 교육이 조금 부족한 상태로 프로젝트를 진행하려다 보니 다들 막막한 분위기로 진행하였습니다. 그래도 각자 자신 있는 파트가 있어서 다행히라 생각 했었습니다.
배포 관련해서는 서버 쪽에 경력이 있는 제가 일단 맡기로 하고 그외의 부분에서는 최대한 역활을 지정하였습니다. 개발 내용에 적혀 있듯이 우선 프로젝트를 진행 하려면 데이터가 있어야하는데 외국은 API가 정말 술종류별로 다있어서 괜찬겠다 하였지만 전통주에 진행하려고보니 국내에 API 가 없는 상황이여서 데이터화를 시킬 자료가 필요하였고 한참을 찾다보니 다행이 네이버 백과사전에 어느 정도 정리되어 있었기 때문에 크롤링을 진행하였습니다. 파이썬을 저도 기본만 잠깐 보고 넘긴 적이 있어서 크롤링 기본 정보 좀 찾고 진행하였고, Spring boot 3.1 버전 이상으로 사용하다 보니 Spring Security 도 같이 올라가 버려서 로그인/회원가입 담당한 팀원이 조금 헤맸으나 이전에 개인적으로 한 적이 있어서 금세 처리할 수 하였으며 생각보다 팀원들이랑 잘 맞아서 일정에 밀리지 않게 프로젝트를 진행하였고 팀원들끼리 어느 정도 만족하였고 배포를 진행하였지만, 개인적으로 아쉽긴 했습니다.
시간이 좀 더 있었으면 보안적으로나 코드적으로나 좀더 보완하거나 다듬을 수 있지 않을까 생각 듭니다. 취직 후 기회가 될 때 팀원들과 함께 리펙토링을 진행해보고 싶습니다. 혹은 안된다면 개인적이라도 진행하려고 합니다.
'개인 포트폴리오 > 술렁술렁(전통주 플렛폼)' 카테고리의 다른 글
술렁술렁 프로젝트 - DB 구축, 백엔드 배포, 프론트 배포 (1) | 2023.10.13 |
---|---|
술렁술렁 프로젝트 - 개인 백엔드 작업, 전통주 데이터 크롤링, DB 데이터 삽입 (0) | 2023.10.12 |
술렁술렁 프로젝트 - 개인 백엔드 작업, 이미지 호출 API (0) | 2023.10.12 |
술렁술렁 프로젝트 - 개인 백엔드 작업, 전통주 정보 API (0) | 2023.10.12 |
술렁술렁 프로젝트 - 개인 백엔드 작업, 메인 검색 API (0) | 2023.10.12 |