Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- tableView
- HIG
- Refactoring
- RxCocoa
- 클린 코드
- collectionview
- 스위프트
- 리펙터링
- combine
- UICollectionView
- 리팩토링
- map
- Clean Code
- uitableview
- SWIFT
- rxswift
- Observable
- swift documentation
- ios
- UITextView
- Protocol
- 애니메이션
- 리펙토링
- clean architecture
- Human interface guide
- Xcode
- ribs
- MVVM
- uiscrollview
- swiftUI
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[Clean Architecture] 7. 설계원칙 (SOLID) 본문
Clean Architecture/Clean Architecture 기초
[Clean Architecture] 7. 설계원칙 (SOLID)
jake-kim 2021. 6. 17. 01:21Architecture vs SOLID
- Architecture는 빌딩, SOLID는 좋은 벽돌
- SOLID를 통해서 좋은 아키텍처를 정의
- SOLID: 함수와 데이터 구조를 클래스로 배치하고, 이 클래스들을 결합하는 방법에 대한 이론
cf) architecture vs design pattern vs SOLID
- architecture: 프로그램 내에서 큰 구조로 구성되어 다른 구성 요소들을 관리 방법으로 넓은 개념
- design pattern: 특정 유형의 문제를 해결하는 방법으로 좁은 개념
- SOLID: design pattern은 특정 문제 유형을 해결하는 개념이고, SOLID는 아키텍처를 위하여 세부 구조를 어떻게 배치하고 결합하는지에 관한 개념
SOLID의 목적
- 변경에 유연
- 이해하기 쉬움
- 많은 소프트웨어 시스템에 사용될 수 있는 컴포넌트의 기반
주의할점
- '중간 수준'의 의미
- 코드 수준보다는 상위를 의미
- 프로그래머가 원칙을 모듈 수준에서 작업할 때 적용할 수 있는 형태
- SOLID 원칙은 '중간 수준'을 의미
- '고수준'
- SOLID원칙 뿐만이 아닌 더욱 고려된 부분 - SOLID 원칙 개념 후 이어서 설명
- 잘 만들어진 벽돌(SOLID)로도 빌딩(Architecture)을 망칠 수 있으므로, SOLID원칙과 고수준의 아키텍처 원칙까지 준수해야 좋은 아키텍처를 형성
SOLID
- SRP(Single Responsibility Principle)
- 소프트웨어 모듈은 변경의 이유가 하나여야 한다는 원칙
- -> 소프트웨어 시스템이 가질 수 있는 최적의 구조는, 소프트웨어 모듈들의 관계에 큰 영향을 받는 형태이므로 변경되는 양향을 최소화 하기 위함
- OCP(Open-Closed Principle)
- 시스템에 변경은, 기존 코드를 수정하기보다는 새로운 코드를 추가하는 방식으로 진행
- -> 기존 코드를 변경하는것보다, 추가하는 행위가 더욱 쉽게 변경할수 있기 때문
- LSP(Liskov Substitution Principle)
- 대체 가능한 구성요소를 이용해 소프트웨어 시스템을 만들 때, '대체 가능함'에 대한 기준을 정의
- '대체 가능함' 정도: '치환'을 했을때도 소프트웨어가 문제없이 도작
- ISP(Interface Segregation Principle)
- 클라이언트 관점에서 생긴 원칙
- 자신이 이용하지 않는 기능에는 영향을 받지 않아야 된다는 원칙
- DIP(Dependency Inversion Principle)
- protocol과 같은 고수준 정책을 구현하는 코드는, 저수준 코드(protocol 구현부)에 의존해서는 안된다는 원칙
(다음 장에서 SRP ~ DIP 개념 계속)
* 참고: Clean Architecture
'Clean Architecture > Clean Architecture 기초' 카테고리의 다른 글
[Clean Architecture] 9. SOLID 원칙 - OCP (Open Closed Principle) (0) | 2021.06.18 |
---|---|
[Clean Architecture] 8. SOLID 원칙 - SRP (Single Responsibility Principle) (0) | 2021.06.17 |
[Clean Architecture] 6. 함수형 프로그래밍 (0) | 2021.03.24 |
[Clean Architecture] 5. 객체 지향 프로그래밍 (Object-Oriented Programming), 의존성 역전 (0) | 2021.03.12 |
[Clean Architecture] 4. 구조적 프로그래밍 (structured programming), 테스트 코드가 중요한 이유 (0) | 2021.03.06 |
Comments