스터디 6회
Code War
- 일시 : 2007년 3월 17일(토). 오전 10시
- 장소 : 본사 15층 회의실 구석탱이.
- 준비물 : 노트북 1대 이상(팀별로 있으면 더 좋을 수 도 있음. 배틀필드용), 프로젝터, 과자, 음료수, 코드짜는노인(??!!)
- score
| \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 계 |
| new 선임[2] | 0 | 1 | 0.5 | 1 | 1 | ||||||
| 여성 듀오 | 0 | 1 | 0 | 1 | - | ||||||
| 삼복이 부모 | 1 | 1 | 1 | 1 | - |
- 등장한 refactoring
- extract method
- extract superclass
- pullup method
- extract class
- encapsulate field
- rename method
Momo
- svn 저장소가 갱신 되었습니다. 기존 코드는 싹 지워지고, 제대로 된 프로젝트가 올라갔습니다. 이미 뭔가 하셨던 분들은 죄송하지만.. 다시 해주시면 감사하겠습니다. 캬캬캬캬캬.
- DB 는 mysql 로 변경했습니다. 로컬에 대부분 mysql 은 가지고 계실테니, local로 연습해 볼 수 있도록 구성했고, code 도 살짝 변경했습니다.
- DB 관련 정보는 data 디렉터리의 README.txt 를 참고하세요.
- AllTests 클래스를 junit 으로 실행하시면 전체 테스트가 실행됩니다. -삼복아빠
info
- 팀1
- 저장소 URL : http://ahamoment.org/svn/refac/team1
- 구성원 : 여성듀오
- 팀2
- 저장소 URL : http://ahamoment.org/svn/refac/team2
- 구성원 : new 선임[2]
- 팀3
- 저장소 URL : http://ahamoment.org/svn/refac/team3
- 구성원 : 삼복이부모
- Live
- 저장소 URL : http://ahamoment.org/svn/refac/chap13
- 저장소 타입 : subversion. 사용법은 각자 익히세요. 클클클클... 아이디/패스워드 없습니다. 당연히 다른팀의 코드를 볼 수 도 고칠수도(!!) 있습니다. 그렇다고 꼭 그래야 한다는건 아니예요~
- 당일의 게임시에는 새로운 저장소가 제공 됩니다.
- 사전 준비
- 리팽토링 카드 : 진짜로 카드를 만들어 오라는 것은 아니고, 미리 우리는 이 코드에 이런 리팩토링을 할 것이다라는 목록을 준비해 오세요. 양식은 물론 없고, 자유롭게 준비 합니다.
- 리팩토링 연습 : 이런 리팩토링을 할 것이다라고 했으면 실제로 그 리팩토링을 해야 합니다. 그러니 미리 미리 연습해 오세요.
- 전략 : 아래 Rule 을 참고하시면 될 것 같습니다.
- 더 필요한게 있을까요??
Rule
- 기존의 연습용 저장소는 당일에는 쓰이지 않습니다.
- 최초의 코드를 새로운 WAR 용 저장소에 넣고 시작합니다.
- 매 1회의 코드 공략시마다 팀은 한 명의 대전사와 이번 공략에 사용할 리팩토링을 결정합니다(어떤 리팩토링인지는 타팀에 말하지 않습니다). 대전사 결정 및 공략 결정은 5분내에 완료 합니다. 대전사는 어떤 리팩토링을 어디에 적용할지를 종이에 적은 후 접어서 가지고 나옵니다.
- 5분이 지나면 각 팀의 대전사는 매우 과학적인 방법을 동원해 순서를 정합니다.
- 순서가 정해지면 이번 코드 공략에는 어떤 리팩토링을 적용할지를 가지고 나온 종이를 펼쳐 보여줍니다.
- 대전사와 공략이 정해지면 각 팀은 순서대로 공략을 시작합니다. 먼저 대전사가 나와 어떤 리팩토링을 어느 부분에 적용할지를 발표합니다. 다음 가지고 나온 리팩토링을 적용합니다. 이 때, 팀의 나머지 한명은 일체의 도움을 줄 수 없습니다. 다른 팀의 방해는 가능합니다.. 움훼훼휏..
- 리팩토링의 적용은 5분 동안입니다. 만약 5분동안 완료(코드 변경 후 테스트 통과까지)하지 못하면 그 때 까지의 변경은 모두 취소 됩니다. (저장소에서 원복).
- 5분동안 완료를 하면, +1점 실패하면 -1점입니다.
- 순서가 뒤인 팀이 앞의 팀과 동일한 리팩토링을 동일한 장소에 하는 것으로 결정했다면, 앞의 팀이 리팩토링을 실패하지 않는 한 코드 공략을 할 수 없습니다. 앞의 팀이 리팩토링에 성공한다면 뒤의 팀은 해당 턴에는 기회가 없습니다.
- 모두가 다른 리팩토링을 결정하였고, 성공 못한 팀이 있다면 나머지 두 팀이 매우 매우 과학적인 방법으로 순서를 정한 후 실패한 리팩토링에 도전할 수 있습니다. 이 때 역시 5분의 시간이 주어지고, 성공하면 +1점 실패하면 -1점입니다.
- 매우 매우 과학적인 방법 카틔양
- 한번의 공략이 완료되면 적절한 시간동안 팀별 회고의 시간을 10분 동안 가집니다.
- 다시 1번으로 돌아갑니다.
- 위의 절차를 모든 팀이 준비해온 리팩토링이 다 떨어질때까지나 제한시간 (2시간) 동안 수행 합니다.
- 수행이 완료되면 그 동안의 점수를 종합 하여 당일의 후식 제공팀을 선정합니다. 물론 제일 적은 팀이 후식 제공팀이 됩니다.
- 뭐 이상하거나 모자란 점 있나요?
etc
- 당연히 Code WAR 중에도 리팩토링 목록을 추가할 수 있습니다.
- 사실 하자면 얼마던지 치사하게 할 수 (리네임 리팩토링만 주구장창 한다던가..) 있습니다만, 설마 그러지는 않겠죠. 각자의 양심에 따라.. -_-a
야르~ (요즘 밀고있는 것) 카틔양
