[PROJECT] 정기구독 웹서비스 4 - 프로젝트 초기 설정

zirryo·2023년 1월 13일
0

💊 Pillivery

목록 보기
4/7

22.11.11 FRI (DAY 4)


💿 기술 스택

백엔드에서 사용한 기술 스택

  • Java 11
  • Spring Sercurity
  • Spring boot 2.7.5
  • Spring JPA
  • Redis 7.0.5 - 로그인, 로그아웃
  • Gradle
  • MySQL 8
  • JWT 0.11.5
  • OAuth 2.0 - 소셜 로그인 (구글, 카카오)
  • Quartz 2.3.0 - 정기구독 스케줄링

프론트엔드에서 사용한 기술 스택

  • JavaScript
  • React
  • Create React App
  • Styled components
  • Redux toolkit
  • React query
  • Node.js (v18.12.1)
  • npm (v8.19.2)
  • axios




💿 Spring Boot 프로젝트 생성

Spring Initializr 를 통해 스프링 프로젝트를 생성했다.

Project : Gradle - Groovy
Spring Boot : 2.7.5
Packaging : Jar
Java : 11
Dependencies : Spring Web, Spring Sercurity, Spring Data JPA, H2 Database 등

  • 선택한 조건에 맞는 스프링부트 프로젝트를 손쉽게 생성할 수 있다.
  • 우측 Dependencies 에서 의존 라이브러리를 추가할 수 있다.
  • 조건을 모두 선택한 후 하단의 GENERATE 버튼을 누르면 프로젝트가 생성된다.




💿 깃 브랜치 전략

크게 세 종류로 브랜치를 구분했다.

Main

  • 서버 & 클라이언트 즉시 배포 가능한 상태.
  • develop 에서만 main 으로 merge 가능하며 모든 팀원의 확인이 필요함.

Develop

  • fe-dev, be-dev 로 구분.
  • feature 에서 develop으로 merge 가능함.
  • fe-dev 으로의 merge은 모든 프론트엔드 팀원의 확인이 필요하며,
    be-dev 으로의 merge은 모든 백엔드 팀원의 확인이 필요함.

Feature

  • 기능에 따라 개인 feat 브랜치를 생성.
  • 기능 개발이 완료되었다면 각각 fe-dev, be-dev 에 PR을 요청함.




💿 커밋 컨벤션

gitmoji를 프리 프로젝트에서 사용했었는데, 당시 팀원들의 반응이 긍정적이었어서 이번 프로젝트에도 깃모지를 도입했다.


IntelliJ IDEA 인텔리제이에서는 gitmoji plus : commit button 플러그인을 설치하여 깃모지를 편리하게 사용할 수 있다.

플러그인을 설치했다면 프로젝트의 커밋 탭에서 노란 이모티콘이 추가된 것을 확인할 수 있다. 노란 이모티콘을 누르면 위와 같이 타입에 맞는 깃모지를 선택할 수 있다.


기존의 방식대로 커밋 메세지의 내용을 작성하고, 메세지 앞부분에 상황에 맞게 정해진 이모지를 붙이면 된다.
메세지 맨 뒤에는 # 과 이슈번호를 기입하여 이슈에서 관련 커밋을 바로 확인할 수 있도록 했다.

(깃모지) (타입): (메세지) (이슈번호)
✨ feat: OOOOO 기능 구현 #1

정해져 있는 깃모지 공식 규칙에서 이전 프로젝트의 경험을 토대로 수정을 거쳐 아래와 같이 커밋 타입을 결정했다.

feat 새로운 기능 추가
🐛 fix 버그 수정
📝 docs 문서 수정
🎨 style 주석 변경, 코드 formatting, 세미콜론(;) 누락 (코드 변경이 없는 경우)
💄 design CSS 등 사용자 UI 디자인 변경
♻️ refactor 코드 리팩터링
test 테스트 코드, 리팩터링 테스트 코드 추가(프로덕션 코드 변경 X)
💚 chore 빌드 업무 수정, 패키지 매니저 수정(프로덕션 코드 변경 X)
🚚 rename 파일 혹은 폴더명을 수정하거나 옮기는 작업만인 경우
🔥 remove 파일을 삭제하는 작업만 수행한 경우




💿 이슈 템플릿

편리하고 효율적인 업무 트래킹을 위해 이슈 템플릿을 적극적으로 활용했다.

프로젝트에서 사용한 이슈 템플릿

  • 설명 : 해당 이슈에 대해 간단하고 명료하게 설명
  • 체크리스트 : 이슈를 통해 해결하는 업무에 대한 체크리스트
  • Assignees : 담당자 배정
  • Labels : 어떤 성격의 이슈인지 구분하기 위한 라벨 (fix, feat, refactor, design, remove, test 등)
  • Project : 현재 진행중인 프로젝트 선택
  • Milestone : 주차별로 마일스톤 선택 (1주차, 2주차, ...)

실제로 이슈템플릿을 활용하여 생성한 이슈




💿 칸반 보드

이슈의 흐름을 모든 팀원이 확인할 수 있도록 칸반 보드를 사용했다.


To do, In progress, Done 3단계로 구분하였다.

In progress 단계의 이슈는 1인이 동시에 1개를 갖는 것을 원칙으로 했으며,
많아도 2개를 넘지 않도록 하여 병목 현상을 막고 흐름을 최대화하고자 했다.

0개의 댓글