Skip to content

k-redstone/ddada

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

SSAFY A509 DDADA

๋”ฐ๋‹ค

๐Ÿ“… ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„

  • 2024.08.19 ~ 2024.10.11

๐Ÿ™‡๐Ÿปโ€โ™‚๏ธ ํŒ€์›์†Œ๊ฐœ

๐Ÿง‘๐Ÿปโ€๐Ÿ’ป ๊ฐœ๋ฐœ ๊ด€๋ จ ๊ธฐ์ˆ 

๐Ÿ“‹ git ์ด์Šˆ/๋ธŒ๋žœ์น˜ ๊ด€๋ฆฌ

issue

  • ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ, ๋ฐ์ดํ„ฐ๋Š” label๋กœ ๋ถ„๋ฅ˜ํ•œ๋‹ค.

  • assignees๋Š” ์ด์Šˆ ์ƒ์„ฑ์ž๊ฐ€ ์Šค์Šค๋กœ ํ• ๋‹นํ•œ๋‹ค.

  • ์ด์Šˆ ํƒ€์ž…

    FEAT : ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
    FIX : ๋ฒ„๊ทธ ์ˆ˜์ •
    HOTFIX : ์น˜๋ช…์ ์ธ ๋ฒ„๊ทธ ๊ธ‰ํ•˜๊ฒŒ ์ˆ˜์ •
    CHORE : (์ฝ”๋“œ ์ˆ˜์ • ์—†๋Š”) ์„ค์ • ๋ณ€๊ฒฝ
    DOCS : ๋ฌธ์„œ ์ƒ์„ฑ ๋ฐ ์ˆ˜์ •
    DESIGN : ๋ ˆ์ด์•„์›ƒ ๊ตฌํ˜„ ๋ฐ ๋””์ž์ธ ์ˆ˜์ •
    REFACTOR : ๋ฆฌํŒฉํ† ๋ง
    REMOVE : ํŒŒ์ผ/์ฝ”๋“œ ์‚ญ์ œ
    MERGE : ๋ธŒ๋žœ์น˜ ๋ณ‘ํ•ฉ
  • ์ž‘์„ฑ ์˜ˆ์‹œ [ํƒ€์ž…] ์ด์Šˆ ๋ช…

    • [FEAT] PWA ๊ตฌํ˜„
    • [DESIGN] ๋žœ๋”ฉ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ๋””์ž์ธ

branch

  • ํ”„๋ก ํŠธ์—”๋“œ, ๋ฐฑ์—”๋“œ, ๋ฐ์ดํ„ฐ๋Š” ์ ‘๋‘์‚ฌ๋กœ fe/ be/ data/ ๋ฅผ ๋ถ™์ธ๋‹ค.
  • ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ์‹œ, ์˜๋ฌธ์€ ๋ชจ๋‘ ์†Œ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • git flow ๋ฐฉ์‹์„ ์ฑ„์šฉํ•˜์—ฌ dev branch๋กœ protectํ•œ๋‹ค.
  • ์™„๋ฃŒ ๋œ ์ž‘์—…์— ๋Œ€ํ•˜์—ฌ PR ์™„๋ฃŒ ์ดํ›„ ํ•ด๋‹น ์ž‘์—… ๋ธŒ๋žœ์น˜๋Š” ์‚ญ์ œํ•œ๋‹ค.
  • ์ƒ์„ฑ ์˜ˆ์‹œ ๋ถ„์•ผ/ํƒ€์ž…/#์ด์Šˆ๋ฒˆํ˜ธ_์ด์Šˆ๋ช…
    • fe/feat/i1_pwa
    • fe/design/i2_landing

commit

  • ์˜๋ฌธ์€ ๋ชจ๋‘ ์†Œ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • ํ•œ๊ธ€๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์ƒ์„ฑ ์˜ˆ์‹œ
    • docs: TIL ์ƒ์„ฑ
    • feat: PWA setting

