Skip to content

๐Ÿ“Œ ๋ชจ์ผ ๋•Œ ๋งตํ•€, MOPING - BackEnd

Notifications You must be signed in to change notification settings

Team-pingping/pingping-BE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“Œ ๋ชจ์ผ ๋•Œ ๋งตํ•€, MOPING

https://www.moping.co.kr

๋ชจํ•‘ ๋ฉ”์ธ


๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆย ํŒ€ ์†Œ๊ฐœ

ํŒ€๋ช… : ํ•‘ํ•‘์ด๋“ค

๋ถ„์•ผ ์ด๋ฆ„ ํฌ์ง€์…˜ ๋‚ด์šฉ
๊ธฐํš ๋ฐ•๊ฐ€์€ ๐Ÿ“ˆย PM, ์„œ๋น„์Šค ๊ธฐํš ์œ ์ € ๋ฆฌ์„œ์น˜, ์™€์ด์–ดํ”„๋ ˆ์ž„ ์ž‘์„ฑ, ์„œ๋น„์Šค ์ •์ฑ… ํ™•๋ฆฝ,
๋น„์ฆˆ๋‹ˆ์Šค ๋ชจ๋ธ ๊ตฌ์ถ•
๊ธฐํš ๊น€๊ทœ๋ฆฌ ๐Ÿ“‹ ์„œ๋น„์Šค ๊ธฐํš ์œ ์ € ๋ฆฌ์„œ์น˜, ์™€์ด์–ดํ”„๋ ˆ์ž„ ์ž‘์„ฑ, ์„œ๋น„์Šค ์ •์ฑ… ํ™•๋ฆฝ,
๋น„์ฆˆ๋‹ˆ์Šค ๋ชจ๋ธ ๊ตฌ์ถ•, ์„œ๋น„์Šค ๋งˆ์ผ€ํŒ… ๋ฆฌ๋“œ
๊ธฐํš ์•ˆ์žฌํ˜• ๐Ÿ“Šย ์„œ๋น„์Šค ๊ธฐํš ์œ ์ € ๋ฆฌ์„œ์น˜, ์™€์ด์–ดํ”„๋ ˆ์ž„ ์ž‘์„ฑ, ์„œ๋น„์Šค ์ •์ฑ… ํ™•๋ฆฝ,
๋น„์ฆˆ๋‹ˆ์Šค ๋ชจ๋ธ ๊ตฌ์ถ•, ์„œ๋น„์Šค ๋งˆ์ผ€ํŒ… ๋ฆฌ๋“œ
๋””์ž์ธ ๊น€์œค์„œ ๐ŸŽจ ๋””์ž์ธ ๋ฆฌ๋“œ ux/ui๋””์ž์ธ, gui ๋””์ž์ธ
๋””์ž์ธ ์ด์–ด๋ น ๐ŸŽจ ๋””์ž์ธ ux/ui๋””์ž์ธ, gui ๋””์ž์ธ
๊ฐœ๋ฐœ ์ตœํ˜ธ ๐Ÿ“ฑ ํ”„๋ก ํŠธ์—”๋“œ ๋ฆฌ๋“œ ํ™”๋ฉด UI ๊ตฌํ˜„, API ์—ฐ๋™
๊ฐœ๋ฐœ ์ตœ์„œํฌ ๐Ÿ“ฑ ํ”„๋ก ํŠธ์—”๋“œ ํ™”๋ฉด UI ๊ตฌํ˜„, API ์—ฐ๋™
๊ฐœ๋ฐœ ๋ฌธํฌ์ƒ ๐Ÿ’ป ๋ฐฑ์—”๋“œ ๋ฆฌ๋“œ API ๊ตฌํ˜„, ERD ์„ค๊ณ„, ์„œ๋ฒ„ ๋ฐฐํฌ
๊ฐœ๋ฐœ ์œค์†Œ๋ฏผ ๐Ÿ’ป ๋ฐฑ์—”๋“œ API ๊ตฌํ˜„, ERD ์„ค๊ณ„, ์„œ๋ฒ„ ๋ฐฐํฌ

