Code Convention - dnd-side-project/dnd-8th-1-frontend GitHub Wiki

λ³€μˆ˜λͺ…

  • λ³€μˆ˜λͺ…은 기본적으둜 camelCaseλ₯Ό μ‚¬μš©ν•œλ‹€.

  • boolean ν˜•μ„ κ°–λŠ” λ³€μˆ˜λŠ” μ•žμ— isλ₯Ό 뢙인닀.

  • cssλŠ” 기본적으둜 kebab-caseλ₯Ό μ‚¬μš©ν•œλ‹€.

  • νƒ€μž… 이름은 type은 ~Types둜 ν•œλ‹€.

  • μΈν„°νŽ˜μ΄μŠ€ 이름은 props type은 ~Props둜 ν•œλ‹€.

    • API : 응닡 ~Response, ~Request

    • μ˜ˆμ‹œ μ½”λ“œ

      //λŒ“κΈ€ 쑰회
      export interface CommentReadResponse extends BaseResponse {
        data?: PaginationResponse<CommentProps>;
      }
      // base
      export interface BaseResponse {
        message?: string;
        status?: number;
        code?: string;
      }
      
      export interface PaginationResponse<T> {
        content: T[];
        numberOfElements: number; //content의 μš”μ†Œκ°€ λͺ‡κ°œμΈμ§€
        offset: number; // ν˜„μž¬ νŽ˜μ΄μ§€μ—μ„œ μ‹œμž‘ν•˜λŠ” μš”μ†Œμ˜ index 번호
        pageNumber: number; //νŽ˜μ΄μ§€ λ„˜λ²„
        pageSize: number; //νŽ˜μ΄μ§€ μ‚¬μ΄μ¦ˆ
        totalElements: number; // 전체 μš”μ†Œ 수
        totalPage: number;
      }
  • props둜 λ°›λŠ” className string은 styleClass둜 ν†΅μΌν•œλ‹€.

    • className μ—¬λŸ¬ 개 μ‚¬μš©ν•˜λŠ” μ»΄ν¬λ„ŒνŠΈλŠ” μ»΄ν¬λ„ŒνŠΈ + style둜 ν†΅μΌν•œλ‹€.

ν•¨μˆ˜λͺ…

  • ν•¨μˆ˜λͺ…은 기본적으둜 camelCaseλ₯Ό μ‚¬μš©ν•œλ‹€.
  • κ°€λŠ₯ν•œ 동사 + λͺ…μ‚¬μ˜ ν˜•νƒœλ₯Ό μ‚¬μš©ν•œλ‹€.
  • ν•¨μˆ˜λͺ…을 μΆ•μ•½ν•˜μ§€ μ•ŠλŠ”λ‹€.
  • ν•¨μˆ˜ν˜• μ»΄ν¬λ„ŒνŠΈμ˜ 경우 첫 κΈ€μžλ₯Ό λŒ€λ¬Έμžλ‘œ μ‹œμž‘ν•œλ‹€.

이벀트 ν•Έλ“€λŸ¬

  • 이벀트 ν•Έλ“€λŸ¬ ν•¨μˆ˜ 이름은 handle~둜 ν†΅μΌν•œλ‹€.
  • props λ‚΄ 이벀트 ν•Έλ“€λŸ¬λŠ” handleOn<EventName>으둜 ν†΅μΌν•œλ‹€.

λͺ¨λ“ˆ

  • Componentμ—μ„œλŠ” λ‹€μŒκ³Ό 같이 import, export ν•œλ‹€. 이 λ•Œ, import ν•  κ²½μš°μ—λŠ” λ°˜λ“œμ‹œ [경둜 alias](https://github.com/dnd-side-project/dnd-8th-1-frontend/blob/develop/tsconfig.json) λ₯Ό μ‚¬μš©ν•œλ‹€.
    • import Layout from β€˜@components’
    • export {Layout, Layout2...}
  • indexμ—μ„œλŠ” λ‹€μŒκ³Ό 같이 import , export ν•œλ‹€.
    • export { default as Layout } from './Layout';
    • export { default as Layout2 } from './Layout2';

μŠ€νƒ€μΌ

  • μŠ€νƒ€μΌ 클래슀 이름은 kebab-case λ₯Ό μ΄μš©ν•œλ‹€.
  • Storybook을 톡해 μ»΄ν¬λ„ŒνŠΈ λ¬Έμ„œν™”λ₯Ό μ§„ν–‰ν•œλ‹€.
⚠️ **GitHub.com Fallback** ⚠️