Code Monkey home page Code Monkey logo

mitamin_be's Introduction

๋งˆ์Œ ๋ฉด์—ญ๋ ฅ์„ ํ‚ค์šฐ๋Š” ๋ฉ˜ํƒˆ์ผ€์–ด ์„œ๋น„์Šค, ๋งˆ์ดํƒ€๋ฏผ

image

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

"์•„ํ”ˆ ์ƒ์ฒ˜์—๋„ ์‰ฝ๊ฒŒ ๋ฌด๋„ˆ์ง€์ง€ ์•Š๋„๋ก", ๋งˆ์Œ์—๋„ ๋ฉด์—ญ๋ ฅ์ด ํ•„์š”ํ•˜๋‹ค๋Š” ์‚ฌ์‹ค, ์•Œ๊ณ  ๊ณ„์‹ ๊ฐ€์š”? ๋งˆ์ดํƒ€๋ฏผ์€ ๋งค์ผ๋งค์ผ ๊พธ์ค€ํžˆ ์ฑ™๊ฒจ ๋จน๋Š” ๋น„ํƒ€๋ฏผ ๊ฐ™์€ ์„œ๋น„์Šค๊ฐ€ ๋˜์–ด ์—ฌ๋Ÿฌ๋ถ„์˜ ๋งˆ์Œ ๋ฉด์—ญ๋ ฅ์„ ํ‚ค์šฐ๋Š”๋ฐ ๋„์›€์ด ๋˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.


ํ•ต์‹ฌ ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ํ•˜๋ฃจ์— โ€˜ํ•œ ๋ฒˆ๋งŒโ€™ ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ๋Š” ๋งˆ์Œ ๊ด€๋ฆฌ ๋ฃจํ‹ด (์ˆจ ๊ณ ๋ฅด๊ธฐ โ†’ ๊ฐ๊ฐ ๊นจ์šฐ๊ธฐ โ†’ ํ•˜๋ฃจ ์ง„๋‹จ โ†’ ์นญ์ฐฌ ์ฒ˜๋ฐฉ)
  2. ์›”๊ฐ„/์ฃผ๊ฐ„ ๊ฐ์ • ๋žญํ‚น ๋ฐ ์กฐ๊ฑด์— ๋”ฐ๋ฅธ ํ†ต๊ณ„ ๊ธฐ๋ก ์กฐํšŒ
  3. ํ•œ ๋‹ฌ์— ํ•œ ๋ฒˆ ๋‚˜๋ฅผ ์œ„ํ•œ ํ–‰๋™์„ ํ•œ ํ›„, ์ด๋ฏธ์ง€์™€ ํ•จ๊ป˜ ๊ธฐ๋กํ•˜๋Š” ๋ฐ์ด๋…ธํŠธ



๐Ÿ”— Download



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

  • Spring Boot(Java) ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ API ๋ฅผ ๊ฐœ๋ฐœํ•˜์˜€๊ณ , JPA ์™€ QueryDSL ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ๋Š” AWS RDS(MySQL) ๋ฅผ ์‚ฌ์šฉํ•˜์˜€๊ณ , AWS EC2 ๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„ ๋ฐฐํฌ๋ฅผ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ๋ฅผ ์œ„ํ•ด AWS S3 ๋ฒ„ํ‚ท์„ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ํ˜‘์—… ๋ฐ ์ฝ”๋“œ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด Github ๋ฐ Jira, API ๋ฌธ์„œ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด Spring Rest Docs ๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • Nginx ๋ฅผ ํ†ตํ•ด ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.



๐Ÿ‘ฉโ€๐Ÿ’ป ๊ฐœ๋ฐœ ๋‚ด์šฉ

  • ๋งˆ์Œ ๊ด€๋ฆฌ ๋ฃจํ‹ด์— ๋”ฐ๋ฅธ ๊ธฐ๋ก (์ˆจ ๊ณ ๋ฅด๊ธฐ โ†’ ๊ฐ๊ฐ ๊นจ์šฐ๊ธฐ โ†’ ํ•˜๋ฃจ ์ง„๋‹จ โ†’ ์นญ์ฐฌ ์ฒ˜๋ฐฉ)
  • ์กฐ๊ฑด์— ๋”ฐ๋ฅธ ์นญ์ฐฌ ์ฒ˜๋ฐฉ ๊ธฐ๋ก ํ•„ํ„ฐ๋ง ๊ฒ€์ƒ‰
  • ์ƒˆ๋กœ๊ณ ์นจ ์‹œ๋งˆ๋‹ค ์นญ์ฐฌ ์ฒ˜๋ฐฉ ๊ธฐ๋ก ๋žœ๋ค ์กฐํšŒ
  • ๋ฐ์ด๋…ธํŠธ ๊ด€๋ จ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ(= ์ด๋ฏธ์ง€์™€ ํ•จ๊ป˜ ์“ฐ๋Š” ์ผ๊ธฐ)
  • ์ด๋ฒˆ ๋‹ฌ์˜ ๊ฐ์ • ๋žญํ‚น TOP3 ์ œ๊ณต
  • ์›”๊ฐ„/๊ฐ์ • ํ†ต๊ณ„ ๊ธฐ๋ก ์กฐํšŒ
  • ์‚ฌ์šฉ์ž ์„ค์ •์— ๋”ฐ๋ฅธ ๊ฐœ๋ณ„/์ „์ฒด ํ‘ธ์‹œ ์•Œ๋ฆผ