๐Ÿ“ฑ ์„œ๋น„์Šค ๊ธฐ๋Šฅ

๋ชจํ•‘ ๊ธฐ๋Šฅ1

๋ชจํ•‘ ๊ธฐ๋Šฅ2

๋ชจํ•‘ ๊ธฐ๋Šฅ3

๋ชจํ•‘ ๊ธฐ๋Šฅ4


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

moping API ๋ช…์„ธ์„œ ๋‹ค์šด๋กœ๋“œ


๐Ÿ“ ERD

MySQL

image

MongoDB

image


๐Ÿ—บ๏ธ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜

image


๐Ÿ‘ ๊ณตํ†ต ์‚ฌํ•ญ

  • ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ(service ๋ฉ”์†Œ๋“œ ๋ณ„๋กœ) : Junit ์‚ฌ์šฉ
  • ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์•Œ์•„๋ณด๊ธฐ ์‰ฝ๋„๋ก ์ฃผ์„์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (controller, service ๋ฉ”์„œ๋“œ๋งˆ๋‹ค)
  • issue ์ƒ์„ฑ ๋ฐ PR์„ ํ†ตํ•ด ๋ณธ์ธ์ด ๊ตฌํ˜„ํ•œ ๋ถ€๋ถ„์— ๋Œ€ํ•œ ๊ธฐ๋ก์„ ๋‚จ๊ฒจ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ํ…Œ์ŠคํŠธ ๋ฐ ์›ํ• ํ•œ ์„œ๋ฒ„ ์šด์˜์„ ์œ„ํ•œ ๋กœ๊ทธ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.(์—๋Ÿฌ๋‚˜ ์šด์˜์— ํ•„์š”ํ•œ ๋กœ๊ทธ. ๊ฒ€์ƒ‰์‹œ ๊ฒ€์ƒ‰์–ด์™€ ๊ฐ™์€ ๋กœ๊ทธ)
  • ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋Š” ํ•ญ์ƒ ์ž˜ ๋งŒ๋“ค์–ด๋‘๊ธฐ (code, message, data)
  • ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„ : 9/30 ~ 11/28
  • ์Šคํ”„๋ฆฐํŠธ (3์ผ๊ฐ„๊ฒฉ) ์ง„ํ–‰ (ํ•ด์˜ฌ ๊ฒƒ์„ ์ •ํ•ด์„œ ํ•ด์˜ค๊ธฐ)
    • ์ˆ˜์š”์ผ, ํ† ์š”์ผ

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

  • Language, Framework, Library

    Kotlin Springboot Gradle Spring Data JPA

    • Kotlin์€ ๊ฐ„๊ฒฐํ•˜๊ณ  ์ง๊ด€์ ์ธ ๋ฌธ๋ฒ•์œผ๋กœ ์ฝ”๋“œ ์ƒ์‚ฐ์„ฑ์„ ๋†’์ด๋ฉฐ, Null ์•ˆ์ •์„ฑ์„ ์ œ๊ณตํ•˜์—ฌ ์˜ค๋ฅ˜๋ฅผ ์‚ฌ์ „์— ๋ฐฉ์ง€
    • JPA๋ฅผ ํ†ตํ•ด SQL์„ ์ง์ ‘ ์ž‘์„ฑํ•˜์ง€ ์•Š์•„๋„ ๋˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…์— ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„์„ ์ค„์ด๊ณ , ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๊ตฌํ˜„์— ์ง‘์ค‘ ๊ฐ€๋Šฅ
  • Test

    JUnit MockK

    • JUnit์€ ๊ฐ„๋‹จํ•œ ์–ด๋…ธํ…Œ์ด์…˜ ๊ธฐ๋ฐ˜ ์„ค์ •์œผ๋กœ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ๊ณผ ์‹คํ–‰์„ ์ง๊ด€์ ์ด๊ณ  ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์คŒ
    • MockK๋Š” ์ฝ”ํ‹€๋ฆฐ์— ํŠนํ™”๋œ ๋ชจํ‚น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, ์ฝ”๋ฃจํ‹ด๊ณผ ๊ฐ™์€ ์ฝ”ํ‹€๋ฆฐ ๊ณ ์œ  ๊ธฐ๋Šฅ์„ ์‰ฝ๊ฒŒ ๋ชจํ‚นํ•  ์ˆ˜ ์žˆ์–ด ๋น„๋™๊ธฐ ์ฝ”๋“œ ํ…Œ์ŠคํŠธ์— ๊ฐ•์ ์ด ์žˆ์Œ
  • CICD

    Jenkins Docker

    • Jenkins๋ฅผ ์‚ฌ์šฉํ•œ CI/CD ํŒŒ์ดํ”„๋ผ์ธ์€ ์ž๋™ํ™”๋œ ํ…Œ์ŠคํŠธ, ๋นŒ๋“œ, ๋ฐฐํฌ๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌ
    • Docker๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ปจํ…Œ์ด๋„ˆ๋กœ ํŒจํ‚ค์ง•ํ•˜์—ฌ ์ผ๊ด€๋œ ์‹คํ–‰ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๊ณ , ๋ฐฐํฌ๋ฅผ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์œผ๋กœ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅ
  • Database

    MySQL MongoDB Redis

    • MySQL์€ ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ๊ณผ ํ™•์žฅ์„ฑ์„ ์ œ๊ณตํ•˜๋ฉฐ, ๊ด‘๋ฒ”์œ„ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ง€์›๊ณผ ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์—์„œ์˜ ์•ˆ์ •์„ฑ์„ ๋ณด์žฅ
    • MongoDB๋Š” ์œ ์—ฐํ•œ ์Šคํ‚ค๋งˆ ์„ค๊ณ„๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅํ•˜๊ณ , ๋น ๋ฅธ ์ฟผ๋ฆฌ ์„ฑ๋Šฅ์„ ์ œ๊ณต
    • Redis๋Š” ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋กœ ์ดˆ๊ณ ์† ๋ฐ์ดํ„ฐ ์ ‘๊ทผ๊ณผ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ง€์›
  • API ํ…Œ์ŠคํŠธ, ๋ช…์„ธ์„œ

    Notion Postman Spring REST Docs Swagger

    • RestDocs๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ๋œ ๋ฌธ์„œ๋ฅผ Swagger UI๋กœ ์‹œ๊ฐํ™”ํ•˜์—ฌ, ๊ฐœ๋ฐœ์ž์™€ ๋น„๊ฐœ๋ฐœ์ž ๋ชจ๋‘๊ฐ€ ์‹ค์‹œ๊ฐ„์œผ๋กœ API๋ฅผ ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅ
    • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ๊ณผ ํ•จ๊ป˜ API ๋ฌธ์„œ๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜์–ด, ์‹ค์ œ ์ฝ”๋“œ์™€ ๋ฌธ์„œ์˜ ๋™๊ธฐํ™” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ
    • ํ…Œ์ŠคํŠธ ์‹œ์— ๋ฌธ์„œ๋ฅผ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ์–ด ์‹ ๋ขฐ์„ฑ์„ ๋†’์ž„
  • ๐Ÿ™ ํ˜‘์—… ํˆด

    Slack Notion


