본격 개발 시작하기 전에 해야할 게 이렇게 많다니..!!
세상은 넓고 내가 모르는 것은 많다
오늘 회의에서는 코드 컨벤션, 커밋 컨벤션을 정했다
아는 게 없어서 토할 거 같았지만 쫄지 마 임뫄!
브랜치는 main, develop, feature/* 를 사용
Squash란?
<>: required
[]: optional
# subject
<issue> <type>[scope]: <description>
//스코프 : 페이지 단위로 ex. [#123]feat[랜딩]:리마인딩
#body
[body text]
#footer
[refs] : #이슈번호를 쓰면 이슈쪽에서 해당 커밋을 확인할 수 있다
타입 | 의미 |
---|---|
feat | 새로운 기능 추가 |
fix | 버그 수정 |
style | 코드 포맷 변경 |
refactor | 코드 수정 |
comment | 주석 추가 |
docs | 문서 수정 |
test | 테스트 코드 추가 또는 변경 |
chore | 세팅 관련 변경 |
rename | 폴더 이동 또는 이름 변경 |
remove | 파일 삭제 |
feature/이슈번호
페이지 단위
ex)[#123] feat(Home):
생략
feature -> sqaush merge -> develop -> merge ->
https://im-developer.tistory.com/182
commit a + b + c를 합쳐서 새로운 commit, abc를 만들어지고 master에 추가된다.abc는 1개의 parent를 가진다.feature 브랜치의 commit history를 합쳐서 깔끔하게 만들기 위해 사용한다.
hooks => 글로벌 훅스 / 컴포넌트 후크
ex. 스크롤 체크
public/
src/
assets/
components/
*lib/
pages/
recoil/
*utils/
TODO
: 추후 할 작업이나 개선 방향이 있는 경우가능한 is
can
has
같은 접두사 사용
handle{Target}{EventType}
형태로 사용handleCreateButtonClick
.ts
는 camelCase 사용.tsx
는 PascalCase 사용옵션 | 값 |
---|---|
singleQuote | true |
semi | false |
useTabs | false |
tabWidth | 2 |
trailingComma | none |
arrowParens | avoid |
bracketSpacing | true |
bracketSameLine | false |
옵션 | 값 |
---|---|
@typescript-eslint/no-shadow | [error] |
no-shadow | off |
no-undef | off |
srcs/
assets/
=> css, img, ttf : 여기서 가져와서 웹 번들링을 하면 이름이 이상하게 바뀌니까 favicon같은 경우는 html 메타에 넣으면 완전 바뀌니까 static에다 따로 넣어준다
=>
An "asset" is any file that your project uses that is not code. Images, videos, sounds, and fonts are all considered to be assets.
components/
config/
constants/ :상수만 모아놓는 용도
contexts/
hooks/
lib/
pages/
recoil/
static/ : 정적 html 파일, 주소가 고정되어야 하는
util/ : 공통으로 사용할 수 있는 코드(바로 가져다가 쓸 수 있는 코드) - 다른 곳에서 긁어온
libs/ : 외부 디펜던시 (자바에서 사용, 자바스크립트에서는 package.json) / 우리 도메인에서만 사용할 수 있는 코드
ex. fileFormat.js
ex. convertFormat(1024, 'KB') -> 1KB //이번에 만든 것을 다른 곳에서만 사용할 수 있게
ex. libs // 외부에서 많이 바꿔서 사용해서
recoil에서 api 중개 처리해주는 것을 하나하나
create에서 intercept로
react query를 할 것을 recoil이 대신해줄 수 있음 (호환)
TODO: 검색해서 사용하기
typescript interface
함수
화살표 함수
: noun first
선언식
: verb first
tsx가 컴포넌트
스페이스 2개 (탭은 나중에 다른 거에서 봤을 때 열이 안 맞음)
세미콜론을 쓰지 않으면 문제가 생김
커뮤니티에서 지원을 해주는 것
React Native, emotion 등에 공부를 하기
돌아가는지 확인하기