choiyoungkwon12 / Team_BbungCles_Devnity_BE

[7์กฐ] ๐Ÿ•Š ๋ฐ๋ธŒ์ฝ”์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ Devnity ๋ฐฑ์—”๋“œ

Home Page:https://devnity.xyz

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool





๋ฐ๋ธŒ์ฝ”์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ ํ”Œ๋žซํผ 'Devnity' ๋ฐฑ์—”๋“œ

๐Ÿ”— ํ”„๋กœ์ ํŠธ ๊ด€๋ จ ๋งํฌ

๋ฐฐํฌ ์‚ฌ์ดํŠธ ๋งํฌ (์„œ๋ฒ„์ค‘๋‹จ) : https://devnity.xyz


๐Ÿ™‰ ํŒ€ ์†Œ๊ฐœ

Jerry Hanjo Mark Dave
์•Œ๊ณ ๋ฆฌ์ฆ˜๋งจ ๋ฐ๋ธŒ์˜ต์Šค๋งจ ๊ฐ์ฒด์ง€ํ–ฅ๋งจ ๋ฆฌ๋ทฐ์–ด
๋ฐฑ์—”๋“œ๋Š” ์ด๋ ‡๊ฒŒ ํ˜‘์—…ํ•ด์š”!

๋ธŒ๋žœ์น˜ ์ „๋žต

  • Git Flow ์ „๋žต์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ์กด Git Flow ์ „๋žต์„ ๊ฐ„์†Œํ™”ํ•ด 4๊ฐ€์ง€ ๋ธŒ๋žœ์น˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • main : ์ตœ์ข… ๋ฐฐํฌ ์„œ๋ฒ„ ๋ธŒ๋žœ์น˜
    • develop : ๊ฐœ๋ฐœ ์„œ๋ฒ„ ๋ธŒ๋žœ์น˜
    • feature : ๊ธฐ๋Šฅ ๊ตฌํ˜„ ๋ธŒ๋žœ์น˜
    • hotfix : ํ•ซํ”ฝ์Šค ๋ธŒ๋žœ์น˜
  • 1Task == 1Issue == 1PR ๊ทœ์น™์„ ๋”ฐ๋ž์Šต๋‹ˆ๋‹ค.

์ฆ‰๊ฐ ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜

  • ์ €ํฌ๋Š” ์ฝ”๋“œ ํ’ˆ์งˆ๊ณผ ์ปจ๋ฒค์…˜ ํ†ต์ผ์„ ์œ„ํ•ด ์ง€์†์ ์ธ ์ฝ”๋“œ๋ฆฌ๋ทฐ๋ฅผ ์ง€ํ–ฅํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • PR์ด ์ƒ์„ฑ๋˜๋ฉด ๋ˆ„๊ตฐ๊ฐ€ ํ•œ๋ช…์ด ์ฝ”๋“œ๋ฆฌ๋ทฐ๋ฅผ ์ž‘์„ฑํ•ด์•ผ๋งŒ merge๊ฐ€ ์Šน์ธ๋ฉ๋‹ˆ๋‹ค.

์ดˆ๋‹จ๊ธฐ ์Šคํ”„๋ฆฐํŠธ

  • 2์ฃผ๊ฐ„ ์ด 4๋ฒˆ์˜ ์ดˆ๋‹จ๊ธฐ ์Šคํ”„๋ฆฐํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. (3~4์ผ ๊ฐ„๊ฒฉ)
  • ์Šคํ”„๋ฆฐํŠธ ์‹œ์ž‘ ์ „ ์ž‘์—…ํ•  ํƒœ์Šคํฌ๋ฅผ ๋ชจ๋‘ Issue๋กœ ๋“ฑ๋กํ•œ ํ›„, Milestone์„ ์„ค์ •ํ•˜์—ฌ ์ง„ํ–‰ ๋ชฉํ‘œ๋ฅผ ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. (์ฐธ๊ณ )
  • ์Šคํ”„๋ฆฐํŠธ ๊ธฐ๊ฐ„์—” Github์˜ Project ์นธ๋ฐ˜๋ณด๋“œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ฐœ์ธ ํƒœ์Šคํฌ ์ง„ํ–‰ํ˜„ํ™ฉ์„ ๊ณต์œ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. (์ฐธ๊ณ )
  • ์Šคํ”„๋ฆฐํŠธ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ๊ฐ„๋‹จ ํšŒ๊ณ ๋ก์„ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. (์ฐธ๊ณ )


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