๐Ÿค™ ๊ฐœ๋ฐœ๊ทœ์น™

โญ Code Convention


Naming
  • ํŒจํ‚ค์ง€ : ์–ธ๋”์Šค์ฝ”์–ด(_)๋‚˜ ๋Œ€๋ฌธ์ž๋ฅผ ์„ž์ง€ ์•Š๊ณ  ์†Œ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ํด๋ž˜์Šค : ํด๋ž˜์Šค ์ด๋ฆ„์€ ๋ช…์‚ฌ๋‚˜ ๋ช…์‚ฌ์ ˆ๋กœ ์ง€์œผ๋ฉฐ, ๋Œ€๋ฌธ์ž ์นด๋ฉœํ‘œ๊ธฐ๋ฒ•(Upper camel case)์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฉ”์„œ๋“œ : ๋ฉ”์„œ๋“œ ์ด๋ฆ„์€ ๋™์‚ฌ/์ „์น˜์‚ฌ๋กœ ์‹œ์ž‘ํ•˜๋ฉฐ, ์†Œ๋ฌธ์ž ์นด๋ฉœํ‘œ๊ธฐ๋ฒ•(Lower camel case)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜๋„๊ฐ€ ์ „๋‹ฌ๋˜๋„๋ก ์ตœ๋Œ€ํ•œ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณ€์ˆ˜ : ์†Œ๋ฌธ์ž ์นด๋ฉœํ‘œ๊ธฐ๋ฒ•(Lower camel case)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ENUM, ์ƒ์ˆ˜ : ์ƒํƒœ๋ฅผ ๊ฐ€์ง€์ง€ ์•Š๋Š” ์ž๋ฃŒํ˜•์ด๋ฉด์„œ static final๋กœ ์„ ์–ธ๋˜์–ด ์žˆ๋Š” ํ•„๋“œ์ผ ๋•Œ๋ฅผ ์ƒ์ˆ˜๋กœ ๊ฐ„์ฃผํ•˜๋ฉฐ, ๋Œ€๋ฌธ์ž์™€ ์–ธ๋”์Šค์ฝ”์–ด(UPPER_SNAKE_CASE)๋กœ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • DB ํ…Œ์ด๋ธ”: ์†Œ๋ฌธ์ž์™€ ์–ธ๋”์Šค์ฝ”์–ด๋กœ(lower_snake_case) ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ์ปฌ๋ ‰์…˜(Collection): ๋ณต์ˆ˜ํ˜•์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์ปฌ๋ ‰์…˜์„ ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค. (Ex. userList, users, userMap)
  • LocalDateTime: ์ ‘๋ฏธ์‚ฌ์— *Time**๋ฅผ ๋ถ™์ž…๋‹ˆ๋‹ค.
