모든 지식은 시스템 내에서 단일하고, 애매하지 않고, 정말로 믿을만한 표현 양식을 가져야 한다. 



DRY - 반복하지 마라 (Don't Repeat Yourself)

어떻게 중복이 생기는가? 

- 강요된 중복
  개발자들은 다른 선택이 없다고 느낀다. 환경이 중복을 요구 하는 것처럼 보인다. 

- 부주의한 중복

  개발자들은 자신들이 정보를 중복하고 있다는 것을 깨닫지 못한다.

- 참을성 없는 중복
  중복이 쉬워 보이기 때문에 개발자들이 게을러져서 중복을 하게 된다.

- 개발자간의 중복
  한 팀에 있는 (혹은 다른 팀에 있는) 여러 사람들이 동일한 정보를 중복한다.



위 내용은 예전에 읽었던 '실용주의 프로그래머' 라는 책에서 나와 있는 드라이 원칙 입니다. 소프트 웨어를 작성할 때 필히 반복되는 환경에 대해서 어떻게 피할 수 있는 가에 관한 언급이 있는 부분입니다.

이 책을 읽은지도 어언 몇년이 흘렀는지 모릅니다. 그 책을 읽고 느낀바가 있어서 여러가지 공부를 하게 됐으니 이 책은 나에게 새로운 길을 열게 도와준거나 다름 없습니다.

CS (Computer Science) 에 들어온지 어언 18년 , 직장으로서 프로그래밍을 한지는 15년 가까이 되가는 지금 예전에 스쳐지나갔던 내용들이 더욱 큰 의미를 가지고 다가오고 있습니다.  그래서 간만에 찾아본 소프트웨어 개발시 염두에 두어야 하는 드라이 (DRY) 원칙이였습니다. 


 
사용자 삽입 이미지

데이비드 S 플랫 지음
윤성준 옮김

"이보게. 데이브, 자네가 말한 우주의 제 2법칙, '우주의 쓰레기양은 보존된다. 이쪽에
쓰레기가 적다면 다른 쪽에 쓰레기가 많을 것이다. 쓰레기를 없애는 방법은 없기
때문이다' 는 정말 대단하더군. 지금 내 프로젝트가 꼭 그 꼴이거든." - 본문중에서

어떻습니까? 공감하십니까? 비단 자신이 수행하는 프로젝트 뿐만 아니라 세상에는 정말
쓰레기 같은 소프트웨어가 널려있습니다. 굳이 저자가 좋아하는 개떡 (영어로는 Sucks
인거 같더군요) 이라는 표현을 안 빌려온다 하더라도 주변에는 '아 쓰기 불편해!!' 라고
느끼는 프로그램이 한 두개가 아닐 것입니다. 저자는 왜 주변에 그리 개떡같은
소프트웨어가 많은지 차분하게 설명해 주고 있습니다.

책을 읽으면서 개발자로 살아왔던 삶이 살짝 부끄러워서 얼굴이 화끈 거렸습니다. 정말
책에 표현한 그대로 였으니까요. '사용자는 당연히 이렇게 할꺼야' 라는 가정하에 얼마나
제 멋대로 프로그램을 만들어 왔었는지.. 책은 사용성에 관한 저자 자신의 고찰과
개발자들이 잘 납득을 못할까봐 상당히 신랄한 어조로 비판하고 있습니다. 우리같은 Geeks
들한테는 그런식의 비판이 잘 먹혀 들어가지요 ^^;

제품에 세계 최고의 기술을 적용해도 사용자를 이해하지 못했다면, 잘못된 문제를
해결하는 것이라면, 또는 제대로 된 문제를 풀었다라도 사용자가 용납할 수 없다면
쓸모없는 것이 되고 맙니다. 사용자가 어떻게 생각하는지에 대한 당신들의 생각이나
사용자가 어떤 식으로 생각하길 바라는 당신들의 희망 같은 것은 중요하지
않습니다. 당신들은 사용자가 생각하는 것을 처리해야 하는 것입니다. - 본문중에서 -


최근에 IT 전반이 바뀌고 있다고 종종 주변에게 말하곤 합니다. 기존까지 대형 시스템에서
데이터를 축적하는데 열을 올렸다면 , 이제는 그 데이터를 활용하는 방향으로 변해가며 ,
일반 프로그램에서는 지금까지 기능성 위주였다면 이제는 사용자를 고려하는 리치 컨트롤
(더 예쁘고 더 사용성이 좋고) 쪽으로 변해가고 있습니다. 바뀌는 세상에서 그 중심에 서
있으려면 일단 빨리 깨닫는 게 중요합니다. 그런 의미에서 가벼운 명상(?)에 가까운
책입니다.

컴퓨팅은 더 이상 기술 분야가 아니라, 사람과 관련된 분야입니다. - 본문중에서 -


+ Recent posts