Devnity๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค ์ˆ˜๊ฐ•์ƒ์„ ์œ„ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.

๋ฐ๋ธŒ์ฝ”์Šค 1๊ธฐ ๋ฐฑ์—”๋“œ์™€ ํ”„๋ก ํŠธ์—”๋“œ ์ˆ˜๊ฐ•์ƒ๋“ค๊ฐ„ ์†Œํ†ต์˜ ๋ถˆํŽธํ•จ์„ ํ•ด์†Œํ•˜๊ณ ์ž ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค.

๋ฐ๋ธŒ์ฝ”์Šค ๊ณผ์ • ์ดˆ๋ฐ˜์— ํ™œ์šฉ๋  ์ž๊ธฐ์†Œ๊ฐœ๋ฅผ ์ ๋Š” ๊ธฐ๋Šฅ๊ณผ, ๊ฐ ์ˆ˜๊ฐ•์ƒ์˜ ์œ„์น˜๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ๋งต API๋ฅผ ํ™œ์šฉํ•œ ๋ชจ๊ฐ์ฝ” ๋ชจ์ง‘, ์Šคํ„ฐ๋””๋‚˜ ๋™์•„๋ฆฌ, ํ† ์ดํ”„๋กœ์ ํŠธ๋ฅผ ๋ชจ์ง‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ”Ž ๊ธฐ๋Šฅ ์†Œ๊ฐœ

ํ•ญ๋ชฉ์„ ํด๋ฆญํ•˜์—ฌ ์ž์„ธํžˆ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๊ด€๋ฆฌ์ž
SRDT6VqQmL
์ดˆ๋Œ€ ๋งํฌ ์ƒ์„ฑ
  • ๋ฐ๋ธŒ์ฝ”์Šค ์ˆ˜๊ฐ•์ƒ๋งŒ์ด ํšŒ์›๊ฐ€์ž…์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ•˜๋ฏ€๋กœ, ๊ด€๋ฆฌ์ž๋Š” ์ดˆ๋Œ€๋งํฌ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ ์ดˆ๋Œ€๋งํฌ๋Š” ์œ ์ผํ•˜๋ฉฐ ๋งŒ๋ฃŒ ๊ธฐ๊ฐ„์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋งŒ๋ฃŒ๋œ ์ดˆ๋Œ€๋งํฌ๋Š” ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ํ†ตํ•ด DB์—์„œ ์ž๋™ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.

ํšŒ์›๊ฐ€์ž… & ๋กœ๊ทธ์ธ
M2EiDp36Bv
ํšŒ์›๊ฐ€์ž…
  • ์ „๋‹ฌ๋ฐ›์€ ์ดˆ๋Œ€๋งํฌ๋ฅผ ํ†ตํ•ด ์œ ํšจ์„ฑ ๊ฒ€์ฆ ํ›„ ํšŒ์›๊ฐ€์ž…์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ์ดˆ๋Œ€๋งํฌ์— ๋”ฐ๋ผ ์ฝ”์Šค, ๊ธฐ์ˆ˜, ์—ญํ• ์€ ๋ฏธ๋ฆฌ ์ •ํ•ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

xkKTJI1Giy
๋กœ๊ทธ์ธ
  • ์ด๋ฉ”์ผ๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค.
  • ์ธ์ฆ๋ฐฉ์‹์€ JWT ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ฉ”์ธํŽ˜์ด์ง€ & ๋งˆ์ดํŽ˜์ด์ง€
0Tt10VgqYP
๋ฉ”์ธํŽ˜์ด์ง€
  • ๋ฉ”์ธํŽ˜์ด์ง€์—์„œ๋Š” ๊ฐ ์„œ๋น„์Šค์˜ ์š”์•ฝ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

k7fpZihp7y
๋งˆ์ดํŽ˜์ด์ง€ - ํ”„๋กœํ•„ ์„ค์ •
  • ์ž์‹ ์— ๋Œ€ํ•œ ์ •๋ณด์™€ ์ž๊ธฐ์†Œ๊ฐœ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ๋งˆํฌ๋‹ค์šด์„ ์ง€์›ํ•˜๋ฉฐ, ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ž์‹ ์˜ ์œ„์น˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

BL99WziLkp
๋งˆ์ดํŽ˜์ด์ง€ - ๋‚ด ๋ชจ์ž„ ๊ด€๋ฆฌ
  • ๋‚ด๊ฐ€ ์‹ ์ฒญํ•œ ๋ชจ์ž„๊ณผ ๋“ฑ๋กํ•œ ๋ชจ์ž„์„ ๋ชจ์•„๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ๋‘ฅ์ด ์†Œ๊ฐœ
IyXi7G1a61
๊ฒ€์ƒ‰ ๋ฐ ํ•„ํ„ฐ๋ง
  • ์‚ฌ์šฉ์ž์˜ ์ด๋ฆ„์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ฝ”์Šค, ๊ธฐ์ˆ˜, ์—ญํ• ๋ณ„ ํ•„ํ„ฐ๋ง์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฌดํ•œ์Šคํฌ๋กค์„ ์ง€์›ํ•˜๋ฉฐ, ์ปค์„œ ํŽ˜์ด์ง•์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

6yUtm7HkHU
์กฐํšŒ
  • ํŠน์ • ์‚ฌ์šฉ์ž์—๊ฒŒ ์ข‹์•„์š”๋ฅผ ๋ˆ„๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋Œ“๊ธ€ ๋ฐ ๋Œ€๋Œ“๊ธ€์„ ์ž‘์„ฑ, ์ˆ˜์ •, ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ๋‘ฅ์—ฌ์ง€๋„
oJpkLSgIl2
์กฐํšŒ ๋ฐ ํ•„ํ„ฐ๋ง
  • ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ๋“ฑ๋กํ•œ ์œ„์น˜๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ฝ”์Šค, ๊ธฐ์ˆ˜๋ณ„ ํ•„ํ„ฐ๋ง์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋ชจ์ง‘ ๊ฒŒ์‹œํŒ
Eu8MCuutzo
๊ฒ€์ƒ‰ ๋ฐ ํ•„ํ„ฐ๋ง
  • ๊ฒŒ์‹œ๊ธ€ ์ œ๋ชฉ์œผ๋กœ ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ์ด ์„ธ๊ฐ€์ง€(์Šคํ„ฐ๋””, ๋™์•„๋ฆฌ, ํ”„๋กœ์ ํŠธ) ์นดํ…Œ๊ณ ๋ฆฌ๊ฐ€ ์กด์žฌํ•˜๋ฉฐ, ๊ฐ ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„๋กœ ๊ฒŒ์‹œ๊ธ€์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ชจ์ง‘์ค‘์ธ ๊ฒŒ์‹œ๊ธ€์ด ์ตœ์ƒ๋‹จ์— ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฌดํ•œ์Šคํฌ๋กค์„ ์ง€์›ํ•˜๋ฉฐ, ์ปค์„œ ํŽ˜์ด์ง•์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

UYAMFlfXlw
๋ชจ์ง‘ ๋“ฑ๋ก
  • ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ์„ ํƒํ•˜์—ฌ ๋ชจ์ง‘ ๊ฒŒ์‹œ๊ธ€์„ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋“ฑ๋ก์‹œ Slack์œผ๋กœ ๋ชจ์ง‘ ํ™๋ณด ์•Œ๋žŒ์ด ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
  • ๋งˆ๊ฐ๋‚ ์งœ๊ฐ€ ์ง€๋‚œ ๋ชจ์ง‘์€ ์ž๋™์œผ๋กœ ๋งˆ๊ฐ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

tAqmdjhTWd
์ƒ์„ธ์กฐํšŒ ๋ฐ ์‹ ์ฒญ
  • ๋ชจ์ง‘์ค‘์ธ ์ƒํƒœ์˜ ๊ฒŒ์‹œ๊ธ€์— ์‹ ์ฒญ,์ทจ์†Œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ธ์›์ด ๊ฐ€๋“ ์ฐจ๊ฑฐ๋‚˜, ๋“ฑ๋ก์ž๊ฐ€ ๋งˆ๊ฐํ•˜๋Š” ๊ฒฝ์šฐ ์‹ ์ฒญํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • ๋Œ“๊ธ€ ๋ฐ ๋Œ€๋Œ“๊ธ€์„ ์ž‘์„ฑ, ์ˆ˜์ •, ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งต๊ฐ์ฝ”
