# 요약
- XM520의 ForceControl, PlaceDelay 범위 수정 작업을 진행하면서 리팩토링과 유닛테스트를 적용하여 안전하고 추후 수정도 용이하도록 작업하였다. 이에 사용된 방법들을 공유하고자 함. (박형근)
# 작업 배경
- 기존 코드는 HM520W용으로 작성되어 있었는데 로직이 복잡하여 실수할 가능성이 높았음.
- 그래서 먼저 리팩토링을 진행함.
- 리팩토링 진행하기 전에 안전망을 구축.
- 리팩토링하여 코드크기가 1/3정도로 줄어들고 수정이 용이하게 되었다.
- 이를 장비브랜치 3개에 횡전개 해야 하는데 머지후 검증하려면 클릭을 100번 이상 해야하는 문제가 있음. 그래서 유닛테스트를 작성하여 반자동 테스트 하도록 함.
# Refactoring
- 기능은 그대로, 구조/구현만 정리
- 위험하니 안전망 필요
- 유닛테스트
- 중복실행
- 마틴 파울러의 리팩토링 책 참고, 비주얼어시스트 기능 활용
- 언제 하나?
- 기능 수정하기 전에 하면 좋다.
- 장점
- 코드 가독성이 좋아져서 기능 수정이 편해진다.
- 단점
- 시간 소요
# UnitTest
## 구조
1. 언제 동작할 것인지 :
2. 디버그 빌드/릴리즈 빌드
3. 옵션 설정 (ini, 커맨드라인 인자)
4. 브레이크 포인트
2. 원래 값 백업
3. 테스트용 값으로 바꾸기
4. 테스트 실행
5. 백업값 원복
자동화 : 실행/종료, UI요소 막기
단점 : 시간 소요