๐Ÿ“‘ ๋ฌธ์„œ



๐Ÿงฉ ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜

image



๐Ÿ’พ ERD Diagram

image



๐Ÿท Release Version

  • sprint/1 - ํ™ˆํ™”๋ฉด, ๋งˆ์ดํƒ€๋ฏผ ์„ญ์ทจ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • sprint/2 - ์œ ์ € ๊ด€๋ จ ๊ธฐ๋Šฅ, ๋ฐ์ด๋…ธํŠธ ๋ฐ ์œ„์‹œ ๋ฆฌ์ŠคํŠธ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • sprint/3 - ๊ณ„์ • ๊ด€๋ฆฌ ๊ธฐ๋Šฅ, ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ ๋ฐ ์›”๊ฐ„/์ฃผ๊ฐ„ ๊ธฐ๋ก ํ†ต๊ณ„ ์ •๋ณด ์ œ๊ณต ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • sprint/4 - ํ‘ธ์‹œ ์•Œ๋ฆผ ๊ธฐ๋Šฅ, ์„ฑ๋Šฅ ๊ฐœ์„  ๋ฐ ๋ฆฌํŒฉํ† ๋ง, ๊ธฐํš ๋ณ€๊ฒฝ์— ๋”ฐ๋ฅธ ์„ธ๋ถ€ ๊ธฐ๋Šฅ ๊ตฌํ˜„



๐Ÿ” ํ™”๋ฉด ๊ตฌ์„ฑ

image

mitamin_be's People

Contributors

jaejlf avatar

Stargazers

 avatar handcraft avatar Bima Putra Lamanda avatar ์ด์€๋น„ avatar

Watchers

 avatar

mitamin_be's Issues

๋งˆ์ดํŽ˜์ด์ง€ & ํ”„๋กœํ•„ ํŽธ์ง‘ ๊ธฐ๋Šฅ

  • ์ด๋ฏธ์ง€ ์„œ๋ฒ„ ๊ตฌ์ถ•
  • ํ”„๋กœํ•„ ์กฐํšŒ
  • ํ”„๋กœํ•„ ํŽธ์ง‘ (์ด๋ฏธ์ง€, ๋‹‰๋„ค์ž„, ๋˜๊ณ  ์‹ถ์€ ๋‚˜ ๋ฉ”์„ธ์ง€)
  • ๋ถ€๊ฐ€ ๊ธฐ๋Šฅ (์•Œ๋ฆผ ์„ค์ •, ๊ณ„์ • ๊ด€๋ฆฌ, ์„ญ์ทจ ์ง€์ • ์‹œ๊ฐ„ ์„ค์ •)

2์ฐจ ์Šคํ”„๋ฆฐํŠธ ์„œ๋น„์Šค ๋กœ์ง ํ…Œ์ŠคํŠธ

์œ„์‹œ๋ฆฌ์ŠคํŠธ

  • ์œ„์‹œ ๋ฆฌ์ŠคํŠธ ์กฐํšŒ
  • ์œ„์‹œ ์ƒ์„ฑ
  • ์œ„์‹œ ์‚ญ์ œ
  • ์œ„์‹œ ์ „์ฒด ์‚ญ์ œ

๋งˆ์ด๋ฐ์ด & ๋ฐ์ด๋…ธํŠธ

  • ์ด๋ฒˆ ๋‹ฌ์˜ ๋งˆ์ด๋ฐ์ด
  • ๋ฐ์ด๋…ธํŠธ ์ž‘์„ฑ ๊ฐ€๋Šฅ ์—ฌ๋ถ€
  • ๋ฐ์ด๋…ธํŠธ ๊ฐœ๋ณ„ & ๋ฆฌ์ŠคํŠธ ์กฐํšŒ
  • ๋ฐ์ด๋…ธํŠธ ์ž‘์„ฑ
  • ๋ฐ์ด๋…ธํŠธ ์ˆ˜์ •
  • ๋ฐ์ด๋…ธํŠธ ์‚ญ์ œ

๋งˆ์ดํŽ˜์ด์ง€ ์„ค์ •

  • ์„ญ์ทจ ์•Œ๋ฆผ on/off ์— ๋”ฐ๋ฅธ
  • ๋งˆ์ด๋ฐ์ด ์•Œ๋ฆผ on/off์— ๋”ฐ๋ฅธ

CI/CD ๊ตฌ์ถ•

  • Github Actions + CodeDeploy + AWS EC2 + AWS S3
  • Nginx ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ

ํžˆ์Šคํ† ๋ฆฌ ๊ด€๋ จ ๊ธฐ๋Šฅ

ํ•˜๋ฃจ ์ง„๋‹จ

  • ์ด๋ฒˆ ๋‹ฌ ๊ฐ€์žฅ ๋งŽ์ด ๋Š๋‚€ ๊ฐ์ • ํƒœ๊ทธ top3
  • ์›”๋ณ„ ๋งˆ์ดํƒ€๋ฏผ ๋งˆ์Œ ์ปจ๋””์…˜ ๊ธฐ๋ก ๋ชจ์•„๋ณด๊ธฐ

์นญ์ฐฌ ์ฒ˜๋ฐฉ

  • ๋žœ๋ค ์นญ์ฐฌ ์ฒ˜๋ฐฉ ๊ธฐ๋ก
  • ์นญ์ฐฌ ์ฒ˜๋ฐฉ ๊ธฐ๋ก ๋ชจ์•„๋ณด๊ธฐ
    • ์ „์ฒด
    • ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„

์ง„๋‹จ ๊ธฐ๋ก

  • ์›”๊ฐ„ ๋งˆ์Œ ์ปจ๋””์…˜
  • ์ฃผ๊ฐ„ ๋งˆ์ดํƒ€๋ฏผ ์กฐํšŒ
  • ์ง„๋‹จ ๊ธฐ๋ก ์‚ญ์ œ

๋งˆ์ด๋ฐ์ด ๊ด€๋ จ ๊ธฐ๋Šฅ

  • ์œ„์‹œ ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€/์ˆ˜์ •/์‚ญ์ œ ๋ฐ ์ˆœ์„œ ์ด๋™ (+ ์ˆจ๊ฒจ์ง„ ๋ฆฌ์ŠคํŠธ)
  • ๋งˆ์ดํŽ˜์ด์ง€ - ๋งˆ์ด๋ฐ์ด
  • ๋งˆ์ด๋ฐ์ด ๊ธฐ๋ก ๋‚จ๊ธฐ๊ธฐ (+ ์œ„์‹œ ๋ฆฌ์ŠคํŠธ ์ฆ‰์‹œ ์ถ”๊ฐ€)
  • ๋ฐ์ด๋…ธํŠธ ์ˆ˜์ •/์‚ญ์ œ
  • ๋ฐ์ด๋…ธํŠธ ์ด๋ฏธ์ง€ ๊ฐœ์ˆ˜ ์ œํ•œ
  • ์œ ์ €์˜ ๊ฐ€์ž… ๋‚ ์งœ ์กฐํšŒ

์œ ์ € ๊ณ„์ • ๊ด€๋ จ ๊ธฐ๋Šฅ

  • ์œ ์ € ๊ถŒํ•œ ์„ค์ •
  • ์ด๋ฉ”์ผ ์ธ์ฆ
  • ๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌ์„ค์ •
  • ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ
  • ๊ธฐ๋ก ์ดˆ๊ธฐํ™”
  • ํšŒ์› ํƒˆํ‡ด

์ž์ฒด ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ

JWT & ๊ตฌ์ฒด์ ์ธ ๋ฐฉ์‹ ๋ฏธํ™•์ • -> ์ด๋ฉ”์ผ or ์•„์ด๋””

  • ํšŒ์›๊ฐ€์ž…
  • ์ž์ฒด ๋กœ๊ทธ์ธ
  • ๋‹‰๋„ค์ž„ ์ค‘๋ณต์ฒดํฌ
  • ์ด๋ฉ”์ผ ์ค‘๋ณต์ฒดํฌ
  • ํ† ํฐ ์žฌ๋ฐœ๊ธ‰
  • ์ธํ„ฐ์…‰ํ„ฐ ๋“ฑ๋ก
  • ์ด๋ฉ”์ผ, ๋น„๋ฐ€๋ฒˆํ˜ธ ์œ ํšจ์„ฑ ์ฒดํฌ
  • ํ˜„์žฌ ๋กœ๊ทธ์ธ๋œ ์œ ์ € ํ™•์ธ (=> ๋กœ๊ทธ์ธ ํ…Œ์ŠคํŠธ)

1์ฐจ ์Šคํ”„๋ฆฐํŠธ ์„œ๋น„์Šค ๋กœ์ง ํ…Œ์ŠคํŠธ

ํ™ˆ

  • ํ™ˆ ํ™”๋ฉด ์›ฐ์ปด ๋ฉ”์„ธ์ง€ (case ...)
  • ์ˆจ ๊ณ ๋ฅด๊ธฐ
  • ๊ฐ๊ฐ ๊นจ์šฐ๊ธฐ
  • ํ–‰๋™์— ๋”ฐ๋ฅธ ๋ฒ„ํŠผ ํ™œ์„ฑํ™” ์—ฌ๋ถ€

๋งˆ์ดํƒ€๋ฏผ

  • ์ตœ๊ทผ ์„ญ์ทจํ•œ ๋งˆ์ดํƒ€๋ฏผ

ํ•˜๋ฃจ ์ง„๋‹จ

  • ํ•˜๋ฃจ ์ง„๋‹จํ•˜๊ธฐ

์นญ์ฐฌ ์ฒ˜๋ฐฉ

  • ์นญ์ฐฌ ์ฒ˜๋ฐฉํ•˜๊ธฐ

์‹œ๊ฐ„ ๊ณ„์‚ฐ

  • ํฌ๋งท ๋ณ€ํ™˜
  • isToday
  • is ์•„์นจ/์˜คํ›„/๋ฐค
  • isInRange

Spring Rest Docs ์„ค์ •

  • Spring Rest Docs ์‚ฌ์šฉ ์„ค์ • ๋ฐ ํ…Œ์ŠคํŠธ
  • API ๋ฌธ์„œ ๋ ˆ์ด์•„์›ƒ ์ •ํ•˜๊ธฐ

ํ™ˆํ™”๋ฉด ๊ด€๋ จ ๊ธฐ๋Šฅ

  • ์›ฐ์ปด ๋ฉ˜ํŠธ (๋‹‰๋„ค์ž„ + ๋ฉ˜ํŠธ)
  • ์ˆจ ๊ณ ๋ฅด๊ธฐ/๊ฐ๊ฐ ๊นจ์šฐ๊ธฐ ์‹œ๊ฐ„ ์—…๋ฐ์ดํŠธ
  • ๋ฒ„ํŠผ ํ™œ์„ฑํ™” ์ƒํƒœ
  • ์ตœ๊ทผ ๋งˆ์ดํƒ€๋ฏผ

๋งˆ์ดํƒ€๋ฏผ ์„ญ์ทจ ๊ธฐ๋Šฅ

  • ํ•˜๋ฃจ ์ง„๋‹จํ•˜๊ธฐ (๊ฐ์ • ํƒœ๊ทธ, ์ฝ”๋ฉ˜ํŠธ)
  • ์นญ์ฐฌ ์ฒ˜๋ฐฉํ•˜๊ธฐ (์นดํ…Œ๊ณ ๋ฆฌ, ์นญ์ฐฌ ๋ฉ˜ํŠธ, ๋ฌธ์žฅ)
  • ํ•˜๋ฃจ ์ง„๋‹จํ•˜๊ธฐ ์ˆ˜์ •
  • ์นญ์ฐฌ ์ฒ˜๋ฐฉํ•˜๊ธฐ ์ˆ˜์ •

๐Ÿ’Š ๊ณ ๋ คํ•ด์•ผํ•  ๊ด€๋ จ ๊ธฐ๋Šฅ

  • ์ฃผ๊ฐ„ ๋งˆ์Œ ์ปจ๋””์…˜
  • ์ด๋ฒˆ ๋‹ฌ ๊ฐ€์žฅ ๋งŽ์ด ๋Š๋‚€ ๊ฐ์ • ํƒœ๊ทธ top 3

ํ‘ธ์‹œ ์•Œ๋ฆผ ๊ธฐ๋Šฅ

  • ๋งˆ์ดํƒ€๋ฏผ ์„ญ์ทจ ์•Œ๋ฆผ - ์‚ฌ์šฉ์ž ์ง€์ •์‹œ๊ฐ„
  • ๋งˆ์ด๋ฐ์ด ๋‚ ์งœ ์•Œ๋ฆผ - ๋‹น์ผ/ํ•˜๋ฃจ ์ „/์ผ์ฃผ์ผ ์ „

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.