-
Notifications
You must be signed in to change notification settings - Fork 3
Home
10_2pang edited this page Dec 13, 2022
·
10 revisions
๊ฐ์ ธ๋๋๋ฅ์ ์ฌ์ฉํ์ง ์๋ ๋ฐ๋ ค๋๋ฌผ์ฉํ์ ํ๋งคํ๋ ์ค๊ณ ๊ฑฐ๋ ํ๋ซํผ์
๋๋ค.
๊ฐ์ ธ๋๋๋ฅ์ ์ฌ์ฉ์๋ ์ค๊ณ ๊ฑฐ๋ ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ์ฌ์ฉ์์ ์ํตํ๊ธฐ, ๋ ์จ์ ๋ฐ๋ฅธ ๋ฐ๋ ค๊ฒฌ ์ฐ์ฑ
์ฌ๋ถ ํ์ธํ๊ธฐ, ๊ฐ๊น์ด ๋๋ฌผ๋ณ์ ํ์ธํ๊ธฐ ๋ฑ ๋ฐ๋ ค๋๋ฌผ ์ปค๋ฎค๋ํฐ ์๋น์ค๋ ์ด์ฉํ ์ ์์ต๋๋ค.
- ํ๋ก์ ํธ ๊ท๋ชจ๊ฐ ํฌ์ง ์์ผ๋ฏ๋ก 3์ข
๋ฅ์ ๋ธ๋์น๋ฅผ ์ฌ์ฉํ๋ค.
- main : ์ ํ์ผ๋ก ์ถ์๋ ์ ์๋ ๋ธ๋์น
- develop : ๋ค์ ์ถ์ ๋ฒ์ ์ ๊ฐ๋ฐํ๋ ๋ธ๋์น
- feature : ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๋ ๋ธ๋์น
- ๋ธ๋์น๋ช
๊ท์น :
feat/#์ด์๋ฒํธ
- ์)
feat/#1
- ๋ธ๋์น๋ช
๊ท์น :
- ์ปค๋ฐ ๋ฉ์์ง๋
ํ์ : ์ฃผ์ (#์ด์๋ฒํธ)
์ ๊ฐ์ด ์์ฑํ๋ค.- ์)
add: ListView์ ๋น ์ง ๋ฌธ๊ตฌ ์ถ๊ฐ (#2)
- ์)
- ํ์
์ ์ข
๋ฅ
- fix: ์ฌ๋ฐ๋ฅด์ง ์์ ๋์์ ๊ณ ์น ๊ฒฝ์ฐ
- feat: ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๊ฒฝ์ฐ
- refactor: ๋ด๋ถ ๋ก์ง์ ๋ณ๊ฒฝํ์ง ์๊ณ ์ฝ๋๋ฅผ ๊ฐ์ ํ ๊ฒฝ์ฐ
- style: ์ฝ๋ ๊ฐ์ ๊ณผ ์๊ด์์ด ์ฌ์ํ๊ฒ ์ฝ๋๋ฅผ ์์ ํ ๊ฒฝ์ฐ
- design: ์ฌ์ฉ์ UI๋ฅผ ์ถ๊ฐ, ์์ ํ ๊ฒฝ์ฐ (๋งํฌ์ , ํผ๋ธ๋ฆฌ์ฑ ์์ )
- add: ํด๋, ํ์ผ ๋ฑ์ ์ถ๊ฐํ ๊ฒฝ์ฐ
- move: ํด๋, ํ์ผ, ์ฝ๋ ๋ฑ์ ์์น๋ฅผ ์ด๋ํ ๊ฒฝ์ฐ
- rename: ํด๋๋ช , ํ์ผ๋ช ๋ฑ์ ์์ ํ ๊ฒฝ์ฐ
- remove: ํด๋, ํ์ผ, ์ฝ๋ ๋ฑ์ ์ญ์ ํ ๊ฒฝ์ฐ
- assets: ์์ ์ ์ถ๊ฐ, ์์ ํ ๊ฒฝ์ฐ
- docs: ๋ฌธ์๋ฅผ ์ถ๊ฐ, ์์ ํ ๊ฒฝ์ฐ
- chore: ์์ ๋ชจ๋ ๊ฒฝ์ฐ์ ํฌํจ๋์ง ์๋ ๊ธฐํ ์์ ์ฌํญ
- ํ์ ์ ์ข ๋ฅ ์ค ํ๋๋ง ์ ํํ๋ฉฐ, ์์ด ์๋ฌธ์๋ก ์์ํ๋ค.
- ์ฃผ์ ๋ ํ๊ธ๋ก ๊ฐ๋จ๋ช ๋ฃํ๊ฒ ์์ฑํ๋ค.
- ์ฃผ์ ์ ๋ง์ง๋ง ๋ฌธ์๋ก
.(๋ง์นจํ)
๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค. - ์ฃผ์ ๋ '-๋ค', '-์'๊ณผ ๊ฐ์ ์ด๋ฏธ๋ก ๋๋ด์ง ์๊ณ , ๊ณผ๊ฑฐํ์ ์ฌ์ฉํ์ง ์๋๋ค.
- ์ฌ๋ฐ๋ฅด์ง ์์ ์)
feat: ์นด์นด์ค ๋ก๊ทธ์ธ ์ฐ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ค (#3)
,feat: ์นด์นด์ค ๋ก๊ทธ์ธ ์ฐ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํจ (#3)
- ์ณ์ ์)
feat: ์นด์นด์ค ๋ก๊ทธ์ธ ์ฐ๋ ๊ธฐ๋ฅ ์ถ๊ฐ (#3)
- ์ฌ๋ฐ๋ฅด์ง ์์ ์)
- ์ฃผ์ ๋ ์์ค ์ฝ๋๋ฅผ ๋ณด์ง ์๊ณ ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ฌด์์ธ์ง ์ ์ ์๋๋ก ์์ฑํด์ผ ํ๋ค.
- ์ฌ๋ฐ๋ฅด์ง ์์ ์)
design: CSS ์กฐ์ (#4)
- ์ณ์ ์)
design: text box์ layout frame ์ฌ์ด์ left padding ์ถ๊ฐ (#4)
- ์ฌ๋ฐ๋ฅด์ง ์์ ์)
- ์ปค๋ฐ ๋ฉ์์ง๋ ์ ์ผ์๊ฐ ๋ดค์ ๋ ๋ฌด์์ ํ๋์ง ํ์ ํ ์ ์๊ฒ ์์ธํ ์์ฑํ๋ค.
- ์ปค๋ฐ ๋ฉ์์ง๋ ์ด๋ป๊ฒ ๋ณด๋จ ๋ฌด์๊ณผ ์๋ฅผ ์ค๋ช ํ๋ค.
- ํ ์ปค๋ฐ์๋ ํ ๊ฐ์ง ๊ธฐ๋ฅ๋ง ๋ด๋๋ค.
- ์) ํ๋ฉด ๊ฐ๋ฐ์ ๊ฒฝ์ฐ : ์ปดํฌ๋ํธ ๋จ์๋ก ์ปค๋ฐ
- ์2) ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ๊ฒฝ์ฐ : ๊ฐ ๊ธฐ๋ฅ ๋จ์๋ก ์ปค๋ฐ
- ๋ค์ฌ์ฐ๊ธฐ(tab) 2์นธ ์ฌ์ฉํ๋ค.
- JavaScript ES6+ ๋ฌธ๋ฒ ์ฌ์ฉํ๋ค.
-
var
์ฌ์ฉ ๊ธ์งํ๋ค. - ์ธ๋ฏธ์ฝ๋ก ํ์๋ก ์ฌ์ฉํ๋ค.
- ์์ ๋ฐ์ดํ ์ฌ์ฉํ๋ค.
-
for
,if
๋ฌธ์ ๊ธธ์ด๊ฐ ์งง๋๋ผ๋ ์ค๊ดํธ๋ก ์ฌ์ฉํ๋ค. - CSS ์์ฑ ์ ์ธ ์์๋ ์ฐ์ ์ ๊ฒฝ์ฐ์ง ์๊ณ , ์ฝ๋ ๋ฆฌํฉํ ๋ง ๋จ๊ณ์์ ์์ ํ๋ค.
- ๋ฆฌ์กํธ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค๋๋
rafce
๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ง๋ ๋ค. - ๋ฆฌ์กํธ ์ปดํฌ๋ํธ ํ์ฅ์๋
jsx
๋ก ํต์ผํ๋ค. - ํจ์ ์ ์ธ์์๋ ํ์ดํ ํจ์ ์ฌ์ฉํ๋ค. (ํ์ดํ ํจ์๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ํฉ์๋ ์์ธ)
- prettier & ESlint ์ฌ์ฉํ๋ค
- ์ผํญ์ฐ์ฐ์๋ ์งง์ผ๋ฉด ํ์ค, ๊ธธ๋ฉด ๊ฐํ์ผ๋ก ์ค๋ฐ๊ฟ ๊ท์น์ ์ ํ๋ค.
-
import ... from
๊ตฌ๋ฌธ์ ํฐ ๋ถ๋ฅ๋ง ์ ๊ฒฝ์ฐ๊ณ ๋ถ๋ฅ ์์์ ์์ ๋ก์ด ์์๋ก ๋ฐฐ์นํ๋ค.
- camelCase : ์ง์ ์ ์ผ๋ก ๋ฐ๋ก React ์ปดํฌ๋ํธ๊ฐ ๋ค์ด์์ง ์์ ๊ฐ์ ์ ์ธ ๊ด๊ณ์ ํด๋
- PascalCase : React ์ปดํฌ๋ํธ๊ฐ ๋ฐ๋ก ๋ค์ด ์๋ ํด๋
- React ์ปดํฌ๋ํธ : PascalCase
- ํ์ด์ง๋ช ์ __page๋ก ์์ฑ (์ : HomePage.jsx, LoginPage.jsx)
- ๋ค์ด๋ฐ์ ์ข ๋ฅ - ์ญํ - ์ปดํฌ๋ํธ ์์ผ๋ก (์ : LoginSubmitButton.jsx)
- ์ด๋ฏธ์งํ์ผ : kebab-case
- ๋ค์ด๋ฐ์ ์ด๋ฏธ์ง๋ช -image๋ก (์ : logo-image.png, happy-lion-imgae.png)
- jsx : PascalCase
- js : camelCase
- ์คํ์ผ๋ ์ปดํฌ๋ํธ ํ์ผ :
~~Style.jsx
๋ก ํํ
- ์ผ๋ฐ์ ์ธ ๋ณ์, ํจ์ : camelCase
- ๋ณ์ : '๋ช ์ฌํ'์ผ๋ก ์์ฑ. ๋ฌด์์ ๋ด๊ณ ์๋์ง ์ ํํ ํํ (์ : numberOfPeople)
- ๋ถ๋ฆฐํ ๋ณ์ :
is
๋ก ์์ (์ : isOpen) - ํจ์ : '๋์ฌํ'์ผ๋ก ์์ฑ. ๋ฌด์์ ํ๋ ํจ์์ธ์ง ์ ํํ ํํ
- ์ด๋ค ๊ฐ์ผ๋ก๋ถํฐ ๋ค๋ฅธ ๊ฐ์ ๊ณ์ฐํ๋ ํจ์๋
get
์ผ๋ก ์์ (์ : getinputValue)
- ์ด๋ค ๊ฐ์ผ๋ก๋ถํฐ ๋ค๋ฅธ ๊ฐ์ ๊ณ์ฐํ๋ ํจ์๋
- ์ปค์คํ
ํ
:
use
๋ก ์์ (์ : uesGetWindowsSize) - ์ด๋ฒคํธ ํจ์ props (
on_
) +๋ค์ด๋ฐ
+handler
์ผ๋ก ์ง๊ธฐ (์๋ ์์ ์ฐธ์กฐ)
import { MouseEvent as ReactMouseEvent, useCallback, useState } from 'react'
function FunctionComponent() {
const [searchTerm, setSearchTerm] = useState('')
// ์ด๋ฒคํธ ํธ๋ค๋ฌ ํจ์
const onClickSearchButtonHandler = useCallback(e) => { ... })
const onChangeSearchTermHandler = useCallback(e => { ... })
// ์ด๋ฒคํธ ํธ๋ค๋ฌ prop
return (
<>
<SearchInput onChange={onClickSearchButtonHandler} />
<SearchButton onClick={onChangeSearchTermHandler} />
</>
)
}
export default FunctionComponent
- ์์ : UPPER_SNAKE_CASE
- ์์ฑ์ ํจ์, ํด๋์ค : PascalCase
src
ใด assets
ใด images
ใด fonts
ใด components
ใด Header
ใด Header.jsx
ใด Button
ใด Button.jsx
ใด pages
ใด HomePage
ใด HomePage.jsx
- ๋ง ๊ทธ๋๋ก ์์ฐ์ ์๋ฏธํ๋ค.
- ํ๋ก์ ํธ์์ ์ฌ์ฉํ ์ด๋ฏธ์ง, ๋น๋์ค, ํฐํธ ๋ฑ ๋ฏธ๋์ด ํ์ผ๋ค์ ๋ชจ์ ์ ์ฅํ๋ ๊ณณ
- ๊ณตํต ์ปดํฌ๋ํธ ๊ด๋ฆฌ (Header, Footer, Nav ๋ฑ)
- ํ์ด์ง ๋จ์์ ์ปดํฌ๋ํธ ํด๋๋ก ๊ตฌ์ฑ
๐ก
components vs pages
- ์ฌ๋ฌ ํ์ด์ง์์ ๋์์ ์ฌ์ฉ๋๋ ์ปดํฌ๋ํธ์ ๊ฒฝ์ฐ components ํด๋์์ ๊ด๋ฆฌ
- ํ์ด์ง ์ปดํฌ๋ํธ์ ๊ฒฝ์ฐ pages ํด๋์์ ๊ด๋ฆฌ
- ํด๋น ํ์ด์ง ๋ด์์๋ง ์ฌ์ฉํ๋ ์ปดํฌ๋ํธ์ ๊ฒฝ์ฐ ํด๋น ํ์ด์ง ํด๋ ํ์์์ ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ข์!