Skip to content
LeeEunyoung edited this page Sep 26, 2023 · 1 revision

🎯 팀 프로젝트 목적

1. 기술 부분

  • 제공 받은 인증, 계좌, 제품 관련 Api를 분석하고 데이터 처리 흐름을 이해
  • React 라이브러리를 활용하여 SPA 형태의 웹 어플리케이션을 제작하고자 함.

2. 협업 부분

  • Git과 GitHub을 활용한 팀의 개발 관리 및 코드 리뷰 커밋 컨벤션, PR 컨벤션을 만들어 지키고 Branch Protection Rule을 설정하여 서로의 코드를 리뷰하며 자신이 담당한 부분 이외의 전체 코드를 파악할 수 있는 체제를 구축
  • 슬랙, 디스코드를 활용하여 팀원 모두가 원활히 소통하며 작업의 흐름과 프로젝트 진행 방향의 이해를 도모하고 함께 문제를 해결해 나감

3. 개발 노트 / 고민점

  • 페이지네이션 VS 무한 스크롤
    • 스크롤을 할 수록 계속해서 데이터가 쌓이는 무한 스크롤, 하지만 반응형 웹페이지에서 특히 모바일에서 굉장히 UX적으로 용이하다. 하지만 해당 페이지는 데스크탑상의 페이지를 주 타겟으로 삼고, 이미지와 같이 높은 용량을 요구하는 데이터가 많기 때문에 부분적으로 페이지를 나누어 보여주는 페이지네이션 기법이 더 유용하다고 판단되어 페이지네이션 기법을 채택하였다.
  • Fetch vs Axios
    • try & catch 구문을 통한 에러핸들링 중, fetch API는 코드 에러부분에 대한 메세지 출력이 catch를 통해 나오지 않는다는 것을 확인할 수 있었다. 에러문구를 처리함에 있어서 이는 치명적인 요소로 다가갈 수 있기 때문에 Axios를 채택하여 사용하였다.
  • 비슷한 컨셉의 컴포넌트를 어떻게 다룰 것인지?
    • 검색 창의 경우, header에 상시적으로 게시되는 검색창과, 검색 페이지에 게시되는 검색창이 있다. 이를 하나의 state로, 최소한의 API 호출만으로 처리 될 수 있을지에 대한 고민이 필요하다.

📌 컨벤션

1. Git Commit Message Convention

  • 커밋 유형 지정
    • 커밋 유형은 영어 대문자로 작성하기
커밋 유형 의미
Feat 새로운 기능 추가
Fix 버그 수정
Docs 문서 수정
Style 코드 formatting, 세미콜론 누락, 코드 자체의 변경이 없는 경우
Refactor 코드 리팩토링
Test 테스트 코드, 리팩토링 테스트 코드 추가
Chore 패키지 매니저 수정, 그 외 기타 수정 ex) .gitignore
Design CSS 등 사용자 UI 디자인 변경
Comment 필요한 주석 추가 및 변경
Rename 파일 또는 폴더 명을 수정하거나 옮기는 작업만인 경우
Remove 파일을 삭제하는 작업만 수행한 경우
!BREAKING CHANGE 커다란 API 변경의 경우
!HOTFIX 급하게 치명적인 버그를 고쳐야 하는 경우
  • 제목과 본문을 빈행으로 분리
    • 커밋 유형 이후 제목과 본문은 한글로 작성하여 내용이 잘 전달될 수 있도록 할 것
    • 본문에는 변경한 내용과 이유 설명 (어떻게보다는 무엇 & 왜를 설명)
  • 제목 첫 글자는 대문자로, 끝에는 . 금지
  • 제목은 영문 기준 50자 이내로 할 것
  • 자신의 코드가 직관적으로 바로 파악할 수 있다고 생각하지 말자
  • 여러가지 항목이 있다면 글머리 기호를 통해 가독성 높이기

2. Code Convention

  • 문자열을 처리할 때는 작은따옴표를 사용하도록 합니다.
  • 문장이 종료될 때는 세미콜론을 붙여줍니다.
  • 함수명, 변수명은 카멜케이스로 작성합니다.
  • 가독성을 위해 한 줄에 하나의 문장만 작성합니다.
  • 주석은 설명하려는 구문에 맞춰 들여쓰기 합니다.
// Good
function someFunction() {
  ...

  // statement에 관한 주석
  statements
}
  • 연산자 사이에는 공백을 추가하여 가독성을 높입니다.
a+b+c+d // bad
a + b + c + d // good
  • 콤마 다음에 값이 올 경우 공백을 추가하여 가독성을 높입니다.
var arr = [1,2,3,4]; //bad
var arr = [1, 2, 3, 4]; //good
  • 생성자 함수명의 맨 앞글자는 대문자로 합니다.
function Person(){}

3. 그라운드룰

  • 주 단위로 돌아가면서 회의록 작성 & 노션 관리
  • 불참해야 할 일 생길 때, 하루 전에는 말을 해주기
  • 공부하다 모르는 내용 생기면 공유하고 서로 같이 고민하기