파일명
UserProfile.tsx)parseDate.ts)API_ENDPOINTS.ts)변수/함수명
// 변수: camelCase
const userData = {};
const isVisible = true;
// 불리언 변수는 is, has, should 등으로 시작
const isLoading = true;
const hasPermission = false;
// 함수: camelCase, 동사로 시작
function getUserData() {}
const updateProfile = () => {}
// 상수: UPPER_SNAKE_CASE
const MAX_COUNT = 10;
const API_KEY = 'xxx';
// 컴포넌트 기본 구조
import { useState, useEffect } from 'react';
// 1. 타입 정의
interface Props {
user: UserType;
onSubmit: (data: FormData) => void;
}
// 2. 컴포넌트 정의
export default function UserProfile({ user, onSubmit }: Props) {
// 2.1 상태/훅 선언
const [isEditing, setIsEditing] = useState(false);
// 2.2 핸들러 함수
const handleSubmit = () => {};
// 2.3 렌더링
return (
<div>
{/* JSX */}
</div>
);
}
// Tailwind CSS 클래스 순서
<div
className={`
// 레이아웃 (display, position)
flex absolute
// 박스모델 (width, height, margin, padding)
w-full h-64 m-4 p-2
// 시각적 요소 (background, border, shadow)
bg-white border rounded-lg shadow-md
// 타이포그래피
text-lg font-bold
// 기타 (transition, cursor 등)
hover:bg-gray-100 cursor-pointer
`}
>
type(scope): subject
body
footer
| Type | 설명 |
|---|---|
feat |
새로운 기능 추가 |
fix |
버그 수정 |
docs |
문서 수정 |
style |
코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우 |
refactor |
코드 리팩토링 |
test |
테스트 코드 추가 |
chore |
빌드 업무 수정, 패키지 매니저 수정 |
design |
CSS 등 사용자 UI 디자인 변경 |
rename |
파일 혹은 폴더명을 수정하거나 옮기는 작업 |
remove |
파일을 삭제하는 작업만 수행한 경우 |