λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

πŸ“š 전곡 곡뢀/μ†Œν”„νŠΈμ›¨μ–΄κ³΅ν•™

[μ†Œν”„νŠΈμ›¨μ–΄κ³΅ν•™] 9μž₯. 섀계 λͺ¨λΈλ§

(8μž₯ 볡슡)

< Data Design >

데이터 개체λ₯Ό μ†Œν”„νŠΈμ›¨μ–΄ ꡬ성 μš”μ†Œ μˆ˜μ€€μ˜ 데이터 ꡬ쑰둜 λ³€ν™˜ν•˜κ³ , ν•„μš”ν•œ 경우 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μˆ˜μ€€μ˜ λ°μ΄ν„°λ² μ΄μŠ€ μ•„ν‚€ν…μ²˜λ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€.

  • μ‘μš©ν”„λ‘œκ·Έλž¨ μ•„ν‚€ν…μ²˜λ₯Ό μ§€μ›ν•˜λŠ” ν•˜λ‚˜ μ΄μƒμ˜ λ°μ΄ν„°λ² μ΄μŠ€ 섀계
  • μ μ ˆν•œ λΉ„μ¦ˆλ‹ˆμŠ€ μˆ˜μ€€μ˜ 정보λ₯Ό μΆ”μΆœν•˜κΈ° μœ„ν•΄ κΈ°μ‘΄ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό νƒμƒ‰ν•˜λŠ” μ—¬λŸ¬ λ°μ΄ν„°λ² μ΄μŠ€μ˜ λ‚΄μš©μ„ '데이터 λ§ˆμ΄λ‹'ν•˜λŠ” 방법 섀계
  • 데이터 μ›¨μ–΄ν•˜μš°μŠ€ 섀계—λΉ„μ¦ˆλ‹ˆμŠ€μ— ν•„μš”ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ„ΈνŠΈλ₯Ό μ œκ³΅ν•˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯된 데이터에 μ•‘μ„ΈμŠ€ν•  수 μžˆλŠ” λŒ€κ·œλͺ¨ 독립 λ°μ΄ν„°λ² μ΄μŠ€
  • 예: 빅데이터 뢄석, 데이터 κ³Όν•™

9μž₯. 섀계 λͺ¨λΈλ§

What is Architecture?

  • ν”„λ‘œκ·Έλž¨ λ˜λŠ” μ»΄ν“¨νŒ… μ‹œμŠ€ν…œμ˜ μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄ κ΅¬μ„±μš”μ†Œμ˜ μ™ΈλΆ€μ μœΌλ‘œ λ³΄μ΄λŠ” νŠΉμ„±κ³Ό κ·Έλ“€ μ‚¬μ΄μ˜ 관계λ₯Ό κ΅¬μ„±ν•˜λŠ” μ‹œμŠ€ν…œμ˜ ꡬ쑰이닀.
  • μ†Œν”„νŠΈμ›¨μ–΄ μ—”μ§€λ‹ˆμ–΄κ°€ μ•„λž˜ 사항을 κ°€λŠ₯ν•˜κ²Œ ν•˜λŠ” ν‘œν˜„
    1. λͺ…μ‹œλœ μš”κ΅¬μ‚¬ν•­μ„ μΆ©μ‘±ν•˜λŠ” μ„€κ³„μ˜ 효과 뢄석
    2. 섀계 변경이 μ—¬μ „νžˆ 비ꡐ적 μ‰¬μš΄ λ‹¨κ³„μ—μ„œ μ•„ν‚€ν…μ²˜ λŒ€μ•ˆμ„ κ³ λ €ν•©λ‹ˆλ‹€.
    3. μ†Œν”„νŠΈμ›¨μ–΄ ꡬ좕과 κ΄€λ ¨λœ μœ„ν—˜ κ°μ†Œ

 πŸ’‘ Architecture Styles

  1. Data-centered architectures : 데이터 쀑심 섀계
  2. Data flow architectures : 데이터 ν”Œλ‘œμš° 섀계
  3. Call and return architectures : 호좜 및 λ°˜ν™˜ 섀계
  4. Layered architectures : λ ˆμ΄μ–΄λ“œ 섀계

Mapping Data Flow (DFD) Into a Software Architecture - μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜λ‘œμ˜ 데이터 흐름 맀핑

  • 호좜 및 λ°˜ν™˜ μ•„ν‚€ν…μ²˜
  • 흐름을 μˆ˜ν–‰
    • μœ μž…λ˜λŠ” 흐름
    • 쀑심 λ³€ν™˜
    • λ‚˜κ°€λŠ” 흐름
  • νŠΈλžœμž­μ…˜ 흐름
    • μ—¬λŸ¬ 경둜 쀑 ν•˜λ‚˜λ₯Ό 따라 λ‹€λ₯Έ 데이터 흐름을 νŠΈλ¦¬κ±°ν•˜λŠ” νŠΈλžœμž­μ…˜
    • μž‘μ—… 경둜
    • 거래 μ„Όν„°

transaction flow mapping

