πŸ—ΊοΈ Design Pattern

πŸ—ΊοΈ Design Pattern

[Design Pattern] Object-Oriented Programming (OOP)

Object-Oriented Programming (객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°, OOP)의 이해 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°(Object-Oriented Programming, OOP)은 μ‹€μ„Έκ³„μ˜ μ‚¬λ¬Όμ΄λ‚˜ κ°œλ…μ„ 객체둜 λͺ¨λΈλ§ν•˜μ—¬ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό κ°œλ°œν•˜λŠ” ν”„λ‘œκ·Έλž˜λ° νŒ¨λŸ¬λ‹€μž„μž…λ‹ˆλ‹€. 이 μ ‘κ·Ό 방식은 데이터(속성)와 κ·Έ 데이터λ₯Ό μ²˜λ¦¬ν•˜λŠ” 데 ν•„μš”ν•œ κΈ°λŠ₯(ν•¨μˆ˜ λ˜λŠ” λ©”μ†Œλ“œ)을 ν•˜λ‚˜μ˜ λ‹¨μœ„λ‘œ λ¬Άμ–΄μ„œ μƒκ°ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄μ„œ CarλΌλŠ” 객체가 μžˆμ„λ•Œ? 속성: fuel: μ°¨λŸ‰μ˜ μ—°λ£Œ μ–‘, speed: μ°¨λŸ‰μ˜ ν˜„μž¬ 속도, steering wheel: ν•Έλ“€μ˜ μœ„μΉ˜, coordinate: μ°¨λŸ‰μ˜ ν˜„μž¬ μœ„μΉ˜ ν•¨μˆ˜: accelerate(): μ°¨λŸ‰μ˜ 속도λ₯Ό μ¦κ°€μ‹œν‚΅λ‹ˆλ‹€. takeLeft(): μ°¨λŸ‰μ„ μ™Όμͺ½μœΌλ‘œ μ‘°ν–₯ν•©λ‹ˆλ‹€. takeRight(): ..

πŸ—ΊοΈ Design Pattern

[Design Pattern] Unified Modeling Language (UML)

What is UML? UML(Unified Modeling Language, 톡합 λͺ¨λΈλ§ μ–Έμ–΄)λŠ” μ‹œμŠ€ν…œμ˜ ꡬ쑰와 λ™μž‘μ„ μ‹œκ°ν™”ν•˜κ³ , 사양(specification)을 λ¬Έμ„œν™”ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” ν‘œμ€€ν™”λœ λͺ¨λΈλ§ μ–Έμ–΄μž…λ‹ˆλ‹€. μ‹œμŠ€ν…œμ„ μ‹œκ°ν™” ν•˜κ±°λ‚˜ μ‹œμŠ€ν…œμ˜ 사양, 섀계λ₯Ό λ¬Έμ„œν™” ν•˜κΈ° μœ„ν•œ ν‘œν˜„ λ°©λ²•μž…λ‹ˆλ‹€. 톡합 λͺ¨λΈλ§ μ–Έμ–΄λŠ” 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ° μ†Œν”„νŠΈμ›¨μ–΄ 집얍 μ‹œμŠ€ν…œμ„ κ°œλ°œν•  λ•Œ μ‚°μΆœλ¬Όμ„ λͺ…μ„Έν™”, μ‹œκ°ν™”, λ¬Έμ„œν™”ν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€. 일반적으둜 UML의 λ²”μœ„λŠ” 맀우 λ„“μ§€λ§Œ, μ—¬κΈ°μ„œλŠ” 클래슀 λ‹€μ΄μ–΄κ·Έλž¨ 및 μ‹œν€€μŠ€ λ‹€μ΄μ–΄κ·Έλž¨μ— λŒ€ν•΄μ„œλ§Œ μ„€λͺ…ν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€. Code Pattern듀을 ν‘œν˜„ν•  λ•Œλ„ μœ μš©ν•©λ‹ˆλ‹€. Class Diagram: ν΄λž˜μŠ€μ™€ 계측 관계 클래슀 λ‹€μ΄μ–΄κ·Έλž¨μ€ μ‹œμŠ€ν…œμ˜ 정적 ꡬ쑰λ₯Ό λ‚˜νƒ€λ‚΄λŠ” UML ꡬ쑰..

πŸ—ΊοΈ Design Pattern

[Design Pattern] Solid Principles (μ†”λ¦¬λ“œ 원칙)

