๐Ÿ“– ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

๐ŸŽ€ Red-Ribbon ๊ณผ ํ•จ๊ป˜ ํ˜„๋ช…ํ•œ ์†Œ๋น„์ƒํ™œ ๐ŸŽ€

๐Ÿ“Œ ์ž์‹ ๋งŒ์˜ ํ•œ๋‹ฌ ์˜ˆ์‚ฐ๊ณผ ๊ณ ์ •์ง€์ถœ์„ ์ •ํ•˜๊ณ  ๋‚˜์˜ ์†Œ๋น„๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป

๐Ÿ“Œ ์ž์‹ ์˜ ์†Œ๋น„์Šต๊ด€์„ ํ™•์ธํ•ด๋ณด์„ธ์š” ๐Ÿ˜Š

ํ˜„๋ช…ํ•œ ์†Œ๋น„ ์Šต๊ด€์„ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์„œ๋น„์Šค, Red-Ribbon์— ์˜ค์‹  ๊ฑธ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค!

๐Ÿ”— ๋ฐฐํฌ ๋งํฌ


๐Ÿ—ฃ๏ธ ํ”„๋กœ์ ํŠธ ๋ฐœํ‘œ ์˜์ƒ & ๋ฐœํ‘œ ๋ฌธ์„œ

๐Ÿ—“๏ธ 2024.04.01 - 2024.04.30


๐Ÿ–ฅ๏ธ ์„œ๋น„์Šค ์†Œ๊ฐœ

ํšŒ์›๊ฐ€์ž… ์ผ๋ฐ˜ ๋กœ๊ทธ์ธ ์†Œ์…œ ๋กœ๊ทธ์ธ 1
แ„’แ…ฌแ„‹แ…ฏแ†ซแ„€แ…กแ„‹แ…ตแ†ธ-5 แ„‹แ…ตแ†ฏแ„‡แ…กแ†ซแ„…แ…ฉแ„€แ…ณแ„‹แ…ตแ†ซ แ„‰แ…ฉแ„‰แ…งแ†ฏแ„…แ…ฉแ„€แ…ณแ„‹แ…ตแ†ซ1
์†Œ์…œ ๋กœ๊ทธ์ธ 2 ์ „์ฒด์˜ˆ์‚ฐ ๋“ฑ๋ก/์ˆ˜์ •/์‚ญ์ œ ๊ณ ์ •์ง€์ถœ ๋“ฑ๋ก/์ˆ˜์ •/์‚ญ์ œ
แ„‰แ…ฉแ„‰แ…งแ†ฏแ„…แ…ฉแ„€แ…ณแ„‹แ…ตแ†ซ2 แ„‹แ…จแ„‰แ…กแ†ซแ„ƒแ…ณแ†ผแ„…แ…ฉแ†จ-แ„‰แ…ฎแ„Œแ…ฅแ†ผ-แ„‰แ…กแ†จแ„Œแ…ฆ แ„€แ…ฉแ„Œแ…ฅแ†ผแ„Œแ…ตแ„Žแ…ฎแ†ฏแ„ƒแ…ณแ†ผแ„…แ…ฉแ†จ-แ„‰แ…ฎแ„Œแ…ฅแ†ผ-แ„‰แ…กแ†จแ„Œแ…ฆ
์ง€์ถœ ๋“ฑ๋ก/์ˆ˜์ •/์‚ญ์ œ ๋ฉ”์ธ ํŽ˜์ด์ง€ 1 ๋ฉ”์ธ ํŽ˜์ด์ง€ 2
แ„Œแ…ตแ„Žแ…ฎแ†ฏแ„ƒแ…ณแ†ผแ„…แ…ฉแ†จ-แ„‰แ…ฎแ„Œแ…ฅแ†ผ-แ„‰แ…กแ†จแ„Œแ…ฆ แ„†แ…ฆแ„‹แ…ตแ†ซแ„‘แ…ฆแ„‹แ…ตแ„Œแ…ต1 แ„†แ…ฆแ„‹แ…ตแ†ซแ„‘แ…ฆแ„‹แ…ตแ„Œแ…ต2
๋ณด๊ณ ์„œ ์กฐํšŒ ํšŒ์›์ •๋ณด ํ”„๋กœํ•„ ์‚ฌ์ง„ ์—…๋กœ๋“œ / ๋กœ๊ทธ์•„์›ƒ ํšŒ์›์ •๋ณด ์ˆ˜์ • ๋ฐ ํšŒ์› ํƒˆํ‡ด
แ„‡แ…ฉแ„€แ…ฉแ„‰แ…ฅ แ„’แ…ฌแ„‹แ…ฏแ†ซแ„Œแ…ฅแ†ผแ„‡แ…ฉ-แ„‘แ…ณแ„…แ…ฉแ„‘แ…ตแ†ฏแ„‰แ…กแ„Œแ…ตแ†ซ-แ„‹แ…ฅแ†ธแ„…แ…ฉแ„ƒแ…ณ-แ„…แ…ฉแ„€แ…ณแ„‹แ…กแ„‹แ…ฎแ†บ แ„’แ…ฌแ„‹แ…ฏแ†ซแ„Œแ…ฅแ†ผแ„‡แ…ฉแ„‰แ…ฎแ„Œแ…ฅแ†ผ-แ„แ…กแ†ฏแ„แ…ฌ

๐Ÿงฐ ์‚ฌ์šฉ ์Šคํƒ

๐Ÿ”ง System Architecture

Red Ribbon Architecture

FE




BE




ํ˜‘์—… ํˆด