merge

  • ์˜๋ฌธ์€ ๋ชจ๋‘ ์†Œ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • ๋‚ด์šฉ์€ ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•œ๋‹ค.
  • ์ƒ์„ฑ ์˜ˆ์‹œ ๋ถ„์•ผ/ํƒ€์ž…/#์ด์Šˆ๋ฒˆํ˜ธ ๊ธฐ๋Šฅ๋ช… | ๊ฐ„๋‹จํ•œ ์„ค๋ช…
    • be/feat/i1_backend cicd
    • fe/design/i2_๋žœ๋”ฉํŽ˜์ด์ง€

๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ”ง ๊ธฐ์ˆ  ์Šคํƒ

FE


๐Ÿš€ ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

๐Ÿ“Š ์ƒํƒœ ๊ด€๋ฆฌ

๐Ÿ“ก ๋ฐ์ดํ„ฐ ์š”์ฒญ

๐Ÿ’„ ์Šคํƒ€์ผ๋ง

๐Ÿ”ง ์ฝ”๋“œ ํ’ˆ์งˆ ๊ด€๋ฆฌ

BE


๐Ÿš€ ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

๐Ÿ“‚ DB ๋ฐ ์Šคํ† ๋ฆฌ์ง€

๐ŸŽ API

DATA


INFRA


๐Ÿ”— CI/CD

๐Ÿ’ป ๋ชจ๋‹ˆํ„ฐ๋ง

์—ญํ•  ๋ถ„๋‹ด

๐ŸŠ๋ฐ•์ƒ์šฐ

  • ๊ธฐํš
    • JIRA ๋ฒˆ๋‹ค์šด์ฐจํŠธ, ์Šคํ”„๋ฆฐํŠธ ๊ด€๋ฆฌ
    • UT(Usability Test) ๊ฐ€์ด๋“œ ์ œ์ž‘
    • QA(Quality Assuarance) ๊ฐ€์ด๋“œ ์ œ์ž‘
    • gitlab, frontend ์ฝ”๋“œ ์ปจ๋ฒค์…˜ ์ œ์ž‘
  • DESIGN
    • FIGMA ์ „์ฒด ์™€์ด์–ดํ”„๋ ˆ์ธ ์„ค๊ณ„ ๋ฐ ์ „์ฒด ํŽ˜์ด์ง€ ๋””์ž์ธ
    • TailwindCSS ๋””์ž์ธ๊ฐ€์ด๋“œ ์ œ๊ณต
    • ์ปดํฌ๋„ŒํŠธ ์„ธ๋ถ€ ๋””์ž์ธ ์ฝ”๋“œ ์ˆ˜์ •

๐Ÿ‘ป์ „ํƒœํ˜ธ

  • UI
    • ํŽ˜์ด์ง€ : ๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž…, ๋งˆ์ดํŽ˜์ด์ง€, ์žฅ์†Œ ์˜ˆ์•ฝ, ๋งค์น˜ ์˜ˆ์•ฝ, ๋งค๋‹ˆ์ € ๋ชจ์ง‘ ํŽ˜์ด์ง€, ๋žœ๋”ฉ ํŽ˜์ด์ง€, ๋žญํ‚น ํŽ˜์ด์ง€
    • ๊ณตํ†ต ์ปดํฌ๋„ŒํŠธ : ํ‘ธํ„ฐ, ํฌํŠธ์œˆ ๊ฒฐ์ œ ๋ชจ๋‹ฌ
  • ๊ธฐ๋Šฅ
    • ํ”„๋กœํ•„ ์„ค์ • ๋ฐ ์ˆ˜์ • ํŽ˜์ด์ง€ ์œ ์ € ์•„์ด๋”” ์œ ํšจ์„ฑ ๋ฐ ์ค‘๋ณต ๊ฒ€์‚ฌ, ์žฅ์†Œ ์˜ˆ์•ฝ, ๋งค์น˜ ์˜ˆ์•ฝ, ๋น„๋ฐ€๋ฒˆํ˜ธ ์ฐพ๊ธฐ ๊ธฐ๋Šฅ, ์ด๋ฉ”์ผ ์ธ์ฆ, ํ•ธ๋“œํฐ ์ธ์ฆ, ๋งค์น˜ ๋ถ„์„ ์ƒ์„ธ , ํ”Œ๋ ˆ์ด์Šคํƒ€์ผ ๋ถ„์„ ๊ธฐ๋Šฅ

