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
- Human interface guide
- Refactoring
- 클린 코드
- clean architecture
- Observable
- RxCocoa
- Protocol
- swift documentation
- map
- 애니메이션
- rxswift
- MVVM
- 리팩토링
- 리펙토링
- uiscrollview
- UICollectionView
- 리펙터링
- Clean Code
- SWIFT
- tableView
- uitableview
- ios
- swiftUI
- 스위프트
- combine
- HIG
- UITextView
- Xcode
- collectionview
- ribs
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[Refactoring] 4. 테스트 구축하기 (테스트 코드가 중요한 이유) 본문
테스트 코드가 개발 효율을 높여주는 이유?
- 테스트 코드는 디버깅하는데 시간을 줄여줌
- 개발자는 보통 실제로 코드를 작성, 설계하는 시간의 비중은 그리 크지 않고, 대부분의 시간은 디버깅에 소요
- 버그 자체를 수정하는데는 오랜 시간이 걸리지 않지만, 버그를 찾는데 오랜 시간이 소요
- 테스트 코드를 짠 경우 > 버그를 찾을려고 일일이 디버깅하지 않아도, 테스트 코드에 걸리게 되어 쉽게 잘못된 곳이 어디인지 파악이 가능
테스트 코드가 시간이 걸린다는 주장의 이유?
- 테스트 코드를 작성하려면 부가적인 코드를 상당량 작성해야 하는데, 실제로 테스트가 프로그래밍 속도를 높여주는 경험을 하지 않았기 때문에 시간이 걸린다고 느낄 수 있음
- 테스트 코드의 목적은 디버깅하는 시간을 줄여주는 것이므로, 그 관점에서 생각한다면 테스트 코드는 효율적인 수단이 될 것
테스트 코드가 주는 이점
- 버그에 대한 디버깅 시간이 단축
- 테스트를 작성하기 가장 좋은 시점은 코딩을 시작하기 전이고, 이 때 구현체보다는 인터페이스에 집중하게 되는 장점이 존재
- 코딩이 완료되는 시점을 정확하게 판단이 가능 (완료 시점 = 테스트를 모두 통과한 시점)
- 코드를 리펙토링할 때, 해당 코드가 잘 동작하는지 알려면 테스트 코드가 존재해야 검증이 가능하므로 곧 리펙토링 하기 위해선 테스트 코드가 필요
cf) TDD(Test Driven Development)
- 아래의 짧은 주기 반복
- 처음에는 통과하지 못할 테스트 작성 > 이 테스트를 통과하게끔 코딩 > 결과 코드를 최대히 깔끔하게 리펙토링하는 과정
* 테스트 코드 관련 코드는 비동기 테스트 방법 포스팅 글 참고
* 참고
- Refactoring (Marting Flowler)
'Refactoring (리펙토링)' 카테고리의 다른 글
[Refactoring] 5-2. 기본적인 리펙토링 (변수 추출하기, 변수 인라인하기) (0) | 2023.03.18 |
---|---|
[Refactoring] 5-1. 기본적인 리펙토링 (함수 추출하기, 함수 인라인하기) (0) | 2023.03.07 |
[Refactoring] 3-2. 코드에서 나는 악취 (중복 코드, 긴 함수, 긴 매개변수, 전역 데이터, 가변 데이터, switch 문, 반복문, default value) (0) | 2023.01.15 |
[Refactoring] 3-1. 코드에서 나는 악취 (0) | 2022.01.23 |
[Refactoring] 2-2. 리팩터링 원칙, 리펙터링의 목적 (3) | 2022.01.21 |
Comments