1. 코딩 컨벤션

1.1 네이밍 규칙

1.2 컴포넌트 구조

// 컴포넌트 기본 구조
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>
  );
}

1.3 스타일링

// 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
  `}
>

2. 커밋 컨벤션

2.1 커밋 메시지 구조

type(scope): subject

body

footer

2.2 커밋 타입

Type 설명
feat 새로운 기능 추가
fix 버그 수정
docs 문서 수정
style 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우
refactor 코드 리팩토링
test 테스트 코드 추가
chore 빌드 업무 수정, 패키지 매니저 수정
design CSS 등 사용자 UI 디자인 변경
rename 파일 혹은 폴더명을 수정하거나 옮기는 작업
remove 파일을 삭제하는 작업만 수행한 경우