-
Notifications
You must be signed in to change notification settings - Fork 2
Code Convention | Frontend
Kyu-hyun Lee edited this page Aug 23, 2023
·
4 revisions
- ๐งน Prettier && Eslint Rules
- ๐ Component Structure
- ๐ท๏ธ Naming Conventions
- ๐ Type Definitions
- โ๏ธ Props Handling
- โ๏ธ API Calls and Asynchronous Operations
โ ๏ธ Warning and Error Handling
- ์ฝ๋์ ์ผ๊ด์ฑ์ ์ํด Prettier์ ESLint ๊ท์น์ ์๊ฒฉํ ์ค์. ๊ฐ๋ฅํ ๊ท์น์ ๋ณ๊ฒฝํ๊ฑฐ๋ ์์ธ๋ฅผ ๋ง๋ค์ง ์๋๋ก ํ๋ค.
- ํจ์ํ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๋ฉฐ, ์ปดํฌ๋ํธ ์ ์ธ ํ ๋ณ์, ํจ์, useEffect, return ๋ฌธ์ ์์๋๋ก ์์ฑ.
- ์์ ๋ณ์๋ช ์ ๋ณ์์ ์ฉ๋๋ฅผ ์ ์ ์๋๋ก ์๋ช ํ๋ฉฐ, ํ ๋ฌธ์ ๋ณ์๋ช ์ ํผํ๋ค.
- ๋ฐฐ์ด ๊ตฌ์กฐ ๋ถํด ํ ๋น(Destructuring)์ ์ฌ์ฉํ์ฌ state๋ฅผ ์ ์ธํ ๋ ๋ชจ๋ ์์ดํ ์ camelCase๋ก ์์ฑํ๊ณ , setter ํจ์ ์์ "set"์ ๋ถ์ฌ ์์ฑ.
const [projectId, setProjectId] = useState<number>(0);
- ํ๋ก์ ํธ ๋ด ํ์ผ๊ณผ ํด๋๋ ์๋ฏธ ์๋ ์ด๋ฆ์ ์ฌ์ฉํ์ฌ ๊ทธ๋ฃนํ.
- ์ปดํฌ๋ํธ, ์คํ์ผ, ์ ํธ๋ฆฌํฐ ํจ์ ๋ฑ์ ์ ์ ํ๊ฒ ๊ตฌ๋ถํ์ฌ ๋ฐฐ์น.
- ์ปดํฌ๋ํธ ํ์ผ์ ํด๋น ์ปดํฌ๋ํธ์ ์ด๋ฆ๊ณผ ์ผ์นํ๋๋ก ํ์ผ ์ด๋ฆ์ ์ง์ .
- ๋ฆฌ์์ค ํ์ผ (์ด๋ฏธ์ง, ํฐํธ ๋ฑ)์ assets ๋๋ static ํด๋์ ์ ์ฅํ์ฌ ๊ด๋ฆฌ.
- ์ปค์คํ ํ์ ์ interface ๋์ type ๋ฌธ๋ฒ์ ์ฌ์ฉํ๋ฉฐ, ํด๋์ค๋ฅผ ์ฌ์ฉํ ๋์๋ interface ๋ฌธ๋ฒ์ ์ฌ์ฉ.
type FollowModalProps = {
onClickToggleModal: () => void;
isFollowing: number;
};
- props๋ ๊ตฌ์กฐ ๋ถํด ํ ๋น(Destructuring)์ ํตํด ๋ค๋ฃจ๋ฉฐ, ์ปค์คํ ํ์ ์ด๋ฆ์ ์ปดํฌ๋ํธ ์ด๋ฆ ๋ค์ "Props"๋ฅผ ๋ถ์ฌ ์์ฑ.
function followModal({ onClickToggleModal, isFollowing }: FollowModalProps) { ... }
- API ํธ์ถ ์ async/await ๊ตฌ๋ฌธ์ ํ์ฉํ์ฌ ๋น๋๊ธฐ ์ฒ๋ฆฌ.
async function main() {
try {
const userId = 1;
const userInfo = await getUserInfo(userId);
console.log('์ฌ์ฉ์ ์ ๋ณด:', userInfo);
} catch (error) {
console.error('๋ฉ์ธ ํจ์ ์คํ ์ค ์ค๋ฅ ๋ฐ์:', error);
}
}
- ๋ธ๋ผ์ฐ์ ์ฝ์์ ๋ํ๋๋ ๊ฒฝ๊ณ ์ ์ค๋ฅ๋ฅผ ์ต์ํํ๋ฉฐ, ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒฝ๊ณ ๋ฅผ ์ฒ๋ฆฌ.
- ๋ฐฐํฌ ํ๊ฒฝ์์๋ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ๋นํ์ฑํํ๊ฑฐ๋ ๊ฒฝ๊ณ ๋ฅผ ๋ฌด์ํ๋๋ก ์ค์ ํ์ฌ ์ฌ์ฉ์ ๊ฒฝํ์ ์ต์ ํ.