Comment

1. ํ•œ์ค„ ์ฃผ์„์€ // ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

// ํ•˜์ด~

2. ํ•œ์ค„ ์ฃผ์„ ์™ธ์— ์„ค๋ช…์„ ์œ„ํ•œ ์ฃผ์„์€ JavaDoc์„ ์‚ฌ์šฉํ•œ๋‹ค.

/**
 * ๋‘ ์ •์ˆ˜๋ฅผ ๋”ํ•ฉ๋‹ˆ๋‹ค.
 *
 * <p>์ด ๋ฉ”์†Œ๋“œ๋Š” ๋‘ ๊ฐœ์˜ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๊ทธ ํ•ฉ๊ณ„๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.</p>
 *
 * @param a ์ฒซ ๋ฒˆ์งธ ์ •์ˆ˜
 * @param b ๋‘ ๋ฒˆ์งธ ์ •์ˆ˜
 * @return ๋‘ ์ •์ˆ˜์˜ ํ•ฉ
 * @throws ArithmeticException ๋งŒ์•ฝ ๊ณ„์‚ฐ ์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด
 */
Import

1. ์†Œ์ŠคํŒŒ์ผ๋‹น 1๊ฐœ์˜ ํƒ‘๋ ˆ๋ฒจ ํด๋ž˜์Šค๋ฅผ ๋‹ด๊ธฐ

ํƒ‘๋ ˆ๋ฒจ ํด๋ž˜์Šค(Top level class)๋Š” ์†Œ์Šค ํŒŒ์ผ์— 1๊ฐœ๋งŒ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค. ( ํƒ‘๋ ˆ๋ฒจ ํด๋ž˜์Šค ์„ ์–ธ์˜ ์ปดํŒŒ์ผํƒ€์ž„ ์—๋Ÿฌ ์ฒดํฌ์— ๋Œ€ํ•ด์„œ๋Š” Java Language Specification 7.6 ์ฐธ์กฐ )

2. static import์—๋งŒ ์™€์ผ๋“œ ์นด๋“œ ํ—ˆ์šฉ

ํด๋ž˜์Šค๋ฅผ importํ• ๋•Œ๋Š” ์™€์ผ๋“œ์นด๋“œ(*) ์—†์ด ๋ชจ๋“  ํด๋ž˜์Šค๋ช…์„ ๋‹ค ์“ด๋‹ค. static import์—์„œ๋Š” ์™€์ผ๋“œ์นด๋“œ๋ฅผ ํ—ˆ์šฉํ•œ๋‹ค.

