Skip to content

๐Ÿ“– ์ฝ”๋“œ ์ปจ๋ฒค์…˜

KimDaeGeon edited this page Oct 6, 2024 · 2 revisions

๐Ÿ“– ์ปดํฌ๋„ŒํŠธ ๋„ค์ด๋ฐ ๋ฐ ์ฝ”๋“œ ์ปจ๋ฒค์…˜

1๏ธโƒฃ ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ

components ๋””๋ ‰ํ† ๋ฆฌ ํ•˜์œ„์— ๋ถ„๋ฅ˜๋œ ๋””๋ ‰ํ† ๋ฆฌ (ex.display) ์— ๋งž์ถฐ ์ปดํฌ๋„ŒํŠธ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค

์˜ˆ) Card ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ src/components/display/Card ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ

2๏ธโƒฃ ์ปดํฌ๋„ŒํŠธ, ์Šคํƒ€์ผ, ์Šคํ† ๋ฆฌ๋ถ ํŒŒ์ผ ์ƒ์„ฑ

์ปดํฌ๋„ŒํŠธ์˜ ๊ฒฝ์šฐ index.tsx ๋กœ ์ƒ์„ฑํ•˜๊ณ  ํ™”์‚ดํ‘œํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด Named Export ๋กœ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.

์ปดํฌ๋„ŒํŠธ์— ์‚ฌ์šฉ๋˜๋Š” Props ๋Š” interface ๋กœ ์„ ์–ธํ•˜๋ฉฐ, ์ปดํฌ๋„ŒํŠธ๋ช…Props ๋กœ ํ†ต์ผํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ) src/components/display/Card/index.tsx

export interface CardProps {
   width: SizeProp;
   height: SizeProp;
}

export const Card = ({ width, height } : CardProps) => {
   return <></>
}

์Šคํƒ€์ผ์˜ ๊ฒฝ์šฐ index.style.ts ๋กœ ์ƒ์„ฑํ•˜๊ณ  ์ปดํฌ๋„ŒํŠธ ํŒŒ์ผ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด import ํ•˜์—ฌ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ก ํŒ) ์ปดํฌ๋„ŒํŠธ์— ์‚ฌ์šฉ๋˜๋Š” @emotion/styled ์— ๋Œ€ํ•œ ์ปดํฌ๋„ŒํŠธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ช…์‹œํ•˜๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค

Wrapper > Container > Items > Item ๋˜๋Š”
Wrapper > Container > Header | Body | Footer

์˜ˆ) src/components/display/Card/index.style.ts

import * as Style from "@/path/to/style";

์Šคํ† ๋ฆฌ๋ถ์˜ ๊ฒฝ์šฐ index.story.tsx ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ“– ๋„ค์ด๋ฐ ์ปจ๋ฒค์…˜

์ปดํฌ๋„ŒํŠธ์˜ ๊ฒฝ์šฐ PascalCase ๋„ค์ด๋ฐ ๊ทœ์น™์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

์ด์™ธ์˜ ํ•จ์ˆ˜๋‚˜ ๋ณ€์ˆ˜๋Š” camelCase ๋„ค์ด๋ฐ ๊ทœ์น™์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

๋‹จ, ์Šคํƒ€์ผ ๊ด€๋ จ ๋ณ€์ˆ˜ ๋˜๋Š” ํ•จ์ˆ˜์˜ ๊ฒฝ์šฐ snake_case ๋„ค์ด๋ฐ ๊ทœ์น™์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.