Skip to content

Convention

SeokJu Kim edited this page Jan 12, 2024 · 6 revisions

๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ํŒ€์› ์†Œ๊ฐœ

โœจ์ตœ๊ณ  ์šด์˜ ์ฑ…์ž„์ž COO ๊ฒธ ํŒ€์žฅ ๊น€์„์ฃผ

โœจ์ตœ๊ณ  ์ง€์‹๊ฒฝ์˜ ์ฑ…์ž„์ž CKO ์‹ ์ˆ˜์˜

โœจ์ตœ๊ณ  ๊ธฐ์ˆ  ์ฑ…์ž„์ž CTO ์˜ค์›์ฃผ

โœจ์ตœ๊ณ  ๊ด€๋ฆฌ ์ฑ…์ž„์ž CAO ํ™ฉ๋ฏผํ˜ธ

๐Ÿ† ๊ณตํ†ต ๋ชฉํ‘œ

ํ™”๋ คํ•˜๊ณ  ๋ฉ‹์ง„ ๊ธฐ์ˆ ์ด ์•„๋‹Œ ๋ชฉํ‘œํ•˜๋Š” ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์„ ์ž˜ ํ•˜๋ฉด์„œ ์™„์„ฑํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค.

๐Ÿ› ๏ธ๊ธฐ์ˆ  ์Šคํƒ

์–ธ์–ด TypeScript
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ React
์ƒํƒœ๊ด€๋ฆฌ Redux-toolkit, Tanstackquery
๋ฒˆ๋“ค๋Ÿฌ Vite
์Šคํƒ€์ผ๋ง css, styled components, tailwind UI
ํ˜‘์—… ํˆด Notion, Slack, Discord, Github
API axios
์ฝ”๋“œ ํฌ๋งทํŒ… eslint, prettier, airbnb Rule
Commit ๊ทœ์น™ https://www.notion.so/1bb7b196eadb467bbd249b6a97f23cdf?pvs=21
๋ธŒ๋žœ์น˜ ์ „๋žต Git Flow
ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € npm (20.10.0 LTS)
๋ผ์šฐํ„ฐ react-router
๋ฐฐํฌ ํˆด Vercel, Gabia(๋„๋ฉ”์ธ)

๐Ÿš€์ฝ”๋”ฉ ์ปจ๋ฒค์…˜

๐Ÿ“Œ ์ฝ”๋”ฉ ์Šคํƒ€์ผ

๊ทœ์น™ ์„ค๋ช… ๋น„๊ณ 
ํ’€๋„ค์ž„์„ ์‚ฌ์šฉํ•˜๋„๋ก ํ•œ๋‹ค. btnX buttonO
ํ•จ์ˆ˜ ํ‘œํ˜„์‹ ์‚ฌ์šฉ ๋ณ€์ˆ˜ ํ˜น์€ ํƒ€์ž…
export const func = () => {}

์ปดํฌ๋„ŒํŠธ, ํŽ˜์ด์ง€ const func = () โ‡’ {} export func | | | src๊ฒฝ๋กœ๋Š” @๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. | tsconfig.json, vite.config.ts ์„ค์ • ํ•„์š” | | | ํ•จ์ˆ˜ ๋„ค์ด๋ฐ ๊ทœ์น™_์„ธ๋ถ€ํ•ญ๋ชฉ | prop -> onChangeHandler func -> handleChange

init, props ๊ฐ™์€ ์•ฝ์†๋œ ์ถ•์•ฝ์–ด ํ—ˆ์šฉ | 5์–ด์ ˆ ์ด์ƒ์ด๋ฉด PR์‹œ ์˜๋…ผ | | eslint, prettier ์„ค์ • | airbnb ๊ธฐ๋ฐ˜ ์„ค์ •, ํ•„์š”ํ•œ ๊ฒฝ์šฐ airbnb ๊ธฐ๋ฐ˜์— ์ถ”๊ฐ€๋กœ ์„ค์ • | | | css ๋‹จ์œ„๋Š” rem์œผ๋กœ ํ†ต์ผํ•œ๋‹ค. | | px | | ์ฃผ์„์—ฌ๋ถ€ | ํ•„์š”ํ•  ๊ฒฝ์šฐ ํ•จ์ˆ˜ ํ˜น์€ ๋ณ€์ˆ˜ ์ •์˜ ์ƒ๋‹จ์— ๊ธฐ์ž…ํ•˜๊ธฐ

main ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉ์‹œ ๋ชจ๋“  ์ฃผ์„ ์ œ๊ฑฐ dev, feature๋ธŒ๋žœ์น˜์—๋Š” ์ฃผ์„ ์œ ์ง€ | | | ์ƒ์ˆ˜ ๊ด€๋ฆฌ | constants ํด๋”์—์„œ index.ts ํŒŒ์ผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค. | | | ์Šคํƒ€์ผ ์ƒ์ˆ˜ ๊ด€๋ฆฌ | styles ํด๋”์— theme.ts ํŒŒ์ผ์„ ์ •์˜ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค. | | | ์ปดํฌ๋„ŒํŠธ export ๋ฐฉ์‹ | ํ•œ ๋””๋ ‰ํ† ๋ฆฌ ํด๋”์— ์žˆ๋Š” ์ปดํฌ๋„ŒํŠธ๋Š” index.ts ํŒŒ์ผ์—์„œ export ํ•˜๋„๋ก ํ•œ๋‹ค. | | | type ์„ ์–ธ ๋ฐฉ์‹ | | |

๐Ÿ“Œ์ฝ”๋“œ ๋„ค์ด๋ฐ

์ƒ์ˆ˜ ์ „์ฒด ๋Œ€๋ฌธ์ž + ์Šค๋„ค์ดํฌ ์ผ€์ด์Šค TOTAL_USER = 3000
๋ณ€์ˆ˜ ์นด๋ฉœ์ผ€์ด์Šค
ํ•จ์ˆ˜ ์นด๋ฉœ์ผ€์ด์Šค, ๋™์‚ฌ๋ฅผ ์ฒ˜์Œ์— ์ž‘์„ฑ getValue, onChange โ€ฆ
ํƒ€์ž… T + ํŒŒ์Šค์นผ ์ผ€์ด์Šค type TPost = { โ€ฆ }
์ธํ„ฐํŽ˜์ด์Šค I + ํŒŒ์Šค์นผ ์ผ€์ด์Šค interface ISomeInterface { โ€ฆ }
์œ ๋‹ˆ์–ธ ํƒ€์ž…์„ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๊ณ  ์ด์™ธ๋Š” Interface๋ฅผ ์ง€ํ–ฅํ•œ๋‹ค.
api ์›์ฃผ๋‹˜ ์ผ€์ด์Šค _(๋Œ€๋ฌธ์ž) ๊ฐ„โ˜…์ง€ ex) _GET

๐Ÿ“Œ๋ธŒ๋žœ์น˜ ๋„ค์ด๋ฐ

  • main, dev, feature๋ธŒ๋žœ์น˜
  • ex) feature/login โ†’ dev โ†’ main ์ˆœ์„œ๋กœ PR ์ง„ํ–‰
  • ๋ธŒ๋žœ์น˜ ๋ช…์€ ์˜์–ด๋กœ ์ž‘์„ฑํ•œ๋‹ค.
  • ๊ธฐ๋Šฅ๋ช…์„ธ์„œ์— ๋ธŒ๋žœ์น˜ ๋ช…์„ ์ •์˜ํ•˜๊ณ  ์‚ฌ์šฉํ•œ๋‹ค.
  • ์˜ˆ์‹œ) feature/login-password-0.2.0 feature/main-sub-ver

๐Ÿ“ŒํŒŒ์ผ, ํด๋” ๊ตฌ์กฐ ๋ฐ ๋„ค์ด๋ฐ

components, pages ํŒŒ์Šค์นผ ์ผ€์ด์Šค
hooks use + ํŒŒ์Šค์นผ ์ผ€์ด์Šค useHover.ts
utils ์นด๋ฉœ ์ผ€์ด์Šค
api ์นด๋ฉœ ์ผ€์ด์Šค api/rootAPI.ts
 /queries
    login.ts
    getUsersList.ts |

| types | index.ts์— exportํ˜•ํƒœ๋กœ ์„ ์–ธ ์ดํ›„ ๋ณต์žกํ•ด์ง€๋ฉด ํšŒ์˜ ํ›„ ๋ถ„๋ฆฌ ์ˆ˜์ •์‚ฌํ•ญ(์˜ต์…”๋„์ฒด์ด๋‹ ๋“ฑ) ์žˆ์„ ์‹œ์—” ๋ฏธ๋ฆฌ ๊ณต์ง€ํ•˜๊ธฐ | interfaces/ pageInfo.interface.ts |