Partitioning the Architecture : “horizontal” & “vertical” partitioning are required

  1. 수직 νŒŒν‹°μ…”λ‹
    • 각 μ£Όμš” κΈ°λŠ₯에 λŒ€ν•΄ λͺ¨λ“ˆ κ³„μΈ΅μ˜ κ°œλ³„ λΆ„κΈ° ν‘œμ‹œ
    • 컨트둀 λͺ¨λ“ˆμ„ μ‚¬μš©ν•˜μ—¬ κΈ°λŠ₯ κ°„ 톡신 μ‘°μ •
  2. μˆ˜ν‰ νŒŒν‹°μ…”λ‹ : Factoring
    • μ˜μ‚¬κ²°μ •κ³Ό 업무가 κ³„μΈ΅ν™”λ˜λ„λ‘ 섀계
    • μ˜μ‚¬κ²°μ • λͺ¨λ“ˆμ€ μ•„ν‚€ν…μ²˜μ˜ 맨 μœ„μ— μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.

Why Partitioned Architecture?

  • ν…ŒμŠ€νŠΈν•˜κΈ° μ‰¬μš΄ μ†Œν”„νŠΈμ›¨μ–΄
  • μœ μ§€λ³΄μˆ˜ν•˜κΈ° μ‰¬μš΄ μ†Œν”„νŠΈμ›¨μ–΄
  • 적은 λΆ€μž‘μš©μ˜ μ „νŒŒ
  • ν™•μž₯ν•˜κΈ° μ‰¬μš΄ μ†Œν”„νŠΈμ›¨μ–΄

General Mapping Approach

  • λ³€ν™˜ 흐름에 λŒ€ν•œ λ“€μ–΄μ˜€λŠ” 흐름과 λ‚˜κ°€λŠ” 흐름 경계 뢄리
  • νŠΈλžœμž­μ…˜ 흐름을 μœ„ν•΄ νŠΈλžœμž­μ…˜ μ„Όν„° 격리
  • κ²½κ³„μ—μ„œ λ°”κΉ₯μͺ½μœΌλ‘œ μž‘μ—…, 지도 DFD

ν•΄λ‹Ή λͺ¨λ“ˆλ‘œ λ³€ν™˜

  • ν•„μš”μ— 따라 컨트둀 λͺ¨λ“ˆμ„ μΆ”κ°€ν•˜μ‹­μ‹œμ˜€.
  • 효과적인 λͺ¨λ“ˆν™” κ°œλ…μ„ μ‚¬μš©ν•˜μ—¬ κ²°κ³Ό ν”„λ‘œκ·Έλž¨ ꡬ쑰λ₯Ό κ°œμ„ ν•œλ‹€.

Type I: Transform Mapping

1단계 : κΈ°λ³Έ μ‹œμŠ€ν…œ λͺ¨λΈ κ²€ν† 

2단계: μ†Œν”„νŠΈμ›¨μ–΄μ— λŒ€ν•œ 데이터 흐름도 κ²€ν†  및 ꡬ체화

3단계 : DFD에 λ³€ν™˜ λ˜λŠ” νŠΈλžœμž­μ…˜ 흐름 νŠΉμ„±μ΄ μžˆλŠ”μ§€ 확인

4단계 : μœ μž… 및 유좜 μœ λŸ‰ 경계λ₯Ό μ§€μ •ν•˜μ—¬ 트랜슀폼 μ„Όν„° 격리

5단계: "1단계 μΈμˆ˜λΆ„ν•΄" μˆ˜ν–‰

6단계: "2단계 μΈμˆ˜λΆ„ν•΄" μˆ˜ν–‰

7단계: 섀계 νœ΄λ¦¬μŠ€ν‹±μ„ μ‚¬μš©ν•˜μ—¬ μ†Œν”„νŠΈμ›¨μ–΄ ν’ˆμ§ˆ κ°œμ„ μ„ μœ„ν•œ 1μ°¨ 반볡 μ•„ν‚€ν…μ²˜ κ°œμ„ 

Type II: Transaction Mapping

1단계: κΈ°λ³Έ μ‹œμŠ€ν…œ λͺ¨λΈ κ²€ν† 

2단계: μ†Œν”„νŠΈμ›¨μ–΄μ— λŒ€ν•œ 데이터 흐름 λ‹€μ΄μ–΄κ·Έλž¨ κ²€ν†  및 μ„ΈλΆ„ν™”

3단계 : DFD에 νŠΈλžœμž­μ…˜ 흐름 νŠΉμ„±μ΄ μžˆλŠ”μ§€ 확인

4단계 : 각 μž‘μ—… 경둜λ₯Ό 따라 νŠΈλžœμž­μ…˜ μ„Όν„° 및 흐름 νŠΉμ„± 확인

5단계 : νŠΈλžœμž­μ…˜μ΄ κ°€λŠ₯ν•œ ν”„λ‘œκ·Έλž¨ κ΅¬μ‘°μ—μ„œ DFD 맀핑 처리.

6단계 : 거래 ꡬ쑰와 각 행동 경둜의 ꡬ쑰λ₯Ό μš”μ†Œν™”ν•˜κ³  μ„ΈλΆ„ν™”ν•œλ‹€.

7단계: μ†Œν”„νŠΈμ›¨μ–΄ ν’ˆμ§ˆ ν–₯상을 μœ„ν•΄ 섀계 νœ΄λ¦¬μŠ€ν‹±μ„ μ‚¬μš©ν•˜μ—¬ 1μ°¨ 반볡 μ•„ν‚€ν…μ²˜ κ°œμ„ 

 

섀계 λ””μžμΈ κ°œμ„  (Refining)

  • 졜적 섀계
  • "μ΅œμ„ μ˜" μ ‘κ·Ό 방식(λŒ€μ•ˆμ—μ„œ)