달력

122021  이전 다음

  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  

코드 변경 스타일

java 2007. 11. 21. 13:02
내용의 일부는 Working Effectively with Legacy Code 에서 발췌했습니다.

시스템 소스 코드의 변경은 자주 일어나는 일입니다. 개발자에 따라서 두 가지 형태로 일이 진행된다고 하는군요.
  1. Edit & Pray
  2. Cover & Modify

첫번째 항목을 보면서 많이 웃었습니다. 심하게 공감을 했기 때문이죠. 수정하고 기도하는 자세로 소스코드의 변경 작업을 하는 부류가 대부분이라고 생각이 됩니다. 적어도 80% 이상의 개발자들이 해당되지 않나 개인적으로 추산해봅니다.

설명에서 이어지는 것은 열심히 포크로 이리저리 찔러본다고 합니다. 열심히 찔러 보고 그 다음에 기도를 드리는 것이죠. 아니, 기도 드리는 마음으로 이리저리 찔러보는 것일 수도 있겠죠. 盡人事待顧客(사람이 할 일을 다 한 후 사용자를 기다린다)이라고 할까요.

두번째 방법의 스타일은 이상적인 방법입니다. 그리고 마땅히 해야될 방법이기도 합니다. 커버라는 말은 공중곡예의 안전망을 친다라는 뜻과도 같습니다. 엄호사격을 영어로하면 Cover fire 입니다. 이때의 커버도 마찬가지이죠. 암벽등반을 하는 사람들 얘기를 들어보면 두 손 두 발 중에서 세 지점이 안정하다는 것을 확인하면 나머지 하나를 움직여서 나아간다고 합니다. 변경에 따른 사이드 이펙트를 줄이자는 것이지요.

마치 무협 판타지에서 나오는 결계(結界)를 치고 싸우는 것과 같다고 할까요.

사용자 삽입 이미지

image from: http://fireblood.egloos.com/1252976 

회귀테스트(regression test)가 가능한 테스트코드들이 필요하겠지요.
Posted by 케누 kenu허광남

댓글을 달아 주세요

  1. 윤좌진  댓글주소 수정/삭제 댓글쓰기 2007.11.21 15:55

    ㅋㅋ 아주그냥 공감 100배에요 :)

  2. 알 수 없는 사용자  댓글주소 수정/삭제 댓글쓰기 2007.11.21 17:34

    징검다리도 두드려보고 건너라는 옛 속담이 떠오르는 군요..ㅎㅎ

  3. 왕구라  댓글주소 수정/삭제 댓글쓰기 2007.11.21 20:11

    저도 공감이 갑니다. 제가 워낙에 덜렁 거리는 스타일이라 정말 저에게 필요한 자세가 아닌가 싶네요.. ㅋㅋ 좋은 글 잘 봣습니다.