# 라이트하우스 프론트앤드 개발팀
### 코딩 컨벤션
* ES6 문법
* 변수명 규칙
* 카멜케이스
* 영어(패밀리노트만)
* 신규 혹은 기존 라하 프로젝트는 알잘딱 섞어서
* 타입스크립트
* 타입 정의
* 타입이 객체 또는 배열일 경우 interface
* 데이터명 + CRUD
* ex) CenterAnnouncePostResponse, CenterAnnouncePostRequest
* 타입이 객체 또는 배열이 아닐 경우 type
* 폴더 구조
* 기능 단위로 구분하여 정의(메뉴에 나오는 기능)
* 홈, 알림장, 공지사항, 요청 등등
* 리액트
* React 엘리먼트들은 구조분해 할당으로 가져오기
* ex) import { useState } from 'react'
* 함수
* 화살표 함수
* Props 네이밍
* 컴포넌트명 + props
* props 타입명 OR props 데이터
* 파일 네이밍
* 대문자 시작
* 카멜케이스
### 커밋 메세지
* 커밋 메세지는 한글로 통일
* ~~GitMoji~~
> [name=Taehyun Kim 2023.08.02 깃모지 사용 중단]
[이전 깃모지 사용 방식 정리 doc](https://docs.google.com/document/d/1mCBngKSR0Y9aBlSCC3pWx-An2I5hNzx5SSkjmQ3raHQ/edit)
* 커밋 헤더 컨벤션
* [버그]
* [기능]
* [기능 추가] => 신규 기능 추가
* [기능 수정] => 리팩토링이 아닌 요구사항이 변동되거나 잘못 개발된 기능 수정
* [기능 삭제] => 더 이상 사용하지 않는 기능 삭제
* [폴더, 파일]
* 추가, 수정, 삭제, 이동
* [UI]
* 추가, 수정, 삭제
* [API]
* 추가, 수정, 삭제
* [코드]
* [코드 추가] => 주석 추가, 타입과 같은 코드?
* [코드 수정] => 주석 수정, 코드 리팩토링
* [코드 삭제] => 불필요한 주석, console 등 dead code에 해당
* [배포]
* Release 운영 배포 시 사용
* [패키지]
* 라이브러리 설치, 버전 업그레이드, 다운그레이드, 삭제
* [병합 이슈 해결]
* merge 이후 conflic 해결 시 사용
* [최신화]
* 브랜치 최신화 할 때 사용
* [QA]
* QA 수정사항
### 커밋
* 하나의 기능에 한 커밋
* 추후에 문제가 발생하면 조금 더 작게 쪼개는걸로
### 코드 리뷰
* 시간나는대로
* 꼭 더 나은 코드 제시가 아닌 질문도 괜찮을 듯
### 브랜치 전략
* 데일리북
* main(운영기)
* develop(개발기)
* 로컬 개인 작업 브런치
* 신규 기능
* develop에서 브랜치 생성
* feature/_main
* feature/작업명/_작업자
* 운영 유지보수
* develop에서 브랜치 생성
* service/_main
* service/작업명/_작업자
* 마이그레이션
* develop에서 브랜치 생성
* migration/_main
* migration/컴포넌트/_작업자
* QA
* develop에서 브랜치 생성
* qa/_main
* qa/작업명/_작업자
* HOTFIX
* main에서 브랜치 생성
* HOTFIX/_main
* HOTFIX/작업명/_작업자
* 로컬 -> develop PR 작성
* develop -> Release.YYYY.MM.DD 브랜치 생성 -> main PR 작성
### PR
* 템플릿
* CMS부터 각자 브랜치에서 작업 후 CMS 메인 브랜치로 PR
* 리뷰어는 각자 알아서
* merge는 confilct 안나면 바로
* > [name=Taehyun Kim 2023.08.02 데일리북]
* 데일리북 PR 템플릿 사용
* PR 제목
* 배포 관련만 대괄호로 개발기인지, 운영기인지 표시
* 기타 PR은 작업 내용을 제목에 적는다
* Reviewers : 김태현
* Assignees : 작업자 이외
* 리뷰어 참고사항
* 간단한 작업, 리뷰가 불필요 할 경우 불필요하다고 Assingees에 지정된 사람에게 알려준다.
* 수정사항
* 코멘트에 전부 답글 형식으로
### 테스트
* 한번에 모든곳에 적용보단 지금 개발하는곳에만 혹은 버그가 발생 할 경우
* 스터디
* 알림톡이랑 어드민 끝나면
### 주석
* 추후 리팩토링 필요할거같은 코드
* 주요 api
* 화면 위치
### 리팩토링
* 하고싶다..