[KR-2001110] DRY - don't repeat yourself
Last updated
Was this helpful?
Last updated
Was this helpful?
DRY - Don't Repeat Yourself = 같은 행동을 반복하지 마라.
혹자들은 이 문구를 보고 아. Copy & Paste를 하지 말란 뜻이구나! 라고 생각 할 수 있겠지만 나는 조금더 확장해서 모든것에 대한 반복 제거로 받아들였다.
이렇게 말하면 대단한 사람같지만 그렇지 않다.
말로는 모든것에 대한 반복 제거로 받아 들였다고 하지만 여기에 엄청난 맹점이 있었으니, *만약 내가 반복하고 있다는것을 인지 하지 못하는 상태라면?
필립 G. 아모어(Phillip G. Armour)님은(이하 필립) 2000년 10월 COMMUNICATIONS OF THE ACM 에 The Five Orders of Ignorance 라는 제목으로 글을 기고하는데 요약하자면 아래와 같다.
무지의 단계
타입
설
0단계
무지의 부재
난 아마도 뭔가를 안다.
1단계
지식의 부재
난 뭔가를 모른다.
2단계
인식의 부재
난 뭔가를 모르는데 그 모르는것이 뭔지 잘 모르겠다.
(뭘 모르는지 조차 모르겠다!)
3단계
프로세스의 부재
나는 내가 모른다는것을 알기위한 적절하고 효과적인 방법을 모른다.
(뭘 모르는지 조차 모르겠는 상태인지도 모르는 상태 -일자무식 용감무쌍.)
4단계
메타 무지
난 5단계 무지에 대해서 모른다.
나는 스스로 같은 행동을 안하기 위해 최선을 다했다고 믿었을뿐 내가 뭔가를 모른다는 사실조차 인지 하지 못했다. 열심히 하는것에 대한 정의를 혼동하는 사람이 많다. 많은 시간을 투자한다고 해서 열심히 하는것이 아니다.
그렇다. 파블로프의 개가 멀리 있는것이 아니다. 우리는 출근시간에 출근하고, 때 되면 점심을 먹고, 저녁을 먹고, 퇴근한다.
물론 지금은 자동화 테스트, TDD, CI / CD를 당연하게 생각하고(테스트 없는 코드는 완성된 코드가 아니다!), RESTful을 효과적으로 쓰면서 얻는 이점들을 마음껏 누리며 나름 자동화를 최대한 하며 지내고 있다. 근데 이것들을 내가 과연 처음부터 스스로 인지 했을까? 아니다. 안타깝지만 나는 그런 천재가 아니다.
무지에 가득차 비효율적인 행동을 반복하는 나날속의 나에게 누군가 구원의 손길을 보내줄때 나는 덥썩 바로잡았다. 그때도 같은 생각 이었지만 지금 돌이켜봐도 난 정말 대단한 사람들을 만났다. 다른말로 하면 나는 인복이 많다. 내 기구한 인생을 설명 할 길은 그 것뿐이다.
어떤 문제를 해결할때 같은 방법으로 계속 시도하면서 다른 결과가 나오길 바라는것은 말그대로 '요행을 바라는 행위'다. 인식의 부재 상태에서는 그걸 알아 차리기가 힘들다. 내가 그랬고, 지금도 그렇다. (나에게 뭔가를 소개시켜주는 모든사람에게 항상 고마워 하고 있다는 말을하고싶다!)
어쩌면 누군가 당신에게 해준 한마디가 당신이 꼭 필요로 하는 한마디 일 수 있다. DRY를 실천하기 위한 적극적인 방법은 다른사람의 스킬 배워야한다.
오래전 나에게 구원의 손길을 내밀었던 소프트웨어 장인이 추천했던 책 내용중 일부로 마무리 해볼까 한다.
경험이 적은 소프트웨어 장인과 지식을 나누는 것 또한 우리의 직업 윤리적 의무다. - 소프트웨어 장인 中 (산드루 만쿠소)
행운을 빈다.
필립 G 아모어가 쓴 책 The Laws of Software Process 에서 The five Orders of Ignorance를 좀더 자세히 설명하는것 같다.
아래 링크한 파일이 The Five Orders of Ignorance 원문이다.
이 글은 다수의 집단지성으로 작성, 수정, 개선 하였습니다.
크롱크롱파닥파닥
돼지런
개발_좀_아는_언니