nd3SZqVnyz
๊ฒ€์ƒ‰ ๋ฐ ํ•„ํ„ฐ๋ง
  • ํŠน์ • ์ฃผ์†Œ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์šฐ์ธก ์ƒ๋‹จ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๋‚˜์˜ ์œ„์น˜๋กœ ํ™”๋ฉด์„ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์˜ ์œ„์น˜ ๋…ธ์ถœ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ง„ํ–‰์ค‘์ธ ๋งต๊ฐ์ฝ” ๋…ธ์ถœ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ง์ ‘ ๊ตฌํ˜„ํ•œ ์ขŒํ‘œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž์˜ ํ™”๋ฉด ๋ฒ”์œ„์— ํฌํ•จ๋œ ๋ฐ์ดํ„ฐ๋งŒ ์š”์ฒญ๋ฉ๋‹ˆ๋‹ค.

FFgf8x4zWt
๋“ฑ๋ก
  • ์œ„์น˜๋ฅผ ์„ ์ •ํ•˜๊ณ  ๋งต๊ฐ์ฝ”๋ฅผ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.
  • ๋งˆ๊ฐ๋‚ ์งœ๊ฐ€ ์ง€๋‚œ ๋งต๊ฐ์ฝ”์€ ์ž๋™์œผ๋กœ ๋งˆ๊ฐ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

GfDjJwKdPS
์ƒ์„ธ์กฐํšŒ ๋ฐ ์‹ ์ฒญ
  • ํ•ด๋‹น ๋งต๊ฐ์ฝ” ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ•ด๋‹น ๋งต๊ฐ์ฝ”์— ์‹ ์ฒญ,์ทจ์†Œ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ์ธ์›์ด ๊ฐ€๋“์ฐจ๊ฑฐ๋‚˜, ๋“ฑ๋ก์ž๊ฐ€ ๋งˆ๊ฐํ•œ ๊ฒฝ์šฐ ์‹ ์ฒญํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.


๐Ÿ“œ ๊ธฐ์ˆ ์Šคํƒ

Spring

  • Java 11
  • Gradle 7.2
  • Spring Boot 2.6.0
  • Spring Data JPA, QueryDSL
  • Spring Security, jwt
  • JUnti5, RestDocs, JACOCO

Database

  • H2
  • MySQL 5.7

DevOps

  • AWS - EC2 / RDS / S3 / CloudFront
  • Github Actions
  • Nginx
  • Docker, docker-compose
  • Slack, Codecov

โš™ ์•„ํ‚คํ…์ฒ˜

  • JACOCO + Codecov๋ฅผ ์‚ฌ์šฉํ•ด PR์„ ์ƒ์„ฑํ•  ๋•Œ๋งˆ๋‹ค ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ์ธก์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐœ๋ฐœ์„œ๋ฒ„์™€ ๋ฐฐํฌ์„œ๋ฒ„๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ์ตœ์ข… ๋ฐฐํฌ ์ „ ๊ธฐ๋Šฅ ๊ฒ€์ฆ๊ณผ locust๋ฅผ ํ†ตํ•ด ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ํ˜‘์—…์‹œ ๊ฐœ๋ฐœ์„œ๋ฒ„์—์„œ๋Š” ๋ฐ˜๋“œ์‹œ RestDocs๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ํ”„๋ก ํŠธ์—”๋“œ์—๊ฒŒ ๊ฒ€์ฆ๋œ API ๋ช…์„ธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • nginx์™€ docker-compose๋ฅผ ์‚ฌ์šฉํ•œ blue-green ๋ฐฉ์‹์œผ๋กœ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • CloudFront๋ฅผ ์‚ฌ์šฉํ•ด ์ •์  ๋ฆฌ์†Œ์Šค ์ œ๊ณต์‹œ ์บ์‹ฑ๊ณผ HTTP/2๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ERD

dd


About

[7์กฐ] ๐Ÿ•Š ๋ฐ๋ธŒ์ฝ”์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ Devnity ๋ฐฑ์—”๋“œ

https://devnity.xyz


Languages

Language:Java 99.7%Language:Shell 0.3%Language:Dockerfile 0.0%