2. 코딩컨벤션

모든 네이밍은 모든 팀원이 이해하기 편하면서 심플하게 작성한다.

2-1 디렉토리 및 파일 컨벤션

2-2 함수 및 변수 컨벤션

2-3 컴포넌트 내 코드 작성 구조

import React, { useState, useEffect } from 'react';

// 1. 외부 모듈 및 라이브러리 임포트
import { fetchData } from './api';
import './MyComponent.css';

// 2. 상수, 열거형 및 유틸리티 함수 선언
const API_URL = '<https://api.example.com/data>';

function calculateValue(a, b) {
  return a + b;
}

// 3. 컴포넌트 선언
const MyComponent = () => {
  // 4. useState 훅 선언 // 가장 상단에 선언 해야 한다는 규칙이 있음
  const [data, setData] = useState(null);
  const [loading, setLoading] = useState(true);
  
  // state 불러오기

  // 5. useEffect 훅 선언 (비동기 데이터 호출 등)
  useEffect(() => {
    fetchData(API_URL).then(response => {
      setData(response);
      setLoading(false);
    });
  }, []);

  // 6. 이벤트 핸들러 함수 선언
  const handleClick = () => {
    console.log('Button clicked');
  };

  // 7. 조건부 렌더링 로직
  if (loading) {
    return <div>Loading...</div>;
  }

  // 8. JSX 반환
  return (
    <div>
      <h1>Data:</h1>
      <pre>{JSON.stringify(data, null, 2)}</pre>
      <button onClick={handleClick}>Click me</button>
    </div>
  );
};

// 9. 기본 내보내기
export default MyComponent;

2-5 컴포넌트 컨벤션