/src
โ”‚ App.tsx
โ”‚ main.tsx
โ”‚ /api
| /assets
| /components  
| | /Login -> ๊ณ ์œ ํ•œ ์ปดํฌ๋„ŒํŠธ (๋‹จ์ผ ํŽ˜์ด์ง€ ๋‚ด์—์„œ ์‚ฌ์šฉ)
| | /common -> ๋ณต์ˆ˜ ํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉ, ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ปดํฌ๋„ŒํŠธ
| | | /Layout
| | | /Navigator
| | | /Post
| | | | /modules
| | | | | /PostPhotoBox
| | | | | /PostContentBox
| | | | | /PostCommentBox
| | | | | /index.ts
| | | | /Post
| | | | /index.ts
| | | /Card
| | | | /Card.styles.ts
| | | | /Card.tsx
| | | | /index.ts
| | | /Header
| | | /Button
| | | /Avatar size={size : S M L X?} 
| /hooks
| /constants
| | /index.ts //๊ธธ์–ด์ง€๋ฉด ๋ถ„๊ธฐ
| /pages
| | /profilePage/Post
| | /postPage/Post
| /types
| | / index.ts
| /utils
| | /์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜ 
| /styles 
| | /Theme.ts
| | /GlobalStyle.ts

๐Ÿ“์„ธ๋ถ€์‚ฌํ•ญ

  • ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€ ํŒŒ์ผ์€ ์žฌ์‚ฌ์šฉ ์—ฌ๋ถ€์— ๋”ฐ๋ผ common ์ธ์ง€ ์•„๋‹Œ์ง€ ๋‚˜๋ˆ”, ๋‘ ๋ฒˆ ์ด์ƒ ์žฌ์‚ฌ์šฉ์‹œ common ํด๋” ๋‚ด๋ถ€์—์„œ ์„ ์–ธ, ์‚ฌ์šฉ
  • ํด๋” ๋‚ด๋ถ€ ํŒŒ์ผ์„ ๋‚˜๋ˆ ์•ผ ํ•  ๊ฒฝ์šฐ, ์œ„์— Post์˜ˆ์‹œ๋ฅผ ๋”ฐ๋ฅธ๋‹ค. ๋‹จ ์ด๋•Œ ๋‚˜๋ˆ„๋Š” ๊ธฐ์ค€์— ๋Œ€ํ•ด์„œ๋Š” ๊ทธ๋•Œ๊ทธ๋•Œ ํŒ๋‹จํ•˜์—ฌ ์ง„ํ–‰ํ•œ๋‹ค.

๐Ÿ“Œ์Šคํƒ€์ผ ๋„ค์ด๋ฐ

์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„์ธ ๊ฒฝ์šฐ ์ปดํฌ๋„ŒํŠธ๋ช… + ์Šคํƒ€์ผ๋ช… ex) PostCardContentText, PostContainer global์ธ ๊ฒฝ์šฐ ์Šคํƒ€์ผ๋ช… ex) TitleText, Row, Column

๐Ÿ“Œ๋ธŒ๋žœ์น˜ ๊ตฌ์กฐ ๋ฐ Merge ๊ทœ์น™

์‹ ์†ํ•˜๊ณ  ๋น ๋ฅธ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด GitHub Flow์— dev ๋ธŒ๋žœ์น˜๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ํ˜•์‹์œผ๋กœ ๋ธŒ๋žœ์น˜ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค์–ด ์ง„ํ–‰ํ•œ๋‹ค.

  • Merge ๊ทœ์น™
    • ์ฃผ๋ง์ œ์™ธ, ํ‰์ผ 19์‹œ ์ด์ „์— ์˜ฌ๋ผ์˜จ PR์€ ๋‹น์ผ ๋ฆฌ๋ทฐํ•˜๊ณ  Mergeํ•˜๋Š” ํ˜•์‹์œผ๋กœ ํ•œ๋‹ค.
    • ๋งŒ์•ฝ Conflict๊ฐ€ ๋‚˜๊ฑฐ๋‚˜ Approve๊ฐ€ 2๊ฐœ ๋ฏธ๋งŒ์ผ ๊ฒฝ์šฐ ์ต์ผ ํ•ด๋‹น ๋ฌธ์ œ์  ํ•ด๊ฒฐ ํ›„ Mergeํ•˜๋„๋ก ํ•œ๋‹ค.