๐Ÿ˜Ž์ตœํ™์„

  • UI
    • ํŽ˜์ด์ง€ : ๋งค๋‹ˆ์ € ๊ฒฝ๊ธฐ ๊ด€๋ฆฌ ํŽ˜์ด์ง€, ๋งค๋‹ˆ์ € ์ ์ˆ˜ ์ž…๋ ฅ ํŽ˜์ด์ง€, ๋งค์น˜ ์˜ˆ์•ฝ ์ƒ์„ธ ํŽ˜์ด์ง€, ์ฒด์œก๊ด€ ์ œํœด ํŽ˜์ด์ง€, ๋ผ์ผ“ ์ถ”์ฒœ ํŽ˜์ด์ง€
    • ๊ณตํ†ต ์ปดํฌ๋„ŒํŠธ : ๋ฉ”์ธ ํ—ค๋”, ๋ชจ๋‹ฌ
  • ๊ธฐ๋Šฅ
    • ๋งค๋‹ˆ์ €๊ฐ€ ๋ฐฐ๋“œ๋ฏผํ„ด ์ ์ˆ˜๋ฅผ ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ์ž…๋ ฅํ•˜๋Š” ๊ธฐ๋Šฅ, ๋ฐฐํŠธ๋ฏผํ„ด ๋ผ์ผ“ ์ถ”์ฒœ ๊ธฐ๋Šฅ, ์‹ ๊ณ  ๊ธฐ๋Šฅ, ์ฒด์œก๊ด€ ๊ด€๋ฆฌ์ž์˜ ๋ˆ ์ธ์ถœ ๊ธฐ๋Šฅ

๐Ÿฑโ€๐Ÿ์ •ํ•œ์ˆ˜

  • BE

    • ๋งค์น˜ ๊ด€๋ฆฌ : ์ฒด์œก๊ด€, ์ฝ”ํŠธ, ๋งค์น˜, ์ ์ˆ˜ ๋ฐ์ดํ„ฐ ์„ค๊ณ„ ๋ฐ API ๊ด€๋ฆฌ
    • ๋งค๋‹ˆ์ €, ์ฒด์œก๊ด€ ๊ด€๋ฆฌ์ž ๊ด€๋ฆฌ : ๋งค๋‹ˆ์ € ๋ฐ ์ฒด์œก๊ด€ ๊ด€๋ฆฌ์ž ๋กœ์ง ๊ด€๋ฆฌ
    • ๋ผ์ผ“ ๊ด€๋ฆฌ : ES๋ฅผ ์ด์šฉํ•œ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ
  • INFRA

    • ์„œ๋ฒ„ ๊ด€๋ฆฌ : ๋ฐฑ์—”๋“œ dev/prod ์„œ๋ฒ„ ๊ด€๋ฆฌ
    • CI/CD ๊ด€๋ฆฌ : Docker๋ฅผ ์‚ฌ์šฉํ•ด Jenkins ํŒŒ์ดํ”„๋ผ์ธ ๊ด€๋ฆฌ
    • DB ์ธ์Šคํ„ด์Šค ๊ด€๋ฆฌ : PostgreSQL, Elasticsearch, Redis Cluster ๊ตฌ์ถ•
    • ๋ชจ๋‹ˆํ„ฐ๋ง : Prometheus, Grafana๋ฅผ ํ†ตํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง

๐Ÿ“์ตœ์„ฑ์ฒ 

  • BE
    • ์œ ์ €๊ด€๋ฆฌ : ํ”Œ๋ ˆ์ด์–ด ํšŒ์›๊ด€๋ฆฌ, ํ”Œ๋ ˆ์ด์–ด ํ”„๋กœํ•„, ํ”Œ๋ ˆ์ด์–ด ๋ถ„์„ ๋ฐ์ดํ„ฐ ์กฐํšŒ
    • ์ธ์ฆ : ์œ ์ € ์ธ์ฆ ์‹œ์Šคํ…œ
    • ๋ฐ์ดํ„ฐ : ๋ฐ์ดํ„ฐ ํŒŒํŠธ์™€ API ์—ฐ๊ฒฐ

๐ŸŽฏ์œค๊ฒฝ์„œ

  • DATA
    • ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐ ์ „์ฒ˜๋ฆฌ: ๋ฐฐ๋“œ๋ฏผํ„ด ๊ฒฝ๊ธฐ ๋ฐ์ดํ„ฐ ๋ผ๋ฒจ๋ง & ๋ฐฐ๋“œ๋ฏผํ„ด ๋ผ์ผ“ ๋ฐ์ดํ„ฐ ํฌ๋กค๋ง, ๊ฐ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ์ง„ํ–‰
    • ํ†ต๊ณ„ ๋ถ„์„: Shapiro-Wilk ๊ฒ€์ •์œผ๋กœ ๋ฐ์ดํ„ฐ ์ •๊ทœ์„ฑ ๊ฒ€์ • ๋ฐ ํ†ต๊ณ„๋ถ„์„ ์ง„ํ–‰, EDA๋ฅผ ํ†ตํ•œ ๋ฐฐ๋“œ๋ฏผํ„ด ๋ถ„์„ ํ•ญ๋ชฉ ์„ ์ • ๋ฐ ๊ฐ ํ•ญ๋ชฉ๋ณ„ ํ†ต๊ณ„ ์ง€ํ‘œ ์„ค์ •
  • ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋ง
    • GCP์˜ Vertex AI ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ Gemini ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋ง ์ง„ํ–‰
    • ์„ ์ˆ˜์˜ ๋ถ„์„ ํ•ญ๋ชฉ๋ณ„ ์ ์ˆ˜๋ฅผ ์ œ๊ณตํ•˜์—ฌ ํ•ด๋‹น ์ ์ˆ˜ ์กฐํ•ฉ์— ๋”ฐ๋ผ ๊ฐœ์ธ๋ณ„ ๊ฒฝ๊ธฐ ์„ฑํ–ฅ ์ œ๊ณต ๋ฐ ์„ฑํ–ฅ์— ๋”ฐ๋ผ ์•ž์œผ๋กœ์˜ ๋ฐœ์ „์„ ์œ„ํ•œ ๋ฐฉํ–ฅ์„ฑ ์ถ”์ฒœ

๐Ÿ“– ํŽ˜์ด์ง€๋ณ„ ๊ธฐ๋Šฅ

1. Auth

๋กœ๊ทธ์ธ ํ™”๋ฉด
ํšŒ์›๊ฐ€์ž…

- react-hook-form์œผ๋กœ ๊ฐ ํ•ญ๋ชฉ์˜ validation์„ ํ™•์ธํ›„ ํšŒ์›๊ฐ€์ž…์„ ์ง„ํ–‰ํ•˜์˜€๋‹ค.

- ๊ฐ ๋‹จ๊ณ„๋ฅผ switch-case๋กœ ๋ถ„๊ธฐํ•˜์—ฌ์„œ ํ•˜๋‚˜์˜ component์—์„œ ์ฒ˜๋ฆฌํ•˜์˜€๋‹ค.

2. ์ผ๋ฐ˜ ์œ ์ €

๋žœ๋”ฉ ํŽ˜์ด์ง€
๋งค์น˜ ์˜ˆ์•ฝ ํŽ˜์ด์ง€

