Skip to content

Code Convention

Daeun Kim edited this page Apr 2, 2023 · 1 revision

๋ณ€์ˆ˜๋ช…

  • ๋ณ€์ˆ˜๋ช…์€ ๊ธฐ๋ณธ์ ์œผ๋กœ 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์„ ํ†ตํ•ด ์ปดํฌ๋„ŒํŠธ ๋ฌธ์„œํ™”๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.
Clone this wiki locally