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
- 애니메이션
- UICollectionView
- 리팩토링
- uiscrollview
- SWIFT
- MVVM
- Observable
- Xcode
- 클린 코드
- RxCocoa
- swift documentation
- Protocol
- ribs
- swiftUI
- Refactoring
- ios
- collectionview
- clean architecture
- Clean Code
- uitableview
- HIG
- 리펙터링
- combine
- rxswift
- Human interface guide
- UITextView
- map
- 스위프트
- 리펙토링
- tableView
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[Refactoring] 2-2. 리팩터링 원칙, 리펙터링의 목적 본문
리팩터링과 아키텍처, YAGNI(애그니)
- 리팩터링이 아키텍쳐에 미치는 실질적인 효과는 요구사항 변화에 자연스럽게 대응하도록 코드 베이스를 잘 설계해주는 장점이 존재
- 점진적 설계 (incremental design), YAGNI(You Aren't Going to Need It) "필요 없을 것이다"
- 유연성을 위해 현재 필요하지 않고 추후에 사용될 기능까지 구현하는 것보단 리팩터링을 사용할 것
- 추측하지 않고 그저 현재까지 파악한 요구사항만을 해결하는 소프트웨어를 구축할 것
- 아키텍쳐도 그에맞게 리팩터링하여 변경
리팩터링과 소프트웨어 개발 프로세스
- 최초의 애자일 소프트웨어 방법론 중 하나로 등장한, 익스트림 프로그래밍은 일명 TDD(Test Deiven Development)
- 리팩터링 하면서 쉽게 오류를 확인할 수 있는 방법은 테스트 코드가 존재하는 형태
리팩터링과 성능
- 직관적인 설계 vs 성능
- 직관적인 설계를 위하여 리팩터링을 하면서 프로그램 성능이 느려질 수 있지만 성능보다는 직관적인 설계가 더욱 중요
- 대부분 프로그램은 전체 코드 중 극히 일부에서 대부분의 시간을 소비하는데, 코드 전체를 고르게 최적화한다면 그중 90%는 효과가 거의 없기 때문에 시간 낭비가 되는 현상 발생
- 의도적으로 성능 최적화에 돌입하기 전까지는 성능에 신경 쓰지 않고 코드를 다루기 쉽게 만드는데 집중할 것
리팩터링의 유래
- `리팩터링` 용어의 정확한 유래는 찾을 수 없고, 처음부터 깔끔하게 작성하는 경우는 거의 없다는 것을 경험을 통해 깨닫고 무의식적으로 코드를 작성하면서 수행
* 다음 글 - [Refactoring] 3-1. 코드에서 나는 악취
* 참고
- Refactoring (Marting Flowler)
'Refactoring (리펙토링)' 카테고리의 다른 글
[Refactoring] 3-2. 코드에서 나는 악취 (중복 코드, 긴 함수, 긴 매개변수, 전역 데이터, 가변 데이터, switch 문, 반복문, default value) (0) | 2023.01.15 |
---|---|
[Refactoring] 3-1. 코드에서 나는 악취 (0) | 2022.01.23 |
[Refactoring] 2-1. 리팩터링 원칙, 리펙터링의 목적 (0) | 2022.01.20 |
[Refactoring] 1-2. 리펙토링이란?, 리펙토링의 예시 (0) | 2022.01.03 |
[Refactoring] 1-1. 리펙토링이란?, 리펙토링의 예시 (0) | 2021.12.31 |
Comments