3. ์• ๋„ˆํ…Œ์ด์…˜ ์„ ์–ธ ํ›„ ์ƒˆ์ค„ ์‚ฌ์šฉ

ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค, ๋ฉ”์„œ๋“œ, ์ƒ์„ฑ์ž์— ๋ถ™๋Š” ์• ๋„ˆํ…Œ์ด์…˜์€ ์„ ์–ธ ํ›„ ์ƒˆ์ค„์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ด ์œ„์น˜์—์„œ๋„ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์—†๋Š” ์• ๋„ˆํ…Œ์ด์…˜ 1๊ฐœ๋Š” ๊ฐ™์€ ์ค„์— ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋‹ค.

4. ๋ฐฐ์—ด์—์„œ ๋Œ€๊ด„ํ˜ธ๋Š” ํƒ€์ž… ๋’ค์— ์„ ์–ธ

๋ฐฐ์—ด ์„ ์–ธ์— ์˜ค๋Š” ๋Œ€๊ด„ํ˜ธ([])๋Š” ํƒ€์ž…์˜ ๋ฐ”๋กœ ๋’ค์— ๋ถ™์ธ๋‹ค. ๋ณ€์ˆ˜๋ช… ๋’ค์— ๋ถ™์ด์ง€ ์•Š๋Š”๋‹ค.

5. longํ˜• ๊ฐ’์˜ ๋งˆ์ง€๋ง‰์— L๋ถ™์ด๊ธฐ

longํ˜•์˜ ์ˆซ์ž์—๋Š” ๋งˆ์ง€๋ง‰์— ๋Œ€๋ฌธ์ž 'Lโ€™์„ ๋ถ™์ธ๋‹ค. ์†Œ๋ฌธ์ž 'lโ€™๋ณด๋‹ค ์ˆซ์ž '1โ€™๊ณผ์˜ ์ฐจ์ด๊ฐ€ ์ปค์„œ ๊ฐ€๋…์„ฑ์ด ๋†’์•„์ง„๋‹ค.

URL

URL

URL์€ RESTful API ์„ค๊ณ„ ๊ฐ€์ด๋“œ์— ๋”ฐ๋ผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • HTTP Method๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋Š” get, put ๋“ฑ์˜ ํ–‰์œ„๋Š” url์— ํ‘œํ˜„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋งˆ์ง€๋ง‰์— / ๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • _ ๋Œ€์‹  ``๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์†Œ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ํ™•์žฅ์ž๋Š” ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

โ˜€๏ธ Commit Convention


Rules

1. Git Flow

์ž‘์—… ์‹œ์ž‘ ์‹œ ์„ ํ–‰๋˜์–ด์•ผ ํ•  ์ž‘์—…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

issue๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.feature branch๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.add โ†’ commit โ†’ push โ†’ pull request ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.pull request๋ฅผ develop branch๋กœ merge ํ•ฉ๋‹ˆ๋‹ค.์ด์ „์— merge๋œ ์ž‘์—…์ด ์žˆ์„ ๊ฒฝ์šฐ ๋‹ค๋ฅธ branch์—์„œ ์ง„ํ–‰ํ•˜๋˜ ์ž‘์—…์— merge๋œ ์ž‘์—…์„ pull ๋ฐ›์•„์˜ต๋‹ˆ๋‹ค.์ข…๋ฃŒ๋œ issue์™€ pull request์˜ label์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

2. IntelliJ