๐Ÿ“Œ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋ฃฐ

๋ถˆํ•„์š”ํ•œ ๊ฐ์ • ์†Œ๋ชจ์™€ ์‹œ๊ฐ„ ๋‚ญ๋น„๋ฅผ ์ค„์—ฌ ํšจ์œจ์ ์œผ๋กœ ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ Pn๋ฃฐ ์ฑ„ํƒ

์ž‘์€ PR ๊ทœ์น™
๋ฑ…ํฌ์ƒ๋Ÿฌ๋“œ์˜ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋ฌธํ™”๊ฐ€ ์„ฑ์ˆ™ํ•ด์ง€๊ธฐ ์ „์—๋Š” PR์˜ ์ฝ”๋“œ ๋ผ์ธ ์ˆ˜์— ๋Œ€ํ•œ ๊ทœ์น™์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœํ•˜๋Š” ๊ธฐ๋Šฅ์˜ ๋ณต์žก๋„์— ๋”ฐ๋ผ ์งง๊ฒŒ๋Š” ์ฝ”๋“œ๋Š” ์ˆ˜๋ฐฑ ์ค„, ๋งŽ๊ฒŒ๋Š” 10,000์ค„ ์ด์ƒ์˜ PR ์ด ๋งŒ๋“ค์–ด์ง€๊ธฐ๋„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ์˜ ๊ธธ์ด๊ฐ€ ๊ธธ์–ด์งˆ์ˆ˜๋ก ๋ฆฌ๋ทฐ์–ด์˜ ์ง‘์ค‘๋„๋Š” ๋–จ์–ด์งˆ ์ˆ˜๋ฐ–์— ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๋Š” ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง€๊ณ , ๋ฆฌ๋ทฐ๋Š” ๋ชฉํ‘œํ•œ ์ผ์ •์— ์™„๋ฃŒ๋˜์ง€ ๋ชปํ•˜๊ณ , ๋ณ‘๋ชฉ์ด ๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ ๋ฆฌ๋ทฐ๊ฐ€ ๊ณ ๊ฐ ์ž„ํŒฉํŠธ๋ฅผ ๋‚ด๋Š” ๋ถ€๋ถ„์— ์žˆ์–ด์„œ ๋ณ‘๋ชฉ์ด ๋˜์ง€ ์•Š๋„๋กย โ€˜์ž‘์€ PR ๊ทœ์น™โ€™ย (1๊ฐœ์˜ PR์€ 1,000 Line์„ ๋„˜์„ ์ˆ˜ ์—†๋‹คโ€œ) ์„ ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.โ€˜์ž‘์€ PR ๊ทœ์น™โ€™ ๋„์ž… ์ดˆ๊ธฐ์—๋Š” โ€œ๋ณต์žกํ•œ ๊ธฐ๋Šฅ์„ ๋งŒ๋“œ๋Š”๋ฐ 1,000์ค„์€ ๋„ˆ๋ฌด ์ ์€ ๊ฒƒ ์•„๋‹Œ๊ฐ€?โ€œ, โ€œํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋„ ๋ผ์ธ ์ˆ˜์— ํฌํ•จํ•ด์•ผ ํ•˜๋Š”๊ฐ€?โ€ ๋“ฑ์˜ ์›์น™์— ๋Œ€ํ•œ ์˜๋ฌธ๊ณผ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ PR์„ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์ด ์˜คํžˆ๋ ค ์ƒ์‚ฐ์„ฑ์„ ๋–จ์–ดํŠธ๋ฆฌ์ง€ ์•Š์„๊นŒ ํ•˜๋Š” ์šฐ๋ ค๋„ ์žˆ์—ˆ์ง€๋งŒ, ์ดํ›„ ๋ช‡ ์ฐจ๋ก€์˜ ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๊ทœ์น™์„ ๊ตฌ์ฒดํ™”ํ•ด ๋‚˜๊ฐ€๊ณ  ๋…ธํ•˜์šฐ๋„ ์Œ“์ด๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • PullRequest, Commit์˜ ๋‹จ์œ„๋Š” ์ตœ์†Œ์˜ ๊ธฐ๋Šฅ ๋‹จ์œ„๋กœ ์„ธ๋ถ„ํ™”ํ•œ๋‹ค.
  • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š” Mock json ์ด ๋ผ์ธ ์ˆ˜์˜ ๋Œ€๋ถ€๋ถ„์„ ์ฐจ์ง€ํ•˜๋ฏ€๋กœ ์ œํ•œ์„ ๋‘์ง€ ์•Š๋Š”๋‹ค.

์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋ฌธํ™”๊ฐ€ ์„ฑ์ˆ™ํ•ด๊ฐ€๋ฉด์„œ ์šฐ๋ฆฌ๋Š”ย ๋ฆฌ๋ทฐ ๋ณ‘๋ชฉ ํ•ด์†Œ์™€ย ์กฐ์ง์˜ ํ™•์žฅ์„ฑ์„ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  PR์€ 200 ~ 300์ค„ ๋‚ด์™ธ๊ฐ€ ๋˜๊ณ  1~2์ผ ์ด๋‚ด์— ๋ฆฌ๋ทฐ๋ฅผ ์™„๋ฃŒํ•˜์—ฌ ๋ฆฌ๋ทฐ์˜ ๋ณ‘๋ชฉ์„ ํ•ด์†Œํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์„œ๋น„์Šค์˜ ์„ฑ์žฅ๊ณผ ํ•จ๊ป˜ iOS ์ฑ•ํ„ฐ์˜ ๊ตฌ์„ฑ์›๋„ 4๋ช…์—์„œ 8๋ช…์œผ๋กœ ๋Š˜์–ด๋‚ฌ๊ณ , ๊ฐœ๋ฐœ๋˜๋Š” ์ฝ”๋“œ์˜ ์–‘(= PR์˜ ์–‘) ๋„ ์ฆ๊ฐ€ํ–ˆ์ง€๋งŒ โ€˜์ž‘์€ PR ๊ทœ์น™โ€™ ์•„๋ž˜ ๋ณ‘๋ชฉ ์—†๋Š” ์„ฑ์žฅ์„ ๊ณ„์† ํ•ด๋‚˜๊ฐ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Pn ๋ฃฐ

  • P1: ๊ผญ ๋ฐ˜์˜ํ•ด์ฃผ์„ธ์š” (Request changes)

    • ๋ฆฌ๋ทฐ์–ด๋Š” PR์˜ ๋‚ด์šฉ์ด ์„œ๋น„์Šค์— ์ค‘๋Œ€ํ•œ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์„ ์ž ์žฌํ•˜๊ณ  ์žˆ๋Š” ๋“ฑ ์ค‘๋Œ€ํ•œ ์ฝ”๋“œ ์ˆ˜์ •์ด ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•˜๋‹ค๊ณ  ํŒ๋‹จ๋˜๋Š” ๊ฒฝ์šฐ, P1 ํƒœ๊ทธ๋ฅผ ํ†ตํ•ด ๋ฆฌ๋ทฐ ์š”์ฒญ์ž์—๊ฒŒ ์ˆ˜์ •์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.
    • ๋ฆฌ๋ทฐ ์š”์ฒญ์ž๋Š” p1 ํƒœ๊ทธ์— ๋Œ€ํ•ด ๋ฆฌ๋ทฐ์–ด์˜ ์š”์ฒญ์„ ๋ฐ˜์˜ํ•˜๊ฑฐ๋‚˜, ๋ฐ˜์˜ํ•  ์ˆ˜ ์—†๋Š” ํ•ฉ๋ฆฌ์ ์ธ ์˜๊ฒฌ์„ ํ†ตํ•ด ๋ฆฌ๋ทฐ์–ด๋ฅผ ์„ค๋“ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • P2: ์ ๊ทน์ ์œผ๋กœ ๊ณ ๋ คํ•ด์ฃผ์„ธ์š” (Request changes)

    • ์ž‘์„ฑ์ž๋Š” P2์— ๋Œ€ํ•ด ์ˆ˜์šฉํ•˜๊ฑฐ๋‚˜ ๋งŒ์•ฝ ์ˆ˜์šฉํ•  ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด ์ ํ•ฉํ•œ ์˜๊ฒฌ์„ ๋“ค์–ด ํ† ๋ก ํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.
  • P3: ์›ฌ๋งŒํ•˜๋ฉด ๋ฐ˜์˜ํ•ด ์ฃผ์„ธ์š” (Comment)

    • ์ž‘์„ฑ์ž๋Š” P3์— ๋Œ€ํ•ด ์ˆ˜์šฉํ•˜๊ฑฐ๋‚˜ ๋งŒ์•ฝ ์ˆ˜์šฉํ•  ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด ๋ฐ˜์˜ํ•  ์ˆ˜ ์—†๋Š” ์ด์œ ๋ฅผ ๋“ค์–ด ์„ค๋ช…ํ•˜๊ฑฐ๋‚˜ ๋‹ค์Œ์— ๋ฐ˜์˜ํ•  ๊ณ„ํš์„ ๋ช…์‹œ์ ์œผ๋กœ(JIRA ํ‹ฐ์ผ“ ๋“ฑ์œผ๋กœ) ํ‘œํ˜„ํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.
    • Request changes ๊ฐ€ ์•„๋‹Œ Comment ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • P4: ๋ฐ˜์˜ํ•ด๋„ ์ข‹๊ณ  ๋„˜์–ด๊ฐ€๋„ ์ข‹์Šต๋‹ˆ๋‹ค (Approve)

    • ์ž‘์„ฑ์ž๋Š” P4์— ๋Œ€ํ•ด์„œ๋Š” ์•„๋ฌด๋Ÿฐ ์˜๊ฒฌ์„ ๋‹ฌ์ง€ ์•Š๊ณ  ๋ฌด์‹œํ•ด๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.
    • ํ•ด๋‹น ์˜๊ฒฌ์„ ๋ฐ˜์˜ํ•˜๋Š” ๊ฒŒ ์ข‹์„์ง€ ๊ณ ๋ฏผํ•ด ๋ณด๋Š” ์ •๋„๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.
  • P5: ๊ทธ๋ƒฅ ์‚ฌ์†Œํ•œ ์˜๊ฒฌ์ž…๋‹ˆ๋‹ค (Approve)

    • ์ž‘์„ฑ์ž๋Š” P5์— ๋Œ€ํ•ด ์•„๋ฌด๋Ÿฐ ์˜๊ฒฌ์„ ๋‹ฌ์ง€ ์•Š๊ณ  ๋ฌด์‹œํ•ด๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

    [์ฝ”๋“œ ๋ฆฌ๋ทฐ in ๋ฑ…ํฌ์ƒ๋Ÿฌ๋“œ ๊ฐœ๋ฐœ ๋ฌธํ™” | ๋ฑ…ํฌ์ƒ๋Ÿฌ๋“œ](https://blog.banksalad.com/tech/banksalad-code-review-culture/)

๐Ÿ“Œ์ปค๋ฐ‹ ๋ฃฐ

[Git Conventionalcommits](https://www.conventionalcommits.org/ko/v1.0.0-beta.4/) ์˜ ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์„ฑ

Type ๋‚ด์šฉ
feat ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
fix ๋ฒ„๊ทธ ์ˆ˜์ • ๋˜๋Š” typo
refactor ๋ฆฌํŒฉํ† ๋ง
design CSS ๋“ฑ ์‚ฌ์šฉ์ž UI ๋””์ž์ธ ๋ณ€๊ฒฝ
comment ํ•„์š”ํ•œ ์ฃผ์„ ์ถ”๊ฐ€ ๋ฐ ๋ณ€๊ฒฝ
style ์ฝ”๋“œ ํฌ๋งทํŒ…, ์„ธ๋ฏธ์ฝœ๋ก  ๋ˆ„๋ฝ, ์ฝ”๋“œ ๋ณ€๊ฒฝ์ด ์—†๋Š” ๊ฒฝ์šฐ
test ํ…Œ์ŠคํŠธ(ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€, ์ˆ˜์ •, ์‚ญ์ œ, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ๋ณ€๊ฒฝ์ด ์—†๋Š” ๊ฒฝ์šฐ)
chore ์œ„์— ๊ฑธ๋ฆฌ์ง€ ์•Š๋Š” ๊ธฐํƒ€ ๋ณ€๊ฒฝ์‚ฌํ•ญ(๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ ์ˆ˜์ •, assets image, ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ๋“ฑ)
init ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ ์ƒ์„ฑ
rename ํŒŒ์ผ ํ˜น์€ ํด๋”๋ช… ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์˜ฎ๊ธฐ๋Š” ๊ฒฝ์šฐ
remove ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๋Š” ์ž‘์—…๋งŒ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ
docs ๋ฌธ์„œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๋Š” ๊ฒฝ์šฐ

์ž‘์„ฑ ์˜ˆ์‹œ : git commit -m 'feat: ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ ์ถ”๊ฐ€"

Fix์ธ ๊ฒฝ์šฐ ์ž‘์„ฑ ์˜ˆ์‹œ : git commit -m 'fix: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ์ˆ˜์ • << ์ œ๋ชฉ

quote> issue #3 ์ˆ˜์ •' << ๋ณธ๋ฌธ์— ์ด์Šˆ ๋ชฉ๋ก ๊ธฐ์ˆ 

๐ŸŽ€ETC

  • UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

    tailwind UI, chakra UI, MUI, MantineUI or ์—†์Œ

    ๋ชฉ์š”์ผ(12/21)์— ์กฐ์‚ฌ ํ›„ ๋‹ค์‹œ ํ† ์˜

    ๊ฒฐ๊ณผ - ํŒ€์› ์ค‘ ์‚ฌ์šฉ๊ฒฝํ—˜์ด ์žˆ๋Š” tailwind UI ์ฑ„ํƒ

  • ํŒŒ์ผ, ํด๋” ํ˜น์€ ํ•จ์ˆ˜์˜ ์ด๋ฆ„์ด ๊ธธ์–ด์งˆ ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ•˜๋Š” ๊ฐ€?

    5์–ด์ ˆ ์ด์ƒ ์‹œ ํ† ์˜

  • ๋ฐ˜์‘ํ˜•

    max-width์˜ ์ œํ•œ์„ ๋‘์–ด์„œ

    ex) [์ง€๊ทธ์žฌ๊ทธ](https://zigzag.kr/home)

    ์™€ ๋น„์Šทํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•œ๋‹ค.

    ex) https://fedc-4-tmi-homers-off.vercel.app/home

    ๋ชจ๋ฐ”์ผ ๋ฐ˜์‘ํ˜•์€ ๊ฑฐ์˜ ์•Œ์•„์„œ ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ถ”์ธกํ•˜๊ณ , ํ˜น์‹œ ์–ด์ƒ‰ํ•œ ๋ถ€๋ถ„์— ํ•œํ•˜์—ฌ๋Š” ์ˆ˜์ •ํ•˜๋„๋ก ํ•œ๋‹ค.

  • ๋‹คํฌ๋ชจ๋“œ

    ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ตฌํ˜„ ์˜ˆ์ •

  • ์ƒํ™œํŒจํ„ด

    ํ‰์ผ 09์‹œ ~ 14์‹œ : ์ฝ”์–ดํƒ€์ž„ ํ•„์ˆ˜ ์ฐธ์—ฌ / ์ด์™ธ ์‹œ๊ฐ„ ๋””์Šค์ฝ”๋“œ ํƒ„๋ ฅ์  ์ฐธ์—ฌ

    ์ฃผ๋ง : ๋””์Šค์ฝ”๋“œ ํƒ„๋ ฅ์  ์ฐธ์—ฌ

    COO ๊น€์„์ฃผ | ์ทจ์นจ : 02์‹œ (์ฃผ๋ง ์ค‘ ํ•˜๋ฃจ ํœด์‹)

    CKO ์‹ ์ˆ˜์˜ | ์ทจ์นจ : 12์‹œ (์ฃผ๋ง ์ค‘ ํ•˜๋ฃจ ํœด์‹)

    CTO ์˜ค์›์ฃผ | ์ทจ์นจ : 02์‹œ (์ˆ˜, ๊ธˆ 21์‹œ ~ 23์‹œ ๊ฒ€๋„)

    CAO ํ™ฉ๋ฏผํ˜ธ | ์ทจ์นจ : 02์‹œ (ํ‰์ผ 14์‹œ ~ 16์‹œ ํ—ฌ์Šค)

  • ๋„ˆ๋ฌด ์˜ค๋žœ์‹œ๊ฐ„ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ๋ชจ๋ฅด๊ฒ ์œผ๋ฉด ์งˆ๋ฌธํ•˜๊ธฐ(๊ถŒ์žฅ 2์‹œ๊ฐ„ ๋‚ด์™ธ ๊ณ ๋ฏผ)

  • ์ฐธ๊ณ ํ• ๋งŒํ•œ ์• ์ž์ผ ๋ฐฉ๋ฒ•๋ก  ํ…œํ”Œ๋ฆฟ

    Calendar

    Roadmap

    Proyectos

    Features

    Sprints

    User stories

    Activity log

    QA / Testing