πŸ’» Computer Science/Software Engineering

Ch4 μš”κ΅¬ 뢄석

kkh1902 2022. 1. 22. 18:28
728x90
λ°˜μ‘ν˜•

ν•™μŠ΅λͺ©ν‘œ

  • μš”κ΅¬ λΆ„μ„μ˜ ν•„μš”μ„±κ³Ό μ–΄λ €μš΄ 점을 μ•Œμ•„λ³Έλ‹€.
  • μš”κ΅¬ 사항을 ν‘œν˜„ν•˜λŠ” 방법을 μ΅νžŒλ‹€.
  • μš”κ΅¬ 뢄석 λͺ…μ„Έμ„œλ₯Ό μ‚΄νŽ΄λ³Έλ‹€.

1. μš”κ΅¬ 사항과 μš”κ΅¬ 뢄석 λͺ…μ„Έμ„œμ˜ 이해

μ†Œν”„νŠΈμ›¨μ–΄ 개발의 ꢁ극적인 λͺ©μ 

  • 고객을 λ§Œμ‘±ν•˜λ„λ‘ ν•˜λŠ” 것이닀.
  • μ‚¬μš©μžμ˜ μš”κ΅¬λ₯Ό λ§Œμ‘±ν•˜λ„λ‘ ν•˜κΈ°μœ„ν•΄μ„œ λ‹€μŒκ³Ό 같은 νŠΉμ„±μ„ 만쑱 μ‹œμΌœμ•Όν•œλ‹€.
    • μ μ‹œμ„±(time to market): μ‚¬μš©μžλŠ” 맀우 λ³΅μž‘ν•œ 업무라도 λΉ λ₯Έ μ‹œκ°„μ— λ§Œλ“€κΈ°λ₯Ό μ›ν•˜κ³  μžˆλ‹€.
    • μœ μ—°μ„±: κΈ‰λ³€ν•˜λŠ” ν™˜κ²½μ—λ„ 잘 적응할 수 μžˆλŠ” μ‹œμŠ€ν…œμ„ μ›ν•˜κ³  μžˆλ‹€.
    • 톡합(intergration): 기쑴의 μ‹œμŠ€ν…œκ³Όλ„ μ‰½κ²Œ 톡합할 수 μžˆμ–΄μ•Ό ν•œλ‹€.
  • 고객 λ§Œμ‘±μ„ μœ„ν•΄μ„œλŠ” μ›ν•˜λŠ” ν’ˆμ§ˆμ˜ μ œν’ˆμ„ μ •ν•΄μ§„ 개발 κΈ°κ°„κ³Ό μ£Όμ–΄μ§„ μ˜ˆμ‚° λ²”μœ„ μ•ˆμ—μ„œ κ°œλ°œν•΄μ•Ό ν•œλ‹€.
  • 그러렀면 λ¨Όμ € μ‚¬μš©μžμ˜ μš”κ΅¬ 사항을 μ •ν™•νžˆ νŒŒμ•…ν•˜κ³  λΆ„μ„ν•˜λŠ” μž‘μ—…μ΄ ν•„μš”ν•˜λ‹€.

μš”κ΅¬μ‚¬ν•­

  • 사전적 의미: μ΄μš©μžκ°€ μ–΄λ–€ 문제λ₯Ό ν’€κ±°λ‚˜ λͺ©ν‘œλ₯Ό λ‹¬μ„±ν•˜κΈ° μœ„ν•΄ ν•„μš”ν•œ μ‘°κ±΄μ΄λ‚˜ λŠ₯λ ₯ 이닀.
  • μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œμ—μ„œ μš”κ΅¬ 사항은 이와 μœ μ‚¬ν•˜κ²Œ μ‚¬μš©μžμ™€ 개발자 간에 ν•©μ˜ν•œ 개발 λ²”μœ„μ—μ„œ μ‹œμŠ€ν…œμ΄ μ œκ³΅ν•΄μ•Ό ν•˜λŠ” κΈ°λŠ₯을 λ§ν•œλ‹€.

μš”κ΅¬ 뢄석 λͺ…μ„Έμ„œ

  • 개발 μ΄ˆκΈ°μ— μ‚¬μš©μžμ˜ μš”κ΅¬μ‚¬ν•­(λΉ„κΈ°λŠ₯ μš”κ΅¬ 사항 포함)을 μΆ”μΆœν•˜μ—¬ μ •λ¦¬ν•œ λ¬Έμ„œ
  • μš”κ΅¬ 뢄석 λͺ…μ„Έμ„œμ—λŠ” μ‹œμŠ€ν…œμ˜ κΈ°λŠ₯이 무엇(what)μΈμ§€μ—λ§Œ μ΄ˆμ μ„ 두어 μ •λ¦¬ν•˜κ³  μ–΄λ–»κ²Œ κ΅¬ν˜„ν• μ§€λŠ” κΈ°μˆ ν• μ§€λŠ” κΈ°μˆ ν•˜μ§€ μ•ŠλŠ”λ‹€
  • μ–΄λ–»κ²Œ κ΅¬ν˜„ κ΄€μ μœΌλ‘œ μ„€κ³„μ—μ„œ μžμ„Ένžˆ ν‘œν˜„ν•œλ‹€.

