스터디 6회

Code War

  • 일시 : 2007년 3월 17일(토). 오전 10시
  • 장소 : 본사 15층 회의실 구석탱이.
  • 준비물 : 노트북 1대 이상(팀별로 있으면 더 좋을 수 도 있음. 배틀필드용), 프로젝터, 과자, 음료수, 코드짜는노인(??!!)
  • score
\12345678910
new 선임[2]010.511
여성 듀오0101-
삼복이 부모1111-
  • 등장한 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

  • 저장소 타입 : subversion. 사용법은 각자 익히세요. 클클클클... 아이디/패스워드 없습니다. 당연히 다른팀의 코드를 볼 수 도 고칠수도(!!) 있습니다. 그렇다고 꼭 그래야 한다는건 아니예요~
    • 윽캭 subversion 어떠케 사용하는지는 모두 영어로 되어있;;;; 카틔양
    • 아니구나 한글도 있;;;; 카틔양
  • 당일의 게임시에는 새로운 저장소가 제공 됩니다.
  • 사전 준비
    1. 리팽토링 카드 : 진짜로 카드를 만들어 오라는 것은 아니고, 미리 우리는 이 코드에 이런 리팩토링을 할 것이다라는 목록을 준비해 오세요. 양식은 물론 없고, 자유롭게 준비 합니다.
    2. 리팩토링 연습 : 이런 리팩토링을 할 것이다라고 했으면 실제로 그 리팩토링을 해야 합니다. 그러니 미리 미리 연습해 오세요.
    3. 전략 : 아래 Rule 을 참고하시면 될 것 같습니다.
    4. 더 필요한게 있을까요??

Rule

  1. 기존의 연습용 저장소는 당일에는 쓰이지 않습니다.
  2. 최초의 코드를 새로운 WAR 용 저장소에 넣고 시작합니다.
  3. 매 1회의 코드 공략시마다 팀은 한 명의 대전사와 이번 공략에 사용할 리팩토링을 결정합니다(어떤 리팩토링인지는 타팀에 말하지 않습니다). 대전사 결정 및 공략 결정은 5분내에 완료 합니다. 대전사는 어떤 리팩토링을 어디에 적용할지를 종이에 적은 후 접어서 가지고 나옵니다.
  4. 5분이 지나면 각 팀의 대전사는 매우 과학적인 방법을 동원해 순서를 정합니다.
    • 과학적인 방법으로 순서를 정하는 것엔 어떤 방법이 있나용?? 가위바위보?? 카틔양
      • 그건 그날의 톱니바퀴의 컨디션에 따라 과학적으로 정해진다죠 아마. 삼복아빠
  5. 순서가 정해지면 이번 코드 공략에는 어떤 리팩토링을 적용할지를 가지고 나온 종이를 펼쳐 보여줍니다.
  6. 대전사와 공략이 정해지면 각 팀은 순서대로 공략을 시작합니다. 먼저 대전사가 나와 어떤 리팩토링을 어느 부분에 적용할지를 발표합니다. 다음 가지고 나온 리팩토링을 적용합니다. 이 때, 팀의 나머지 한명은 일체의 도움을 줄 수 없습니다. 다른 팀의 방해는 가능합니다.. 움훼훼휏..
  7. 리팩토링의 적용은 5분 동안입니다. 만약 5분동안 완료(코드 변경 후 테스트 통과까지)하지 못하면 그 때 까지의 변경은 모두 취소 됩니다. (저장소에서 원복).
  8. 5분동안 완료를 하면, +1점 실패하면 -1점입니다.
  9. 순서가 뒤인 팀이 앞의 팀과 동일한 리팩토링을 동일한 장소에 하는 것으로 결정했다면, 앞의 팀이 리팩토링을 실패하지 않는 한 코드 공략을 할 수 없습니다. 앞의 팀이 리팩토링에 성공한다면 뒤의 팀은 해당 턴에는 기회가 없습니다.
  10. 모두가 다른 리팩토링을 결정하였고, 성공 못한 팀이 있다면 나머지 두 팀이 매우 매우 과학적인 방법으로 순서를 정한 후 실패한 리팩토링에 도전할 수 있습니다. 이 때 역시 5분의 시간이 주어지고, 성공하면 +1점 실패하면 -1점입니다.
  11. 한번의 공략이 완료되면 적절한 시간동안 팀별 회고의 시간을 10분 동안 가집니다.
  12. 다시 1번으로 돌아갑니다.
  13. 위의 절차를 모든 팀이 준비해온 리팩토링이 다 떨어질때까지나 제한시간 (2시간) 동안 수행 합니다.
  14. 수행이 완료되면 그 동안의 점수를 종합 하여 당일의 후식 제공팀을 선정합니다. 물론 제일 적은 팀이 후식 제공팀이 됩니다.
    • 엉엉 우리팀 ㅜㅜ 카틔양
      • 설마.. 그건 우리 팀이 될 수 도 있어요. 요즘 원체 바빠서리.. 삼복아빠
  15. 뭐 이상하거나 모자란 점 있나요?

etc

  1. 당연히 Code WAR 중에도 리팩토링 목록을 추가할 수 있습니다.
  2. 사실 하자면 얼마던지 치사하게 할 수 (리네임 리팩토링만 주구장창 한다던가..) 있습니다만, 설마 그러지는 않겠죠. 각자의 양심에 따라.. -_-a

야르~ (요즘 밀고있는 것) 카틔양