Home > Backend Development > πŸ“š[Backend Development] πŸ—ΊοΈ 핡심 μ„€κ³„λ„μ˜ μž‘μ„± μˆœμ„œμ™€ μ‹€μ§ˆμ μΈ μž‘μ—… 흐름

πŸ“š[Backend Development] πŸ—ΊοΈ 핡심 μ„€κ³„λ„μ˜ μž‘μ„± μˆœμ„œμ™€ μ‹€μ§ˆμ μΈ μž‘μ—… 흐름
Backend Ddevelopment κΈ°νšμ„œ μš”κ΅¬μ‚¬ν•­ λͺ…μ„Έμ„œ μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜ μ„€κ³„μ„œ λ°μ΄ν„°λ² μ΄μŠ€ μ„€κ³„μ„œ μ„€κ³„μ„œ

πŸ—ΊοΈ 핡심 μ„€κ³„λ„μ˜ μž‘μ„± μˆœμ„œμ™€ μ‹€μ§ˆμ μΈ μž‘μ—… 흐름.

πŸš€ κ²°λ‘ λΆ€ν„° λ§ν•˜μžλ©΄, μ—„κ²©ν•œ 폭포수 방식(Waterfall Methodology)이 μ•„λ‹Œ, μ„œλ‘œ 영ν–₯을 μ£Όκ³ λ°›μœΌλ©° μ μ§„μ μœΌλ‘œ μ™„μ„±ν•΄ λ‚˜κ°€λŠ” 것이 일반적 μž…λ‹ˆλ‹€.
ν•˜μ§€λ§Œ κ°œλ…μ μΈ μˆœμ„œλŠ” λͺ…ν™•ν•˜κ²Œ μ‘΄μž¬ν•˜λ©°, κ·Έ μˆœμ„œλ₯Ό μ΄ν•΄ν•˜λŠ” 것은 맀우 μ€‘μš”ν•©λ‹ˆλ‹€.

πŸ“Œ 이상적인 μž‘μ„± μˆœμ„œ (κ°œλ…μ  흐름)

마치 집을 μ§“λŠ” κ³Όμ •μ²˜λŸΌ, κ°€μž₯ 좔상적이고 근본적인 κ²ƒμ—μ„œλΆ€ν„° ꡬ체적인 κ²ƒμœΌλ‘œ λ‚˜μ•„κ°‘λ‹ˆλ‹€.

1️⃣ μš”κ΅¬μ‚¬ν•­ λͺ…μ„Έμ„œ (무엇을 λ§Œλ“€ 것인가?) πŸ€”

  • κ°€μž₯ λ¨Όμ € μ‹œμž‘μ΄λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.
  • 이유 :
    • μ–΄λ–€ κΈ°λŠ₯을 λ§Œλ“€μ§€, μ–΄λ–€ λΉ„μ¦ˆλ‹ˆμŠ€ κ·œμΉ™μ„ 담을지 κ²°μ •λ˜μ§€ μ•ŠμœΌλ©΄, 기술적인 섀계(μ•„ν‚€ν…μ²˜)λ‚˜ 데이터ꡬ쑰(DB)λ₯Ό λ…Όν•˜λŠ” 것 μžμ²΄κ°€ λΆˆκ°€λŠ₯ν•©λ‹ˆλ‹€.
    • β€œκ³ κ°μ΄ μ›ν•˜λŠ” 집”이 μ–΄λ–€ λͺ¨μŠ΅μΈμ§€(λ°© 개수, 측수, μŠ€νƒ€μΌ λ“±)λ₯Ό λ¨Όμ € μ •ν•˜λŠ” λ‹¨κ³„μž…λ‹ˆλ‹€.
  • μ‚°μΆœλ¬Ό :
    • κΈ°λŠ₯ λͺ©λ‘, λΉ„μ¦ˆλ‹ˆμŠ€ κ·œμΉ™, μ •μ±…, μ œμ•½ 쑰건 λ“±

2️⃣ μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜ μ„€κ³„μ„œ (μ–΄λ–»κ²Œ ꡬ쑰λ₯Ό μž‘μ„ 것인가?) πŸ—οΈ

  • μš”κ΅¬μ‚¬ν•­μ΄ μ–΄λŠ 정도 μœ€κ³½μ„ λ“œλŸ¬λ‚΄λ©΄ μ‹œμž‘λ©λ‹ˆλ‹€.
  • 이유 :
    • μ •μ˜λœ μš”κ΅¬μ‚¬ν•­μ„ μ•ˆμ •μ μ΄κ³  효율적으둜 λ§Œμ‘±μ‹œν‚€κΈ° μœ„ν•΄ μ–΄λ–€ κΈ°μˆ μ„ μ‚¬μš©ν•˜κ³ , μ‹œμŠ€ν…œμ„ μ–΄λ–€ 큰 덩어리(λͺ¨λ“ˆ, μ»΄ν¬λ„ŒνŠΈ)둜 λ‚˜λˆŒμ§€ κ²°μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.
    • β€œκ³ κ°μ΄ μ›ν•˜λŠ” 집”을 μ§“κΈ° μœ„ν•΄ μ–΄λ–€ 곡법(λͺ©μ‘°, μ² κ·Ό 콘크리트)을 μ‚¬μš©ν• μ§€, μ „κΈ°/μˆ˜λ„ μ‹œμŠ€ν…œμ€ μ–΄λ–»κ²Œ λ°°μΉ˜ν• μ§€ 큰 그림을 κ·Έλ¦¬λŠ” λ‹¨κ³„μž…λ‹ˆλ‹€.
  • μ‚°μΆœλ¬Ό :
    • 기술 μŠ€νƒ(Tech Stack), μ‹œμŠ€ν…œ ꡬ성도, μ™ΈλΆ€ μ‹œμŠ€ν…œ 연동 방식, 핡심 μ»΄ν¬λ„ŒνŠΈ 섀계

3️⃣ λ°μ΄ν„°λ² μ΄μŠ€ μ„€κ³„μ„œ (무엇을 μ €μž₯ν•  것인가?) πŸ’Ύ

  • μš”κ΅¬μ‚¬ν•­κ³Ό μ•„ν‚€ν…μ²˜κ°€ κ΅¬μ²΄ν™”λ˜λ©΄μ„œ ν•¨κ»˜ μ§„ν–‰λ©λ‹ˆλ‹€.
  • 이유 :
    • μš”κ΅¬μ‚¬ν•­μ—μ„œ ν•„μš”ν•œ 데이터(νšŒμ›, μƒν’ˆ, μ£Όλ¬Έ)κ°€ 무엇인지 μ‹λ³„ν•˜κ³ , μ•„ν‚€ν…μ²˜μ—μ„œ μ„ νƒν•œ λ°μ΄ν„°λ² μ΄μŠ€ 기술(RDBMS, NoSQL λ“±)에 맞좰 데이터λ₯Ό μ–΄λ–»κ²Œ κ΅¬μ‘°ν™”ν•˜μ—¬ μ €μž₯ν• μ§€ μ„€κ³„ν•©λ‹ˆλ‹€.
    • β€œμ§‘μ˜ 각 곡간”에 μ–΄λ–€ 가ꡬλ₯Ό λ°°μΉ˜ν•˜κ³  μˆ˜λ‚©κ³΅κ°„μ„ μ–΄λ–»κ²Œ λ§Œλ“€μ§€ ꡬ체적으둜 μ„€κ³„ν•˜λŠ” λ‹¨κ³„μž…λ‹ˆλ‹€.
  • μ‚°μΆœλ¬Ό :
    • ERD(Entity-Relationship Diagram), ν…Œμ΄λΈ” λͺ…μ„Έ, 인덱슀 섀계

πŸ› οΈ μ‹€λ¬΄μ—μ„œμ˜ ν˜„μ‹€μ μΈ μž‘μ—… 흐름 - 반볡적인 μž‘μ—… (Iteractive Process)

μ‹€μ œ ν”„λ‘œμ νŠΈμ—μ„œλŠ” 이 μ„Έ κ°€μ§€ 섀계가 퍼즐을 λΌμ›Œ λ§žμΆ”λ“―μ΄ μˆœμ„œλŒ€λ‘œ μ§„ν–‰λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
μ„œλ‘œκ°€ μ„œλ‘œμ—κ²Œ 영ν–₯을 미치며 ν•¨κ»˜ λ°œμ „ν•΄ λ‚˜κ°€λŠ” 반볡적인(Iteractive) 과정을 κ±°μΉ©λ‹ˆλ‹€.

  • 1. (μš”κ΅¬μ‚¬ν•­) : β€œμ‹€μ‹œκ°„ 인기 μƒν’ˆ μΆ”μ²œ κΈ°λŠ₯β€μ΄λΌλŠ” μš”κ΅¬μ‚¬ν•­μ΄ λ‚˜μ˜΅λ‹ˆλ‹€.
  • 2. (μ•„ν‚€ν…μ²˜) : β€œμ΄ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λ €λ©΄ λŒ€μš©λŸ‰ 데이터λ₯Ό λΉ λ₯΄κ²Œ μ²˜λ¦¬ν•΄μ•Ό ν•˜λ‹ˆ, κΈ°μ‘΄ RDBMS 외에 Redis 같은 인메λͺ¨λ¦¬ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό λ„μž…ν•˜μžβ€λΌκ³  μ•„ν‚€ν…μ²˜ 결정에 영ν–₯을 μ€λ‹ˆλ‹€.
  • 3. (λ°μ΄ν„°λ² μ΄μŠ€) : Redisλ₯Ό μ‚¬μš©ν•˜κΈ°λ‘œ ν–ˆμœΌλ―€λ‘œ, β€œμ‹€μ‹œκ°„ 인기(λž­ν‚Ή) 데이터λ₯Ό μ–΄λ–€ ꡬ쑰(예: Sorted Set)둜 μ €μž₯할지” ꡬ체적인 데이터 섀계λ₯Ό μ§„ν–‰ν•©λ‹ˆλ‹€.
  • 4. (λ‹€μ‹œ μš”κ΅¬μ‚¬ν•­) : 섀계λ₯Ό ν•˜λ‹€ λ³΄λ‹ˆ, β€œμΆ”μ²œ μƒν’ˆμ„ μ‚¬μš©μž κ·Έλ£Ήλ³„λ‘œ λ‹€λ₯΄κ²Œ λ³΄μ—¬μ£ΌλŠ” 것”이 기술적으둜 κ°€λŠ₯ν•˜λ‹€λŠ” 것을 λ°œκ²¬ν•˜κ³ , 이λ₯Ό μ›λž˜μ˜ μš”κ΅¬μ‚¬ν•­μ— μ—­μœΌλ‘œ μ œμ•ˆν•˜μ—¬ κΈ°λŠ₯을 더 ν’λΆ€ν•˜κ²Œ λ§Œλ“€ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

πŸ™‹β€β™‚οΈ 이처럼 μ„Έ μ„€κ³„μ„œλŠ” ν†±λ‹ˆλ°”κ·€μ²˜λŸΌ 맞물렀 λŒμ•„κ°€λ©°, ν”„λ‘œμ νŠΈκ°€ 진행됨에 따라 ν•¨κ»˜ κ΅¬μ²΄ν™”λ˜κ³  μƒμ„Έν•΄μ§‘λ‹ˆλ‹€.

⭐️ Important Advice.

  • 각 섀계 단계λ₯Ό β€œμ™„λ²½β€ ν•˜κ²Œ 끝내고 λ‹€μŒμœΌλ‘œ λ„˜μ–΄κ°€λ €λŠ” μƒκ°λ³΄λ‹€λŠ”, 핡심적인 λ‚΄μš©μ„ λ¨Όμ € μ •μ˜ν•˜κ³  κ°œλ°œμ„ μ§„ν–‰ν•˜λ©΄μ„œ ν•„μš”ν•œ 뢀뢄을 κ³„μ†ν•΄μ„œ κ΅¬μ²΄ν™”ν•˜κ³  κ°œμ„ ν•΄ λ‚˜κ°€λŠ” μ• μžμΌ(Agile)ν•œ μ ‘κ·Ό 방식이 ν˜„λŒ€ μ†Œν”„νŠΈμ›¨μ–΄ 개발 ν™˜κ²½μ— 더 μ ν•©ν•©λ‹ˆλ‹€.

πŸ₯΄ Made By Team WAN / BMC Crew