Solid Principles (μ†”λ¦¬λ“œ 원칙) SOLID 원칙은 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°κ³Ό μ†Œν”„νŠΈμ›¨μ–΄ μ—”μ§€λ‹ˆμ–΄λ§μ—μ„œ 쒋은 μ½”λ“œ 섀계λ₯Ό μœ„ν•œ λ‹€μ„― 가지 기본적인 원칙을 λ§ν•©λ‹ˆλ‹€. 이 원칙듀은 μ½”λ“œμ˜ μœ μ§€λ³΄μˆ˜μ„±μ„ ν–₯μƒμ‹œν‚€κ³ , ν™•μž₯성을 μš©μ΄ν•˜κ²Œ ν•˜λ©°, λ³΅μž‘μ„±μ„ κ΄€λ¦¬ν•˜λŠ” 데 도움을 μ€λ‹ˆλ‹€. 5개의 원칙이 μžˆμŠ΅λ‹ˆλ‹€. S - Single Responsibility Principle (단일 μ±…μž„ 원칙) 각 ν΄λž˜μŠ€λŠ” ν•˜λ‚˜μ˜ μ±…μž„λ§Œμ„ κ°€μ Έμ•Ό ν•©λ‹ˆλ‹€. 즉, μ‹œμŠ€ν…œμ—μ„œ 변경이 ν•„μš”ν•œ ν•œ 가지 μ΄μœ λ§Œμ„ 가지고 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€. 이 원칙은 μ½”λ“œμ˜ μž¬μ‚¬μš©μ„±μ„ 높이고, 변경에 λŒ€ν•œ μœ μ—°μ„±μ„ μ¦κ°€μ‹œν‚΅λ‹ˆλ‹€. O - Open/Closed Principle (개방/폐쇄 원칙) μ†Œν”„νŠΈμ›¨μ–΄μ˜ μ—”ν‹°ν‹°(클래슀, λͺ¨λ“ˆ, ν•¨μˆ˜ λ“±)λŠ” ν™•μž₯에 λŒ€ν•΄μ„œλŠ” μ—΄..

πŸ—ΊοΈ Design Pattern

[Design Pattern] Design Pattern

What is Design Pattern? λ””μžμΈ νŒ¨ν„΄μ€ μ†Œν”„νŠΈμ›¨μ–΄ κ³΅ν•™μ—μ„œ 일반적인 λ¬Έμ œλ“€μ— λŒ€ν•œ 반볡적이고 μž¬μ‚¬μš© κ°€λŠ₯ν•œ 해결책을 μ œκ³΅ν•˜λŠ” ν˜•μ‹ν™”λœ λ°©λ²•λ‘ μž…λ‹ˆλ‹€. μ΄λŸ¬ν•œ νŒ¨ν„΄λ“€μ€ κ°œλ°œμžλ“€μ΄ νŠΉμ • μƒν™©μ΄λ‚˜ λ¬Έμ œμ— λŒ€ν•΄ 효과적으둜 λŒ€μ‘ν•  수 μžˆλ„λ‘ λ„μ™€μ€λ‹ˆλ‹€. λ””μžμΈ νŒ¨ν„΄μ€ 주둜 객체 지ν–₯ μ†Œν”„νŠΈμ›¨μ–΄ 섀계에 적용되며, μ½”λ“œμ˜ μž¬μ‚¬μš©μ„±, μœ μ—°μ„±, ν™•μž₯성을 λ†’μ΄λŠ” 데 도움이 λ©λ‹ˆλ‹€. λ””μžμΈ νŒ¨ν„΄μ€ κ·œμΉ™μ΄ μ•„λ‹ˆλ‹€. μ–Έμ–΄ 쒅속적이지 μ•ŠμŠ΅λ‹ˆλ‹€. ν”„λ ˆμž„ μ›Œν¬ κ°œλ°œμ— 적용될 수 μžˆμŠ΅λ‹ˆλ‹€. νŠΉμ • μ˜μ—­μ— 쒅속적이지 μ•Šκ³  일반적으둜 ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 쒋은 섀계에 λŒ€ν•œ μ œμ•ˆμ΄κΈ°λ„ ν•©λ‹ˆλ‹€. λ””μžμΈ νŒ¨ν„΄μ€ 클래슀 λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μ•„λ‹ˆλ‹€. ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄(C++, Java, Python λ“±)λ₯Ό μ‚¬μš©ν•  λ•Œ ν΄λž˜μŠ€λ“€μ΄ λͺ¨μΈ 라이브러..

Bigbread1129
'πŸ—ΊοΈ Design Pattern' μΉ΄ν…Œκ³ λ¦¬μ˜ κΈ€ λͺ©λ‘ (3 Page)