Skip to content

Commit 3e2af3c

Browse files
authored
Merge pull request #29 from TEAM-COMFIT/docs/#28/readme
2 parents 3c7041e + 52a73ed commit 3e2af3c

2 files changed

Lines changed: 203 additions & 3 deletions

File tree

โ€Ž.prettierignoreโ€Ž

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,5 @@ package-lock.json
3636

3737
# OS
3838
.DS_Store
39-
Thumbs.db
39+
Thumbs.db
40+
README.md

โ€ŽREADME.mdโ€Ž

Lines changed: 201 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,201 @@
1-
# COMFIT
2-
.
1+
# Comfit <img width="100" alt="๋กœ๊ณ  ์ด๋ฏธ์ง€" src="https://github.com/user-attachments/assets/07bc34ba-7e9b-4490-8e55-5673f11967cc" align="left" />
2+
๊ธฐ์—…๊ณผ ๋‚˜๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ธฐ์ค€
3+
4+
<br>
5+
6+
> Comfit์€ ๊ธฐ์—…์˜ ํ•ต์‹ฌ ์ •๋ณด์™€ ๋‚˜์˜ ๊ฒฝํ—˜์„ ํ•˜๋‚˜๋กœ ์—ฎ์–ด ์ง€์› ๊ธฐ์—…๋ณ„ ๋งž์ถค ์ž์†Œ์„œ ์ „๋žต์„ ์ œ์•ˆํ•˜๋Š” AI ๊ธฐ๋ฐ˜ ๋ถ„์„ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.
7+
8+
<br/>
9+
10+
11+
12+
13+
## ๐Ÿ‘ฅ Team member
14+
15+
| <img src="https://avatars.githubusercontent.com/u/84303489?v=4" width="150" /> | <img src="https://avatars.githubusercontent.com/u/91336314?v=4" width="150" /> | <img src="https://avatars.githubusercontent.com/u/108409327?v=4" width="150" /> | <img src="https://avatars.githubusercontent.com/u/101101694?v=4" width="150" /> |
16+
| :--: | :--: | :--: | :--: |
17+
| <div align="center"><b>์ด์ฑ„์˜ ๐Ÿ‘‘</b></div> | <div align="center"><b>์˜ค์ˆ˜๋นˆ</b></div> | <div align="center"><b>์ •์œ ์ง„</b></div> | <div align="center"><b>๋ฐฐ์ •๋ฏผ</b></div> |
18+
| [@hummingbbird](https://github.com/hummingbbird) | [@odukong](https://github.com/odukong) | [@u-zzn](https://github.com/u-zzn) | [@qowjdals23](https://github.com/qowjdals23) |
19+
20+
<br/>
21+
<br/>
22+
23+
## ๐Ÿ”ง Tech Stack
24+
25+
### [Comfit์˜ ๊ทผ๊ฑฐ ์žˆ๋Š” ๊ธฐ์ˆ  ์Šคํƒ ์„ ์ • ๊ณผ์ • ์‚ดํŽด๋ณด๊ธฐ ๐Ÿ‘€](https://same-cricket-7d1.notion.site/2-2dd70a83488280cdb1f2da52fa3ce892?source=copy_link)
26+
27+
| ์—ญํ•  | ์ข…๋ฅ˜ |
28+
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
29+
| Library | ![React](https://img.shields.io/badge/React-61DAFB?style=for-the-badge&logo=React&logoColor=black) |
30+
| Programming Language | ![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge&logo=TypeScript&logoColor=white)
31+
| Formatting | ![ESLint](https://img.shields.io/badge/ESLint-4B3263?style=for-the-badge&logo=eslint&logoColor=white) ![Prettier](https://img.shields.io/badge/Prettier-F7B93E?style=for-the-badge&logo=prettier&logoColor=white) | |
32+
| UI Documentation | ![Storybook](https://img.shields.io/badge/Storybook-FF4785?style=for-the-badge&logo=storybook&logoColor=white)
33+
| Styling | ![Vanilla Extract](https://img.shields.io/badge/Vanilla%20Extract-%23F786AD?style=for-the-badge&logo=vanillaextract&logoColor=white)
34+
| Data Fetching | ![TanstackQuery](https://img.shields.io/badge/TanstackQuery-FF4154?style=for-the-badge&logo=ReactQuery&logoColor=white) ![swagger-typescript-api](https://img.shields.io/badge/swagger--typescript--api-85EA2D?style=for-the-badge&logo=Swagger&logoColor=white) |
35+
| Package Manager | ![Pnpm](https://img.shields.io/badge/Pnpm-F69220?style=for-the-badge&logo=pnpm&logoColor=white) |
36+
| Build Tool | ![VITE](https://img.shields.io/badge/VITE-646CFF?style=for-the-badge&logo=Vite&logoColor=white) |
37+
| Version Control | ![Git](https://img.shields.io/badge/git-%23F05033.svg?style=for-the-badge&logo=git&logoColor=white) ![GitHub](https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge&logo=github&logoColor=white) |
38+
| Deployment | ![Vercel](https://img.shields.io/badge/Vercel-000000?style=for-the-badge&logo=vercel&logoColor=white) |
39+
40+
<br><br>
41+
42+
## ๐Ÿ Convention
43+
44+
### ๐Ÿ‘€ Commit Convention
45+
๊ฐ€์žฅ ๋ณดํŽธ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์ธ [Udacity Git Style Guide](https://udacity.github.io/git-styleguide/) ๊ธฐ๋ฐ˜ ์ปจ๋ฒค์…˜์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
46+
47+
```
48+
[init] ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์ดˆ๊ธฐ ์„ธํŒ…
49+
[feat] ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
50+
[fix] ๋ฒ„๊ทธ ์ˆ˜์ •
51+
[design] ์Šคํƒ€์ผ ๋ณ€๊ฒฝ ๋ฐ ๋””์ž์ธ ๊ตฌํ˜„
52+
[update] Fix์™€ ๋‹ฌ๋ฆฌ ์›๋ž˜ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ–ˆ์ง€๋งŒ ๋ณด์™„์˜ ๊ฐœ๋…
53+
[remove] ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ
54+
[move] ์ฝ”๋“œ๋‚˜ ํŒŒ์ผ์„ ์ด๋™ํ•˜๋Š” ๊ฒฝ์šฐ
55+
[rename] ํŒŒ์ผ ํ˜น์€ ํด๋”๋ช…์„ ์ˆ˜์ •ํ•˜๋Š” ๊ฒฝ์šฐ
56+
[docs] ๋ฌธ์„œ๋ฅผ ์ˆ˜์ •ํ•œ ๊ฒฝ์šฐ
57+
[comment] ํ•„์š”ํ•œ ์ฃผ์„ ์ถ”๊ฐ€ ๋ฐ ๋ณ€๊ฒฝ
58+
[refactor] ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง (๊ฒฐ๊ณผ์˜ ๋ณ€๊ฒฝ ์—†์ด ์ฝ”๋“œ์˜ ๊ตฌ์กฐ๋ฅผ ์žฌ์กฐ์ •, ๊ฐ€๋…์„ฑ์„ ๋†’์ž„)
59+
[test] ํ…Œ์ŠคํŠธ ์ฝ”๋“œ
60+
[chore] ๊ทธ ์™ธ ์ž์ž˜ํ•œ ์ˆ˜์ •
61+
[deploy] ๋ฐฐํฌ
62+
```
63+
64+
๐Ÿ‘‡ ๊ธฐ๋ณธ ๊ตฌ์กฐ
65+
```
66+
type: description (#์ด์Šˆ ๋„˜๋ฒ„)
67+
68+
- ์ปค๋ฐ‹์— ๋Œ€ํ•œ ์„ค๋ช…
69+
- ์ปค๋ฐ‹๋งŒ ๋ณด๊ณ ๋„ ์–ด๋–ค ์ž‘์—…์ธ์ง€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•จ
70+
```
71+
<br>
72+
73+
### ๐Ÿ‘€ Git Convention
74+
<img width="585" height="682" alt="git flow ์ด๋ฏธ์ง€" src="https://github.com/user-attachments/assets/e98f22e2-a1a4-4627-b27d-c3b2ffc3651c" />
75+
76+
- ๊ธฐ๋ณธ ํ‹€: **[type]/#[์ด์Šˆ๋„˜๋ฒ„]/๊ธฐ๋Šฅ ์ด๋ฆ„** (ex)`feat/#914/company-card-component`)
77+
- ๊ธฐ๋Šฅ ํƒ€์ž…์— ๋งž๊ฒŒ ๊ฐ€์žฅ ์•ž๋‹จ์˜ ํ‚ค์›Œ๋“œ๋ฅผ ๋ณ€๊ฒฝํ•ด์ฃผ์„ธ์š”. (feat / refactor / fix / hotfix/ chore ๋“ฑ)
78+
- ๊ธฐ๋Šฅ ์ด๋ฆ„์—๋Š” **kebab-case**๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
79+
80+
<br>
81+
82+
### ๐Ÿ‘€ Coding Convention
83+
<details>
84+
<summary>๐Ÿ“ ํŒŒ์ผ ๋ฐ ํด๋”๋ช…</summary>
85+
86+
- **์ผ€๋ฐฅ ์ผ€์ด์Šค(kebab-case) ์‚ฌ์šฉ**
87+
- ์˜ˆ: `company-card.tsx`
88+
</details>
89+
90+
<details>
91+
<summary>โœจ ์ปดํฌ๋„ŒํŠธ๋ช…</summary>
92+
93+
- **ํŒŒ์Šค์นผ ์ผ€์ด์Šค(PascalCase) ์‚ฌ์šฉ**
94+
- ์˜ˆ: `const CompanyCard = () => {};`
95+
</details>
96+
97+
<details>
98+
<summary>๐Ÿ“›ย ๋ณ€์ˆ˜</summary>
99+
100+
- ๊ธฐ๋ณธ: `var` ๊ธˆ์ง€
101+
102+
| | **๊ทœ์น™** | **์˜ˆ์‹œ** |
103+
| --- | --- | --- |
104+
| **๊ธฐ๋ณธ** | camelCase | `hotPostResponseData` |
105+
| **Boolean ํƒ€์ž…** | is ์ ‘๋‘์‚ฌ ์‚ฌ์šฉ | `isActive` |
106+
| **์ƒ์ˆ˜** | ๋Œ€๋ฌธ์ž ์Šค๋„ค์ดํฌ ์ผ€์ด์Šค | `VITE_API_KEY`, `ROTATE_DELAY` |
107+
108+
</details>
109+
110+
<details>
111+
<summary>๐Ÿฆพย ํ•จ์ˆ˜</summary>
112+
113+
> ***๊ฐ€๋…์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๊ณ ๋ คํ•˜์—ฌ [Jake Trent](https://jaketrent.com/)์˜ ๋„ค์ด๋ฐ ๊ทœ์น™์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.***
114+
>
115+
- ๊ธฐ๋ณธ: **ํ™”์‚ดํ‘œ ํ•จ์ˆ˜** ์‚ฌ์šฉ
116+
- ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ
117+
- `handle`์ ‘๋‘์‚ฌ ์‚ฌ์šฉ(๋‹จ, props๋Š” `on` ์ ‘๋‘์‚ฌ ์‚ฌ์šฉ)
118+
- ๋„ค์ด๋ฐ ์ˆœ์„œ๋Š” handle+๋ช…์‚ฌ+๋™์‚ฌ (ex) `handleButtonClick`)
119+
- 2๋ฒˆ ์ด์ƒ ์‚ฌ์šฉ๋  ๊ฒฝ์šฐ `shared/lib` ํด๋”์— ์ƒ์„ฑ
120+
121+
```jsx
122+
<MyComponent onAlertClick={handleAlertClick} />
123+
```
124+
</details>
125+
126+
<details>
127+
<summary>๐Ÿ†Ž ํƒ€์ž…</summary>
128+
129+
- ๊ธฐ๋ณธ: `interface` ์‚ฌ์šฉ(ํ™•์žฅ์„ฑ good ๐Ÿ‘)
130+
- ์œ ๋‹ˆ์˜จ, ๋ฆฌํ„ฐ๋Ÿด ํƒ€์ž…๊ณผ ๊ฐ™์€ ํŠน์ˆ˜ํ•œ ๊ฒฝ์šฐ์—๋งŒ `type` ์‚ฌ์šฉ
131+
- ๋„ค์ด๋ฐ: PascalCase(ex) `LoginResponseType`)
132+
</details>
133+
134+
<details>
135+
<summary>โž• ๊ทธ ์™ธ</summary>
136+
137+
- **์‹œ๋งจํ‹ฑ ํƒœ๊ทธ** ์‚ฌ์šฉ(๋ฌด์ง€์„ฑ div ํƒœ๊ทธ โŒ)
138+
- border, border-radius์™€ ๊ฐ™์ด ํฌ๊ธฐ๊ฐ€ ์ ˆ๋Œ€์ ์œผ๋กœ ๊ณ ์ •๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ `px` ๋‹จ์œ„ ์‚ฌ์šฉ
139+
- ๊ทธ ์™ธ ๋ชจ๋“  ๊ฒƒ์€ `rem` ๋‹จ์œ„๋กœ ํ†ต์ผ
140+
- letter-spacing: `em` ๋‹จ์œ„ ์ ์šฉ
141+
- ์›น ์ ‘๊ทผ์„ฑ๋„ ๊ณ ๋ คํ•˜๋Š” ๊ฐœ๋ฐœ
142+
- import ๋ฌธ์—์„œ type์€ ํ•˜๋‹จ์— ์ž…๋ ฅ
143+
</details>
144+
145+
<br>
146+
147+
## ๐Ÿ“‚ ํด๋” ๊ตฌ์กฐ
148+
fsd ๊ตฌ์กฐ๋Š” ํ‘œ์ค€ํ™”๋œ ํด๋” ๊ตฌ์กฐ ๋ฐฉ๋ฒ•๋ก ์œผ๋กœ ์ดํ•ด ๊ด€๊ณ„ ํŒŒ์•…์ด ์šฉ์ดํ•˜๊ณ , ๊ธฐ๋Šฅ์„ ์ค‘์ ์œผ๋กœ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ๋‚˜๋‰˜์–ด ์ฝ”๋“œ์˜ ์œ„์น˜๊ฐ€ ๋ช…ํ™•ํ•˜๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์–ด์š”. Comfit ํŒ€์€ ์ด์™€ ๊ฐ™์€ ์ด์œ ๋กœ fsd ํด๋” ๊ตฌ์กฐ๋ฅผ ๋„์ž…ํ•˜๊ฒŒ ๋˜์—ˆ์–ด์š”. ๋” ์ž์„ธํ•œ ๋„์ž… ์ด์œ ๊ณผ ๊ทธ ๊ณผ์ •์€ [ํ•ด๋‹น PR](https://github.com/TEAM-COMFIT/COMFIT-CLIENT/pull/9)์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.
149+
```
150+
src
151+
โ”ฃ app // ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐํ™”, ๋ผ์šฐํŒ… ์„ค์ • ๋“ฑ
152+
โ”ƒ โ”ฃ layout
153+
โ”ƒ โ”ฃ providers
154+
โ”ƒ โ”ฃ routes
155+
โ”ƒ โ”ฃ styles
156+
โ”ƒ โ”ฃ App.tsx
157+
โ”ƒ โ”— main.tsx
158+
โ”ฃ features // ๋„๋ฉ”์ธ ๋‹จ์œ„๋กœ ์ปดํฌ๋„ŒํŠธ ๊ด€๋ฆฌ
159+
โ”ƒ โ”ฃ bookmark
160+
โ”ƒ โ”ฃ company-analyze
161+
โ”ƒ โ”ฃ experience
162+
โ”ƒ โ”ฃ home
163+
โ”ƒ โ”ฃ login
164+
โ”ƒ โ”ฃ my-page
165+
โ”ƒ โ”ฃ onboarding
166+
โ”ƒ โ”— register
167+
โ”ฃ pages // ๋„๋ฉ”์ธ ๋‹จ์œ„๋กœ ํŽ˜์ด์ง€ ๊ด€๋ฆฌ
168+
โ”ฃ shared // ๊ณต์œ ๋˜๋Š” ํ•ญ๋ชฉ๋“ค
169+
โ”ƒ โ”ฃ assets
170+
โ”ƒ โ”ƒ โ”ฃ icons
171+
โ”ƒ โ”ƒ โ”ฃ icons
172+
โ”ƒ โ”ƒ โ”— images
173+
โ”ƒ โ”ฃ config
174+
โ”ƒ โ”ฃ lib
175+
โ”ƒ โ”ฃ model
176+
โ”ƒ โ”ฃ stories
177+
โ”ƒ โ”ฃ styles
178+
โ”ƒ โ”ƒ โ”ฃ tokens
179+
โ”ƒ โ”ฃ types
180+
โ”ƒ โ”— ui
181+
โ”— widgets // ์˜๋ฏธ์ ์œผ๋กœ ๊ตฌ๋ถ„๋˜๋Š” ์ปดํฌ๋„ŒํŠธ(header, company-card ๋“ฑ)
182+
```
183+
184+
<br>
185+
186+
## ๐Ÿ‘ผ Ground Rule
187+
188+
### ๐Ÿงฉ ํ˜‘์—… ๊ทœ์น™
189+
1. ์กด์ค‘ํ•˜๋ฉฐ ๋งํ•˜๊ธฐ
190+
2. ์นด์นด์˜คํ†ก, ๋””์Šค์ฝ”๋“œ ๋“ฑ ์†Œํ†ต ์ฑ„๋„ ๋น ๋ฅธ ํ™•์ธ ํ•„์ˆ˜!
191+
3. ์ ๊ทน์ ์ธ ํƒœ๋„๋กœ ์ ‘๊ทผํ•˜๊ณ  ๊ฐ™์ด ํ•ด๊ฒฐํ•˜๊ธฐ
192+
4. ๋งŽ์ด ์›ƒ๊ธฐ !!! ๐Ÿ˜†๐Ÿ˜†๐Ÿ˜†๐Ÿ˜†
193+
194+
### ๐Ÿงฉ ๊ฐœ๋ฐœ ๊ทœ์น™
195+
1. ์ž‘์—… ์ „ ์ฝ”๋“œ๋ฆฌ๋ทฐ๋ถ€ํ„ฐ ๐Ÿ’จ
196+
2. PR ๋ณผ๋ฅจ ์กฐ์ ˆํ•˜๊ธฐ(๋„ˆ๋ฌด ํฐ PR์€ ๋ฆฌ๋ทฐ์–ด์—๊ฒŒ ๋ถ€๋‹ด์ด ๋ฉ๋‹ˆ๋‹ค ๐Ÿ˜‡)
197+
3. 2์ธ ์ด์ƒ approve ํ•„์ˆ˜๐ŸŸข / LGTM ์ง€์–‘โŒ
198+
4. ๊ทผ๊ฑฐ ์žˆ๋Š” ๊ฐœ๋ฐœ, ๊ทผ๊ฑฐ ์žˆ๋Š” AI ํˆด ์‚ฌ์šฉ ๐Ÿค–
199+
5. ์ปจ๋ฒค์…˜ ์ž˜ ์ง€ํ‚ค๊ธฐ ๐Ÿ‘ฎ
200+
201+
<br><br>

0 commit comments

Comments
ย (0)