|
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 |  | |
| 30 | +| Programming Language |  |
| 31 | +| Formatting |   | | |
| 32 | +| UI Documentation |  |
| 33 | +| Styling |  |
| 34 | +| Data Fetching |   | |
| 35 | +| Package Manager |  | |
| 36 | +| Build Tool |  | |
| 37 | +| Version Control |   | |
| 38 | +| Deployment |  | |
| 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