개인 포트폴리오/술렁술렁(전통주 플렛폼)

술렁술렁 포트폴리오

roalwh 2023. 10. 11. 17:58

술렁술렁 프로젝트

술렁술렁 - 프로젝트 목차

프로젝트 소개

1. 술렁술렁 소개

우리술 웹 커뮤니티 플랫폼
우리술에 관심있고 우리술을 좋아하는 모든 사람들이 모인 커뮤니티

소주 맥주 말고도 더 맛있고 다양한 전통주에 대한 정보와 술꾼들의 집합소

취향에 맞는 전통주도 추천 및 국내 여행할 때 마시면 좋을 지역별 전통주도 추천해드립니다.

2. Collaborators : 팀원 소개

이름 역할 GitHub 프로필 Email
원영호 팀장, 서버관리자, 풀스택 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. 사용기술

image

4-1. 백엔드

imageimageimageimageimageimageimage

주요 프레임워크 / 라이브러리

  • 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. 메인화면

image

5-2. 시연 영상

구조 및 설계

1. 화면 설계

1-1. 주요 화면 설계 이미지

image

Figma https://url.kr/6t7ejs

2. DB 설계

2-1. ERD 이미지

2-2. DB 테이블

DB 테이블 (클릭시 리스트)

imageimageimageimageimageimageimageimageimageimageimageimageimage

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}

개발 내용

후기

1.프로젝트 보완사항

  • 중복된 API 정리 필요
  • 테스트로 작성한 불필요 print문 제거
  • 파일 업로드 좀더 나은 방법이 있는지 찾아보기
  • 구글 로그인시 사용자 정보 추가 입력 처리
  • 회원가입 이메일 중복체크(구글로그인과 기존등록된 이메일 충돌로인한 에러)
  • 비밀번호 변경 시 기존 비밀번호 재사용 불가 처리
  • yml, env 파일 등을 암호화나 spring cloud 를 이용한 암호화 처리
  • 공유기 사용으로 인한 https 미적용 -> 개인서버 os재설치가 필요한 부분이라 진행 못함

2.후기

팀장으로 진행하였으며 팀원이 정해지고 Spring boot 강의 및 AWS 등 교육이 조금 부족한 상태로 프로젝트를 진행하려다 보니 다들 막막한 분위기로 진행하였습니다. 그래도 각자 자신 있는 파트가 있어서 다행히라 생각 했었습니다.

배포 관련해서는 서버 쪽에 경력이 있는 제가 일단 맡기로 하고 그외의 부분에서는 최대한 역활을 지정하였습니다. 개발 내용에 적혀 있듯이 우선 프로젝트를 진행 하려면 데이터가 있어야하는데 외국은 API가 정말 술종류별로 다있어서 괜찬겠다 하였지만 전통주에 진행하려고보니 국내에 API 가 없는 상황이여서 데이터화를 시킬 자료가 필요하였고 한참을 찾다보니 다행이 네이버 백과사전에 어느 정도 정리되어 있었기 때문에 크롤링을 진행하였습니다. 파이썬을 저도 기본만 잠깐 보고 넘긴 적이 있어서 크롤링 기본 정보 좀 찾고 진행하였고, Spring boot 3.1 버전 이상으로 사용하다 보니 Spring Security 도 같이 올라가 버려서 로그인/회원가입 담당한 팀원이 조금 헤맸으나 이전에 개인적으로 한 적이 있어서 금세 처리할 수 하였으며 생각보다 팀원들이랑 잘 맞아서 일정에 밀리지 않게 프로젝트를 진행하였고 팀원들끼리 어느 정도 만족하였고 배포를 진행하였지만, 개인적으로 아쉽긴 했습니다.

시간이 좀 더 있었으면 보안적으로나 코드적으로나 좀더 보완하거나 다듬을 수 있지 않을까 생각 듭니다. 취직 후 기회가 될 때 팀원들과 함께 리펙토링을 진행해보고 싶습니다. 혹은 안된다면 개인적이라도 진행하려고 합니다.