IntelliJ๋กœ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ, ์ž‘์—… ์‹œ์ž‘ ์‹œ ์„ ํ–‰๋˜์–ด์•ผ ํ•  ์ž‘์—…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊นƒํ—ˆ๋ธŒ ํ”„๋กœ์ ํŠธ ์ €์žฅ์†Œ์—์„œ issue๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.์ƒ์„ฑํ•œ issue ๋ฒˆํ˜ธ์— ๋งž๋Š” feature branch๋ฅผ ์ƒ์„ฑํ•จ๊ณผ ๋™์‹œ์— feature branch๋กœ checkout ํ•ฉ๋‹ˆ๋‹ค.feature branch์—์„œ issue ๋‹จ์œ„ ์ž‘์—…์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.์ž‘์—… ์™„๋ฃŒ ํ›„, add โ†’ commit์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.remote develop branch์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด pull ๋ฐ›์€ ์ดํ›„ push๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.๋งŒ์•ฝ ์ฝ”๋“œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜์˜€๋‹ค๋ฉด, IntelliJ์—์„œ ์ฝ”๋“œ ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•˜๊ณ  add โ†’ commit์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.push โ†’ pull request (feature branch โ†’ develop branch) ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.pull request๊ฐ€ ์ž‘์„ฑ๋˜๋ฉด ์ž‘์„ฑ์ž ์ด์™ธ์˜ ๋‹ค๋ฅธ ํŒ€์›์ด code review๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.์ตœ์†Œ ํ•œ ๋ช… ์ด์ƒ์˜ ํŒ€์›์—๊ฒŒ code review์™€ approve๋ฅผ ๋ฐ›์€ ๊ฒฝ์šฐ pull request ์ƒ์„ฑ์ž๊ฐ€ merge๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.์ข…๋ฃŒ๋œ issue์™€ pull request์˜ label๊ณผ milestone์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

3. Etc

์ค€์ˆ˜ํ•ด์•ผ ํ•  ๊ทœ์น™์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

develop branch์—์„œ์˜ ์ž‘์—…์€ ์›์น™์ ์œผ๋กœ ๊ธˆ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ, README ์ž‘์„ฑ์€ develop branch์—์„œ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.commit, push, merge, pull request ๋“ฑ ๋ชจ๋“  ์ž‘์—…์€ ์˜ค๋ฅ˜ ์—†์ด ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ์ง€ ํ™•์ธ ํ›„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Branch

1. Branch

branch๋Š” ์ž‘์—… ๋‹จ์œ„ & ๊ธฐ๋Šฅ ๋‹จ์œ„๋กœ ์ƒ์„ฑ๋œ issue๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

2. Branch Naming Rule

branch๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์ „ issue๋ฅผ ๋จผ์ € ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. issue ์ž‘์„ฑ ํ›„ ์ƒ์„ฑ๋˜๋Š” ๋ฒˆํ˜ธ์™€ domain ๋ช…์„ ์กฐํ•ฉํ•˜์—ฌ branch์˜ ์ด๋ฆ„์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.ย <Prefix>/<Issue_Number>-<Domain>ย ์˜ ์–‘์‹์„ ์ค€์ˆ˜ํ•ฉ๋‹ˆ๋‹ค.

3. Prefix

  • mainย : ๊ฐœ๋ฐœ์ด ์™„๋ฃŒ๋œ ์‚ฐ์ถœ๋ฌผ์ด ์ €์žฅ๋  ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค.
  • develop: feature branch์—์„œ ๊ตฌํ˜„๋œ ๊ธฐ๋Šฅ๋“ค์ด merge๋  default branch ์ž…๋‹ˆ๋‹ค.
  • feature: ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๋Š” branch ์ž…๋‹ˆ๋‹ค. ์ด์Šˆ ๋ณ„ & ์ž‘์—… ๋ณ„๋กœ branch๋ฅผ ์ƒ์„ฑ ํ›„ ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๋ฉฐ naming์€ ์†Œ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

4. Domain

  • user, map, (error, config)

5. Etc

  • feature/7-user, feature/5-config
Issue

1. Issue

์ž‘์—… ์‹œ์ž‘ ์ „ issue ์ƒ์„ฑ์ด ์„ ํ–‰๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. issue ๋Š” ์ž‘์—… ๋‹จ์œ„ & ๊ธฐ๋Šฅ ๋‹จ์œ„๋กœ ์ƒ์„ฑํ•˜๋ฉฐ ์ƒ์„ฑ ํ›„ ํ‘œ์‹œ๋˜๋Š” issue number ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ branch ์ด๋ฆ„๊ณผ commit message๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