[๋งค์น˜๊ฐ€ ์—†์„ ๋•Œ]

[๋งค์น˜๊ฐ€ ์žˆ์„ ๋•Œ]

์žฅ์†Œ ์˜ˆ์•ฝ ํŽ˜์ด์ง€
๋ผ์ผ“ ์ถ”์ฒœ โ€ข ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€
๋žญํ‚น
๋งค๋‹ˆ์ € ๋ชจ์ง‘ ํŽ˜์ด์ง€

๋งค๋‹ˆ์ € ์‹ ์ฒญํ•˜๊ธฐ ๋ฒ„ํŠผ ํด๋ฆญ์‹œ ๊ตฌ๊ธ€ ํผ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

์ฒด์œก๊ด€ ์ œํœด ํŽ˜์ด์ง€

์ฒด์œก๊ด€ ์ œํœด๋งบ๊ธฐ ํด๋ฆญ ์‹œ ์นด์นด์˜ค ์˜คํ”ˆ์ฑ„ํŒ…์œผ๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

๋งˆ์ด ํŽ˜์ด์ง€
๋‚ด ํ”„๋กœํ•„ ์ˆ˜์ •
๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ
๋‚˜์˜ ๋งค์น˜
ํ”Œ๋ ˆ์ด์Šคํƒ€์ผ ๋ถ„์„

3. ๋งค๋‹ˆ์ €

๋งค์น˜ ์˜ˆ์•ฝ ํŽ˜์ด์ง€
๋งค์น˜ ์™„๋ฃŒ ํŽ˜์ด์ง€
๋งค์น˜ ์ง„ํ–‰ ํŽ˜์ด์ง€

4. ์ฒด์œก๊ด€ ๊ด€๋ฆฌ์ž

๋Œ€์‹œ๋ณด๋“œ ํŽ˜์ด์ง€

๋Œ€์‹œ๋ณด๋“œ ํŽ˜์ด์ง€

๋ˆ ์ธ์ถœ ๋ชจ๋‹ฌ

โš’๏ธ ํ”„๋กœ์ ํŠธ ํ›„๊ธฐ

๐ŸŠ๋ฐ•์ƒ์šฐ

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

์•„์ด๋””์–ด ์„ ์ •์ด ์˜ค๋ž˜๊ฑธ๋ ค ์™€์ด์–ดํ”„๋ ˆ์ž„์ด ๋นˆ์•ฝํ–ˆ๋˜ ๊ฒƒ์ด ์•„์‰ฌ์› ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ, ํ”„๋ก ํŠธ ๊ฐœ๋ฐœ๊ฒฝํ—˜์˜ ์˜ํ–ฅ์„ ๋ฐ›์•„ figma์˜ auto layout์„ ๊ณต๋ถ€ํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋””์ž์ธ, ๋ฐฐ์น˜ํ•œ ๊ฒƒ์ด ๋ ˆ์ด์•„์›ƒ ๊ตฌํ˜„ ์‹œ๊ฐ„์„ ํฌ๊ฒŒ ๋‹จ์ถ•์‹œ์ผฐ์Šต๋‹ˆ๋‹ค.


๐Ÿ‘ป์ „ํƒœํ˜ธ

๋งŽ์€ ๊ฒƒ์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์˜€์Šต๋‹ˆ๋‹ค. ๊ณ์— ๋“ ๋“ ํ•œ ํ”„๋ก ํŠธ ํŒ€์›์ด ์žˆ๋‹ค๋Š”๊ฒŒ ์ •๋ง ํฐ ํž˜์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ค์ง ๊ฐœ๋ฐœ์—๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฐฐ๋ คํ•ด์ค€ ํŒ€์› ๋•๋ถ„์— ํ”„๋ก ํŠธ ๊ฐœ๋ฐœ์—์„œ ์ œ๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ํ•œ์„ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ œ๋Œ€๋กœ ๋œ ๋ถ„์—…์ด ํ”„๋กœ์ ํŠธ๋Š” ์ฒ˜์Œ์ด๋ผ ์ด ๊ฒฝํ—˜์„ ์–‘์‹ ์‚ผ์•„ ๋”์šฑ ์„ฑ์žฅํ•ด๋‚˜๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค.


