8. 요구사항수정_01_변경_02
• 상황 : 기존의 요구사항을 분석하여 개발을
진행 혹은 완료하였는데 갑자기 요구사항
에 변경된 경우
• 절차 : 영향분석 소스코드 변경 안정
화 테스트 재배포
• 결과 : 몇 시간 혹은 몇 일 혹은 몇 주전으로
시간이동
2012-11-05 Shit If 8
10. 요구사항수정_02_증발_02
• 상황 : 기존의 요구사항을 분석하여 개발을
진행 혹은 완료하였는데 갑자기 요구사항
에 증발된 경우
• 절차 : 영향분석 소스코드 삭제 안정
화 테스트 재배포`
• 결과 : 몇 시간 혹은 몇 일 혹은 몇 주전으로
시간이동
2012-11-05 Shit If 10
11. IF문과 요구사항의 상관관계_01
• 요구사항 변경 특별한 조건 분기발생
if문 or else if문 증가
• if문 or else if문 증가 코드의 모듈화 방해
예외발생 시간이동
2012-11-05 Shit If 11
12. IF문과 요구사항의 상관관계_02
• In case of Wise TV
– 서형님 : “지사가 접근할 경우 이 메뉴를 다르
게 출력해주세요.”
관리자 지사
2012-11-05 Shit If 12
13. IF문과 요구사항의 상관관계_03
• In case of Wise TV
요구사항 전 요구사항 후
<div class="com_menu"><img src="/assets/img/communication/img_upload01.png"> <a <div class="com_menu"><img src="/assets/img/communication/img_upload01.png"> <a
href="/communication/upload/notice_upload.jsp"><img href="/communication/upload/notice_upload.jsp"><img
src="/assets/img/communication/btn_upload.png"></a></div> src="/assets/img/communication/btn_upload.png"></a></div>
<div><img src="/assets/img/communication/line_800x1.png"></div> <div><img src="/assets/img/communication/line_800x1.png"></div>
<div class="com_menu"><img src="/assets/img/communication/img_upload03.png"> <a
href="/communication/upload/training_upload.jsp"><img
src="/assets/img/communication/btn_upload.png"></a></div>
<%
<div><img src="/assets/img/communication/line_800x1.png"></div>
if(!permission.equals("2")){
%>
<div class="com_menu"><img src="/assets/img/communication/img_upload02.png"> <a
href="/communication/upload/assembly_upload.jsp"><img
src="/assets/img/communication/btn_upload.png"></a></div>
<div><img src="/assets/img/communication/line_800x1.png"></div>
가독성, 복잡함,
<%}%>
관리성 어려움 발생
<div class="com_menu"><img src="/assets/img/communication/img_upload03.png"> <a
href="/communication/upload/training_upload.jsp"><img
src="/assets/img/communication/btn_upload.png"></a></div>
<div><img src="/assets/img/communication/line_800x1.png"></div>
2012-11-05 Shit If 13
14. 코드 리팩토링_01
• 화면의 변화 없이 관리 가능한 코드로 구조
를 변경하는 것
2012-11-05 Shit If 14
15. 코드 리팩토링_02
• 대상
– If, switch
– 같은 기능의 method
– 대충 naming
– 전역변수
– 극단적인 주석
– Hard Coding
2012-11-05 Shit If 15
16. 코드 리팩토링_03
• 왜?
– 디자인 패턴 계선
– 버그를 찾도록 도와준다.
– 프로젝트 기간이 단축된다.
• 언제?
– 기능을 추가할 때
– 버그 수정할 때
– 어떤 무언가를 할 때
• 한계
– 잘못하면 시간이동
– 기획자와 PL, PM 에겐 어필이 되질 않는다.
2012-11-05 Shit If 16
17. 결론_01
• 개발팀에게
– 환상을 버리자
• 환상 1 : 프로젝트 시작 전 요구사항 수집을 끝낼 수
있다.
• 환상 2 : 개발전 기획 또는 영업단에서 요구사항이
확정되어 전달 될 것이다.
• 환상 3 : 개발 초기에 정해지면 절대 변경되면 안된
다.
– 리팩토링을 틈틈히 하여 어떠한 요구사항 변경
에도 대응할 준비를 하자.
2012-11-05 Shit If 17
18. 결론_02
• 타팀에게
– 개발자의 환상을 최대한 지켜달라
– 요구사항은 리펙토링이 가능한 범위 안에서 검
증되어야 한다.
– 요구사항은 관리 되어야 한다.
2012-11-05 Shit If 18