HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🧚
[1기]최종 프로젝트 데브코스
/
🍸
[팀15] ShakeNMatch
/
🔙
15조 백엔드 팀
/
⭕
2021.11.24 백엔드팀 최초프로젝트 회의
⭕

2021.11.24 백엔드팀 최초프로젝트 회의

2021.11.24 백엔드팀 최종프로젝트회의

  1. 기술명세서
      • 개발 환경
        • 운영체제
          • Windows, MacOS
        • IDE
          • IntelliJ
        • 언어
          • JAVA 17
        • 프레임워크
          • Spring Boot 2.5.3
          • Spring Data JPA
        • DB
          • MySQL 8 → 실제 빌드 docker
          • H2 → test
        • 서버 (내년 2월까지 제공)
          • AWS EC2

      • DB 설계 (데이터 타입이랑 필드명 작성은 회의 끝내고 하겠습니다)
        • 엔터티
          • User (사용자)
            • ID(Long id)
            • 이름(String name, Varchar(10))
            • 비밀번호(String password, Varchar(20))
            • 별명(String nickname, Varchar(10))
            • 이미지(String url, Varchar(40))
            • 칵테일 북마크(Stirng bookmark, Varchar(40))
            • 재료 (List<Ingredient> ingredient)
            • 성별(Boolean gender)
            • 나이(int age)
            • MBTI(String mbti, Varchar(10))
          • Cocktail (칵테일)
            • 이름(String name, Varchar(20))
            • 재료(재료 (List<Ingredient> ingredient))
            • 만드는 방법(String recipe, Varchar(50))
            • 이미지(String url, Varchar(40))
            • 상세 유튜브 링크(Stirng youtubeLink, Varchar(40))
            • 좋아요(int likes)
            • 종합 별점(float totalRating)
            • 테마
              • MBTI(String mbti, Varchar(10))
              • 날씨(String weather, Varchar(10))
              • 색깔(String color, Varchar(10))
              • 음악(String music, Varchar(20))
              • 분위기(String mood, Varchar(20))
              • 인기순(int popular)
          • Review(평가)
            • ID(Long id)
            • 별점(int rating)
            • 내용(String description, Varchar(30))
            • 이미지(String url, Varchar(40))
          • Refrigerator(냉장고)
            • ID(Long id)
            • 보유하고 있는 술(String liquor, Varchar(40))
          • Ingredient(재료)
            • ID(Long id)
            • 이름(String name, Varchar(10))
            • 이미지(String imageUrl, Varchar(40))
            • 구매 링크 URL (String buyingUrl, Varchar(40))
             
          • Image(사진)
            • ID(Long id)
            • 이미지를 저장하는 방식
              • 이미지 엔터티 하나로 통합해서 URL을 저장하는 방식
              • 이미지를 추상 클래스로 만들고 각 도메인마다 이미지 클래스를 상속받아서 URL을 저장하는 방식
                • 예를 들어, abstract class Image를 UserImage, RecipeImage가 상속받고 엔터티로 생성
                •  
       
      • 패키지 전략
        • ├─docs │ └─asciidoc ├─main ├─java └─com └─ 칵테일 ├─config ├─global ├─cocktail ├─image ├─ingredient ├─refrigerator ├─review ├─user
           
           

      • 프로젝트 전체 구조
      • 인증 전략
        • OAuth 2.0을 통해 카카오 or 구글을 통해서 인증하기
        • 좀더 상세하게 쓰고싶으시면 작성하셔도 됩니다 (아직 인증 못 들은 1인...)
      • 오프라인 규칙
        • 서울대입구역 1시까지 모이기 (월, 수 예정, 화/목은 프로그래머스 본진)
      • API 동작
        • 회원 가입 저장 (post) request - nickName, MBTI 등 개인 정보 OAuth 인증 / response - message, nickName
        • 칵테일 검색 (get) request - name / response - List<recipe>
        • 칵테일 정보 저장 (post) request - recipe_id / response - message
          • 사용자가 레시피대로 만든 칵테일 이미지 업로드
            • 유저들이 뽐낼 수 있는 란 -대신 SNS가 아니라, '후기'의 개념으로. 레시피 별 [별점/좋아요, 후기/한 줄 코멘트]
        • 술장고에 술 종류 저장 (post) request - List<ingredient> / response - message
        • 평가 작성 (post) request - text_content, image, 별점 / response - message
        • 칵테일의 등록 히스토리 조회 (get) request - user_id / response - List<Cocktail>
        • 사용자가 보유한 재료로 만들 수 있는 칵테일 레시피 추천 (get) request - refrigerator_id / response - List<Cocktail>
          • A 사용자의 술장고 기반으로 제작할 수 있는 레시피를 검색하여 사용자에게 제시해주는 기능
          • 로그인 하자마자 팝업창으로 '내 술장고'를 띄워주고, 변경없으면 OK 추천, 변경하게 하고 나서 추천.
        • 재료(Inger 구매 중개 (post) request - ingredient_id / reponse - url
          • 특정 칵테일을 제작하고자 할 때, 사용자가 추가로 구매해야 하는 재료들의 가격 정보를 알 수 있는 링크 제공하는 기능
          • 검색/ 추천 결과로 제시된 칵테일 레시피는 칵테일 이미지 카드 형식으로 사용자에게 제공된다
          • 사용자가 레시피의 '재료' 중, 자신이 구매하고자 하는 재료를 클릭하면 해당 재료를 판매하는 외부 링크로 연결이 된다
        • 테마별 칵테일 추천 (get) request - theme category화 / response - List<Cocktail>
          • (만약 당신의 술장고에 재료가 없더라도, 또는 비회원이라도) 당신의 취향을 저격하는 칵테일을 추천받을 수 있다. ⇒ 기념일, 기분, mbti, 취미, 날씨 등등 다양한 테마에 따른 추천 기능
          • 테마 목록을 같이 정하고, key 값을 붙여 user 컬럼에 추가하면 되지 않을까?
        • 즐겨찾기 히스토리 (get) request - user_ id, history_id / response - List<Cocktail>
          • 사용자가 언제 봤는지 날짜 명시
        • 실시간 대시보드 (get) resquest - 특정 url / reponse - infomation
          • → '어떤 칵테일이 일정 기간으로 핫하다' /'~테마가 일정 기간 핫하다'라는 실시간 대쉬보드로 합치면 안될까? (네이버 실시간 검색어처럼)
       
       

  1. 깃허브 브랜치
      • 📌 git branch 관리 전략
        • notion image
        • release : 배포 stage
          • prgrms-be-devcourse/BEDV1_Ddaangn의 main 브랜치, develop 브랜치에서 배포를 위해 소스코드를 저장하는 브랜치
        • develop : 테스트/개발 stage
          • prgrms-be-devcourse/BEDV1_Ddaangn의 develop 브랜치, feature/도메인의 소스코드를 Pull Request을 통해 리뷰어 2명 이상의 허락을 받아야 하는 저장되는 브랜치
        • hotfix : 배포 진행 후 발생한 버그를 수정해야 할 때 사용
          • prgrms-be-devcourse/BEDV1_Ddaangn의 hotfix 브랜치, main에 올라온 소스코드를 배포한 이후에 생기는 문제를 해결하기 위한 브랜치
        • feature : 기능 추가 브랜치
          • prgrms-be-devcourse/BEDV1_Ddaangn의 feature/user, feature/post처럼 자신이 담당하는 도메인으로 브랜치를 생성하고, 개인 로컬 환경에서 개발한 소스코드를 저장하기 위한 브랜치
          참고 링크 - 우아한 형제들 기술 블로그

          📌 Git Commit Message Type

        • FEAT : 새로운 기능의 추가
        • FIX: 버그 수정
        • DOCS: 문서 수정
        • STYLE: 스타일 관련 기능(코드 포맷팅, 세미콜론 누락, 코드 자체의 변경이 없는 경우)
        • REFACTOR: 코드 리펙토링
        • TEST: 테스트 코트, 리펙토링 테스트 코드 추가
        • CHORE: 빌드 업무 수정, 패키지 매니저 수정(ex .gitignore 수정 같은 경우)
        • 참고 링크 - [Git] 깃 커밋 메시지 작성법(git commit message)
           
  1. 코딩 컨벤션
      • Java Naming Convention
        • 참고 링크
      • Google Code Style을 준수
        • 참고 링크
        •  
  1. 협업툴
      • Jira
      • Notion
       
  1. 커뮤니케이션 툴
      • 개더타운을 이용한 실시간 소통
      • 슬랙을 이용한 비동기 소통