issue ์ œ๋ชฉ์—๋Š” ๊ธฐ๋Šฅ์˜ ๋Œ€ํ‘œ์ ์ธ ์„ค๋ช…์„ ์ ๊ณ  ๋‚ด์šฉ์—๋Š” ์„ธ๋ถ€์ ์ธ ๋‚ด์šฉ ๋ฐ ์ž‘์—… ์ง„ํ–‰ ์ƒํ™ฉ์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

issue ์ƒ์„ฑ ์‹œ github ์˜ค๋ฅธํŽธ์˜ assignee, label์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. assignee๋Š” ํ•ด๋‹น issue ๋‹ด๋‹น์ž, label์€ ์ž‘์—… ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

2. Issue Naming Rule

[<Prefix>] <Description>ย ์˜ ์–‘์‹์„ ์ค€์ˆ˜ํ•˜๋˜, prefix๋Š” commit message convention์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

3. Etc

[feat] ์•ฝ์† ์žก๊ธฐ API ๊ตฌํ˜„
[chore] spring data JPA ์˜์กด์„ฑ ์ถ”๊ฐ€
Commit

1. Commit Message Convention

[<Prefix>] #<Issue_Number> <Description>ย ์˜ ์–‘์‹์„ ์ค€์ˆ˜ํ•ฉ๋‹ˆ๋‹ค.

  • featย : ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ตฌํ˜„ย [feat] #11 ๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ API ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • fixย : ์ฝ”๋“œ ์˜ค๋ฅ˜ ์ˆ˜์ •ย [fix] #10 ํšŒ์›๊ฐ€์ž… ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์˜ค๋ฅ˜ ์ˆ˜์ •
  • delย : ์“ธ๋ชจ์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œย [del] #12 ๋ถˆํ•„์š”ํ•œ import ์ œ๊ฑฐ
  • docsย : README๋‚˜ wiki ๋“ฑ์˜ ๋ฌธ์„œ ๊ฐœ์ •ย [docs] #14 ๋ฆฌ๋“œ๋ฏธ ์ˆ˜์ •
  • refactorย : ๋‚ด๋ถ€ ๋กœ์ง์€ ๋ณ€๊ฒฝ ํ•˜์ง€ ์•Š๊ณ  ๊ธฐ์กด์˜ ์ฝ”๋“œ๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๋ฆฌํŒฉํ„ฐ๋งย [refactor] #15 ์ฝ”๋“œ ๋กœ์ง ๊ฐœ์„ 
  • choreย : ์˜์กด์„ฑ ์ถ”๊ฐ€, yml ์ถ”๊ฐ€์™€ ์ˆ˜์ •, ํŒจํ‚ค์ง€ ๊ตฌ์กฐ ๋ณ€๊ฒฝ, ํŒŒ์ผ ์ด๋™ [chore] #21 yml ์ˆ˜์ •, [chore] #22 lombok ์˜์กด์„ฑ ์ถ”๊ฐ€
  • test: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ, ์ˆ˜์ • [test] #20 ๋กœ๊ทธ์ธ API ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
  • style : ์ฝ”๋“œ์— ๊ด€๋ จ ์—†๋Š” ์ฃผ์„ ๋‹ฌ๊ธฐ, ์ค„๋ฐ”๊ฟˆ
  • rename : ํŒŒ์ผ ๋ฐ ํด๋”๋ช… ์ˆ˜์ •
Pull Request

1. Pull Request

develop & main branch๋กœ mergeํ•  ๋•Œ์—๋Š” pull request๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. pull request์˜ ๋‚ด์šฉ์—๋Š” ๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค.

2. Pull Request Naming Rule

[<Prefix>] <Description>ย ์˜ ์–‘์‹์„ ์ค€์ˆ˜ํ•˜๋˜, prefix๋Š” commit message convention์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

3. Etc

[feat] ์•ฝ์† ์žก๊ธฐ API ๊ตฌํ˜„
[chore] spring data JPA ์˜์กด์„ฑ ์ถ”๊ฐ€

About

๐Ÿ“Œ ๋ชจ์ผ ๋•Œ ๋งตํ•€, MOPING - BackEnd

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages