TIL

230605 최종 프로젝트 SA: CLAID

베스트오버 2023. 6. 6.

팀소개

  • 팀명: CLAID
  • 팀원: 김은수, 공민영, 이준영, 마동휘, 왕규원   
이름 역할 깃허브 이메일
김은수 댓글, 추천 & 비 추천, https://github.com/misily misili17114@gmail.com
공민영 게시 글 CRUD https://github.com/Kminy98 pretty981210@gmail.com
이준영 문서, 카카오 로그인/결제, 배포, 오디오, AI, 실시간 채팅 https://github.com/beo202202 wnsdud318@gmail.com
마동휘 북마크 , 네이버 로그인 https://github.com/madonghwi https://mdhtora.tistory.com/
왕규원 구글 로그인 https://github.com/King-gyu wgyuwon@gmail.com

개요

완성하는 것에 중점을 두기로 팀원들 의견이 모임

프로젝트 진행과정과 역할 분담을 단계화

  • 1차: CRUD 웹페이지의 기본 기능
  • 2차: 플레이어와 플레이 리스트, 장르, 태그 추가, 검색/분류 기능, 포인트, 결제 기능, 배포
  • 3차: 테스트 코드 작성, AI 도입 (GPU 서버, 클라우드 등), 실시간 채팅 기능

프로젝트 소개

  • 이름: CLAID
  • 목적: 자신이 만든 AI 노래를 공유하는 커뮤니티 사이트
  • 기능
    • 오디오 플레이어(선택 사항)
      • 플레이리스트 재생
    • 포인트 시스템(선택 사항)
      • 추천을 받거나, 댓글을 달면 포인트가 쌓임, 글을 쓰면 포인트가 소모됨
      • 결재 시 포인트 획득 가능(추후 구현)
    • 검색 기능(선택 사항)
      • 태그,장르를 포함하는 검색 기능
    • 결제 기능(선택 사항)
      • 카카오 페이
      • 네이버 페이
      • 구글 페이 센드
    • AI
      • GPU 서버 및 클라우드 서버를 쓸 지는 미지수
      • 1차 목표 : 이미 만든 model로 변환한 음성 데이터를 추론하여 변환
      • 2차 목표 : 미리 만든 model에 새로 데이터를 넣어 딥러닝하여 model 완성
      • 3차 목표 : 모든 것이 다 됨.
    • 채팅 기능(선택 사항)
      • 실시간으로 채팅이 가능함.
  • 스택
    • Back-End
      • Python 3.10.6 > pyenv에서 찾지 못해 3.10.5를 설치
      • Django=4.2.1
      • PyJWT=2.7.0
      • djangorestframework-simplejwt=5.2.2
      • djangorestframework=3.14.0
      • django-cors-headers=4.0.0
      • django-cleanup=7.0.0
      • mysqlclient=2.1.1
      • numpy=1.24.3
      • Pillow=9.5.0
      • poetry
      • https://www.inflearn.com/blogs/1120
      • pyenv
      https://scshim.tistory.com/602
    • Front-End
      • HTML
      • CSS
      • JavaScript
      • JQuery
      • ajax
      • Fetch API
      • WebGPU
      • WebGL
      • Web Audio API
    • Deployment
      • Docker
      • AWS EC2
      • AWS Route53
      • RDS
      • Nginx
    • Database
      • MySQL

Team Convention(Ground Rule)

  • 회의
    1. 시작회의
    • 09:10
    • 1시간 이내로 | 타임오버X
    • 하루계획, 현황공유, 역할분담, 건의사항, 개발issue공유
    1. 중간회의
    2. slack 공지를 통해 유동적으로 진행
    3. 마감회의
    • 20:30
    • 1시간 이내로 | 타임오버X
    • 내일계획, 일정 및 현황공유 + 내일계획(간략히만)
    1. 노션 회의록
  • 소통
    1. Team Slack 창을 통해 일정 및 정보 공유!
    2. ★★★잠수금지!!★★★
    3. 진행 현황은 솔직하게! 어려운 부분은 공유하기(너무 오래 혼자 고민하지 않기)!
    4. merge는 모두가 마이크 켜고 모여 있을 때에만 가능
    5. PR 시 코드 리뷰 합니다. 의견 남겨주세요.
    6. 주말 자율 참석
    7. 잠수 시 전화 갑니다.
    8. 노션 회의록을 통해 진행상황 공유
  • 식사시간
    • 점심: 12:00~14:00
    • 저녁: 18:00~20:00

Git Convention

  • Git Flow 방식
  • https://www.youtube.com/watch?v=EV3FZ3cWBp8
  • 설명
    1. main branch - develop branch - personal branch(feature)
    2. main branch : 작동이 완벽히 되고 배포하는 브렌치
    3. develop branch : PR 받고 merge 하고 포크하는 개발용 브렌치
    4. personal branch : 개인 브렌치, PR하는 브렌치, feature-#이슈번호

이슈 기반 작업

  • 이슈를 먼저 작성
  • 이슈 중 회의를 통해 한 가지를 분류하여 작업자가 해당 이슈에 대한 작업 Branch를 생성한다.
  • 명확한 구분을 위해 feature-#이슈번호 로 한다.
  • Pull Request 시에 Conversation의 컨벤션은 하단의 양식과 같이 한다.
    • 해당 작업 내용 1
    • 해당 작업 내용 2
  • Issue Title #Issue Number

Commit Message Convention

#윗줄 = <타입> : <제목> 의 형식 # 예) ✨Feat: 로그인 기능 추가

#제목은 50자 이내 / 변경사항이 "무엇인지 명확히 작성/ 끝에 마침표 금지 # 예) …..

#본문(구체적인 내용)을 아랫줄에 작성

#여러 줄의 메시지를 작성할 땐 "-"로 구분 (한 줄은 72자 이내)

#꼬릿말(footer)을 아랫줄에 작성 (현재 커밋과 관련된 이슈 번호 추가 등) #예) Close #7, related_to #7

#✨Feat: 기능 추가

# 🐛Fix: 버그 수정

# 🚑Hotfix: 급한 오류 수정

# 📚Docs: 문서 수정, readme

# ☔Test: 테스트 코드 추가

# 🎨Style: 코드 의미에 영향을 주지 않는 변경사항 <- 작성자의 가독성

# 💄Design: CSS 등 사용자 UI디자인 변경 <- 사용자에게 보이는 화면 변화

# 💬Comment: 필요한 주석 추가 및 변경

# 🏷Rename: 파일 혹은 폴더명을 수정하거나 옮기는 작업만의 경우

# ❌Remove: 파일을 삭제하는 작업만 수행한 경우

# 📦Package: 빌드 부분 혹은 패키지 매니저 수정사항

참고사항

fetch = 로컬 저장소에서 하는 Synk fork

pull = fetch + merge

origin/develop = 원격저장소의develop[vi편집기로 commit하기]

git commit > i or a 누르면 작성 시작 > 작성 > esc > :wq

if commit을 취소하고 싶다면 q!로 종료하기[커밋 메시지 예시]

<공백 추가> <- 제목 작성 후 enter

articles/views.py : 상세 게시글 조회, 수정, 삭제

articles/serializers.py : 상세 게시글 조회용 serializer 추가

<공백 추가> <-본문 작성 후 enter

Please enter the commit message for your changes[가장 최근 commit 메시지 수정]

git commit --amend -> git log로 수정 확인[1개만 push하고 수정해야 할 경우] ex) issue 번호 빼먹은 경우

git add [변경파일] -> git commit --amend -> git log로 수정 확인[추가 변경사항이 있는 경우] ex) issue 번호 빼먹은 경우

git add [변경파일] -> git commit --amend -> git log로 수정 확인[push 실수 했을 때 조치 방법]

git log로 commit 내역 확인  -> git reset HEAD^로 최근 commit 취소 ->

git push -f로 강제 push <= 사용 조심하기orgit log --oneline으로 commit 내역 확인 -> 되돌릴 지점 해시 확인 -> git reset <해시>

  • git push -f로 강제 push <= 사용 조심하기[PR후 다른 브랜치 생성해서 작업하는 경우]

fork한 내 repo Synk fork -> git fetch ->

git checkout origin/develop로 fetch한 원격repo 로컬repo 연결 확인

git checkout develop-> git merge origin/develop으로 머지 -> 기존 branch -D 삭제

  • develop에서 feature/기능으로 git log 반영한 branch생성 -> 작업 시작[원본 develop에 바뀐 코드가 필요한 경우 & rejected 발생시]

기존 작업 중인 내용 git stash로 저장 -> fork한 내 repo Synk fork ->

git fetch -> git checkout origin/develop로 fetch한 원격repo 로컬repo 연결 확인

git checkout develop-> git merge origin/develop으로 머지 -> 기존 branch -D 삭제

  • develop에서 feature/기능으로 git log 반영한 branch생성 ->

git stash apply stash@{0}로 stash 적용

  • conflict발생시 해결 -> 작업 시작[branch명 잘못 만든 경우]

이름 바꿀 브랜치에서 git branch -m [새 브랜치 명]

  • 이미 push --set-upstream한 경우 git push --set-upstream origin [새 브랜치명]
  • 잘못 push한 branch 원격 repo에서 삭제[이전 commit 메시지 수정]

git rebase -i HEAD~[head에서 떨어진 수] -> 수정할 commit의 pick을 reword로 변경 후 저장

  • 순서대로 commit 변경 메시지 작성 -> git log로 수정 확인

squash 사용시 commit 합치기, reword[일부 변경사항만 stash하기]

git stash push -m "stash 메시지" 파일 파일 파일

/* <= 경로에 있는 모든 파일 추가

Docs Convention

class KakaoLoginView:
'''
작성자 :홍길동
내용 : 코드에 대한 설명
최초 작성일 : 2023.06.06
업데이트 일자 : 2023.06.07
'''
def ..........

ERD

https://www.erdcloud.com/d/8dT6DHQbeW8QyhKqB

와이어프레임

https://www.figma.com/file/OH25J6tB2MTR1oRDNXh4yv/CLAID-Wireframe?type=design&t=dk7jA1zpY3P8RdKM-0

API명세

CLAID project API

배포

댓글