폭탄코드를 만드는 방법
폭탄코드란 겉으로는 안정적으로 잘 돌아가는 것처럼 보이지만, 일단 손을 대기 시작하면 겉잡을 수 없이 엉망이 될 수 밖에없는, 거의 유지보수가 불가능한 상태의 코드를 말한다.
보통 일정에 쫒겨서 "이러면 안되는데.."하면서도 일단 급한마음에 대충대충 기능만 동작하게 마구잡이로 만들어서 나온 결과인 경우가 많다. 무개념 개발자에 의해서 또는 개발가이드도 정책도 없이 "알아서 각자 스타일로 빨리만 만들라"는 주문을 던지는 막장 프로젝에서 발견된다.
대체로 프로젝트 검수란 기능이 동작하는지 테스트하고, 형식에 맞춘 대량의 문서가 존재하는지만 확인할 뿐이므로 깔끔한 코드, 코드의 변화에 따라 같이 업데이트 되는 에버그린 다큐먼트 따위는 중요치 않다.
이런 유지보수가 불가능한 폭탄 코드를 만드는 다양한 기법을 정리한 글을 발견했다.
보고 이런 것은 조심해야지라고 생각해야지, 이거 괜찮은데.. 맘에 안드는 고객과 발주업체 엿먹으라고 한번 써먹어봐야겠다라고 생각하면 곤란하다. 또는 적절히 이용해서 자신만 유지보수가 가능한 코드로 만들어서, 자신의 고용을 보장하도록 하는 치사한 수단으로 사용하는 것도 좋은 생각이 아니다.
자바의 예가 거의 없는게 아쉬운데, 나중에 스프링 또는 자바 버전으로 하나 만들어보는 것도 재밌겠다.
June 2nd, 2009 in
Java & IT
이것 마저도 어렵네. ^^;
Naming이 앞서 나왔는데, 이름 잘 못 지면 평생고생하지.
땡큐.
kenu/
클래스와 메소드 이름을 P00001234 이렇게 일련번호로 짓는거 보셨어요?
그리고는 관련 문서에 설명도 제대로 없고.. 아주 쓰러지죠.
또는 약어표는 사라진 채로 남은 이니셜로 되어있는 변수,필드명을 가진 코드도 예술이고요.
링크걸린글 대충봐도 짜증나는 내용 투성이네요.
근데 저렇게 만드는게 더 힘들것 같은데요…
급해서 급조하다가 생길만한 내용이나 실수로 생길수 있는 상황도 있지만,
어떤건 일부러 개판치려고 하지 않으면 만들기 힘든 내용들인거 같군요.
근데 말씀하신 일련번호 이름은 정말 끔찍하네요… 덜덜덜…
클래스와 메쏘드 이름을 일련번호로 하는건 리버스엔지니어링을 막기 위해 툴을 돌리면 그렇던데요.
아니라면 코드 짠 사람도 천재네요..ㅎㅎ
약어표도 익숙해지면 쓸만하다 싶던데요. ^^;;;
요는 제대로 공유가 되어있느냐 이지.. 싶습니다.
하지만 자연어 또는 자연어를 대변할 수 있는 축약어가 더 사랑스럽기는 하더라구요. ㅎㅎ
금융권에서는 P00001234 같은 이름은 흔하더군요.
유지보수 문서 없어지면 뭐 하나 찾을 때 마다 욕나오죠… (경험자)