Convention - boostcampwm-2022/web36-Japari GitHub Wiki
kebab-case
snake_case
- ํด๋์ค, ์ปดํฌ๋ํธ ํ์ผ
PascalCase
- ๊ทธ ์ธ ํ์ผ, ํด๋
camelCase
- client/pages ํ์ ํ์ผ์ ์ปดํฌ๋ํธ์ง๋ง ์์ธ๋ก
camelCase
์ฌ์ฉ
- ํด๋์ค, ์ปดํฌ๋ํธ
PascalCase
- ๋ณ์, ํจ์
camelCase
- ๊ฒฝ๋ก์ ๊ด๋ จ๋ ๊ฒ์ ์ ์ผ ์๋จ์ import
- SEO๋ฅผ ์๊ฐํ๋ฉด์ ํ๊ทธ ์ ํํด๋ณด๊ธฐ
- ๊ทธ ์ธ ๊ท์น์ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ํ๋ฉด์ ๋ง์ถฐ๊ฐ๊ธฐ๋ก ๊ฒฐ์
kebab-case
- ์ ์ผ ์๋จ์ main
- ์๋์ develop
- ๊ธฐ๋ฅ ๋ณ๋ก feature/000๋ก ๊ฐ๋ฐํ๋ค.
- ํ๋ก ํธ์ ๋ฐฑ์๋ ์ฝ๋์ ํผํฉ ๋ฐฉ์ง๋ฅผ ์ํด ์ปค๋ฐ
- rem์ผ๋ก ํต์ผ
- ๋๋ฉ ํ์ด์ง
/
- ๋ก๋น ํ์ด์ง
/lobby
- ๋๊ธฐ์ค ํ์ด์ง
/waiting/:id
- ๊ฒ์ ํ์ด์ง
-
/playing/:id
- game ์ ๋ณด ๋ถ๋ฌ์จ ํ, participants์ user๊ฐ ์ํด์๋์ง ๊ฒ์ฌ ํ, ์์ผ๋ฉด ๋ก๋น๋ก ๋ฆฌ๋ค์ด๋ ํธ
-
{
"singleQuote": false,
"semi": true,
"useTabs": false,
"tabWidth": 2,
"trailingComma": "es5",
"printWidth": 120,
"arrowParens": "avoid"
}
npx eslint --init
์ผ๋ก ์ต์ด ์ค์ ํ prettier, react, react-hooks ๊ด๋ จ ์ค์ ์ถ๊ฐ
module.exports = {
env: {
browser: true,
es2021: true,
},
plugins: ["react", "react-hooks", "@typescript-eslint"],
extends: [
"eslint:recommended",
"plugin:react/recommended",
"plugin:react-hooks/recommended",
"plugin:@typescript-eslint/recommended",
"plugin:prettier/recommended",
],
parser: "@typescript-eslint/parser",
parserOptions: {
ecmaVersion: "latest",
sourceType: "module",
project: "./tsconfig.json",
},
rules: {},
settings: {
react: {
version: "detect",
},
},
};
- ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ๋ฐ๋ ์ ์์ผ๋ฏ๋ก ํ์ ํ์ง ์๋๋ค.
- public
- src
- api
- pages
- LandingPage
- index.tsx
- style.ts
- LandingPage
- components
- hooks
- constants
- utils
- store
- styles (reset, global, theme)
- @types
- index.d.ts
import { BuildingUploading } from "@types";
building.d.ts
nest new .
- prisma, MySQL ์ ์ฉ