| 구분 | 네이밍 규칙 |
|---|---|
| 상수 | UPPER_CASE (모두 대문자) |
| React 컴포넌트 파일 명 | PascalCase |
| 일반 파일/폴더명 | camelCase |
의미가 명확하게 드러나는 이름 사용
줄임말, 모호한 이름은 지양
불리언 변수는 is, has, can 등의 접두어 사용
배열은 ~Arr, ~List와 같은 축약형 대신 복수형 명사 사용
| 안좋은 예시 | 좋은 예시 | 설명 |
|---|---|---|
| data | userData | 더 구체적으로 명시 |
| nameArr | names | 복수형 명사 사용 |
| flag | isModalOpen | 불리언은 is/has/can |
| temp | selectedOption | 임시보다 의도/ 역할 명확하게 |
동사 + 목적어 구조로 명확한 동작을 나타내는 이름 사용
| 접두어 | 의미 | 예시 |
|---|---|---|
| get | 어떤 값을 얻거나 조회함 | getUserProfile() |
| create | 새로운 값을 만들어 반환 | createUser() |
| check | 조건을 검사하여 boolean 반환 | checkIsValidEmail() |
| update | 상태나 값을 갱신 | updateProfile() |
| handle | 이벤트나 행위를 처리 (handle + 이벤트명) | handleSubmit(), handleScroll() |
| 항목 | 규칙 | 예시 |
|---|---|---|
| 스타일 가이드 | Airbnb JavaScript Style Guide 준수 | https://github.com/airbnb/javascript/tree/master/react |
| 문자열 | 쌍따옴표 사용 | "코드 스타일" |
| 함수 정의 | 함수 표현식 사용 | const updateProfile = () => {} |
| 컴포넌트 정의 | 화살표 함수 사용(rsc (reface) 단축키) | const Header = () => {} |
| props 타입 정의 | prop-types 패키지 사용 | Header.propTypes = {} |
| 절대 경로 | @/로 시작 (src 기준) | alias 사용 |
| import 순서 | 외부 → 내부 → 스타일 | 설정으로 자동 정렬 |
| 특징 | 설명 |
|---|---|
| 성능 | 기존 CSS 프레임워크 대비 불필요한 스타일 정의가 없어 빠른 로딩 속도를 제공 |
| 활용성 | - React, Vue, Next.js, Astro 등 다양한 프레임워크에서 간편하게 적용 가능 |
https://insight.infograb.net/blog/2024/09/20/prettier-eslint/