๐Ÿ˜Ž์ตœํ™์„

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋ฐฐ๋“œ๋ฏผํ„ด ๊ฒฝ๊ธฐ๋ฅผ ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ์ง์ ‘ ๋งŒ๋“ค์—ˆ๋˜ ๊ฒƒ์ด ๊ธฐ์–ต์— ๋‚จ์•˜์Šต๋‹ˆ๋‹ค. Next๋„ ์ฒ˜์Œ ์‚ฌ์šฉํ•ด ๋ณด์•˜๋Š”๋ฐ SSR๊ณผ SSG๋“ฑ ์ฐจ์ด์ ๊ณผ ์ตœ์ ํ™”ํ•˜๋Š” ๊ธฐ๋ฒ•์„ ํ•™์Šตํ–ˆ์Šต๋‹ˆ๋‹ค.

์•„์‰ฌ์šด์ ์€ ์ƒ๊ฐ๋ณด๋‹ค ํ”„๋กœ์ ํŠธ์˜ ๊ทœ๋ชจ๊ฐ€ ์ปค์ ธ ๋ชจ๋“  ๊ธฐ๋Šฅ์— ์—๋Ÿฌ ํ•ธ๋“ค๋ง์„ ํ•˜์ง€ ๋ชปํ•œ ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์—๋Ÿฌ์ผ ๊ฒฝ์šฐ ํŽ˜์ด์ง€๊ฐ€ ๋‹ค์šด์ด ๋˜์ง€ ์•Š๋„๋ก ๋ Œ๋”๋ง์ด ๋˜์–ด์•ผ ํ•˜๋Š”๋ฐ ์•ˆ๋œ ๋ถ€๋ถ„๋„ ์žˆ์–ด ์•„์‰ฌ์› ์Šต๋‹ˆ๋‹ค.

๐Ÿฑโ€๐Ÿ์ •ํ•œ์ˆ˜

Spring Boot์—์„œ JPA๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ์ฒด๊ฐ„ ๊ด€๊ณ„๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๊ณผ์ •์—์„œ ์—ฌ๋Ÿฌ ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ๊ฒช์œผ๋ฉฐ ๋งŽ์€ ๊ฒƒ์„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค. ์–ด๋…ธํ…Œ์ด์…˜์„ ์ด์šฉํ•ด ๊ฐ์ฒด ๊ฐ„ ์ œ์•ฝ ์กฐ๊ฑด์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ Record ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•œ DTO, ๊ฐ์ข… Exception Handling ๋ฐ ๋””๋ฒ„๊น…์„ ์œ„ํ•œ ๋กœ๊น… ๋“ฑ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋กœ์จ ๋งŽ์ด ์„ฑ์žฅํ–ˆ๋‹ค๋Š” ๊ฒƒ์ด ๋А๊ปด์ง€๋Š” ํ”„๋กœ์ ํŠธ์˜€์Šต๋‹ˆ๋‹ค. ์ด์ „ ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•œ ์ธํ”„๋ผ ์ง€์‹์„ ํ™œ์šฉํ•ด ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ๋ถ€ํ„ฐ CI/CD๋ฅผ ๊ตฌ์ถ•ํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ดˆ๊ธฐ๋ถ€ํ„ฐ ์›ํ™œํ•˜๊ฒŒ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ์ ๊ณผ, PostgreSQL, Redis Clustering, ES ๋“ฑ DB์— ๋Œ€ํ•œ ๋„์ „์ด ์„ฑ๊ณต์ ์œผ๋กœ ๋๋งˆ์ณค๋‹ค๋Š” ์ ๋„ ๋ฟŒ๋“ฏํ–ˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ“์ตœ์„ฑ์ฒ 