๐Ÿ‘ฅ ํŒ€ ๋™๋ฃŒ

FE


@deswaq1220


@jhsonnn


@pparksse1

๋ณ€๊ฒฝ์› ์†์ง€ํ˜• ๋ฐ•์„ธ์›

BE


@SwanyCastle


@ready-oun

๊ณฝ์Šนํ™˜ ์ž„ํฌ์—ฐ

๐Ÿ“‘ ํ”„๋กœ์ ํŠธ ๊ทœ์น™

Branch Strategy

  • main / devlop ๋ธŒ๋žœ์น˜ ๊ธฐ๋ณธ ์ƒ์„ฑ
  • main๊ณผ dev๋กœ ์ง์ ‘ push ์ œํ•œ
  • PR ์ „ ์ตœ์†Œ 1์ธ ์ด์ƒ ์Šน์ธ ํ•„์ˆ˜

Git Convention

  1. ์ ์ ˆํ•œ ์ปค๋ฐ‹ ์ ‘๋‘์‚ฌ ์ž‘์„ฑ
  2. ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ๋‚ด์šฉ ์ž‘์„ฑ
  3. ๋‚ด์šฉ ๋’ค์— ์ด์Šˆ (#์ด์Šˆ ๋ฒˆํ˜ธ)์™€ ๊ฐ™์ด ์ž‘์„ฑํ•˜์—ฌ ์ด์Šˆ ์—ฐ๊ฒฐ
์ ‘๋‘์‚ฌ ์„ค๋ช…
Feat : ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ตฌํ˜„
Add : ์—์…‹ ํŒŒ์ผ ์ถ”๊ฐ€
Fix : ๋ฒ„๊ทธ ์ˆ˜์ •
Docs : ๋ฌธ์„œ ์ถ”๊ฐ€ ๋ฐ ์ˆ˜์ •
Style : ์Šคํƒ€์ผ๋ง ์ž‘์—…
Refactor : ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง (๋™์ž‘ ๋ณ€๊ฒฝ ์—†์Œ)
Test : ํ…Œ์ŠคํŠธ
Deploy : ๋ฐฐํฌ
Conf : ๋นŒ๋“œ, ํ™˜๊ฒฝ ์„ค์ •
Chore : ๊ธฐํƒ€ ์ž‘์—…

Pull Request

Title

  • ์ œ๋ชฉ์€ '[Feat] ํ™ˆ ํŽ˜์ด์ง€ ๊ตฌํ˜„'๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

PR Type

  • FEAT: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ADD : ์—์…‹ ํŒŒ์ผ ์ถ”๊ฐ€
  • FIX: ๋ฒ„๊ทธ ์ˆ˜์ •
  • DOCS: ๋ฌธ์„œ ์ถ”๊ฐ€ ๋ฐ ์ˆ˜์ •
  • STYLE: ํฌ๋งทํŒ… ๋ณ€๊ฒฝ
  • REFACTOR: ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง
  • TEST: ํ…Œ์ŠคํŠธ ๊ด€๋ จ
  • DEPLOY: ๋ฐฐํฌ ๊ด€๋ จ
  • CONF: ๋นŒ๋“œ, ํ™˜๊ฒฝ ์„ค์ •
  • CHORE: ๊ธฐํƒ€ ์ž‘์—…

Description

  • ๊ตฌ์ฒด์ ์ธ ์ž‘์—… ๋‚ด์šฉ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.
  • ์ด๋ฏธ์ง€๋ฅผ ๋ณ„๋„๋กœ ์ฒจ๋ถ€ํ•˜๋ฉด ๋” ์ข‹์Šต๋‹ˆ๋‹ค ๐Ÿ‘

Discussion

  • ์ถ”ํ›„ ๋…ผ์˜ํ•  ์ ์— ๋Œ€ํ•ด ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

Code Convention

BE

  • ํŒจํ‚ค์ง€๋ช… ์ „์ฒด ์†Œ๋ฌธ์ž
  • ํด๋ž˜์Šค๋ช…, ์ธํ„ฐํŽ˜์ด์Šค๋ช… Snake_Case
  • ํด๋ž˜์Šค ์ด๋ฆ„ ๋ช…์‚ฌ ์‚ฌ์šฉ
  • ์ƒ์ˆ˜๋ช… SNAKE_CASE
  • Test ํด๋ž˜์Šค๋Š” ์ ‘๋‘์‚ฌ๋กœ test_ ์‚ฌ์šฉ(ex. test_user_create())

FE

  • styled-Component ๋ณ€์ˆ˜๋ช… S + ๋ณ€์ˆ˜๋ช… (ex. Swrap)
  • styled-Component๋Š” return๋ฌธ ์œ„์— ์ž‘์„ฑ
  • ํฌ๊ฒŒ๋Š” styled-Component, ๊ทธ ์•ˆ์—์„œ className ์‚ฌ์šฉ
  • Event handler ์‚ฌ์šฉ (ex. handle ~)
  • export๋ฐฉ์‹ (ex. export default ~)
  • ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ ์‚ฌ์šฉ

Communication Rules

  • Discord ํ™œ์šฉ
  • ์ •๊ธฐ ํšŒ์˜

๐Ÿ“‹ Documents

๐Ÿ“œ API ๋ช…์„ธ์„œ

๐Ÿ“œ ์š”๊ตฌ์‚ฌํ•ญ ์ •์˜์„œ

๐Ÿ“œ ERD

๐Ÿ“œ ํ…Œ์ด๋ธ” ๋ช…์„ธ์„œ

๐Ÿ“œ ํ™”๋ฉด ์ •์˜์„œ