2. μš”κ΅¬ λΆ„μ„μ˜ 이해

1. μš”κ΅¬ λΆ„μ„μ˜ μ •μ˜μ™€ λͺ©μ 

  • μš”κ΅¬λ₯Ό μ •μ˜ν•˜λŠ” 일은 μ˜·μ„ μž…μ„ λ•Œ 첫 단좔λ₯Ό λΌμš°λŠ” 것과 κ°™λ‹€.
  • μš”κ΅¬ 뢄석을 ν•˜λŠ” 이유
    • μ‚¬μš©μžμ—κ²Œ ν•„μš”ν•œ μš”κ΅¬ 사항을 μΆ”μΆœν•˜μ—¬ λͺ©ν‘œν•˜λŠ” μ‹œμŠ€ν…œμ˜ λͺ¨λΈμ„ λ§Œλ“€κ³  μš”κ΅¬ 뢄석 λͺ…μ„Έμ„œλ₯Ό μž‘μ„±ν•˜κΈ° μœ„ν•΄μ„œμ΄λ‹€.
    • λͺ…μ„Έμ„œμ—λŠ” μ‹œμŠ€ν…œμ΄ λ§Œμ‘±μ‹œμΌœμ•Ό ν•  κΈ°λŠ₯, μ„±λŠ₯, λ‹€λ₯Έ μ‹œμŠ€ν…œκ³Όμ˜ μΈν„°νŽ˜μ΄μŠ€ 등을 ν‘œν˜„ν•œλ‹€.

λ‹€μ–‘ν•œ κ΄€λ ¨μžλ“€

  • λ°œμ£Όμ‚¬(고객)
  • 경영자
  • 발주 λ‹΄λ‹Ήμž : λͺ¨λ“  절차λ₯Ό μ€€λΉ„ν•˜λŠ” λ‹΄λ‹Ήμž(ꡬ맀처)
  • μ‚¬μš©μž
  • μˆ˜μ£Όμ‚¬: μ—¬λŸ¬ μ—…μ²΄λ“€κ³Όμ˜ κ²½μŸμ—μ„œ 이겨 κ°œλ°œν•˜κΈ°λ‘œ κ²°μ •λœ 업체λ₯Ό μˆ˜μ£Όμ‚¬λΌκ³  ν•œλ‹€.
  • 뢄석가: μš”κ΅¬ 사항이 무엇이지 νŒŒμ•…ν•˜κ³  μΆ”μΆœν•˜μ—¬ μ •λ¦¬ν•˜λŠ” κ²ƒκΉŒμ§€ λ‹΄λ‹Ήν•œλ‹€.
  • μ„€κ³„μž: μš”κ΅¬ 뢄석 λͺ…μ„Έμ„œλ₯Ό λ°”νƒ•μœΌλ‘œ μ½”λ”©ν•˜κΈ° μœ„ν•œ μ•„ν‚€ν…μ²˜ 섀계, λͺ¨λ“ˆ 섀계, DB섀계 μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€ 섀계 등을 λ‹΄λ‹Ήν•œλ‹€.
  • 개발자: 쒁은 μ˜λ―Έλ‘œλŠ” ν”„λ‘œκ·Έλž˜λ°μ„ ν•˜λŠ” ν”„λ‘œκ·Έλž˜λ¨Έλ₯Ό 개발자

2. μš”κ΅¬ λΆ„μ„μ˜ 어렀움

2.1 문제 μ˜μ—­μ— λŒ€ν•œ 이해λ ₯ λΆ€μ‘±

  • 문제 μ˜μ—­μ— λŒ€ν•΄μ„œλŠ” μ „λ¬Έμ„œμ΄ μ—†λŠ” κ²½μš°κ°€ λ§Žλ‹€.

2.2 μ˜μ‚¬μ†Œν†΅μ˜ 문제

  • 견본이 μ—†λŠ” κ²½μš°κ°€ λŒ€λΆ€λΆ„μ΄κ³  μš”κ΅¬ 사항을 μ„€λͺ…ν•˜κΈ°κ°€ 맀우 μ–΄λ ΅λ‹€.
  • μ‚¬μš©μžκ°€ μ›ν•˜λŠ” λ°”λ₯Ό μ–΄λ–»κ²Œ μ„€λͺ…ν•΄μ•Ό ν• μ§€ 잘 λͺ¨λ₯΄κΈ°λ„ ν•œλ‹€.
  • μ‚¬μš©μžμ˜ μ˜μ‚¬ 전달 λŠ₯λ ₯(μ€‘μš”)에 따라 μš”κ΅¬μ‚¬ν•­μ΄ 100%전달 λ˜κ±°λ‚˜ μ•ˆλ˜κ±°λ‚˜

2.3 계속 λ³€ν•˜λŠ” μš”κ΅¬ 사항

  • 처음 μš”κ΅¬λŠ” κ°„λ‹¨ν•˜κ³  λ‹¨μˆœν•  수 μžˆλ‹€.
  • μƒˆλ‘œμš΄ μš”κ΅¬ κ°€ 생긴닀
  • 이런 λ³€κ²½ 사항을 계속 좔적할 수 μžˆλ„λ‘ λ‚ μ§œλ³„, μ‹œκ°„λ³„λ‘œ 잘 기둝해놓아야 ν•œλ‹€.
  • μš”κ΅¬ 사항 κ°„μ˜ μΆ©λŒμ΄λ‚˜ 일관성 κ²°μ—¬ 및 뢈일치 등이 λ°œμƒν•  수 μžˆλ‹€.

2.4 μ• λ§€λͺ¨ν˜Έν•œ μš”κ΅¬ 사항

  • μ• λ§€ν•˜κ²Œ μš”κ΅¬ν•˜λ©΄ 뢄석가가 달리 해석할 수 도 μžˆλ‹€.
  • μ‚¬μš©μžμ˜ μš”κ΅¬μ— 일관성이 μ—†κ±°λ‚˜ μ„œλ‘œ λͺ¨μˆœλ˜λŠ” κ²½μš°λ„ λ°œμƒν•œλ‹€ ( μ„œλ‘œ μƒμΆ©λœλ‹€.)
  • λΆ„μ„κ°€λŠ” μ΄λŸ¬ν•œ μš”κ΅¬λ“€μ„ μ •λ¦¬ν•˜μ—¬ λ°˜μ˜ν•˜κΈ° μœ„ν•΄ 이해 λ‹Ήμ‚¬μžλ“€ κ°„μ˜ μ£Όμž₯을 μ‘°μœ¨ν•  수 μžˆλŠ” λŠ₯λ ₯이 μžˆμ–΄μ•Ό ν•œλ‹€.

2.5 μ‚¬μš©μžμ™€ 개발자의 마찰

  • 졜적의 μš”κ΅¬ 뢄석 λͺ…μ„Έμ„œλ₯Ό λ§Œλ“€μ–΄λ„ μ‚¬μš©μžκ°€ κ·Έ λ‚΄μš©μ„ 달리 해석할 μˆ˜λ„ μžˆλ‹€.
  • 마찰이 생길 수 도 μžˆλ‹€.

3. λΆ„μ„κ°€μ—κ²Œ ν•„μš”ν•œ λŠ₯λ ₯

3.1 μ˜μ‚¬μ†Œν†΅κ³Ό ν˜‘μƒ λŠ₯λ ₯

  • μš°μ„ μˆœμœ„λ₯Ό κ²°μ •
  • 좔상적인 μ‚¬μš©μžμ˜ μš”κ΅¬λ„ 잘 νŒŒμ•…ν•˜μ—¬ 논리적 λΆ„ν• ν•œλ‹€.
  • ν• μˆ˜ μžˆλŠ” 것 κ³Ό λͺ»ν•˜λŠ” 것 잘 ꡬ별할 쀄 μ•Œμ•„μ•Όν•œλ‹€?
  • λ‹€ ν•΄μ•Όλ˜μ§€λ§Œ μš°μ„ μˆœμœ„κ°€ μžˆλ‹€.!

3.2 개발 업무 μ˜μ—­μ— λŒ€ν•œ 지식

  • ν•΄λ‹Ή μ˜μ—­μ— λŒ€ν•œ 지식이 ν•„μš”

3.3 개발 κ΄€λ ¨ κΈ°μˆ μ— λŒ€ν•œ 지식

  • μ‚¬μš©μžμ˜ μš”κ΅¬κ°€ κ΅¬ν˜„ κ°€λŠ₯ν•œμ§€ νŒλ‹¨ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€.
  • 졜근 κΈ°μˆ μ— λŒ€ν•œ 지식도 μžˆμ–΄μ•Ό ν•œλ‹€.
  • 전체 κΈ°λŠ₯을 μ„ΈλΆ„ν™”ν•˜κ³  ν†΅ν•©λœ 전체 그림을 μ œμ‹œν•  μˆ˜λ„ μžˆμ–΄μ•Ό ν•œλ‹€.

3.4 이해 κ΄€κ³„μžλ“€μ˜ μƒλ°˜λœ μš”κ΅¬μ— λŒ€ν•œ μ€‘μž¬ λŠ₯λ ₯

  • 경영자
    • 경영자 μž…μž₯μ—μ„œλŠ” 투자 λŒ€λΉ„ 효과
  • 고객
    • 개발 λΉ„μš©μ΄ 적게 λ“€κ³  개발 기간을 잘 지킬 수 μžˆλŠ” 업체에 더 λ§Žμ€ 관심을 갈 것이닀.
  • μ‚¬μš©μž
    • μžμ‹ μ˜ 업무λ₯Ό 효율적으둜 μ²˜λ¦¬ν•  수 μžˆλŠ”μ§€, 또 νŽΈλ¦¬ν•˜κ²Œ ν•΄μ£ΌλŠ”μ§€ 관심이 λ§Žλ‹€.

4. μš”κ΅¬ 사항 μˆ˜μ§‘ 방법

4.1 μžλ£Œμˆ˜μ§‘

  • ν•΄λ‹Ή 업무에 κ΄€ν•œ κΈ°μ‘΄ 자료λ₯Ό μˆ˜μ§‘ν•˜κ³  λΆ„μ„ν•˜λŠ” 일이닀.
  • λ‹΄λ‹Ήμžλ“€μ€ 업무 맀뉴얼 λ˜λŠ” 업무 흐름도 λ“±μ˜ λ¬Έμ„œλ₯Ό λ°›μ•„, μ „λ°˜μ μΈ 업무 흐름을 νŒŒμ•…ν•˜κ³  이해해야 ν•œλ‹€.

4.2 인터뷰

  • μˆœμ„œκ°€ μ •ν•΄μ ΈμžˆλŠ” 것x →자료λ₯Ό 멎거 μˆ˜μ§‘ν•œν›„ 이λ₯Ό μ •λ¦¬ν•˜μ—¬ λΆ„μ„ν•œ κ²°κ³Όλ₯Ό λ°”νƒ•μœΌλ‘œ μΈν„°λ·°ν•˜λŠ” 것이 맀우 νš¨μœ¨μ μ΄λ‹€.
  • 뢄석가가 μ‚¬μš©μžμ™€ 인터뷰
  • 뢄석가가 κ²½μ˜μžμ™€ 인터뷰

4.3 섀문쑰사

 

3. μš”κ΅¬ 뢄석 μ ˆμ°¨μ™€ μš”κ΅¬ 사항 μ’…λ₯˜

01. μš”κ΅¬ 뢄석 μ ˆμ°¨μ™€ μš”κ΅¬ 사항 λΆ„λ₯˜

  • μš”κ΅¬ 뢄석 절차
    자료 μˆ˜μ§‘: ν˜„ν–‰ μ‹œμŠ€ν…œμ„ νŒŒμ•…ν•΄ 문제점 λ„μΆœ, 싀무 λ‹΄λ‹Ήμžμ™€ 인터뷰, ν˜„μž¬ μ‚¬μš©ν•˜λŠ” μ„œλ₯˜ κ²€ν†  등을 톡해 κ°€λŠ₯ν•œ λͺ¨λ“  자료λ₯Ό μˆ˜μ§‘ν•œλ‹€.
  1. μš”κ΅¬ 사항 λ„μΆœ: μˆ˜μ§‘ν•œ 자료λ₯Ό μ •λ¦¬ν•˜μ—¬ 적절히 λΆ„λ₯˜ν•˜κ³  μ—¬κΈ°μ„œ κ°œλ°œμ— λ°˜μ˜ν•  μš”κ΅¬ 사항을 λ„μΆœν•œλ‹€.
  2. λ¬Έμ„œν™” : λ„μΆœν•œ μš”κ΅¬ 사항을 μš”κ΅¬ 뢄석 λͺ…μ„Έμ„œλ‘œ λ¬Έμ„œν™”ν•œλ‹€.
  3. 검증 : μš”κ΅¬ 뢄석 λͺ…μ„Έμ„œλ₯Ό κ²€ν† ν•œλ‹€. μ‚¬μš©μžμ˜ μš”κ΅¬κ°€ μ •ν™•νžˆ κΈ°λ‘λ˜μ–΄ μ„œλ‘œ λͺ¨μˆœλ˜λŠ” 사항은 μ—†λŠ”μ§€, λΉ λœ¨λ¦¬μ§€ μ•Šκ³  μ „λΆ€ κΈ°λ‘ν•˜κ³  μžˆλŠ”μ§€ 등을 μ κ²€ν•œλ‹€
  • μš”κ΅¬ 사항 λΆ„λ₯˜
    μ‹œν—˜μ—λŠ” λΉ„κΈ°λŠ₯적 μš”κ΅¬μ‚¬ν•­ λ§Žλ‹€
  • ν˜„μ—…μ—λŠ” κΈ°λŠ₯적 μš”κ΅¬μ‚¬ν•­ λ§Žλ‹€.

02. κΈ°λŠ₯적 μš”κ΅¬ 사항과 λΉ„κΈ°λŠ₯적 μš”κ΅¬ 사항

2.1 κΈ°λŠ₯적 μš”κ΅¬ 사항

  • κΈ°λŠ₯적 μš”κ΅¬ 사항은 λ‹¨μ–΄μ˜ λœ»λŒ€λ‘œ μ‚¬μš©μžκ°€ μ›ν•˜λŠ” κΈ°λŠ₯을 말함.

2.2 λΉ„κΈ°λŠ₯적 μš”κ΅¬ 사항

  • μˆ˜ν–‰ κ°€λŠ₯ν•œ ν™˜κ²½, ν’ˆμ§ˆ, μ œμ•½ 사항이닀.

μ œμ•½ 사항

  • 개발된 μ†Œν”„νŠΈμ›¨μ–΄κ°€ μˆ˜ν–‰λ˜λŠ” ν™˜κ²½κ³Ό 같은 쑰건을 λ§ν•œλ‹€.
  • 예
    • μžλ°” μ–Έμ–΄λ₯Ό μ‚¬μš©ν•΄ κ°œλ°œν•˜κ³ , CBD 개발 방법둠을 μ μš©ν•΄μ•Ό ν•œλ‹€.
    • λ ˆλ“œν–‡ λ¦¬λˆ…μŠ€ μ—”ν„°ν”„λΌμ΄μ¦ˆ λ²„μ „μ—μ„œ μ‹€ν–‰ν•΄μ•Ό ν•œλ‹€.
    • μ›Ήλ‘œμ§ μ„œλ²„λ₯Ό λ―Έλ“€μ›¨μ–΄λ‘œ μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.
    • μœˆλ„μš°μ¦ˆ μš΄μ˜μ²΄μ œμ™€ λ¦¬λˆ…μŠ€ μš΄μ˜μ²΄μ œμ—μ„œ λͺ¨λ‘ μ‹€ν–‰ν•  수 μžˆμ–΄μ•Όν•œλ‹€.

ν’ˆμ§ˆ

μ‚¬μš©μžμ— κ΄€λ ¨λœ ν’ˆμ§ˆ, κ°œλ°œμžμ— λŒ€ν•œ ν’ˆμ§ˆ

  • μ‹ λ’°μ„±(reliability)
    • μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό λ―Ώκ³  μ‚¬μš©ν•  수 μžˆλŠ” 것.
    • μ‚¬μš©μžκ°€ μ£Όμ–΄μ§„ μ‹œκ°„κ³Ό μ£Όμ–΄μ§„ ν™˜κ²½μ—μ„œ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό κ³ μž₯ 없이 μ‚¬μš©ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€λŠ” 것.
    • μ‹ λ’°λ„λž€ ‘μž₯μ•  없이 λ™μž‘ν•˜λŠ” μ‹œκ°„μ˜ λΉ„μœ¨’
  • μ„±λŠ₯
    • μ‚¬μš©μžκ°€ μ›ν•˜λŠ” 쑰건(응닡 μ‹œκ°„, 데이터 μ²˜λ¦¬λŸ‰ λ“±)을 λ§Œμ‘±μ‹œν‚€λŠ” 것이닀.
    • 예) λŒ€ν•™ μ’…ν•©μ •λ³΄μ‹œμŠ€ν…œμ€ μˆ˜κ°• μ‹ μ²­ μ‹œ λ™μ‹œ μ ‘μ†μž 수 10000λͺ…이 κ°€λŠ₯ν•΄μ•Ό ν•œλ‹€.
  • λ³΄μ•ˆμ„±
    • ν—ˆκ°€λ°›μ€ λ‹΄λ‹Ήμžλ§Œ ν•΄λ‹Ή μ‹œμŠ€ν…œμ— μ ‘κ·Όν•  수 μžˆλ„λ‘ ν•΄μ•Όν•œλ‹€.
  • μ•ˆμ „μ„±
  • μ‚¬μš©μ„±
    • μ‚¬μš©μžμ—κ²Œ κ°€μž₯ 민감
    • μ‚¬μš©ν• λ•Œ ν—·κ°ˆλ¦¬μ§€ μ•Šκ³  λ‹¨μˆœν•˜κ³  νŽΈλ¦¬ν•˜κ²Œ λ§Œλ“€μ–΄μ•Ό ν•œλ‹€.

3. μ‚¬μš©μž μš”κ΅¬ 사항과 μ‹œμŠ€ν…œ μš”κ΅¬ 사항

  • μ‚¬μš©μžλ₯Ό μœ„ν•œ 도면
  • μ‹œκ³΅μžλ₯Ό μœ„ν•œ 도면

3.1 μ‚¬μš©μž μš”κ΅¬ 사항

  • μœ μ‚¬ν•œ ν”„λ‘œμ νŠΈ κ²½ν—˜μ„ κ°€μ§„ 뢄석가 μ„ μ •
  • ν‘œμ€€ 양식 μ‚¬μš©
  • μˆ˜μ§‘ν•œ μš”κ΅¬ 사항에 λŒ€ν•œ κ·Όκ±°(좜처) 마련

3.2 μ‹œμŠ€ν…œ μš”κ΅¬ 사항

  • μ„€κ³„μžκ°€ μ„€κ³„ν•˜λŠ” 데 도움이 λ˜λ„λ‘ 기술적 μš©μ–΄λ‚˜ 전문적인 ν‘œν˜„μ„ μ¨μ„œ μ‹œμŠ€ν…œ μš”κ΅¬ 뢄석 λͺ…μ„Έμ„œλ‘œ μž‘μ„±
  • μ™„μ „ν•˜κ³  일관성 있게 μž‘μ„±λ˜μ–΄μ•Ό ν•œλ‹€.
  • ꡬ쑰적 λ°©λ²•λ‘ μ˜ ꡬ쑰적 μ–Έμ–΄λ‚˜ 객체지ν–₯ λ°©λ²•λ‘ μ˜ μœ μŠ€μΌ€μ΄μŠ€ λ‹€μ΄μ–΄κ·Έλž¨, 검증에 κ°•ν•œ Zλͺ…세와 같은 μ •ν˜•ν™”λœ μˆ˜ν•™μ  λͺ…μ„Έ μ–Έμ–΄ μ‚¬μš© ν‘œν˜„

4. μš”κ΅¬ μ‚¬ν•­μ˜ ν‘œν˜„

  • μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œμ—μ„œ μ‚¬μš©ν•˜λŠ” λͺ¨λΈμ˜ κ°œλ…μ„ 이해해보고 λͺ¨λΈλ§ 방법과 λͺ¨λΈλ§ μ–Έμ–΄μ˜ μ’…λ₯˜μ— λŒ€ν•΄ μ‚΄νŽ΄ λ³Έλ‹€.

1. ν‘œν˜„κ³Ό λͺ¨λΈμ˜ 이해

  • 잘 ν‘œν˜„ν•΄μ•Ό μ†Œν†΅μ΄ 쉽고 μ„œλ‘œ μ΄ν•΄ν•˜λŠ” 데 큰 도움이 λœλ‹€.

2. λͺ¨λΈμ˜ μ •μ˜μ™€ ν•„μš”μ„±

  • λͺ¨λΈμ€ ‘μ–΄λ–€ λ³΅μž‘ν•œ λŒ€μƒμ˜ 핡심 νŠΉμ§•λ§Œ μ„ λ³„ν•˜μ—¬ μΌμ •ν•œ κ΄€μ μœΌλ‘œ λ‹¨μˆœν™” μ‹œμΌœ κΈ°ν˜Έλ‚˜ κ·Έλ¦Ό 등을 μ‚¬μš©ν•΄ μ²΄κ³„μ μœΌλ‘œ ν‘œν˜„ν•œ 것’
  • λͺ¨λΈμ΄ ν•„μš”ν•œ κ°€μž₯ 큰 μ΄μœ λŠ” λͺ¨λΈμ„ 톡해 μ‹€μ œ λͺ¨μŠ΅μ„ μƒκ°ν•˜κ³  확인해 λ³Ό 수 있기 λ•Œλ¬Έμ΄λ‹€.

2.1 μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œμ—μ„œμ˜ λͺ¨λΈ

톡합 λͺ¨λΈλ§ μ–Έμ–΄(UML, μ˜μ–΄: Unified Modeling Language)λŠ” μ†Œν”„νŠΈμ›¨μ–΄ κ³΅ν•™μ—μ„œ μ‚¬μš©λ˜λŠ” ν‘œμ€€ν™”λœ λ²”μš© λͺ¨λΈλ§ 언어이닀.[1] μ΄ ν‘œμ€€μ€ UML을 κ³ μ•ˆν•œ κ°μ²΄ 관리 κ·Έλ£Ήμ—μ„œ 관리 ν•˜κ³  μžˆλ‹€. UML은 μ†Œν”„νŠΈμ›¨μ–΄ μ§‘μ•½ μ‹œμŠ€ν…œμ˜ μ‹œκ°μ  λͺ¨λΈμ„ λ§Œλ“€κΈ° μœ„ν•œ λ„μ•ˆ ν‘œκΈ°λ²•μ„ ν¬ν•¨ν•œλ‹€.

  • 개발될 μ†Œν”„νŠΈμ›¨μ–΄μ— λŒ€ν•œ 이해도 ν–₯상, 이해 λ‹Ήμ‚¬μž κ°„μ˜ μ˜μ‚¬μ†Œν†΅ ν–₯상
  • μœ μ§€ 보수 용이
  • κ³Όλ„ν•œ λ¬Έμ„œ μž‘μ—…μœΌλ‘œ μΈν•œ 일정 μ§€μ—° κ°€λŠ₯μ„±
  • ν˜•μ‹μ μΈ μ‚°μΆœλ¬Όλ‘œ μ „λž΅ν•  κ°€λŠ₯μ„±

3. λͺ¨λΈλ§

  • ν˜„μ‹€ 세계λ₯Ό λ‹¨μˆœν™”ν•˜μ—¬ ν‘œν˜„ν•˜λŠ” 기법이라 ν•  수 μžˆλ‹€.

4. λͺ¨λΈλ§ μ–Έμ–΄

4.1 DFD(Data Flow Diagram)

  • μ‚¬μš©μž μš”κ΅¬ 사항을 ꡬ적 방법둠

4.2 E-R λ‹€μ΄μ–΄κ·Έλž¨(ERD: Entity-Relationship Diagram)

  • DBμ„€κ³„λŠ” E-R 닀이어 그램
  • 정보곡학 λ°©λ²•λ‘ μ˜ 핡심
  • λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯ν•  데이터λ₯Ό 개체(entity)와 관계λ₯Ό μ€‘μ‹¬μœΌλ‘œ μž‘μ„±ν•œλ‹€.

4.3 μœ μŠ€μΌ€μ΄μŠ€ λ‹€μ΄μ–΄κ·Έλž¨

  • 객체지ν–₯ λ°©λ²•λ‘ μ—μ„œ UML의 μœ μŠ€μΌ€μ΄μŠ€ λ‹€μ΄μ–΄κ·Έλž¨μœΌλ‘œ ν‘œν˜„ν•œλ‹€.
  • μœ μŠ€μΌ€μ΄μŠ€ (usecase)
    • μ‚¬μš©μžμ˜ μš”κ΅¬λ₯Ό λ‚˜νƒ€λ‚΄λŠ” κΈ°λŠ₯으둜, μ‹€μ œλ‘œ μ½”λ”©ν•  수 μžˆμ„ 만큼의 κ°€μž₯ μž‘μ€ λ‹¨μœ„μ˜ κΈ°λŠ₯이닀.
    • 예
  • μ•‘ν„°(actor)
    • μ•‘ν„°λŠ” κ°œλ°œν•˜λ €λŠ” μ‹œμŠ€ν…œμ˜ κΈ°λŠ₯을 μ‚¬μš©ν•˜λŠ” μ‚¬λžŒ λ˜λŠ” ν•΄λ‹Ή μ‹œμŠ€ν…œκ³Ό μ—°λ™λ˜λŠ” λ‹€λ₯Έ μ‹œμŠ€ν…œμ„ λ§ν•œλ‹€.
      • μ‚¬μš©μž μ•‘ν„°
        • μ‚¬μš©μž μ•‘ν„°λŠ” μ‹œμŠ€ν…œμ„ μ‚¬μš©ν•˜λŠ” μ‚¬λžŒμ΄λΌκ³  ν–ˆμ§€λ§Œ μ •ν™•νžˆ λ§ν•˜λ©΄ μ‚¬λžŒμ΄ μ•„λ‹Œ κ·Έ μ—­ν•  이닀.
      • μ‹œμŠ€ν…œ μ•‘ν„°
        • λ³Έ μ‹œμŠ€ν…œκ³ΌλŠ” 데이터λ₯Ό μ£Όκ³ λ°›λŠ” λ“± μ„œλ‘œ μ—°λ™λ˜λŠ” 또 λ‹€λ₯Έ μ‹œμŠ€ν…œμ„ 말함
        • μ—°λ™μ΄λΌλŠ” κ°œλ…μ€ 일방적으둜 데이터λ₯Ό νŒŒμΌμ΄λ‚˜ μ •ν•΄μ§„ ν˜•μ‹μœΌλ‘œ λ§Œλ“€μ–΄ λ„˜κ²¨μ£ΌλŠ” 것을 연동이라 ν•˜μ§€ μ•ŠμŒ. 개발될 μ‹œμŠ€ν…œμ΄ κ·Έ μ‹œμŠ€ν…œ(은행, κ΅μœ‘λΆ€μ‹œμŠ€ν…œ)에 μ ‘κ·Όν•  수 μžˆμ„ λ•Œ μ—°λ™μ΄λΌλŠ” κ°œλ…μ„ μ“΄λ‹€.

객체 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ°(μ˜μ–΄: Object-Oriented Programming, OOP)은 μ»΄ν“¨ν„° ν”„λ‘œκ·Έλž˜λ°μ˜ νŒ¨λŸ¬λ‹€μž„ μ€‘ ν•˜λ‚˜μ΄λ‹€. 객체 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ°μ€ μ»΄ν“¨ν„° ν”„λ‘œκ·Έλž¨μ„ λͺ…λ Ήμ–΄μ˜ λͺ©λ‘μœΌλ‘œ λ³΄λŠ” μ‹œκ°μ—μ„œ λ²—μ–΄λ‚˜ μ—¬λŸ¬ 개의 λ…λ¦½λœ λ‹¨μœ„, 즉 "객체"λ“€μ˜ λͺ¨μž„μœΌλ‘œ νŒŒμ•…ν•˜κ³ μž ν•˜λŠ” 것이닀. 각각의 κ°μ²΄λŠ” λ©”μ‹œμ§€λ₯Ό μ£Όκ³ λ°›κ³ , λ°μ΄ν„°λ₯Ό μ²˜λ¦¬ν•  수 μžˆλ‹€.

객체 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ°μ€ ν”„λ‘œκ·Έλž¨μ„ μœ μ—°ν•˜κ³  변경이 μ‰½κ²Œ λ§Œλ“€κΈ° λ•Œλ¬Έμ— λŒ€κ·œλͺ¨ μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œμ— 많이 μ‚¬μš©λœλ‹€. λ˜ν•œ ν”„λ‘œκ·Έλž˜λ°μ„ 더 배우기 μ‰½κ²Œ ν•˜κ³  μ†Œν”„νŠΈμ›¨μ–΄ 개발과 보수λ₯Ό κ°„νŽΈν•˜κ²Œ ν•˜λ©°, 보닀 직관적인 μ½”λ“œ λΆ„석을 κ°€λŠ₯ν•˜κ²Œ ν•˜λŠ” μž₯점이 μžˆλ‹€. κ·ΈλŸ¬λ‚˜ μ§€λ‚˜μΉœ ν”„λ‘œκ·Έλž¨μ˜ 객체화 κ²½ν–₯은 μ‹€μ œ μ„Έκ³„μ˜ λͺ¨μŠ΅μ„ κ·ΈλŒ€λ‘œ λ°˜μ˜ν•˜μ§€ λͺ»ν•œλ‹€λŠ” λΉ„νŒμ„ 받기도 ν•œλ‹€.

  • μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œμ—μ„œ μ‚¬μš©ν•˜λŠ” λͺ¨λΈμ˜ κ°œλ…μ„ 이해해보고 λͺ¨λΈλ§ 방법과 λͺ¨λΈλ§ μ–Έμ–΄μ˜ μ’…λ₯˜μ— λŒ€ν•΄ μ‚΄νŽ΄ λ³Έλ‹€.

5. μš”κ΅¬ μ‚¬ν•­μ˜ λ¬Έμ„œν™”

1. μš”κ΅¬ 뢄석 λͺ…μ„Έμ„œμ˜ 이해

  • μš”κ΅¬ 사항을 λ¬Έμ„œν™”ν•  λ•ŒλŠ” 완성될 μ†Œν”„νŠΈμ›¨μ–΄μ˜ κΈ°λŠ₯적 μš”κ΅¬λ₯Ό μ •ν™•ν•˜κ²Œ μ„œμˆ ν•΄μ•Ό ν•œλ‹€. 또 κ΅¬ν˜„ μ‹œμ˜ μ œμ•½ 사항, ν’ˆμ§ˆ λ“±μ˜ λΉ„κΈ°λŠ₯적 μš”κ΅¬ 사항도 μ„œμˆ ν•΄μ•Ό ν•œλ‹€.
  • μ •μ˜
    • μš”κ΅¬ 뢄석 κ³Όμ •μ˜ μ΅œμ’… μ‚°μΆœλ¬Όλ‘œ μ‚¬μš©μžμ™€ μ—°κ²°μ‹œν‚€λŠ” μ€‘μš”ν•œ λ¬Έμ„œ
    • 섀계 및 κ΅¬ν˜„μ—μ„œ μ°Έμ‘°ν•  사항, μ „λ°˜μ μœΌλ‘œ μ•Œμ•„μ•Ό ν•  사항을 ν¬ν•¨ν•˜λŠ” λ¬Έμ„œ
    • μ‚¬μš©μžμ™€ 개발자 κ°„μ˜ κ³„μ•½μ„œ
  • λͺ…μ„Έμ„œ μž‘μ„±μ€ λΆ„μ„κ°€μ˜ 역할이닀.

2. μš”κ΅¬ 뢄석 λͺ…μ„Έμ„œ μž‘μ„± μ‹œ 주의 사항

  • μ‚¬μš©μžκ°€ 읽기 쉽고 ,이해할 수 μžˆλ„λ‘ μž‘μ„±ν•œλ‹€.
  • κ°œλ°œμžκ°€ 섀계와 코딩에 효과적으둜 μ‚¬μš©ν•  수 μžˆλ„λ‘ μž‘μ„±ν•œλ‹€.
  • λΉ„κΈ°λŠ₯적 μš”κ΅¬λ₯Ό λͺ…ν™•νžˆ μž‘μ„±ν•œλ‹€.
  • ν…ŒμŠ€νŠΈ κΈ°μ€€ μš©λ„λ‘œ μ‚¬μš©ν•  수 μžˆλ„λ‘ μ •λŸ‰μ μœΌλ‘œ μž‘μ„±ν•œλ‹€.
  • ν’ˆμ§ˆμ— λŒ€ν•œ μš°μ„ μˆœμœ„λ₯Ό λͺ…μ‹œν•œλ‹€.

3. 잘 λ§Œλ“  μš”κ΅¬ 뢄석 λͺ…μ„Έμ„œμ˜ νŠΉμ„±

  • μ™„μ „μ„±
  • λͺ…ν™•μ„±
  • 일관성(consistency)무λͺ¨μˆœμ„±
  • 좔적 κ°€λŠ₯μ„±
    • ν”„λ‘œκ·Έλž¨μ— 였λ₯˜κ°€ λ°œμƒν•˜λ©΄ κ·Έ 뢀뢄이 섀계 μ‚¬μ–‘μ„œμ—μ„œ 어디에 ν•΄λ‹Ήλ˜λŠ”μ§€ 좔적할 수 μžˆμ–΄μ•Ό ν•œλ‹€.
  • λ³€κ²½ μš©μ΄μ„±
  • 검증 κ°€λŠ₯μ„±

4. μš”κ΅¬ λͺ…μ„Έ 기법

4.1 λΉ„μ •ν˜• λͺ…μ„Έ 기법

  • μžμ—°μ–΄λ₯Ό 기반으둜 μ„œμˆ ν•˜λŠ” 방법이닀.
  • μž‘μ—… 흐름도와 같은 λ‹€μ΄μ–΄κ·Έλž¨μ„ μ‚¬μš©ν•΄ μž‘μ„±ν•œλ‹€.

4.2 μ •ν˜• λͺ…μ„Έ 기법

  • μˆ˜ν•™μ  원리와 ν‘œκΈ°λ²• 을 이용
  • Z μ •ν˜• λͺ…μ„Έ μ–Έμ–΄
  • μ •ν™•ν•˜κ³  κ°„κ²°ν•˜κ²Œ ν‘œν˜„ν•  수 있으며, 일관성이 μžˆλŠ”μ§€ , μ™„μ „ν•œμ§€ 등을 검증

5. μš”κ΅¬ 사항 검증

6. μš”κ΅¬ 뢄석 λͺ…μ„Έμ„œμ˜ κΈ°λ³Έ ν•­λͺ©

728x90
λ°˜μ‘ν˜•