λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
  • μž₯원읡 κΈ°μˆ λΈ”λ‘œκ·Έ
πŸ’» Computer Science

[μ†Œν”„νŠΈμ›¨μ–΄ 곡학] μ• μžμΌ 방법둠, μ• μžμΌμ΄λž€?

by Wonit 2019. 12. 9.

μ• μžμΌ 방법둠

νŠΉμ§•

 

μ§€κΈˆκΉŒμ§€ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό κ°œλ°œν•˜κΈ° μœ„ν•΄μ„œλŠ” μ² μ €νžˆ κ³„νšν•˜κ³  μ—„κ²©ν•œ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ μš©ν•˜μ—¬ ν”„λ‘œμ νŠΈλ₯Ό κ΄€λ¦¬ν•˜λŠ” 것이 쒋은 μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μ–»κΈ° μœ„ν•œ μ΅œμ„ μ˜ 방법이라고 생각해 μ™”μœΌλ‚˜

 

λ¬Έμ„œν™”, ν’ˆμ§ˆ 관리 λ“± μ£Όμš” μž‘μ—…μ„ μ„±μ·¨ν•˜κΈ° μœ„ν•˜μ—¬ λΆ€μˆ˜μ μœΌλ‘œ λ˜λŠ” μΆ”κ°€μ μœΌλ‘œ μˆ˜ν–‰λ˜λŠ” μž‘μ—…μ„ μœ„ν•œ μ˜€λ²„ν—€λ“œ λΉ„μš©μ„ κ³Όλ‹€ν•˜κ²Œ μš”κ΅¬ν•˜κ²Œ 되고 μ΄λŸ¬ν•œ κ³„νš 쀑심 개발 기법이 μ†Œκ·œλͺ¨ λ˜λŠ” 쀑간 규λͺ¨ ν”„λ‘œμ νŠΈμ— μ μš©ν•  λ•Œ λΉ„νš¨μœ¨μ μ΄λΌλŠ” μƒκ°μ—μ„œ νƒ„μƒν•˜μ˜€λ‹€.

 

κ°€μΉ˜

 

ν”„λ‘œμ„ΈμŠ€μ™€ 도ꡬ보닀 개인과 κ·Έλ“€μ˜ ν˜‘μ—…μ— 더 κ°€μΉ˜λ₯Ό λ‘”λ‹€.

 

포괄적인 λ¬Έμ„œν™” 보닀 μ œλŒ€λ‘œ μž‘λ™ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄μ— 더 κ°€μΉ˜λ₯Ό λ‘”λ‹€.

 

계약 ν˜‘μƒλ³΄λ‹€ 고객과의 ν˜‘λ ₯에 더 κ°€μΉ˜λ₯Ό λ‘”λ‹€.

 

κ³„νšμ— λ”°λ₯΄κΈ°λ³΄λ‹€λŠ” 변화에 λŒ€μ‘ν•˜λŠ” 것에 더 κ°€μΉ˜λ₯Ό λ‘”λ‹€.

 

κ³ κ°μ—κ²Œ 졜고의 κ°€μΉ˜λ₯Ό κ°€μž₯ 빨리 μ „λ‹¬ν•˜μž.

 

μ• μžμΌ 방법둠은 λ¬Έμ„œ μ€‘μ‹¬μ˜ 전톡적인 κ°œλ°œλ°©λ²•μ„ νƒˆν”Όν•˜μ—¬ ν•„μš”ν•œ μš”κ΅¬λ₯Ό κ·Έλ•Œκ·Έλ•Œ λ”ν•˜κ³  μˆ˜μ •ν•˜λŠ” μ½”λ“œ μ€‘μ‹¬μ˜ 점진적 개발 방법이닀.

 

λ¦¬νŒ©ν† λ§ κΈ°λ²•μ˜ 적용

 

λ¦¬νŒ©ν† λ§μ΄λž€ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό 보닀 μ‰½κ²Œ 이해할 수 있고 적은 λΉ„μš©μœΌλ‘œ μˆ˜μ •ν•  수 μžˆλ„λ‘ κΈ°μ‘΄ μ½”λ“œμ˜ 섀계λ₯Ό κ°œμ„ ν•˜λŠ” κΈ°μˆ μ΄λ‹€.

 

κ²‰μœΌλ‘œ λ³΄μ΄λŠ” λ™μž‘μ΄λ‚˜ μ™ΈλΆ€ ν–‰μœ„λ₯Ό λ°”κΎΈμ§€ μ•Šκ³  μ†Œν”„νŠΈμ›¨μ–΄ λ‚΄λΆ€μ˜ ꡬ쑰λ₯Ό λ°”κΎΈλ©° μ μ§„μ μœΌλ‘œ 섀계λ₯Ό ν–₯μƒμ‹œν‚€λŠ” 방법이닀.

 

λ‚˜μœ 냄세

λ‚˜μœ λƒ„μƒˆλž€ μ½”λ“œκ°€ μ€‘λ³΅λ˜κ±°λ‚˜ νš¨μœ¨μ μ΄μ§€ λͺ»ν•œ μ½”λ“œ, λ°œμƒ μœ„ν—˜μ΄ μžˆλŠ” μ½”λ“œλ₯Ό μ˜λ―Έν•œλ‹€.

 

  • μ€‘λ³΅λœ μ½”λ“œ

    μ½”λ“œμ˜ μ—¬λŸ¬ λΆ€λΆ„μ—μ„œ λ™μΌν•œ μ½”λ“œκ°€ μ€‘λ³΅λœλ‹€.

  • κΈ΄ λ©”μ„œλ“œ

    λ©”μ„œλ“œμ˜ μ½”λ“œ 길이가 κΈΈλ‹€.

  • κ±°λŒ€ν•œ 클래슀

    클래슀 ν•˜λ‚˜μ— λ„ˆλ¬΄ λ§Žμ€ κΈ°λŠ₯이 ν¬ν•¨λ˜μ–΄ μ§€λ‚˜μΉ˜κ²Œ λ§Žμ€ λ³€μˆ˜κ°€ μ‘΄μž¬ν•œλ‹€.

 

객체 μ§€ν–₯ κΈ°λ²•μ˜ 적용

 

λͺ¨λ“  λ‹¨μœ„μ˜ ν…ŒμŠ€νŠΈλ₯Ό 객체지ν–₯적으둜 ν•˜κΈ° λ•Œλ¬Έμ— ν”„λ‘œν† νƒ€μž…μ˜ ν˜•νƒœλ₯Ό 객체둜써 λ³Ό 수 μžˆλ‹€.

 

μ• μžμΌμ˜ μž₯점/단점

 

μž₯점

  • λΉ λ₯΄κ²Œ λŠμž„μ—†μ΄ κ°œλ°œν•˜κ³  μˆ˜μ •ν•˜λŠ” 일을 λ°˜λ³΅ν•˜λ©΄μ„œ 고객이 μ°Έμ—¬ν•˜κ³  κ°€μž₯ λ§Œμ‘±ν•  수 μžˆλŠ” λ°©ν–₯으둜 SW 개발이 κ°€λŠ₯ν•˜λ‹€.
  • μ£ΌκΈ°λ§ˆλ‹€ μ œν’ˆμ΄ λ§Œλ“€μ–΄μ Έ μ‚¬μš©μžκ°€ μ‚¬μš©ν•΄λ³΄λ©° μ˜μ‚¬μ†Œν†΅μ΄ κ°€λŠ₯ν•˜λ‹€.
  • μ€‘μ†Œν˜• SWμ—μ„œ 효율이 μ’‹κ³ , λŒ€κ·œλͺ¨ SW에도 ν…ŒμŠ€ν¬μ— λŒ€ν•΄ μ‚¬μš©ν•˜λŠ” 것이 쒋은 κ²½μš°λ„ μžˆλ‹€.
  • 개발 방법 전체가 μ•„λ‹Œ 일뢀 기법을 μ‚¬μš©ν•˜κ±°λ‚˜ 사상을 가져와 μ‚¬μš©ν•˜κΈ°μ— μ’‹λ‹€.

 

단점

  • κ°œλ°œλ°©λ²•λ‘  전체λ₯Ό μ μš©ν•˜κΈ°μ—λŠ” λΆ€μ‘±ν•˜λ‹€.
  • λŒ€κ·œλͺ¨ SW κ°œλ°œμ—μ„œλŠ” μ μš©ν•˜κΈ° νž˜λ“€λ‹€.
  • λ„ˆλ¬΄ μž¦μ€ μˆ˜μ •μœΌλ‘œ 인해 SW에 μ•…μ˜ν–₯을 끼칠 수 μžˆλ‹€.
  • 개발 방법을 μ‚¬μš©ν•˜κΈ° μœ„ν•œ μ„ μˆ˜μ‘°κ±΄μ΄ κ°€μž₯ μ€‘μš”ν•˜λ‚˜ μ–΄λ ΅κ³  잘 μ•ˆλ˜λŠ” 뢀뢄이닀.
  • μ‚¬μš©μžμ˜ κ³Όλ„ν•œ μš”κ΅¬μ‚¬ν•­μ΄ λ°œμƒν•  수 μžˆλ‹€.

λ„μž…μ˜ 어렀움

  • λ‚―μ„  ν”„λ‘œμ„ΈμŠ€

    μš°λ¦¬λ‚˜λΌμ—μ„œ μ• μžμΌμ„ μ„±κ³΅μ μœΌλ‘œ μˆ˜ν–‰λœ ν”„λ‘œμ νŠΈκ°€ λ§Žμ§€ μ•Šμ•„ 정보λ ₯이 λΆ€μ‘±ν•˜λ‹€.

  • ν”„λ‘œμ νŠΈ νŒ€μ›μ—κ²Œ μš”κ΅¬λ˜λŠ” μ—­λŸ‰

    μ• μžμΌμ— κ΅¬μ„±λ˜λŠ” ν”„λ‘œμ νŠΈ ꡬ성원은 개발 ν”„λ‘œμ„ΈμŠ€μ— μ μ‘ν•˜κΈ° 이전에 μ†Œν”„νŠΈμ›¨μ–΄ 곡학, 객체지ν–₯ κΈ°μˆ μ— λŒ€ν•΄ μΆ©λΆ„νžˆ μ΄ν•΄ν•˜κ³  μˆ™λ‹¬λœ 개발자 이어야 ν•œλ‹€.

  • μ΄λŒμ–΄ λ‚΄κΈ° νž˜λ“  고객의 μ°Έμ—¬

    μ• μžμΌ ν”„λ‘œμ„ΈμŠ€μ—μ„œ 고객의 역할은 기쑴의 μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œλ°©λ²•μ— λΉ„ν•΄ λ§Žμ€ 비쀑을 μ°¨μ§€ν•œλ‹€. μš”κ΅¬μ‚¬ν•­μ„ λ°ν˜€λ‚΄μ–΄ μ‚¬μš©μž μŠ€ν† λ¦¬λ₯Ό κ΅¬ν˜„ν•΄ν– ν•˜λŠ”λ° μ• μžμΌμ˜ νŠΉμ„±μƒ 고객이 λͺ¨λ“  ν”„λ‘œμ„ΈμŠ€μ— μ°Έμ—¬ν•˜λŠ” 것이 ν˜„μ‹€μ μœΌλ‘œ μ–΄λ ΅λ‹€.

λŒ“κΈ€