๊ณตํ†ต ๋•Œ ์ฒ˜์Œ ์‚ฌ์šฉํ•˜์˜€๋˜ ์Šคํ”„๋ง๋ถ€ํŠธ๋ฅผ ํŠนํ™”์—์„œ๋Š” ์ •ํ™•ํžˆ ์–ด๋–ค ๊ตฌ์กฐ๋กœ ์‚ฌ์šฉ๋˜๋Š”์ง€ ๋‹น์—ฐํ•˜๊ฒŒ ์‚ฌ์šฉํ–ˆ๋˜ ์–ด๋…ธํ…Œ์ด์…˜๋“ค์ด ์–ด๋–ค ๊ธฐ๋Šฅ๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€์— ๋Œ€ํ•˜์—ฌ ์•Œ์•„๊ฐˆ ์ˆ˜ ์žˆ์–ด์„œ ์œ ์ตํ•œ ํ”„๋กœ์ ํŠธ์˜€์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์—์„œ ์ฟผ๋ฆฌ๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•ด๋ณด๋ฉด์„œ SQL๋ฌธ์— ๋Œ€ํ•ด์„œ ์•Œ ์ˆ˜ ์žˆ์—ˆ๊ณ , ์‚ฌ์šฉ์ž ์ธ์ฆ์—๋งŒ ์‚ฌ์šฉํ•˜๋˜ ๋ ˆ๋””์Šค๋ฅผ ๋‹ค๋ฅธ ๋ถ€๋ถ„์—์„œ๋„ ๋„์ž…ํ•ด๋ณด๋ฉด์„œ ์ž์œจ์—์„œ ๋ ˆ๋””์Šค๋ฅผ ์–ด๋–ป๊ฒŒ ๋” ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„์ง€ ์•Œ์•„๊ฐ”์Šต๋‹ˆ๋‹ค.

๐ŸŽฏ์œค๊ฒฝ์„œ

๋ฐ์ดํ„ฐ ๋ฐฉํ–ฅ์„ฑ์„ ์žก๋Š” ๊ฒƒ์ด ์˜ค๋ž˜๊ฑธ๋ ค ์•„์‰ฌ์› ์Šต๋‹ˆ๋‹ค. ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ์ง€์‹์ด ๋ถ€์กฑํ•˜์—ฌ ์‚ฌ์ „ ์ง€์‹ ํ•™์Šต ํ›„ ๋ฐ์ดํ„ฐ ๋ถ„์„์— ์ ์šฉํ•˜๋Š” ๊ณผ์ •์—์„œ ์‹œ๊ฐ„์ด ๋„‰๋„‰์น˜ ๋ชปํ•ด ๋‹ค์–‘ํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋œฏ์–ด๋ณด์ง€ ๋ชปํ•œ ๊ฒƒ ๊ฐ™์€ ์•„์‰ฌ์›€์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๋ฐฐ๋“œ๋ฏผํ„ด์ด ์‹ค๋ ฅ์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋Š” ์ง€ํ‘œ๊ฐ€ ๋ช…ํ™•ํ•˜์ง€ ์•Š์•„ ์ด๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋Š” ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ์ฃผ๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ์ง€ํ‘œ๋ฅผ ์‚ฐ์ •ํ•˜๊ณ ์ž ํ–ˆ๋˜ ๊ฒƒ์€ ์ข‹์€ ๊ฒฝํ—˜์ด์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ๋ฐฑ์—”๋“œ, ํ”„๋ก ํŠธ์—”๋“œ์™€ ํ•จ๊ป˜ ์‹ค์ œ ์„œ๋น„์Šค๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋Š” ์ด๋ฒˆ์ด ์ฒ˜์Œ์ด์—ˆ๋Š”๋ฐ ํ”„๋กœ์ ํŠธ ๊ธฐํ•œ์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ ํƒ์ƒ‰, ๋ถ„์„, ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋ฐœ, ์„œ๋น„์Šค ์—ฐ๊ฒฐ๊นŒ์ง€์˜ ๊ณ„ํš์„ ์งœ๊ณ  ํ•ด๋‹น ์ผ์ •์„ ๋ช…ํ™•ํžˆ ๊ด€๋ฆฌํ•˜์ง€ ๋ชปํ•ด ๋ฐ์ดํ„ฐ ๋ถ€๋ถ„์˜ ์„œ๋น„์Šค๊ฐ€ ๋ฐฑ์—”๋“œ์™€ ํ”„๋ก ํŠธ์—”๋“œ ์ง„ํ–‰๋‹จ๊ณ„์— ๋น„ํ•ด ๋”๋Ž ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค์Œ ํ”„๋กœ์ ํŠธ์— ์žˆ์–ด์„œ๋Š” ๊ณ„ํš์„ ์กฐ๊ธˆ ๋” ๋ช…ํ™•ํ•˜๊ฒŒ ๊ธฐํ•œ์„ ์ •ํ•˜๊ณ  ์ด์— ๋งž์ถฐ ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์ง„ํ–‰ํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ๋ฐฑ์—”๋“œ์™€ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•จ๊ป˜ DB๋ฅผ ์“ฐ๋‹ค๋ณด๋‹ˆ ํ•œ์ชฝ์—์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ ๋‹ค๋ฅธ ์ชฝ์—์„œ ์ง„ํ–‰์ด ์›ํ™œํžˆ ๋˜์ง€ ์•Š์•„ ์ง„ํ–‰์ด ์ง€์—ฐ๋œ ๋ถ€๋ถ„์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋ฐฑ์—”๋“œ์™€ ๋ฐ์ดํ„ฐ์˜ DB๋ฅผ ๋ถ„๋ฆฌํ•ด์„œ ์˜์กด์„ฑ์„ ๋‚ฎ์ถ”๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. CI/CD ๋ถ€๋ถ„์„ ๋ฐฐ์› ๋˜ ์ ๋„ ์ข‹์•˜์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์„œ๋ฒ„์˜ CI/CD๋ฅผ ๋งก์•„ ์ธํ”„๋ผ ๋ถ€๋ถ„์„ ๋‹ด๋‹นํ•œ ํŒ€์›์—๊ฒŒ ๋ฐฐ์šฐ๊ณ , ๋„์›€์„ ๋ฐ›์•„ ์ง์ ‘ ํŒŒ์ดํ”„๋ผ์ธ์„ ์ž‘์„ฑํ•ด ๋ฐฐํฌํ•ด๋ณผ ์ˆ˜ ์žˆ์–ด์„œ ์œ ์ตํ–ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋ก ํŠธ์™€ ๋ฐฑ์—”๋“œ, ๋””์ž์ธ ๋ฐ ๊ธฐํš, ๋ฐ์ดํ„ฐ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ช…ํ™•ํ•œ ์—ญํ•  ๋ถ„๋‹ด์œผ๋กœ ๋ฐ์ดํ„ฐ ํŒŒํŠธ๋งŒ์„ ์˜จ์ „ํžˆ ๋‹ด๋‹นํ•ด ์ˆ˜์ง‘ํ•œ ๋ฐ์ดํ„ฐ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ์ ์€ ์ข‹์•˜์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ํŒ€์›๊ฐ„์˜ ์›ํ™œํ•œ ์†Œํ†ต์œผ๋กœ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ๋‚˜ ๋””๋ฒจ๋กญ ์‚ฌํ•ญ์ด ์ƒ๊ฒผ์„ ๋•Œ ๋ฐ”๋กœ๋ฐ”๋กœ ํ•ด๊ฒฐ์ด ๋˜์—ˆ๋˜ ์ ์ด ์ข‹์•˜์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์˜ ์•„์‰ฌ์›€์„ ๋ณด์™„ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋„๋ก ๋…ธ๋ ฅํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages