본문 바로가기
이전글/2007

기간별 프로그램 제어 1시간 57분

by 물개선생 2007. 2. 22.
Whiteship님께서 TDD Helper라는 재미있는 유틸리티를 연습삼아 개발하고 있습니다. 그분의 지치지 않는 열정과 실력향상을 위해 꾸준하게 내딛는 발걸음은 나태해지고 싶어하는 못난 제게 늘 좋은 자극이 됩니다.

사용자 삽입 이미지
재밌겠다는 생각이 들어 TimeTrek 이라는 시간 측정 프로그램을 하나 다운 받아서 제 작업 속도를 측정해봤습니다. 마침 쉽게 끝날 수 있는 컴포넌트 개발을 시작하던 참이였거든요.

새 프로젝트를 하나 만들어서, 저희 프로젝트 절차별로 작업 단위를 만들어 Punch In 하고 개발에 들어갑니다. 중간 중간에 작업 단위가 끝나면 Punch Out하고, 다시 신규 작업을 입력하고 Punch In 하기를 반복.

순수하게 전체 개발에 소요된 시간은 1시간 57분이 측정되었습니다. 측정 기준을 분 단위로 조정하고, 보고서 보기를 눌러서 어디에 얼만큼의 시간이 걸렸는지를 살펴봤습니다.

- 도메인 모델 설계/구현, ERD 반영, Enum구현, JPA 어노테이션 매핑, XML 설정 : 15분
- 코드 생성기로 BL/DAO/CTRL/Support/UI를 생성하고 관련 XML 설정/테스트 : 5분
- 자동생성하지 않는 UI 부분 추가, Context 정보 처리 구현 : 20분
- 검색을 위한 DAO/BL 추가구현, 테스트 시나리오/데이터, 테스트 프로그램 : 20분
- 도메인 모델에 Transient 메소드 추가, 테스트 : 10분
- BL에 비즈니스 메소드 구현 및 테스트/리팩토링해서 Util로 빼내기/테스트 : 12분
- 배포 후 서버에서 사용 테스트 : 5분
- Ctrl에 Validation 로직 추가 / 사용 테스트 / UI 표준 검토 및 조정 : 19분
- Wiki에 완료보고서 작성 / 스케쥴에 완료 표시 : 11분

사용자 삽입 이미지

사용자 삽입 이미지

중간에 동료의 이슈를 해결해주고, 짧은 회의, 알고 지내던 분의 메신저 공격이 있어서 실제로 걸린 시간은 4시간입니다. 오후 1시에 시작해서 5시에 끝을 냈으니까요.

단순한 CRUD여서 더 쉽게 처리할 수 있었는데, 약간의 도메인 로직이 있었고 다른 컴포넌트에서 불러 쓸 메소드를 만들고 문서화 하는데 시간이 좀 걸렸네요. 이번에 시간 측정을 해보니 아직도 UI 작업에 불필요한 노가다를 반복하고 있는 걸 확인할 수 있었습니다. 코드 생성기를 개발할 때, 비표준 화면들 때문에 그리드만 컬럼을 자동생성하고 생성/수정 화면은 틀만 생성하도록 한 것이 원인입니다. 생성/수정 화면의 입력 컬럼과 필수 입력에 대한 Ctrl단의 Validation 코드도 자동생성할 수 있도록 코드 생성기의 기능을 확장하는게 좋을 것 같습니다.

이런 단순한 작업은 1시간 내에 처리할 수 있도록 좀 더 가다듬어야 할 필요성을 깨닫게 해준 재미난 놀이였습니다.

[추가글 - 2006/03/08]
Ajaxian을 읽다가 발견한 사이트인데요, http://www.toggl.com/ 이라고 타임 트렉킹을 Web 2.0 트렌드에 맞춰 개발한 사이트가 있네요. 샘플을 만들어 이용해보니 꽤 유용했습니다. 좋은 아이디어네요.

사용자 삽입 이미지